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) 21 days ago
- Description updated (diff)
Updated by jeremyevans0 (Jeremy Evans) 21 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) 21 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) 18 days 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) 18 days 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) 18 days 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) 18 days 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