* On 09 Apr 2013, Petr Pisar wrote: 
> distribitions have a testing phase where other people get involved. And all of
> this work would be saved if mutt upstream released new versions more
> frequently. 

I think the fundamental parameter is not really time frequency but
distance: how much development (e.g. measured in changesets) has
occurred since the previous release.  But that said, it's true that in
recent years we've extended the period between releases substantially,
probably to our detriment.  Data is below.

The catch is that with current mutt, to cut a "release" an quantity of
work needs to be qualified in some way: stable, or beta-worthy, or at
least internally consistent.  Otherwise a release is no different from
any other committed changeset.  (Maybe that's ideal.  It's how Mercurial
does it, for example: every commit to the stable branch is pre-judged
as release-worthy).  On Mutt, a "release" is still meaningful because
we still develop and release on HEAD, which means that someone needs
to focus on vetting releases.  And that's the rub: again we're down to
limited time.  A version number means that someone had a certain minimum
amount of free time all at once.

So: should we move to a dual-branch model for development, and do
continuous release qualification such that a "stable" branch is always
ready?  That allows version numbers to become no more than semantic
markers, and we can tag release numbers as often as we like.

I would vote +1 for that.  Jointly with a "crew" group, it could help
us collect unvetted patches and do signoffs continuously instead of
lurchingly, which could enable us to cut releases at shorter distances
and help maintainers.

Release delta data:

#!/bin/bash
lastrev=0
hg log -r 'tagged() or tip' --template='{rev} {tags}\n' | egrep 'rel|tip' | 
while read rev tag; do
        delta=$(($rev - $lastrev))
        echo "$delta changesets between $lasttag and $tag"
        lastrev=$rev
        lasttag=$tag
done | tail -n +2

24 changesets between mutt-0-92-12i-rel and mutt-0-92-13-rel
13 changesets between mutt-0-92-13-rel and mutt-0-92-14i-rel
10 changesets between mutt-0-92-14i-rel and mutt-0-94-5i-rel
11 changesets between mutt-0-94-5i-rel and mutt-0-93i-rel
24 changesets between mutt-0-93i-rel and mutt-0-93-1i-rel
19 changesets between mutt-0-93-1i-rel and mutt-0-93-2i-prerel
4 changesets between mutt-0-93-2i-prerel and mutt-0-93-2i-rel
6 changesets between mutt-0-93-2i-rel and mutt-0-94i-rel
6 changesets between mutt-0-94i-rel and mutt-0-94-6i-rel
44 changesets between mutt-0-94-6i-rel and mutt-0-94-1i-rel
2 changesets between mutt-0-94-1i-rel and mutt-0-94-7i-rel
47 changesets between mutt-0-94-7i-rel and mutt-0-94-2i-rel
7 changesets between mutt-0-94-2i-rel and mutt-0-94-8i-rel
58 changesets between mutt-0-94-8i-rel and mutt-0-94-9i-rel
12 changesets between mutt-0-94-9i-rel and mutt-0-94-3i-rel
47 changesets between mutt-0-94-3i-rel and mutt-0-94-10i-rel
20 changesets between mutt-0-94-10i-rel and mutt-0-94-4i-rel
73 changesets between mutt-0-94-4i-rel and mutt-0-94-13-rel
20 changesets between mutt-0-94-13-rel and mutt-0-94-14-rel
38 changesets between mutt-0-94-14-rel and mutt-0-94-15-rel
31 changesets between mutt-0-94-15-rel and mutt-0-94-16i-rel
31 changesets between mutt-0-94-16i-rel and mutt-0-94-17i-rel
19 changesets between mutt-0-94-17i-rel and mutt-0-94-18-rel
30 changesets between mutt-0-94-18-rel and mutt-0-95-rel
158 changesets between mutt-0-95-rel and mutt-0-95-2-rel
12 changesets between mutt-0-95-2-rel and mutt-0-95-3-rel
34 changesets between mutt-0-95-3-rel and mutt-0-95-4-rel
44 changesets between mutt-0-95-4-rel and mutt-0-96-rel
7 changesets between mutt-0-96-rel and mutt-0-95-6-rel
52 changesets between mutt-0-95-6-rel and mutt-0-96-1-rel
40 changesets between mutt-0-96-1-rel and mutt-0-95-7-rel
31 changesets between mutt-0-95-7-rel and mutt-0-96-2-slightly-post-release
2 changesets between mutt-0-96-2-slightly-post-release and mutt-1-0-pre1-rel
21 changesets between mutt-1-0-pre1-rel and mutt-1-0-pre2-rel
26 changesets between mutt-1-0-pre2-rel and mutt-0-96-3-rel
75 changesets between mutt-0-96-3-rel and mutt-1-0-pre4-rel
28 changesets between mutt-1-0-pre4-rel and mutt-1-0-rel
38 changesets between mutt-1-0-rel and mutt-1-0-1-rel
8 changesets between mutt-1-0-1-rel and mutt-0-96-4-rel
29 changesets between mutt-0-96-4-rel and mutt-0-96-5-rel
17 changesets between mutt-0-96-5-rel and mutt-0-96-6-rel
34 changesets between mutt-0-96-6-rel and mutt-0-96-7-rel
26 changesets between mutt-0-96-7-rel and mutt-0-96-8-rel
14 changesets between mutt-0-96-8-rel and mutt-1-1-rel
21 changesets between mutt-1-1-rel and mutt-1-1-1-rel
3 changesets between mutt-1-1-1-rel and mutt-1-1-1-1-rel
2 changesets between mutt-1-1-1-1-rel and mutt-1-1-1-2-rel
72 changesets between mutt-1-1-1-2-rel and mutt-1-1-2-rel
79 changesets between mutt-1-1-2-rel and mutt-1-1-3-rel
27 changesets between mutt-1-1-3-rel and mutt-1-1-4-rel
26 changesets between mutt-1-1-4-rel and mutt-1-1-5-rel
17 changesets between mutt-1-1-5-rel and mutt-1-1-6-rel
4 changesets between mutt-1-1-6-rel and mutt-1-1-7-rel
23 changesets between mutt-1-1-7-rel and mutt-1-1-8-rel
19 changesets between mutt-1-1-8-rel and mutt-1-1-9-rel
34 changesets between mutt-1-1-9-rel and mutt-1-1-10-rel
11 changesets between mutt-1-1-10-rel and mutt-1-1-11-rel
24 changesets between mutt-1-1-11-rel and mutt-1-1-12-rel
16 changesets between mutt-1-1-12-rel and mutt-1-1-13-rel
2 changesets between mutt-1-1-13-rel and mutt-1-1-14-rel
4 changesets between mutt-1-1-14-rel and mutt-1-2-rel
11 changesets between mutt-1-2-rel and mutt-1-3-rel
36 changesets between mutt-1-3-rel and mutt-1-2-1-rel
5 changesets between mutt-1-2-1-rel and mutt-1-2-2-rel
24 changesets between mutt-1-2-2-rel and mutt-1-2-3-rel
5 changesets between mutt-1-2-3-rel and mutt-1-2-4-rel
21 changesets between mutt-1-2-4-rel and mutt-1-2-5-rel
22 changesets between mutt-1-2-5-rel and mutt-1-2-5-1-rel
2 changesets between mutt-1-2-5-1-rel and mutt-1-3-1-rel
17 changesets between mutt-1-3-1-rel and mutt-1-3-2-rel
33 changesets between mutt-1-3-2-rel and mutt-1-3-3-rel
31 changesets between mutt-1-3-3-rel and mutt-1-3-4-rel
49 changesets between mutt-1-3-4-rel and mutt-1-3-5-rel
62 changesets between mutt-1-3-5-rel and mutt-1-3-6-rel
11 changesets between mutt-1-3-6-rel and mutt-1-3-7-rel
48 changesets between mutt-1-3-7-rel and mutt-1-3-8-rel
34 changesets between mutt-1-3-8-rel and mutt-1-3-9-rel
27 changesets between mutt-1-3-9-rel and mutt-1-3-10-rel
19 changesets between mutt-1-3-10-rel and mutt-1-3-11-rel
25 changesets between mutt-1-3-11-rel and mutt-1-3-12-rel
26 changesets between mutt-1-3-12-rel and mutt-1-3-13-rel
30 changesets between mutt-1-3-13-rel and mutt-1-3-14-rel
27 changesets between mutt-1-3-14-rel and mutt-1-3-15-rel
37 changesets between mutt-1-3-15-rel and mutt-1-3-16-rel
21 changesets between mutt-1-3-16-rel and mutt-1-3-17-rel
38 changesets between mutt-1-3-17-rel and mutt-1-3-18-rel
80 changesets between mutt-1-3-18-rel and mutt-1-3-19-rel
51 changesets between mutt-1-3-19-rel and mutt-1-3-20-rel
33 changesets between mutt-1-3-20-rel and mutt-1-3-21-rel
19 changesets between mutt-1-3-21-rel and mutt-1-3-22-rel
2 changesets between mutt-1-3-22-rel and mutt-1-3-22-1-rel
34 changesets between mutt-1-3-22-1-rel and mutt-1-3-23-rel
54 changesets between mutt-1-3-23-rel and mutt-1-3-23-1-rel
29 changesets between mutt-1-3-23-1-rel and mutt-1-3-23-2-rel
16 changesets between mutt-1-3-23-2-rel and mutt-1-3-24-rel
28 changesets between mutt-1-3-24-rel and mutt-1-3-25-rel
32 changesets between mutt-1-3-25-rel and mutt-1-3-26-rel
5 changesets between mutt-1-3-26-rel and mutt-1-3-27-rel
59 changesets between mutt-1-3-27-rel and mutt-1-3-28-rel
68 changesets between mutt-1-3-28-rel and mutt-1-3-99-rel
35 changesets between mutt-1-3-99-rel and mutt-1-4-rel
51 changesets between mutt-1-4-rel and mutt-1-4-1-rel
5 changesets between mutt-1-4-1-rel and mutt-1-4-2-rel
4 changesets between mutt-1-4-2-rel and mutt-1-4-2-1-rel
9 changesets between mutt-1-4-2-1-rel and mutt-1-4-2-2-rel
40 changesets between mutt-1-4-2-2-rel and mutt-1-5-1-rel
98 changesets between mutt-1-5-1-rel and mutt-1-5-2-rel
72 changesets between mutt-1-5-2-rel and mutt-1-5-3-rel
149 changesets between mutt-1-5-3-rel and mutt-1-5-4-rel
160 changesets between mutt-1-5-4-rel and mutt-1-5-5-rel
4 changesets between mutt-1-5-5-rel and mutt-1-5-5-1-rel
89 changesets between mutt-1-5-5-1-rel and mutt-1-5-6-rel
253 changesets between mutt-1-5-6-rel and mutt-1-5-7-rel
63 changesets between mutt-1-5-7-rel and mutt-1-5-8-rel
46 changesets between mutt-1-5-8-rel and mutt-1-5-9-rel
231 changesets between mutt-1-5-9-rel and mutt-1-5-10-rel
118 changesets between mutt-1-5-10-rel and mutt-1-5-11-rel
409 changesets between mutt-1-5-11-rel and mutt-1-5-12-rel
88 changesets between mutt-1-5-12-rel and mutt-1-5-13-rel
104 changesets between mutt-1-5-13-rel and mutt-1-5-14-rel
170 changesets between mutt-1-5-14-rel and mutt-1-5-15-rel
75 changesets between mutt-1-5-15-rel and mutt-1-4-2-3-rel
10 changesets between mutt-1-4-2-3-rel and mutt-1-5-16-rel
92 changesets between mutt-1-5-16-rel and mutt-1-5-17-rel
120 changesets between mutt-1-5-17-rel and mutt-1-5-18-rel
274 changesets between mutt-1-5-18-rel and mutt-1-5-19-rel
234 changesets between mutt-1-5-19-rel and mutt-1-5-20-rel
260 changesets between mutt-1-5-20-rel and mutt-1-5-21-rel
152 changesets between mutt-1-5-21-rel and tip

-- 
David Champion • d...@bikeshed.us

Reply via email to