Misc #21769
closedUse "vX.Y.Z" instead of "vX_Y_Z" as tag names on ruby.git
Description
Proposal¶
- Use
vX.Y.Z(e.g.v4.0.0) instead ofvX_Y_Z(e.g.v4_0_0) as git tag names from Ruby 4.0.0- Also use
-for preview/rc releases, e.g.v4.0.0-rc1instead ofv4_0_0_rc1
- Also use
Motivation¶
- Inconsistent version formats and the need of conversion make the release workflow implementation a little complicated and hard to read.
- As a stable branch maintainer, I don't want to spend time figuring out which version format is right for each CLI.
Background¶
- Release tarball URLs already follow the proposed format (without
v), e.g.ruby-4.0.0-preview2.tar.gz. - Historically, we used
vX_Y_Zbecause CVS didn't allow the use of.in tag names. We no longer need the workaround for Git.-
https://www.gnu.org/software/trans-coord/manual/cvs/html_node/Tags.html
Tag names must start with an uppercase or lowercase letter and can contain uppercase and lowercase letters, digits, ‘-’, and ‘_’.
-
Updated by k0kubun (Takashi Kokubun) 4 days ago
- Description updated (diff)
Updated by jeremyevans0 (Jeremy Evans) 4 days ago
Is there a reason to prefer vX.Y.Z over X.Y.Z? The v tag prefix does seem more popular, though both are widely used. The historical reason for using _ in tags also applies to the reason the v prefix is used. If we are switching from _ to ., it seems reasonable to drop the unnecessary v prefix at the same time.
According to https://stackoverflow.com/questions/2006265/is-there-a-standard-naming-convention-for-git-tags, vX.Y.Z was recommended in Version 1.0.0 of Semantic Versioning, but it is no longer recommended. The page has a good discussion of the pros and cons of the two approaches.
That being said, I'm in favor of the change from _ to ., either vX.Y.Z or X.Y.Z.
Updated by k0kubun (Takashi Kokubun) 4 days ago
I'm fine whether it's vX.Y.Z or X.Y.Z too. I'm personally used to vX.Y.Z used by rake release (ref), so I just didn't have a problem with the v prefix.
Updated by k0kubun (Takashi Kokubun) 1 day ago
- Status changed from Open to Assigned
- Assignee set to k0kubun (Takashi Kokubun)
From the (draft) meeting notes:
Conclusion:¶
- matz:
v4.0.0accepted.- hsbt: previous
v4_0_0_preview2should be renamed to:v4.0.0-preview2.
I'll modify ruby-master/tool/merger.rb tag to use the v4.0.0 format for Ruby 4.0+. I'll also file another ticket to announce the v4.0.0-preview2 tag rename.
To close the loop on the vX.Y.Z vs X.Y.Z discussion, @mame (Yusuke Endoh) didn't like X.Y.Z and we agreed on vX.Y.Z because all future X.Y.Z tags would show up after vX_Y_Z tags under GitHub's "Switch branches/tags" UI.
Updated by k0kubun (Takashi Kokubun) 1 day ago
- Related to Misc #21774: [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2` added
Updated by k0kubun (Takashi Kokubun) 1 day ago
- Status changed from Assigned to Closed
Updated tool/merge.rb tag and tool/format-release to support the new git tag format at https://github.com/ruby/ruby/pull/15508.
Updated by k0kubun (Takashi Kokubun) 1 day ago
· Edited
Here's the list of all changes I made for this ticket:
-
tool/merger.rb tag -
tool/merger.rb remove_tag -
tool/format-release -
tool/releng/update-www-meta.rb -
tool/make-snapshot -
.github/workflows/draft-release.yml -
.github/workflows/release.yml