I believe that it is a good idea to give us some guidelines, document how we work, what roles there are in our community and generally make some things more transparent that were formerly only known as hearsay or documented in different places.

The document attached below is the result we came up with. If the vote is successful, the Tapestry project will give itself the following bylaws. Concensus vote to run for 72 hours.

Ulrich Stärk: +1 (non-binding)

Introduction

The Tapestry Project Management Committee is the governing body of the Apache Tapestry project. The PMC as a whole controls the project by being responsible for the direction and the success of the project. The chairperson of the PMC is also a Vice President of the Apache Software Foundation and serves as an interface between the Board of Directors and the project. The current chairman is Howard Lewis Ship. A list of the current PMC members and committers can be found [here].

Roles

Everybody can help, regardless of their role. We differentiate roles inside the Tapestry community by how committed people are to the project, how much they have contributed and how well they have proven to be able to collaborate with the rest of the community. Long term community members with a backlog of valuable contributions may obtain the right to commit to the source code repository and vote.

Users

This group is by far the largest and most important one. Users are the actual users of the Tapestry framework. Without the users there would be no Tapestry project. Users use our product, ask and answer questions on the mailing lists and submit bug reports and feature requests.

Contributors

Contributors are users that contribute to the project in the form of patches and documentation. They are also participating in discussions on the developer mailing list and are providing suggestions and criticism.

Committers

If a contributor contributes frequently to the project he may be granted write access to the source code repository. In order for a contributor to become a committer, any other committer may nominate him or the contributor himself may ask for it, resulting in a vote. If there are at least 3 binding positive votes and no binding negative vote (concensus vote), the contributor is converted into a committer. If a committer doesn't participate in the project anymore and shows so by not posting to the mailing lists for 6 months or more, his write access to the source code repository will be revoked. It may be re-requested at any point in the future by writing an email to the developer mailing list.

PMC Members

A committer that has proven to be truely committed to the project and has proven to be able to work well together with the rest of the developer community, especially in conflict situations, may be invited to become part of the Project Management Committee. Every PMC member may nominate a committer to become a PMC member. The nominee has to be approved by a concensus vote (i.e. at least 3 binding +1 votes, no binding vetos). A PMC member may resign from his position at any time, maintaining his status as a committer. PMC members may also be removed from the PMC by a 3/4 concensus vote (i.e. at least 3 binding +1 votes and at least 3/4 of all binding votes, no binding vetos). If a PMC member doesn't participate in the project anymore and shows so by not posting to the mailing lists for 6 months or more, his status is converted to that of a committer.


PMC Chair

The chairperson of the PMC serves as a liaison to the Board of Directors of the ASF. The PMC chair is elected with a 3/4 concensus vote and may resign from his position at any time, maintaining his status as a PMC member.

Decision Making

Decisions are made by voting. Votes are expressed as numbers with +1 meaning 'yes', 0 meaning 'I don't agree but I also won't veto it' or 'I don't have an opinion' and -1 meaning 'no' and in some cases representing a veto. We differentiate two kinds of votes and three kinds of voting styles.

Votes: Binding votes are votes cast by members of the PMC. They are the ones that count since it is the PMC that governs the project and answers to the Board of Directors. Votes by committers and contributors are non-binding and are indicative or advisory.

Voting styles:

Majority vote: There are at least 3 binding +1 votes and more +1 than -1 votes.

Concensus vote: There are at least 3 binding +1 votes and no binding veto (-1). If a veto is cast, the person casting it has to immediately explain the reason for his veto. An unexplained veto is invalid. A veto cannot be overruled.

Lazy concensus: If there are no objections against a decision within a given period, the decision counts as accepted

Votes may be changed during the voting period.


When to vote with what voting style

A change to the codebase or the documentation, i.e. a commit message or a wiki diff message on the developer mailing list automatically triggers a lazy consensus vote. If there are no objections within 72 hours, the change counts as agreed on.

Changes to the codebase affecting backwards compatibility or altering the current expected behaviour of the product should be discussed on the developer mailing list first and should be voted on with a majority vote. The same holds for major changes to the codebase that don't affect the user.

Committers and PMC members will be voted in as explained above.

A release always requires a concensus vote.

Changes to this document need a 3/4 concensus vote (i.e. at least 3 binding +1 votes and at least 3/4 of all binding votes, no binding vetos).

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to