axodotdev / axodotdev/cargo-dist

Integrating a semantic-release like process appears to be fairly challenging

Open
#2,217 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.1k
Forks
149
Avg merge
1d 11h
Merged PRs (30d)
32

Description

I'm fairly fond of semantic release, from git message analysis. It prevents devs from having to guess, and it allows us to issue versions frequently, specifically pre-release versions. This means our dev environment can be updated with prerelease artifacts and we can manage dev as well as prod.

I've been using knope to manage versions. My prototype worked but it had 2 particular problems:
- every single release triggered a commit (this is knope in action), all it did was change Cargo.toml
- I had to let knope create the release, since there's no other way to trigger a tag from another gh action

Basically I'm unable to use/compose the cargo-dist workflow because it can only be triggered by creating a tag. And github bans
tag workflow dispatches when the tag is created/pushed by a robot (either the workflow default secret, or custom app secrets).

I could potentially just continue to use the 'create a release'. But if I could workflow_call into the cargo-dist from my
knope/semantic-versioning step, then I'd also be a happy camper.

What are people doing to integrate a semantic release auto-versioning and cargo-dist? This feels unwieldy now, and I've spent a day hitting my head on endless github action limitations that are not documented.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the cargo-dist workflow, the knope/semantic-versioning step, and GitHub Actions' tag-trigger and workflow_call behavior described in the issue. Done would mean defining a supported integration path for automatic prerelease versioning and cargo-dist without the documented tag-trigger limitations.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, github-actions, rust
Domain
ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.