Discussion:
[GRASS-dev] GRASS 7 release planning
Markus Neteler
2014-06-20 19:17:33 UTC
Permalink
Hi devs,

... so, getting out 7.0 seems to be endless...

A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.

Best
Markus
Yann Chemin
2014-06-23 01:42:56 UTC
Permalink
+1
Post by Markus Neteler
Hi devs,
... so, getting out 7.0 seems to be endless...
A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.
Best
Markus
_______________________________________________
grass-dev mailing list
http://lists.osgeo.org/mailman/listinfo/grass-dev
--
----
Moritz Lennert
2014-06-23 08:56:08 UTC
Permalink
Post by Markus Neteler
Hi devs,
... so, getting out 7.0 seems to be endless...
A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.
This sound ok to me. So, ideally, at all times we should have one
release branch and one development branch. Releases can then just be
tagged from the release branch which gets only selected, well-tested,
not to invasive backports from the dev branch.

Once we decide that the dev branch is sufficiently different from
release that backports become unfeasible, and sufficiently stabilised
that we can branch a release branch out of it, we declare the previous
release branch a legacy maintenance branch (with only limited bug fixing
from that point on), and branch a new release branch.

The proposed RFC4 release procedure would then apply to the release branch.

I think this will help reduce the number of branches which currently is
a hassle.

But, even though, I know you are in a hurry to get a grass7 release out
of the door, don't you think that we should finish 6.4.4 first ?

To be honest I think we will have to accept shipping OSGEOLive with 6.4.4...

Moritz
Martin Landa
2014-06-23 15:35:12 UTC
Permalink
Hi,
Post by Markus Neteler
... so, getting out 7.0 seems to be endless...
A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.
I think that there is no need for GRASS 8 at this moment, it's not
related to GRASS 7 release management. The real problem is that we
don't have clear list of desired features for GRASS 7. Once we start
with RC stage we need to be sure that we are close to the final
release - to avoid RC for months or even several months like happen in
the past. We should also vote about RFC4 before we start with RC
stage. Personally I would start with GRASS 8 when there will be a
clear reason for that.
This sound ok to me. So, ideally, at all times we should have one release
branch and one development branch. Releases can then just be tagged from the
release branch which gets only selected, well-tested, not to invasive
backports from the dev branch.
That is also reason why I would keep trunk as 7.1 before we start with
tagging 7.0.0RC1.
Once we decide that the dev branch is sufficiently different from release
that backports become unfeasible, and sufficiently stabilised that we can
branch a release branch out of it, we declare the previous release branch a
legacy maintenance branch (with only limited bug fixing from that point on),
and branch a new release branch.
I would prefer to create just release branches. E.g.

* We start with tagging 7.0.0RC1.
* We create releasebranch_7_1 from trunk
* Trunk becomes 7.2 or GRASS 8
* We continue with backports only in releasebranch_7_0 towards final release
* Development will continue in trunk and releasebranch_7_1
* After some period we freeze releasebranch_7_1 and create
releasebrach_7_2 from trunk/releasebranch_7_1.
* We start RC stage in releasebranch_7_1
* Development will continue in trunk a releasebranch_7_2.

[...]
But, even though, I know you are in a hurry to get a grass7 release out of
the door, don't you think that we should finish 6.4.4 first ?
To be honest I think we will have to accept shipping OSGEOLive with 6.4.4...
Right, as far as I know Markus is off-line since 27/6. So let's start
with idea to mark RC2 as a final and release it _this_week_! I don't
know about any blockers. Any opinion? If you know about blockers let
us know about that ASAP!

Martin
Moritz Lennert
2014-06-24 08:10:18 UTC
Permalink
Post by Martin Landa
Hi,
Post by Markus Neteler
... so, getting out 7.0 seems to be endless...
A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.
I think that there is no need for GRASS 8 at this moment, it's not
related to GRASS 7 release management. The real problem is that we
don't have clear list of desired features for GRASS 7. Once we start
with RC stage we need to be sure that we are close to the final
release - to avoid RC for months or even several months like happen in
the past. We should also vote about RFC4 before we start with RC
stage. Personally I would start with GRASS 8 when there will be a
clear reason for that.
This sound ok to me. So, ideally, at all times we should have one release
branch and one development branch. Releases can then just be tagged from the
release branch which gets only selected, well-tested, not to invasive
backports from the dev branch.
That is also reason why I would keep trunk as 7.1 before we start with
tagging 7.0.0RC1.
Once we decide that the dev branch is sufficiently different from release
that backports become unfeasible, and sufficiently stabilised that we can
branch a release branch out of it, we declare the previous release branch a
legacy maintenance branch (with only limited bug fixing from that point on),
and branch a new release branch.
I would prefer to create just release branches. E.g.
* We start with tagging 7.0.0RC1.
* We create releasebranch_7_1 from trunk
* Trunk becomes 7.2 or GRASS 8
* We continue with backports only in releasebranch_7_0 towards final release
* Development will continue in trunk and releasebranch_7_1
* After some period we freeze releasebranch_7_1 and create
releasebrach_7_2 from trunk/releasebranch_7_1.
* We start RC stage in releasebranch_7_1
* Development will continue in trunk a releasebranch_7_2.
Ok, so you prefer a solution with three branches (besides the legacy
maintenance branches), in this case

- releasebranchX.Y
- releasebranchX.Y+1
- trunk

?

This does have the advantage to allow experiments to happen in trunk.
But it has the disadvantage of having to manage backporting between
these branches.

My proposal would be just two branches:

- releasebranchX.Y
- trunk

The release branch would only live throughout the time of a specific
release and then become legacy maintenance.

The question is how to introduce highly experimental stuff. We can open
a windows between release branches to introduce new stuff in trunk. At
one point (something like a month before the creation of a release
branch) we stop any experimentation in trunk and iron out what needs
ironing out before creating a release branch out of trunk...

This risk of that approach is that some feature will not be tested as
long before release as in your proposal, but it has the advantage that
everyone just works in trunk, with release branches just created at the
time of releases. If I'm not mistaken this is more of less how QGIS
development works, or ?

One option would be to have people experiment more in their personal
trees and commit innovative features to trunk only when in late beta
stage. This would probably mean switching to git or something like that
since it seems more adapted to this style of development than subversion.

Moritz
Pietro
2014-06-24 09:32:24 UTC
Permalink
On Tue, Jun 24, 2014 at 10:10 AM, Moritz Lennert
Post by Moritz Lennert
- releasebranchX.Y
- trunk
The release branch would only live throughout the time of a specific release
and then become legacy maintenance.
I like your idea just two branches (stable and unstable!). This should
help our users to be less confused by the GRASS version system.
Post by Moritz Lennert
The question is how to introduce highly experimental stuff. We can open a
windows between release branches to introduce new stuff in trunk. At one
point (something like a month before the creation of a release branch) we
stop any experimentation in trunk and iron out what needs ironing out before
creating a release branch out of trunk...
This risk of that approach is that some feature will not be tested as long
before release as in your proposal, but it has the advantage that everyone
just works in trunk, with release branches just created at the time of
releases. If I'm not mistaken this is more of less how QGIS development
works, or ?
Do you think that we can create branches for specific tasks, like for
example I would like to work to make GRASS compatible with python2 and
python3, so I would like to have a branch: python3?
Post by Moritz Lennert
One option would be to have people experiment more in their personal trees
and commit innovative features to trunk only when in late beta stage. This
would probably mean switching to git or something like that since it seems
more adapted to this style of development than subversion.
Personally I would love to move GRASS to a distributed revision
control system such as git/hg. making easier for developers to make
our branches (e.g. python3) and share easily experimental and/or not
working code, without the risk of breaking the trunk version.

Pietro
Vaclav Petras
2014-06-24 15:55:35 UTC
Permalink
Post by Pietro
On Tue, Jun 24, 2014 at 10:10 AM, Moritz Lennert
Post by Moritz Lennert
- releasebranchX.Y
- trunk
The release branch would only live throughout the time of a specific
release
Post by Moritz Lennert
and then become legacy maintenance.
I like your idea just two branches (stable and unstable!). This should
help our users to be less confused by the GRASS version system.
I agree. The alternative is to end up with release, devel_for_release and
trunk which we already had and we were not satisfied.
Post by Pietro
Post by Moritz Lennert
The question is how to introduce highly experimental stuff. We can open a
windows between release branches to introduce new stuff in trunk. At one
point (something like a month before the creation of a release branch) we
stop any experimentation in trunk and iron out what needs ironing out
before
Post by Moritz Lennert
creating a release branch out of trunk...
This risk of that approach is that some feature will not be tested as
long
Post by Moritz Lennert
before release as in your proposal, but it has the advantage that
everyone
Post by Moritz Lennert
just works in trunk, with release branches just created at the time of
releases. If I'm not mistaken this is more of less how QGIS development
works, or ?
Do you think that we can create branches for specific tasks, like for
example I would like to work to make GRASS compatible with python2 and
python3, so I would like to have a branch: python3?
This would be very useful in making the two branches policy work smoothly.
Let the experiments happen in branch and then merge them to trunk. How
difficult is this in SVN? I remember that for temporal framework Soeren end
up with local code and then he committed directly to trunk. Branches would
be of course just for bigger projects, for example for python3 or for API
changes.
Post by Pietro
Post by Moritz Lennert
One option would be to have people experiment more in their personal
trees
Post by Moritz Lennert
and commit innovative features to trunk only when in late beta stage.
This
Post by Moritz Lennert
would probably mean switching to git or something like that since it
seems
Post by Moritz Lennert
more adapted to this style of development than subversion.
Personally I would love to move GRASS to a distributed revision
control system such as git/hg. making easier for developers to make
our branches (e.g. python3) and share easily experimental and/or not
working code, without the risk of breaking the trunk version.
I would prefer Git over SVN. It would help me a lot in my workflows (e.g.,
local branch with my commits and then merge to trunk/master). However, I'm
not sure if this is feasible for GRASS now, it seems that move to SVN
happened just while ago. This depends on how difficult would be to use
experimental branches in SVN as suggested above. We should try SVN first.

The true is that a lot of projects migrate to Git and/or they have at least
mirror at GitHub (or some other but usually GitHub) of their repository
(does mirroring work for SVN?). Moreover, because of my GSoC, I'm looking
at some quality assurance online tools and lots of them require GitHub
repository. Also note that Trac >1.0 has a support for Git, although it is
(was?) considered slower.

Vaclav
Moritz Lennert
2014-06-24 09:06:41 UTC
Permalink
Post by Martin Landa
Hi,
But, even though, I know you are in a hurry to get a grass7 release out of
the door, don't you think that we should finish 6.4.4 first ?
To be honest I think we will have to accept shipping OSGEOLive with 6.4.4...
Right, as far as I know Markus is off-line since 27/6. So let's start
with idea to mark RC2 as a final and release it _this_week_! I don't
know about any blockers. Any opinion? If you know about blockers let
us know about that ASAP!
I launched a new thread with an evaluation of current bugs and last call
for fixes.

Two tickets seem to warrant a backport, but I'm not familiar enough with
them to judge. Maybe we should just go ahead and backport, then release
RC2, test that with a special focus on these two backports, and then
release by the end of the week ?

Moritz
Hamish
2014-06-24 09:53:55 UTC
Permalink
Hi,
Post by Martin Landa
Post by Moritz Lennert
To be honest I think we will have to accept shipping OSGEOLive with 6.4.4...
The focus there is a split between being a showcase for new features and
super-stable introduction for new users. (power users might see past small
transient bugs, but if a new user finds rough edges in the first 5-15 minutes,
or before they get past the initial learning curve, the window of opportunity
is lost and they'll give up)
So far the balance on the disc has been to more favour stable over new. Feature
freeze is in just a couple weeks, QGIS plugin would need to be 100% ready and
rebuilt, and we'd not have a sample dataset included, would need to have a
GRASS_BATCH_FILE import script to set one up from the data already on the
disc.

fyi I plan to write a script which will be on the disc which will automatically
add the appropriate ppa repos and download+install the latest grass7 snapshot
and sample data.  What version does the foss4g workshop want to use? Note the NC
dataset only ships in geotiff+shapefile form so it can be used by all the
other projects too, due to disc space limitations the workshop setup will
have to download that too. (spearfish is small enough to include for G6 though)

There is a link on the live disc desktop to this URL:
  http://trac.osgeo.org/osgeo/wiki/Live_GIS_Workshop_Install

fwiw I will also be writing a G6 script for pre-installing some G6 addon modules.
If you have any you want included, place your orders in a osgeo trac ticket
please (LiveDVD component), cc 'hamish'.
Post by Martin Landa
Right, as far as I know Markus is off-line since 27/6. So let's start
with idea to mark RC2 as a final and release it _this_week_! I don't
know about any blockers. Any opinion? If you know about blockers let
us know about that ASAP!
I have been very busy with work recently, and will be for the next weeks too.
In the past I've been able to review all commits to the stable branch, right
now I am rather behind in that task. So if it goes out now just be warned that
I might be asking for a small-change 6.4.5 release after a month as some sort
of 6.4.4.1, since there are always some bugs to find. :-) I would also be a
bit slow on the Debian packaging this time and not sure if I could write the
release announcement.  Work and GSoC has all my time right now, sorry.


fwiw the debian rule for packages being accepted into the stable branch is not
that they are perfect, only that they are less buggy than the old version. For
the spatialite export bug I think that's fair advice to follow: it is not fixed,
but no more broken than the previous release. Since v.out.ogr is such a critical
module, and the fix requires the module to be improved with a bunch of 2D vs 3D
export logic, my vote would be to release 6.4.4 without it, but then try hard
soon after release to get it fixed, so maximum pre-release testing time. -- Even
though it's pretty crazy/embarrassing that GRASS isn't supporting export to
Spatialite currently.  My thoughts on r.li are very similar, chances are that the
big backport still has some maturing to do, but the earlier version was wrong
so perhaps-problems-but-improving beats known-bad.


best regards,
Hamish
Martin Landa
2014-06-24 14:05:49 UTC
Permalink
Hi,
Post by Moritz Lennert
Two tickets seem to warrant a backport, but I'm not familiar enough with
could you write us which tickets you have in mind? Martin
--
Martin Landa * http://geo.fsv.cvut.cz/gwiki/Landa
Vaclav Petras
2014-06-24 14:21:22 UTC
Permalink
Post by Martin Landa
Hi,
Post by Moritz Lennert
Two tickets seem to warrant a backport, but I'm not familiar enough with
could you write us which tickets you have in mind? Martin
I think that for this Moritz created different thread to not mess this one
with specific issues.

[GRASS-dev] Critical bugs for 6.4.4 release: last chance to react,
otherwise we'll release with these bugs

http://lists.osgeo.org/pipermail/grass-dev/2014-June/069641.html
Post by Martin Landa
--
Martin Landa * http://geo.fsv.cvut.cz/gwiki/Landa
_______________________________________________
grass-dev mailing list
http://lists.osgeo.org/mailman/listinfo/grass-dev
Martin Landa
2014-06-24 14:23:43 UTC
Permalink
2014-06-24 16:21 GMT+02:00 Vaclav Petras <***@gmail.com>:

[...]
Post by Vaclav Petras
I think that for this Moritz created different thread to not mess this one
with specific issues.
[GRASS-dev] Critical bugs for 6.4.4 release: last chance to react, otherwise
we'll release with these bugs
OK, Martin
--
Martin Landa * http://geo.fsv.cvut.cz/gwiki/Landa
Jachym Cepicky
2014-06-24 20:07:38 UTC
Permalink
Just noting, that I like Martin's analogy to GRASS 5.0 versus 5.1 some
time ago. History is repeating.
Post by Martin Landa
Hi,
Post by Markus Neteler
... so, getting out 7.0 seems to be endless...
A radical solution might be to change trunk into GRASS GIS 8. Then we
do not need to wait in 7 for API stabilization and can release it "as
is" and go ahead with the planned massive improvements.
I think that there is no need for GRASS 8 at this moment, it's not
related to GRASS 7 release management. The real problem is that we
don't have clear list of desired features for GRASS 7. Once we start
with RC stage we need to be sure that we are close to the final
release - to avoid RC for months or even several months like happen in
the past. We should also vote about RFC4 before we start with RC
stage. Personally I would start with GRASS 8 when there will be a
clear reason for that.
This sound ok to me. So, ideally, at all times we should have one release
branch and one development branch. Releases can then just be tagged from the
release branch which gets only selected, well-tested, not to invasive
backports from the dev branch.
That is also reason why I would keep trunk as 7.1 before we start with
tagging 7.0.0RC1.
Once we decide that the dev branch is sufficiently different from release
that backports become unfeasible, and sufficiently stabilised that we can
branch a release branch out of it, we declare the previous release branch a
legacy maintenance branch (with only limited bug fixing from that point on),
and branch a new release branch.
I would prefer to create just release branches. E.g.
* We start with tagging 7.0.0RC1.
* We create releasebranch_7_1 from trunk
* Trunk becomes 7.2 or GRASS 8
* We continue with backports only in releasebranch_7_0 towards final release
* Development will continue in trunk and releasebranch_7_1
* After some period we freeze releasebranch_7_1 and create
releasebrach_7_2 from trunk/releasebranch_7_1.
* We start RC stage in releasebranch_7_1
* Development will continue in trunk a releasebranch_7_2.
[...]
But, even though, I know you are in a hurry to get a grass7 release out of
the door, don't you think that we should finish 6.4.4 first ?
To be honest I think we will have to accept shipping OSGEOLive with 6.4.4...
Right, as far as I know Markus is off-line since 27/6. So let's start
with idea to mark RC2 as a final and release it _this_week_! I don't
know about any blockers. Any opinion? If you know about blockers let
us know about that ASAP!
Martin
_______________________________________________
grass-dev mailing list
http://lists.osgeo.org/mailman/listinfo/grass-dev
--
Jachym Cepicky
e-mail: jachym.cepicky gmail com
URL: http://les-ejk.cz
GPG: http://les-ejk.cz/pgp/JachymCepicky.pgp
Loading...