GeoServer Improvement Proposals

GeoServer Improvements Proposals (GSIP) are the formal mechanism used to manage major changes to GeoServer in a responsible fashion. Examples of changes which are managed by the GSIP process include:

  • major features

  • code re-architecture

  • community process improvements

  • upgrading key dependencies

  • intellectual property

How a GSIP works

The typical life cycle of a GSIP is as follows:

  1. Developer has an intent to perform a major change.

  2. Developer communicates with the community about the change.

  3. Developer goes off and implements the change.

  4. Developer writes a GSIP and presents it to the community for feedback.

  5. The PSC votes on the GSIP.

  6. Developer commits changes upon receiving a positive vote.

Writing a GSIP

GSIPs are written up on the https://github.com/geoserver/geoserver/wiki/Proposals wiki page.

If you have write access login and follow the steps below. If you do not have write access GitHub will automatically create a fork for you as you edit individual pages.

To make a GSIP:

  1. Navigate to the wiki proposals page.

  2. Edit the page with a new link under Proposals Under Discussion:

    [GSIP 200 - Title](GSIP-200)
    
    • The number should be the next “available” GSIP number on the proposal page.

    • The title should be short and descriptive.

  3. Save your change to the Proposal page.

  4. Click on your new link to create the page, fill in the page contents by copy and pasting the following proposal page template.

    GSIP template:

    # GSIP 1234 - Title
    
    ## Overview
    
    ### Proposed By
    
    John Doe
    
    ### Assigned to Release
    
    This proposal is for GeoServer 2.15-beta.
    
    ### State
    
    * [x] Under Discussion
    * [ ] In Progress
    * [ ] Completed
    * [ ] Rejected
    * [ ] Deferred
    
    ### Motivation
    
    ## Proposal
    
    ### Backwards Compatibility
    
    ## Feedback
    
    ## Voting
    
    Project Steering Committee:
    
    * Alessio Fabiani:
    * Andrea Aime:
    * Ian Turton:
    * Jody Garnett:
    * Jukka Rahkonen:
    * Kevin Smith:
    * Simone Giannecchini:
    * Torben Barsballe:
    * Nuno Oliveira:
    
    ## Links
    
    * [Email Discussion](http://osgeo-org.1560.x6.nabble.com/GSIP-1234-discussion-tt5135281.html)
    * [Pull Request 123](https://github.com/geoserver/geoserver/pull/123)
    * [GeoTools / GeoServer Meeting 2019-03-01 ](http://osgeo-org.1560.x6.nabble.com/GeoTools-GeoServer-Meeting-2019-03-02-tt5142734.html)
    
  5. Fill in the information in the page template, and click Save when complete.

Voting on a GSIP

One of the duties of the GeoServer Project Steering Committee is to vote on GSIPs. The voting process works as follows:

Note

Voting on GeoServer Improvement Proposal (GSIP)

  1. Proposals may be made by any interested party (PSC, Non-PSC, committer,user,etc…).

    All community members are encouraged to review proposals, and provide their support and feedback.

  2. Each PSC member may vote one of the following in support of the proposal:

    • +1 : For

    • +0: Mildly for, but mostly indifferent

    • -0: Mildly against, but mostly indifferent

    • -1 : Against, accompanied with a detailed reason of being against

  3. Voting remains open for ten days or until all PSC members have cast their vote.

    • At the end of ten days time any remaining votes are assumed to be +0.

    • Any active PSC member can during ten days request an extension of voting for an additional ten days; the voting period can only be extended once.

    • Any PSC member who votes “-1” against a proposal must provide a reasonable explanation as to why.

    • Any PSC member who votes “-1” against a proposal has a limited time to provide constructive feedback as to how their -1 vote can be addressed.

      The GSIP author must incorporate any reasonable feedback into the proposal.

      The PSC member who voted “-1” must consider whether their feedback has been addressed and whether they wish to change their vote.

  4. Voting results:

    • A vote of “+1” means support for a proposal

    • The neutral votes “+0”, “0”, and “-0” all count the same as “0” but permit PSC members to indicate a slight tendency for, neutral, or against a proposal respectively

    • A vote of “-1” means opposition to the proposal

    A unanimous response is:

    • Successful: No -1 votes against it, or

    • Unsuccessful: No +1 votes for it.

  5. A GSIP is accepted if it receives:

    • at least 30% “+1” votes, and

    • no “-1” votes (or all feedback from any “-1” votes has been addressed and any “-1” voters have changed their votes)

  6. In the event of an successful non unanimous vote, the following steps are taken:

    • Each member who votes -1 may supply an alternative with which the original author can use to rework the proposal in order to satisfy that PSC member.

    • If at least one -1 voting PSC member supplies some alternative criteria, the original author must rework the proposal and resubmit, and the voting process starts again from scratch.

    • If no -1 voters are able to supply alternative criteria, the proposal is accepted.

  7. In the event of an unsuccessful vote, the author may choose to rework and submit.

    A proposal may not be resubmitted after being rejected three times.

GSIP FAQ

Q. When do I need to make a GSIP?

A: Generally you will make a GSIP when you want something major done in GeoServer and need feedback from others. GSIPs are needed for things that will have an impact on other community members, and thus should be talked about.

GSIPs are not intended to be a way to get feedback on experimental work. There are alternate mechanisms for this such as creating an R&D page on the wiki, svn branches and spikes, etc… Often once the idea is formalized through experimentation it can be turned in to an official GSIP.

Q. Who can comment on a GSIP?

A: Anyone and everyone can comment on a GSIP including regular users, and it is encouraged. Comments an take place on the email lists, or as comments on the wiki page for the GSIP itself. Feedback from the user community is definitely desired so that the developers do not just making decisions in a vacuum. If you speak up your voice will be heard.

Q. Who can vote on a GSIP?

A: Only PSC members can officially vote on a GSIP. But more often than not this vote is based on general feedback from the user community.

Q: What happens if I propose a GSIP but I don’t have the time to implement it?

A: If a proposal is made but is not completed then it will be taken from a release schedule and live as a deferred proposal. A deferred proposal can be picked up by the original developer or another developer, or it can live in limbo until it officially gets rejected.

Q: If I am a PSC member and I make a GSIP, do I still vote on it?

A: Yes.