[Development] On the effectiveness of time based releases

Frederik Gladhorn frederik.gladhorn at digia.com
Mon Feb 24 19:00:28 CET 2014


Mandag 24. februar 2014 13.17.58 skrev Giuseppe D'Angelo:
> Hello,
> 
> right next to the discussion about the branching model, I'd like to
> propose a discussion about the time based releases. In particular,
> both for 5.2 and for 5.3 the model has IMO failed, in that features
> that were considered "too good to be missing" were rushed in at the
> last second (or even merged in stable after the actual dev->stable
> merge did happen).

There is always a trade-off, we aim for perfection but also need to advance Qt 
as product.

> Some of those features then either caused regressions (... ok,
> that's what betas are for, although it may also be a symptom of poor
> testing in order to get the feature in), or are highly debatable
> from an API / technical point of view (which is even worse, because
> we can't change APIs or behaviour once we release). (*)

Yes, I feel we haven't reviewed new public API in a sensible way. Any 
suggestions how to make this work? In the Nokia days (and earlier of course) 
there were long long sessions discussing API and perfecting it. In a sense 
it's really hard to achieve the same over IRC and mail, but maybe we should 
come up with a better way of dealing with this.

> The current branch guidelines [1] say
> 
>  > dev: unfrozen branch, containing alpha-quality code
>  > that is ready to go into beta testing at any time
> 
> "Alpha quality code" still means that the code respects *ALL* of the
> following:
> 
> *   for any "major" feature, and any metric of "major" (wide
>      audience, complex implementation, deep impact for users, ...),
>      the feature got through a round of public debate on the ML
>      (still, lazy consensus applies);
> 
> *   has gone through a round of public API review (possibly outside
>      of gerrit. on gerrit it would do if it also comes with
>      exhaustive example code);
> 
> *   is carefully documented;
> 
> *   it has proper autotests (if appliable);
> 
> *   strictly follows Qt coding guidelines;
> 
> *   compiles on all reference platforms;
> 
> *   works on all reference platforms;
> 
> *   possibly, it has been tested by third parties who got involved
>      in the above processes.
> 
> Code missing ANY of these does not belong to dev. It belongs to a
> working branch (under CI) which can be rebased on dev and merged
> when the code is ready. It certainly not belongs to stable.

Agreed.

> Unfortunately, it looks to me that time based releases seem to
> encourage developers to try to rush to get their feature in. This
> may be an indication that we'd like to move to feature-based
> releases. Which I have nothing against, except that we then need to
> discuss, agree and change our own rules.

I think we should not give up on time based releases. We will never make the 
exact cut off dates is my feeling and need some wiggle room. The time based 
scheme is there to help us, not make us slaves of the schedule.

I'll also readily admit that we haven't reached the state where our releases 
go as smooth and predictable as we'd all like, but we're learning and 
improving as we go along. Inside the community and inside Digia where a lot of 
the work for making a release happens.

Going back to a feature based release cycle makes it impossible to get 
everyone aligned, Qt as a project has grown too big with too many modules to 
make that possible. We want to make releases of all modules at the same time 
since it's less work and we also have too many interdependencies between 
modules to make it feasible.

For me it feels like the time based releases are a blessing, we just need to 
get used to them a bit more. I would have liked to have a few more patches in 
Qt 5.3, but then that is the same with every release :)


> [1] http://qt-project.org/wiki/Branch-Guidelines
> 
> (*) I'll deliberaly keep the technical discussion outside of this
> thread and start new threads to address the issues. This is about
> the policy.

-- 
Best regards,
Frederik Gladhorn
Senior Software Engineer - Digia, Qt
Visit us on: http://qt.digia.com




More information about the Development mailing list