The Project Steering Committee guides the GRASS project’s direction, budget, and governance, making decisions through voting and overseeing the Core Development Team which manages source code changes. The project operates under the auspices of the Open Source Geospatial Foundation (OSGeo).
The Project Steering Committee (PSC) of the GRASS GIS project oversees the overall direction of the project, budget, and necessary changes to governance or processes. More specifically, the PSC votes on write access to the source code repositories, reimbursements, and other issues that are difficult to decide by developers’ consensus. Major technological or procedural changes are first proposed and discussed in the form of Request for Comments (RFC) documents and later voted on by the PSC. The PSC has 9 members and is elected by the contributor community.
The PSC has a Chair selected from and by the PSC members. The PSC may create additional roles such as a treasurer and appoint people to these roles. The PSC appoints and oversees the Core Development Team and other teams or groups as needed. The PSC makes decisions by voting on RFC documents, by voting on simple motions, or by consensus among members. The PSC operations follow RFC 1: Project Steering Committee Guidelines and RFC 3: PSC Voting Procedures.
GRASS GIS is under the umbrella of the Open Source Geospatial Foundation (OSGeo), a not-for-profit organization that aims to foster the global adoption of open geospatial technology. OSGeo provides GRASS GIS with legal, fiscal, and technical infrastructure. Within the OSGeo organizational structure, the GRASS PSC is a committee which provides updates about the GRASS GIS project to the OSGeo Board.
The Core Development Team determines what code additions and changes should be included in the source code using a change request approval process. The Core Development Team consists of developers with write access to the project’s main source code repository as approved by the PSC.
Team members are appointed by the PSC and have write access to the main project’s source code repository. The Core Development Team further decides on its internal organization for administrative purposes. It may grant individuals limited access to additional repositories and other resources as needed. The Core Development Team reports any repository and access rights changes to the PSC and PSC may request the Core Development Team to report on additional specific issues.
Source code changes are controlled by the Core Development Team using a change request approval process. A change request (also known as pull request and merge request) can be submitted by anyone. The change request is reviewed by the Core Development Team and a broader consensus is sought out for larger or high impact change requests. Anyone, including the original change request contributor, may participate in the discussion about suitability of the proposed code changes or provide reviews. However, at least one formal approving review by a Core Development Team member is required for inclusion into the source code. The same rules apply when a Core Development Team member creates a change request, i.e., another member needs to perform the review and approve the change.
Core Development Team members may involve or may defer a decision to the PSC or its individual members when consensus cannot be reached or when circumstances seem to require involvement of the PSC members.