[GRASS-PSC] releases schedule

Štěpán Turek stepan.turek at seznam.cz
Mon Mar 31 03:08:51 PDT 2014



Hi Vasek,




your proposal is identical to my opinion. Taking into account number of 
developers of GRASS GIS, the proposal seems to me as best solution to avoid 
recurrence of current state when GRASS 7 has become  used as stable by many 
users as consequence of many years of development without any release. 




Periods of release cycle should be discussed.  We also may modify them after
few releases according to practical experience.




Best

Stepan 







"

Inspired by what code sprint people were saying, I put together my proposal.
It counts with release once a year and a half year bugfixing (feature 
freeze) period before the release. I expect comments and criticism and I 
would be glad to compare this proposal with some other proposal.



Vaclav







Releasing and branch management should follow these steps:


   1. have trunk
   2. fork release branch , e.g. release_7_1
   3. only bugfixes to release branch, new features (additions, refactoring,
   documentation) only to trunk
   4. release new version based on release branch, , e.g. 7.1.0
   5. only critical bugfixes go to release branch, release patched version 
   if needed, e.g. 7.1.1, .7.1.2
   6. fork a new release branch (e.g. release_7_2), set old release branch 
   to readonly and continue with point 3.
   



It seems that release should be done every year. A new release branch should
be forked half a year before planned release. As a consequence, there would 
be a new branch every year. A new branch is forked from trunk in its current
state. Time of forking is specified, so doing larger changes can be 
postponed if necessary. Alternatively, particular commits can be reverted if
necessary. After a half year of bugfixing the release branch (by backports 
from trunk) we release. In next half a year after release, subsequent patch 
releases will be provided in case of critical bugs. In this period, almost 
all changes are in trunk only since only critical bug fixes go to release 
branch. After this period, new release branch is forked again from trunk and
cycle starts again.


Semantic versioning (http://semver.org/(http://semver.org/)) will be used 
(MAJOR.MINOR.PATCH). New releases gets new MINOR if they are backwards 
compatible, MAJOR if they are not. Critical bugfixes of released version 
gets new PATCH.


When a new development branch is forked, a release candidate (MAJOR.MINOR.
PATCH-RC1) or some other pre-release version can be released. This can 
repeat during the half year of bugfixing of release branch (in random or 
exact intervals or based on fixed bugs).

Larger experimental changes (e.g. storage format changes, things like 
temporal framework) should be done in a separate branch (or repository if 
more convenient). Then they should be committed to trunk and branch should 
be set to readonly. Ideal time for introducing new changes is after forking 
of a new release branch. Situation with some better, although perhaps 
experimental, branch and a completely separated release branch should be 
avoided. To make it clear, we should avoid situation when we are developing 
two versions of GRASS such as 6 and 7, and similarly we should not start 
development of GRASS 8 by forking branch devel_8.


To be sure what we are doing, we should perhaps discuss what are backwards 
incompatible changes (cases for MAJOR version); we have the following 
interfaces: GUI, workspace file, GUI API, modules, C API (and ctypes), 
Python API (to modules and general) and vector, invoking GRASS from command 
line, raster, 3D raster and temporal database formats.







On Sat, Mar 29, 2014 at 2:35 AM, Luca Delucchi <lucadeluge at gmail.com
(mailto:lucadeluge at gmail.com)> wrote:
"Hi PSC,

during the code sprint we spoke about releases schedule to improve the
GRASS GIS's quality specially for "our" user experience.
I have no a clear idea about a really good idea. During the code
sprint we spoke about the possibility to release once a year and six
month before put the release branch in freezing mode for testing and
bug fixes.

Could you find a good solution about this topic, I think this is
crucial element for the future of GRASS

Thanks
Best regards

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/(http://gis.cri.fmach.it/delucchi/)
www.lucadelu.org(http://www.lucadelu.org)
_______________________________________________
grass-psc mailing list
grass-psc at lists.osgeo.org(mailto:grass-psc at lists.osgeo.org)
http://lists.osgeo.org/mailman/listinfo/grass-psc
(http://lists.osgeo.org/mailman/listinfo/grass-psc)
"



_______________________________________________
grass-psc mailing list
grass-psc at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-psc"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-psc/attachments/20140331/cd1f9892/attachment.html>


More information about the grass-psc mailing list