[llvm-dev] New LLVM git repository conversion prototype

David Jones via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 19 11:05:02 PST 2018

On Wed, Dec 19, 2018, 13:21 David Greene via llvm-dev <
llvm-dev at lists.llvm.org wrote:

> [ Consider all of this to be preferences, not anything close to an
>   objection. ]
> Tom Stellard via llvm-dev <llvm-dev at lists.llvm.org> writes:
> > There haven't been many more responses in the last few days, so can we
> > try to come to some kind of consensus here?
> I agree with others that this discussion doesn't have to delay the
> official repo from being posted.  Let's get that done ASAP.  Lots of
> people are waiting on it.
> > 1. Release tags.  There were a lot of small variation on the tag names
> for releases,
> > but it seems like the preferences was to use the llvm.org prefix,
> > so I'm going to propose using tag names like:
> >
> > llvm.org-8.0.0
> > llvm.org-8.0.0-rc1
> >
> > Any strong objections to this?
> SGTM.  I don't think we need a -final suffix or anything.  A straight
> version number seems to convey intent for many other projects.  But not
> a big deal either way.
> We almost certainly want annotated tags.
> > 2. Tags for commits in the master branch that bump the release version.
> >
> > Most of the discussion about this so far has been on what to put after
> > the version number (e.g. v8.0.0-dev, v8.0.0-base, v8.0.0-branchpoint).
> > Other things to consider about this tag is that it might be used in
> > a git describe alias to identify commits, so it would be helpful if
> > it was short.
> >
> > One idea I had after reading through all the responses was to use the
> > -git suffix on the tags. e.g. v8.0.0-git.  It's short and it's clear
> > that you are getting something that isn't an official release.  It
> > also is similar to the 8.0.0svn version number that we currently use
> > to indicate a non-released version.  Which of these 4 options(
> > dev, base, branchpoint, git) do people prefer?

Of these, -git seems the least misleading, based on responses so far
(branchpoint in particular). However, based on previous comments, I'm not
sure we want the specific format you suggested (see previous; it's missing
at least an llvm prefix namespace).

> I agree that -git or -dev could be misleading.  I also agree that we may
> not need this tag at all.

Strictly speaking, we don't *need* to switch to git, either. ;-) It's worth
our time collectively (I claim) to get it right from the beginning; a
broken or wrong output from a built-in git command seems problematic.

If we want the tag, I thirdly agree that
> tagging the split point is more useful/convenient than tagging the
> version bump.

Tagging the split point is semantically the wrong thing, though: if you
`git describe` the last commit before the branch for release ${N} (i.e.,
the last commit of N), the descriptor will be ${N+1} (or whatever tag was
applied). The version bump commit will then be "${N+1}-1", meaning the
second commit of the N+1 release (with commit hashes as appropriate).
That's an off-by-one error in several ways. ;-)

Also note, the split point is trivial to reach from the version bump, but
not vice versa. It's reachable as ^ from the version bump tag, and also
(less trivially, but still without explicit set arithmetic) as merge-base.

An easy way to reason about this is that the version bump tag should only
be reachable from the release branch for that version. So if the 8.0 bump
is reachable from the 7.x release branch, that's going to result in `git
describe` attributing commits with the wrong version.

> I have a preference for an llvm.org prefix on this tag, just like for
> the release tags, for the same reason we have it there: namespacing to
> avoid downstream conflicts.  But it's certainly not a dealbreaker.
>                             -David
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181219/4bc5be64/attachment.html>

More information about the llvm-dev mailing list