[llvm-dev] 4.0.1 Release Schedule + Need feedback for improving stable releases

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 29 09:44:43 PDT 2017


> On Mar 27, 2017, at 8:58 AM, Tom Stellard via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Hi,
> 
> I would like to start a discussion about improvements to the
> stable release process, but first, here is a proposed schedule
> for the 4.0.1 release.
> 
> May 1, 2017 -rc1
> May 22, 2017 Deadline for submitting merge request
> May 29, 2017 Deadline for merging changes.
> June 3, 2017 -rc2
> June 10, 2017 Final Release
> 
> This is slightly different from previous stable releases in that
> we are doing an early -rc1 release.  This matches what we do for
> major releases, and I think it will help us get more feedback from
> testers sooner.
> 
> There is now a script in utils/release, called merge-request.sh, which
> you can use to submit merge requests to bugzilla.  It's recommend
> that you use this script in order to give us consistent bugzilla entries.
> However, you can still file bugzilla requests manually if for some
> reason you are unable to use the script.

I like the fact that there is a script!
It’d be really nice to have an entry on the website describing how to use this. I always struggle to find the right email that tells me how to handle cherry-picks.


> If you file bugs manually, make sure you mark it as a blocker for
> the release metabug: 32061 and add a link the commit on phabricator
> in the url field: e.g http://reviews.llvm.org/rL12345
> 
> Description for the bug should be in the form of:
> 
> Merge r123456 into the 4.0 branch : <80 character commit message summary>
> 
> 
> * Stable Release Improvements *
> 
> I would like to start an informal discussion about stable release
> improvements.  My goals for this discussion are to find ways to
> get more community members/organizations using the official stable
> releases, and also to help simplify the release process for users,
> testers, and release managers.
> 
> * Ideas:
> 
> 1. Longer support for stable release. We currently have 2 major and 2
> stable releases per year.  Each major release is effectively supported
> for only 3 months, because after the x.y.1 release , we move on to the
> next major version.  Our current release schedule is approximately:
> 
> March: x.y.0
> June x.y.1
> Sept: (x+1).y.0 
> Dec: (x+1).y.1
> 
> One idea is to move to 6 releases per year and have an additional
> x.y.2 release after (x+1).y.0, but before (x+1).y.0.  This would
> mean that stable releases are supported for ~ 8 months. So something
> like:
> 
> Jan:   (x-1).y.1 
> March: x.y.0
> May:   (x-1).y.2
> July:  x.y.1
> Sept:  (x+1).y.0
> Nov:   x.y.2 
> 
> What do people think about this or other alternative release schedules?
> Would this kind of extended support make stable releases more
> attractive to users/organizations that use LLVM.
> 
> My main concern with adding an extra release is placing an extra
> burden on release testers.  For release testers is doing two
> more releases per year practical?
> 
> 
> 
> 2. Automated release testing.  This is connected to the previous
> idea.  Can we automate the release testing?  It would be great if
> we had some release tester bots that would test the release
> candidates and upload the binaries.  It seems like this should
> be doable within the current buildbot infrastructure.  Is the
> only thing that keeps us from doing this, lack of dedicated test
> hardware?


+1 for the automation! This is key to me.

I’m not sure we need *dedicated* hardware for this: the release testing does not consume a lot of cycles continuously, does it? I expect we need some hardware for a limited period of time when preparing a release.

What’s missing in my opinion is rather the software infrastructure: an easy way to run a script and validate the compiler more extensively than the LLVM test-suite.
Maybe we should lead an effort towards an “extended test-suite”: having the ability to clone a bunch of selected open-source project and build & run their unitests. Even if it is something that takes a full day to run, it seems possible to do this on each RCs.

> 3. Automated merge requests.  I would like to come up with a way
> that we can tag commit messages so that a post-commit hook would
> be able to automatically create merge requests in bugzilla.
> There are a few ways I can think of to tag the messages, but I'm
> just going to propose that adding the following line:
> 
> STABLE: 4.0
> 
> To commit messages would make it a candidate for an automated
> merge request.  Any thoughts?

I’m not a big fan of hijacking commit messages for this.
What does this by? Just saving running the script?
I rather have this as part of the scripts that will be available after we migrate to git.
For instance you can already commit from git with `git llvm push` (see http://llvm.org/docs/GettingStarted.html#for-developers-to-work-with-a-git-monorepo ), we can imagine extending this in the future to be able to send merge request easily from the command line.

— 
Mehdi



More information about the llvm-dev mailing list