[llvm-dev] New LLVM git repository conversion prototype

Justin Bogner via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 12 23:06:19 PST 2018

James Y Knight <jyknight at google.com> writes:
> On Fri, Nov 16, 2018 at 7:40 PM Jeremy Lakeman <Jeremy.Lakeman at gmail.com>
> wrote:
>> Semantic versioning would recommend "v8.0.0-dev", "v8.0.0-rc1" etc. The
>> hyphen indicating that this is a pre-release version coming before "v8.0.0"
> Here's my proposal:
> - Release branches will be named: release/3.5.x (for old version numbering
> scheme), release/7.x (for new).
> - The tags for release branches will be named v8.0.0 (for final), and
> v8.0.0-rc1 for release candidates.
> - Tags on the master branch (which will be created at commits modifying the
> version file after branch creation, ala r338537) will be named v8.0.0-dev.
> On Fri, Nov 16, 2018 at 10:10 PM Justin Bogner <mail at justinbogner.com>
> wrote:
>> As a bit of a side note, v8.0.0 is probably too brief - I expect v*
>> could easily match some arbitrary tag that starts with the letter v too
>> easily. I don't have strong opinions about the particular name, but
>> something like llvm-8.0.0 or llvm.org-v8.0.0 would be better.
> I don't feel terribly strongly about whether to use "llvm-8.0.0" or
> "v8.0.0".
> The "v8.0.0" style seems to be very widely used, so that'd still be my
> inclination, barring a good reason why we shouldn't. The other scheme I've
> seen commonly is actually just the raw version, e.g. "8.0.0" without any
> prefix at all.

There are two reasons I can think of to use a prefix like llvm or
llvm.org here:

1. Tools that can filter based on globs of tags will be more reliable -
   globs like llvm-* or llvm-*dev are pretty unlikely to hit arbitrary
   other tags, whereas v* is less clear and I don't even know how you'd
   glob for a pure number.

2. There are *a lot* of downstream projects based on llvm, and they're
   all likely to adopt the monorepo and add their own stuff to it.
   Namespacing the official tags gives them an obvious model for how to
   do their own tags and makes it easy to tell what a tag means at a

That said, it's easy enough for me to re-tag all of the v* tags in with
llvm.org-* in my downstream, so I think this boils down to aesthetics.

> I'll note that there is at least one minor advantage to using one of
> "v8.0.0" or "8.0.0". Github can make download tarballs/zipfiles from
> release tags, and when doing so, will name the file "$repository-$name.zip"
> (if you're downloading a tag or branch), or "$repository-$commithash.zip"
> otherwise. For tag names, it also strips "v" prefix in front of a version
> number, if you had one.  So, with either of the usual schemes, we'd get an
> automatically-generated filename of "llvm-8.0.0.zip". Instead of, say,
> "llvm-llvm-8.0.0.zip" if we were to go with a tag named "llvm-8.0.0". That
> said -- the LLVM project probably isn't going to use those for our official
> release distributions, so I think that advantage doesn't really matter.

More information about the llvm-dev mailing list