axodotdev / axodotdev/cargo-dist

Allow configuring what package "v1.2.3" tags refer to

Open
#1,095 1 comment 0 reactions 0 assignees View on GitHub
feature request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.