couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: Tweaking the release procedure
Date Sun, 23 Oct 2011 01:53:15 GMT
On Sat, Oct 22, 2011 at 3:17 PM, Randall Leeds <randall.leeds@gmail.com> wrote:
> On Sat, Oct 22, 2011 at 11:00, Noah Slater <nslater@tumbolia.org> wrote:
>
>> Jason and Randall, thanks for your dive into the semantic versioning idea.
>> As you pointed out, CouchDB's use of (as I mentioned previous) the Apple
>> versioning scheme means that it is indistinguishable from the semantic
>> versioning concept. However, I don't buy that we need to be shoehorning
>> "rc1" or "vote1" into the version number so that we can tag it without
>> conflicting with our actual releases.
>>
>> Dustin, thanks for your illuminating response. Some of the things you
>> describe there sound quite interesting, especially the build related
>> automation of release details such as version numbers and changelogs. I
>> guess there might be room for innovation, but that's something I'd like to
>> look at another time. The Git stuff sounds cool too, though a little beyond
>> me at this point I will admit. There might be room for improvement in how
>> we
>> manage our release branches. Perhaps other people, like Paul, want to weigh
>> in on that?
>>
>> My most pressing concern at the moment is that whatever we decide in this
>> thread should apply to the whole gamut of Apache projects, in broad
>> strokes.
>> We're actually quite unusual in the fact that we use the GNU Autotools.
>> Most
>> of the other projects use some crazy Java stuff I don't even understand.
>> But
>> we can't attempt anything to fancy here, or anything too specific to our
>> particular set up.
>>
>> On Sat, Oct 22, 2011 at 9:53 AM, Robert Newson <rnewson@apache.org> wrote:
>>
>> > I'd argue that it is of no interest, after a release, what the release
>> > artifacts looked like in earlier, failed rounds. We can decide, as a
>> > community, that there's value in that but I don't see it. If we go
>> > with reporting the commit id, then you can find them from the mailing
>> > list archives if you want.
>> >
>> > This thread has ranged far and wide but I still think the 'only tag
>> > the release at the end' policy is clear, simple and preferable to the
>> > alternatives proposed so far.
>> >
>>
>> I agree.
>>
>
> Me too.
>
>
>>
>>
>> > As for the fact that 1.2 does not descend from 1.1, this is more than
>> > just a limitation of svn (where a commit can have only one parent).
>> > 1.1.x and 1.2.x (and releases from either) necessarily diverge and so
>> > our source repo should reflect that.
>> >
>>
>> It sounds like Dustin has some interesting ideas on how to manage our
>> back-porting and forward-porting procedures. Managing release branches has
>> been quite tricky in the past. And if someone with lots of Git-fu wants to
>> help us manage that process better, I am excited about that. I don't think
>> this is particularly important for the current discussion though, so is it
>> best to come back to this later?
>>
>>
>> > Is there a complete alternate proposal to the 'only tag the release at
>> > the end'? Do we feel we're close to finding one?
>> >
>>
>> I don't think so, and I doubt it.
>>
>
> I agree.
>
>
>>
>>
>> > Finally, it seemed obvious to me that the tag would be signed by the
>> > same key that the release manager signs the release artifacts with, so
>> > I was already doing that. I like the idea that the tag should contain
>> > the tally of votes (including the links to the mail archive). I'll do
>> > that for 1.1.1 if no one objects.
>> >
>>
>> +1 to the tag being signed by the same GPG key as the release artefacts.
>>
>
> +1
>
>>
>>
>> The mailing list already contains the history of the votes, and the tally
>> of
>> the final round. It should only be necessary to include a reference to the
>> final vote tally. The rest can be done by whomever it is following the
>> link.
>> I don't think it's necessary to include the release announcement or
>> anything
>> else like that in the tag. Besides, it's important to realise that at the
>> point the tag is cut, this email hasn't even been sent yet.
>>
>> I would suggest something along the following lines:
>>
>> -
>>
>> Apache CouchDB 1.1.0 was tagged following a successful vote:
>>
>>
>> http://mail-archives.apache.org/mod_mbox/couchdb-dev/201106.mbox/%3CBANLkTinLheqbrD_=zV0i1ShLEyaD8-L=4Q@mail.gmail.com%3E
>>
>
> -1
>
> ----
>
> To summarize:
>  - It is of no interest to the task of distributing releases, but of immense
> interest to the community, how a tag came to pass.
>  - The primary record of consensus is discussion.
>  - The primary references of interest are therefore from discussion to
> artifact. Thus, the mailing archive references commits rather than vice
> versa.
>  - Noah just weighed in on the question of what back references to the
> consensus process archive are required to surface on the project git remote
> simultaneous with the fact of release. I voted -1 on his proposal.
>
> Instead, I propose an alternative scheme, borrowed from the linux kernel
> documentation at [1]:
>
>    "If a person has had the opportunity to comment on a patch, but
> has not <http://www.mjmwired.net/kernel/Documentation/SubmittingPatches#417>
>   provided such comments, you may optionally add a "Cc:" tag to the
> patch. <http://www.mjmwired.net/kernel/Documentation/SubmittingPatches#418>
>   This is the only tag which might be added without an explicit
> action by the <http://www.mjmwired.net/kernel/Documentation/SubmittingPatches#419>
>   person it names.  This tag documents that potentially interested
> parties <http://www.mjmwired.net/kernel/Documentation/SubmittingPatches#420>
>   have been included in the discussion"
>
> I read the word "opportunity" and "provided" as applying to our
> process as follows:
> - An individual on the mailing list who has cast a vote has had the
> "opportunity" to comment
> - An individual which has not published their own tag on apache
> infrastructure has not, for the purposes of a proper release,
> "provided" their comment.*
>
> Therefore, the release manager should tag and sign with "Cc: Community
> Voter <person@domain>" where person@domain is the email address in the
> archive which is associated with each message casting a vote.
> Upon successfully pushing a release tag, the release manager closes
> voting by replying to the vote thread with the typical notification of
> vote closure and a link to the signed release tag in the project
> remote, along with the archived email messages containing the votes,
> as in our current release procedure.*
>
> This thread is almost there :)
>
> Lastly, we should not allow any commits pushed to Apache
> infrastructure which are not signed off by committers. Looking at our
> nascent git history, we've already broken that, but we should
> discontinue this practice and probably enforce it via infrastructure
> hooks.

What do you mean? The infra hooks require that all commits are
committed (as opposed to authored) by one of the Apache CouchDB
committers. If that's not true then my infra hooks are busted and need
to be fixed ASAP.

On the other hand, if you mean that signed-off-by garbage in the
commit message, then I ask, "Why?". The committer that pushed the
commit to the ASF has already implicitly signed off on it.

>
> It's difficult to articulate my delight with this thread.
> Cheers all.
>
> Randall
>
> * This is the current limitations of infrastructure accountability leaking.
> + Infrastructure should work toward tooling that ties vote closure to
> tag pushing more seamlessly.
>
> [1] http://www.mjmwired.net/kernel/Documentation/SubmittingPatches#409
>

Mime
View raw message