couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Smith <...@iriscouch.com>
Subject Re: Tweaking the release procedure
Date Sat, 22 Oct 2011 03:07:40 GMT
A VAR or system integrator's perspective:

On Sat, Oct 22, 2011 at 2:54 AM, Noah Slater <nslater@tumbolia.org> wrote:
> ... Okay. Not sure what happened there. So, uh...
>
> Can we do something like this:
>
> It's the first round of voting, so we tag to:
>
>    vote/X.Y.X-1

Please reconsider semantic versioning. When I read its brief spec, I
hear Noah's voice. The writing is brief, thoughtful, and persuasive.

Couch is trailblazing, discovering best practices for all of ASF. Now
is its chance to adopt a worthy standard. Tagging is Git's strong
suit, and Couch can exploit that.

VAR-type tools and products orbiting couch are numerous and multiplying.

1. Refuge, led by Benoit, a committer
2. Iris Couch builds
3. Build CouchDB
4. Couchbase, involving four committers
5. BigCouch, involving three committers
6. Paul's (a committer) standardization project, couchdb-srcmv
7. Randall's (a committer) Ubuntu PPA
8. Novacut's (free software video editor) Ubuntu PPA
9. Dave Cottlehuber's Windows work
10. An OSGi plug-in wrapper around CouchDB, so one can deploy a
CouchDB runtime into an OSGi

These sorts of projects benefit from semver. Couch already follows
semver's numbering scheme (as closely as makes no difference). What
remains is to indicate this fact.

I urge you to weigh the aesthetic cost and risk of confusion against
pretty clear, common, and **machine-readable** version semantics, and
the opportunity cost of passing on that.

>
> This vote fails, so we move on to the second round of voting, and we tag to:
>
>    vote/X-Y.X-2
>
> This vote passes, so we copy the tag to:
>
>    release/X.Y.Z
>
> We then leave both the vote/* tags in place because they're prefixed to
> avoid confusion.

Leaving tags for posterity is prudent. It opens the door for tools to
identify changes, or discover bugs (git bisect), or perform
integration testing at major events in Couch's lifetime. If only there
was a standard means for tools to infer facts about Couch tags.

Noah, I like your idea of persistent, unchanging tags, and "copying"
(tag the same commit twice) the final vote to the official release.
But note that ./bootstrap inspects Git metadata, potentially executing
different code from one tag to the next. Currently this is not the
case, but the Good Intentions Paving Company is open for business.

http://git-wip-us.apache.org/repos/asf?p=couchdb.git;a=blob;f=bootstrap;h=1190280c200b4f234e8af08f23a45e97fa7e6e93;hb=HEAD#l35

-- 
Iris Couch

Mime
View raw message