axodotdev / axodotdev/cargo-dist
Allow configuring what package "v1.2.3" tags refer to
- Dominant language
- Rust
- Stars
- 2.1k
- Forks
- 149
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 32
Description
In https://github.com/rust-secure-code/cargo-auditable I have started out tagging the versions of `cargo auditable` itself, but the project has since grown and gained several more binaries. So I have versions like `v0.5.0` referring to `cargo auditable`, and everything else is prefixed, e.g. `rust-audit-info/v0.5.4`.
This naming scheme causes `cargo dist` to fail, necessitating [workarounds](https://github.com/rust-secure-code/cargo-auditable/pull/152/commits/74d42b85cbbb4759447cc7f7fdcdb9fb9f26bd6c). It detects several packages matching the version from a given tag (even only one package with 0.1.0 version exists on the commit with the 0.1.0 tag).
I cannot change the tagging format because several Linux distributions now rely on monitoring these tags to be informed about new releases. So I would like to configure `cargo dist` to treat versions such as `v0.5.0` as always referring to the package I specify, namely "cargo-auditable".
This would unlock publishing the auxiliary tools such as `rust-audit-info` and `auditable2cdx` through `cargo dist`.
Contributor guide
Research direction
Start by tracing cargo dist's tag and version detection logic, especially how it handles tags matching multiple packages. Define configuration that selects the package for unprefixed version tags, then verify that auxiliary packages can still use prefixed tags and be published through cargo dist.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100