The Project Steering Committee (PSC) is the official governing body of the Geomajas open source project and is responsible for all management aspects. The PSC is responsible for setting the overal direction of the project and its releases, determining what features go in, managing the documentation, assigning and revoking commit rights, etc.
This document describes how the Geomajas Project Steering Committee (PSC) determines membership, and makes decisions on all aspects (both technical and non-technical) of the Geomajas project.
The main responsibility of the PSC lies in the management of the Geomajas project. The decision making process is based on reaching democratic consensus through discussion and voting.
- Proposals can be written and submitted on the Majas-dev mailing list or in an IRC meeting. Any interested party can write such proposals. At this point the difference must be recognized between big changes and small bugfixes. Small updates, coming from people with commit rights, don't need voting. Still we encourage committers not to abuse this “right”. If in doubt, call in a vote! If after the commits the PSC disagrees, the committer has the responsibility by undoing the changes without causing other people to redo their work.
- Proposals need to be publicly available for discussion. It is the submitter's responsibility to start a vote after this discussion. At that time, the vote must be open for a minimum of 3 business days. The ultimate decision must also include an assignee and a future version in which to complete the proposal. It should be rare that new proposals are immediately acted upon, most requests should be carefully planned and attached to a future new feature release. When a proposal is a feature or change that should be done in the current new feature release, the proposal should be accompanied by a technical scheme to solve it.
- The decision making is a democratic process. Voting should always occur on the Majas-dev mailing list.
The following votes are valid:
- “+1” to indicate support for the motion and a willingness to support implementation
- “-1” to veto a proposal, but must provide a clear reasoning and alternate approaches to resolving the problem within two days
- “0” if they have no opinion
- “+0” to indicate mild support or “-0” to indicate mild disagreement, but both have no effect
- Anyone may comment and vote on proposals on the list, but only PSC member votes are binding.
- A proposal will be accepted if it receives +2 (including the author if he is a PSC member) and no vetoes (-1)
- If a proposal is vetoed, and it cannot be revised to satisfy all parties, then it can be resubmitted for an override vote in which a majority of all PSC members must vote "+1" in order to pass it.
- Upon completion of the discussion and voting the author should announce whether they are proceeding (proposal accepted) or are withdrawing their proposal (vetoed).
- Addition and removal of PSC members, Project Developers, and election of the chair is handled as a motion. However a majority vote is required in these cases.
- The chair gets a vote and is responsible for adjudicating should there be a voting dispute.
The PSC is made up of individuals of developers and users. Members are elected to participate in the PSC based on merit irrespective of their organizational ties. It is desirable but not strictly required of the PSC to be made up of an odd number of members (5 or more) to prevent ties in the voting process. One member of the PSC is appointed Chair, who has additional responsibilities to organize regular meetings and to resolve tie votes should they occur.
At this moment the committee members are:
- Pieter De Graef (PSC chairman)
- Jan De Moerloose
- Dirk Frigne
- Oliver May
- Kristof Heirwegh
Adding new members
Any member of the majas-dev mailing list may nominate someone for committee membership at any time. Only existing PSC committee members may vote on new members. Nominees must receive a majority vote from existing members to be added to the PSC.
If for any reason a PSC member is not able to fully participate then they certainly are free to step down. If a member is not active (e.g. no voting, no IRC or email participation) for a period of two months then the committee reserves the right to seek nominations to fill that position. Should that person become active again then they would certainly be welcome, but would require a nomination. Removing members for any reason (inactivity, a person that counteracts the goals of the project, ...) requires a majority vote from the PSC.
The PSC is responsible for all aspects of managing the Geomajas Open Source project including setting the overall direction of the project and releases. This section outlines the responsibilities of the PSC as a whole and responsibilities of its members.
Feature Development and Release Management
The PSC is responsible for defining the project roadmap, deciding which new features and significant code changes are accepted into the project, and into which release the change will appear. Deciding what features are accepted and when they are accepted is a multi-faceted decision, but the roadmap will always have a strong influence.
New project features and/or functionality is proposed to the PSC via an RFC. Once the request is submitted, the PSC uses the decision making Process to decide if the change will be accepted and which release it will go into. In addition the PSC determines when a branch enters the stabilisation phase and ultimately when it is ready for release.
Project Policies and Procedures
The PSC is responsible for defining the policies and procedures, including:
- Code reviews
- Documentation requirements
- Granting and revoking commit access
- Testing requirements
- Branch practice
- Release schedule (frequency and timing)
- Version numbering
Guiding Development Efforts
PSC members should take an active role guiding the development of new features they feel passionate about. Once a change request has been accepted and given a green light to proceed does not mean the PSC members are free of their obligation. PSC members voting "+1" for a change request are expected to stay engaged and ensure the change is implemented and documented in a way that is most beneficial to users. Note that this applies not only to change requests that affect code, but also those that affect the website, procedures, policies, etc.
IRC Meeting Attendance
PSC members are expected to participate in IRC development meetings. If known in advance that a member cannot attend a meeting, the member should let the other members know though the majas-dev mailing list. Continuously missing the IRC meeting may result in the member being asked to step down to make way for a more active member. Non Project Developer PSC members are expected to review the Geomajas IRC meeting minutes.
Mailing List Participation
PSC members are expected to be active on the majas-dev mailing list. Non-developer members of the PSC are not expected to respond to coding level questions on the majas-dev mailing list, however they are expected to provide their thoughts and opinions on user level requirements and compatibility issues when RFC discussions take place.
The chair has the extra responsibility to set up IRC meetings regarding future work, whenever he deems it necessary.
The chair is responsible for adjudicating should there be a voting dispute.