[Development] Branching for Qt 5 repositories
Thiago Macieira
thiago.macieira at intel.com
Fri Sep 28 08:42:05 CEST 2012
On sexta-feira, 28 de setembro de 2012 00.54.34, Laszlo Papp wrote:
> > They are:
> > - dev: unfrozen branch, containing alpha-quality[*] code that is ready to
> > go>
> > into beta testing at any time
>
> What is the reason for calling this "dev" instead of "master" which is
> more common for developers, and it would not have an impact on the
> submitted changes to gerrit even in a year or more.
That's the point: it's not the most common way, at least not in Git. If you
take for example Git's Git, the "master" branch contains the latest release,
whereas the next release is in the "next" branch.
The use of master to mean the in-development version comes from the way we
used to use Perforce: the //depot/qt/main repository was the development
version, like a Subversion's trunk repository or a CVS's MAIN branch. When we
switched Qt to Git, we mapped master = main and that development style was
inherited in KDE.
> > - stable: feature-frozen branch, containing beta-quality or better code
> > - release: deep-frozen branch, for which only the release team should
> >
> > approve changes, containing code about to be released
> >
> > [*] alpha quality is feature complete, working, documented, tested, etc.
>
> I think this is a bit excessive for an alpha quality description
> unless you do not mean "fully" before each of those qualifiers.
No, I really do and those qualifiers are required, but note that they apply to
each feature individually. That is, if you want to merge the command-line
parser, it needs to be feature-complete, working, documented, tested and a few
more qualifiers (cf. Qt Project's "Technical Fit") before I or anyone else
should click that +2.
Feature branches are not drawn. Those are developed however the devs working
on the feature want to. But they need to reach the alpha quality before asking
for merging that branch.
> This leaves me one question: what if someone would like to fix a bug
> or start working on a new feature no matter what the stable or release
> contains at that very moment? That person may miss:
>
> 1) Bug that was already fixed in the development branch.
Not a problem. That indicates that either the fix was submitted to the wrong
branch or that this particular fix did not apply to more stable branches. If
this person developing the new fix comes up with a fix that is acceptable for
the stable branch, then it makes sense to accept it, in spite of a different fix
existing in dev.
> 2) Feature that may have been already put into the development branch,
> but it is not yet in the stable or release due to its current quality.
> However, a new developer should not reinvent that due to a mistake.
I don't think it's a problem either. This developer may develop new features
on top of the stable release (I used to do that in Qt 4), but should pay
attention to the development branch. Qt is big, but it's not hard to pay
attention to the areas one is developing on.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120928/8f817eea/attachment.sig>
More information about the Development
mailing list