GSIP 226 · geoserver/geoserver Wiki · GitHub
Skip to content

GSIP 226

Jody Garnett edited this page Sep 21, 2024 · 5 revisions

GSIP 226 - GeoServer 3

Overview

The number of changes associated with the spring-framework-6 update are significant enough to warrant a new major release.

Proposed By

Jody Garnett

Assigned to Release

This proposal is for GeoServer 3.0.0-M0

State

  • Under Discussion
  • In Progress
  • Completed
  • Rejected
  • Deferred

Motivation

The number of changes associated with the roadmap spring-framework-6 update are significant enough to warrant a new major release:

  • Migrate to spring-framework-6, which requires changing to Jakarta Enterprise Edition (Tomcat 10 and Jetty 12)
  • Migrate to spring-security 6 necessitating the replacement of spring-security-oauth and spring-security-keycloak plugins
  • Changing to Java 17 minimum
  • Replacing our Java Advanced Imaging raster processing engine with for ImageN (mixing in JAI-Ext operators for a complete solution)
  • Updating tp Wicket 10, which will require implementing our own dialogs.

We have held off making a new major release for two reasons addressed below:

  • Making a new major release results in a non trivial expense for those who need to do a formal configuration management procedure before updating a major version.

    It has been fifteen years since GeoServer 2.0 was released. You should probably do a formal review more often than that. With the amount of change proposed an any feedback from your formal review process would be of benefit to the GeoServer project team.

  • Aspirational goal to only update the version number when we changed the data directory compatibility.

    While change of data directory marked the boundary between GeoServer 1 and GeoServer 2. The user experience change from STRUTS to Wicket was more significantly noticed by Users.

Proposal

Assuming crowdfunding appeal is successful the proposal is:

  • Change from <major>.<minor>.<incremental>: 2.22-M0, 2.22-RC, 2.22.0 2.22.1

    Treating SNAPSHOT like an incremental dot release: 2.22-SNAPSHOT

    Tagging off the branch:

    2.22.x: 2.22-SNAPSHOT -- 2.22-SNAPSHOT
                 \              \
                 2.22-RC        2.22.0
                  (tag)          (tag) 
    
  • Change to <major>.<minor>.<incremental>-<qualifier>: 3.0-M0, 3.0-RC, 3.0.0 3.0.1

    Handling SNAPSHOT as a qualifier: 3.0.0-SNAPSHOT

    Tagging on the branch:

    3.0.x: 3.0.0-SNAPSHOT -- 3.0.0-RC -- 3.0.0-SNAPSHOT -- 3.0.0 -- 3.0.0-SNAPSHOT
                              (tag)                         (tag)
    

This approach is compatible with maven release plugin:

mvn --batch-mode release:update-versions -DautoVersionSubmodules=true -DdevelopmentVersion=3.0.0-RC

Backwards Compatibility

Data directory and configuration:

  • data directory structure remains unchanged
  • data object definition remains unchanged, for jdbc-config

REST API changes:

Feedback

Voting

Project Steering Committee:

  • Alessio Fabiani:
  • Andrea Aime:
  • Ian Turton:
  • Jody Garnett:
  • Jukka Rahkonen:
  • Kevin Smith:
  • Simone Giannecchini:
  • Torben Barsballe:
  • Nuno Oliveira:
  • Peter Smythe:

Links

Clone this wiki locally