crate-ci / cargo-release

Cargo subcommand `release`: everything about releasing a rust crate.
Apache License 2.0
1.31k stars 109 forks source link

One tag for all packages #767

Closed tisonkun closed 5 months ago

tisonkun commented 5 months ago

I noticed that the default release manner pushes multiple tags per crate:

     Pushing Pushing hawkeye-fmt-v5.0.0-alpha.2, hawkeye-v5.0.0-alpha.2, main to origin
Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 2.21 KiB | 2.21 MiB/s, done.
Total 9 (delta 6), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (6/6), completed with 3 local objects.
To https://mirror.ghproxy.com/https://github.com/korandoru/hawkeye.git
   9047759..d7c4abb  main -> main
 * [new tag]         hawkeye-fmt-v5.0.0-alpha.2 -> hawkeye-fmt-v5.0.0-alpha.2
 * [new tag]         hawkeye-v5.0.0-alpha.2 -> hawkeye-v5.0.0-alpha.2

Since I'm doing releases simultaneously, I may need only one tag v5.0.0-alpha.2 for all. How can I achieve this?

Currently I try to set:

[workspace.metadata.release]
sign-tag = true
shared-version = true
tag-name = "v{{version}}"

But I don't give it a try ..

cc @epage

tisonkun commented 5 months ago

Seems work well. But it's not quite intuitive ...

remote: Resolving deltas: 100% (5/5), completed with 3 local objects.
To https://mirror.ghproxy.com/https://github.com/korandoru/hawkeye.git
   d7c4abb..602cbc8  main -> main
 * [new tag]         v5.0.0-alpha.3 -> v5.0.0-alpha.3