[Geoserver-devel] alignment of Geotools and geoserver policies

In some (robust!) discussion on the Geoserver release process, it has come to light that there are some mismatches, at least perceived, between practices in geotools and geoserver tracking fixes to trunk.

In particular, geoserver has been aggressive about ensuring trunk gets patches "forward ported" where necessary, and at the same time there is some level of distrust with the robustness of this process in geotools.

Nevertheless, geoserver trunk has made the big step to track geotools trunk, which should provide significantly better testing opportunities for geotools trunk. There remains various degrees of nervousness about this, and I'm not sure there is a well implemented and understood geotools policy (and practice!) that meets the expectations and requirements the geoserver community is aiming at.

Its probably also inevitable that geoserver, having for such a long time being bound to previous geotools releases, has in turn resulted in a focus on fixing geotools branches, without a corresponding motivation to port changes forward.

(and I know about the issue because I've been as guilty as anyone - I did lots of fixes to Oracle on the complex-features branch which I did not feel able to propagate through to geotools trunk because there was no geoserver trunk tracking it to perform end-to-end tests, and I couldnt work out how to set up Oracle testing fixtures at the time. Online test profiles to the rescue! )

My suggestion is therefore that geoserver helps itself by not accepting changes to branches until a test case has been identfied or implemented on trunk (even if trunk has fixed the problem we should have regression tests in place), and applying exactly the same discipline to geotools and geoserver.

Can geotools follow the same discipline, or is there a better way of achieving this? If there is a geotools policy in place that _should_ meet these needs - how do we make it more visible and enforce it better? Or do we feel we are successfully emerging from a bad place regardless? (modules, api, coverages and fm stuff moving to geotools trunk seems to cut both ways - it provides a consolidated opportunity to test more, but also raises legitimate worries about flow-on effects into robustness).

Rob Atkinson

Nice idea Rob - patch any bug fixes on trunk first ... I like it.

My suggestion is therefore that geoserver helps itself by not accepting changes to branches until a test case has been identfied or implemented on trunk (even if trunk has fixed the problem we should have regression tests in place), and applying exactly the same discipline to geotools and geoserver.

Can geotools follow the same discipline, or is there a better way of achieving this? If there is a geotools policy in place that _should_ meet these needs - how do we make it more visible and enforce it better?

The related GeoTools policy is here: suggestions on "visibility and enforcement" are welcome
- http://docs.codehaus.org/display/GEOT/Working+on+a+stable+branch

Or do we feel we are successfully emerging from a bad place regardless? (modules, api, coverages and fm stuff moving to geotools trunk seems to cut both ways - it provides a consolidated opportunity to test more, but also raises legitimate worries about flow-on effects into robustness).

Rob Atkinson
  

Jody Garnett wrote:

The related GeoTools policy is here: suggestions on "visibility and enforcement" are welcome
- http://docs.codehaus.org/display/GEOT/Working+on+a+stable+branch

its a bit vague about the requirement to port fixes forward - merely describes this as "nice". I'd start of by making the case that fixes _must_ be pushed into trunk, and even that even if you have a patch working on a branch, the committing process should be to commit to trunk (with tests) first.

Maybe the point about "saving up a few" is valid, but perhaps this shuld apply to the branches as well. Current practive follows the policy AFAICT - goodwill but indefinite timelines to actually port forward.

RnD branches probably dont need to follow this, but where they uncover issues they should still push fixes to trunk, and if the amount of work is too great because of wierdness in the RnD codebase, at least register a Jira issue on trunk ?

Rob Atkinson