Apache Struts PMC Charter

Struts is a Project of the Apache Software Foundation (ASF), formed by a resolution of the ASF Board of Directors . As an ASF Project, Struts is subject to the ASF Bylaws and the direction of the ASF Board.

The Project Charter incorporates by reference the current version of How the ASF works, with the additional guidelines and clarifications found herein.

Management

The Vice President is appointed by the ASF Board. The Vice President is assisted by the Project Management Committee (PMC) and also serves as the PMC chair. The PMC may nominate new members. Nominees may then be approved with a 3/4 majority vote of the PMC. Membership can be revoked by a unanimous vote of all the active PMC members other than the member in question. The list of active PMC members can be found on our Volunteers page .

PMC Duties

The PMC is responsible for the day-to-day management of the Struts Project. The PMC oversees all changes made to the codebase. The PMC must ensure that all code under a Apache Struts repository is the lawful property of the Foundation and may be distributed under the Apache Software License . All releases of a Struts subproject must be sanctioned by the Project Management Committee.

Subprojects

Subprojects are the Project's unit of release. Each subproject should represent an implementation of a Struts framework or a related component. Each subproject should focus on creating, maintaining, and releasing a single software product or "deliverable".

All PMC Members have voting rights in all subprojects. Members not familiar with a subproject codebase may abstain from any given vote. All Committers have write access to all subprojects. Subprojects are units of release, not units of work.

PMC members may propose the creation of new subprojects. Proposals are to contain the scope of the project, identify the initial source from which the project is to be populated, identify any mailing lists or repositories, if any, which are to be created. Creation of a new subproject requires approval by a 3/4 majority vote of the PMC.

Decision Making

All Volunteers (Users, Developers, Committers, PMC Members) are encouraged to participate in the decision-making process, but binding decisions are made only by the Project Management Committee.

Voting

Any subscriber to the list may vote on any issue or action item. Votes from Developers and Committers are especially welcome. However, the only binding votes are those cast by a PMC Member.

Action Items

All decisions revolve around " Action Items. " Action Items consist of the following:

  • Long Term Plans
  • Short Term Plans
  • Product Changes
  • Showstoppers (or "blockers")
  • Release Plan
  • Release Grade

Long Term Plans

Long term plans are simply announcements that group members are working on particular issues related to the Project. These items are not voted on, but Committers and PMC Members who do not agree with a particular plan, or think that an alternative plan would be better, are obligated to inform the group of their feelings.

Short Term Plan

Short term plans are announcements that a volunteer is working on a particular set of documentation or code files with the implication that other volunteers should avoid them or try to coordinate their changes.

Product Changes

All product changes to the repository are subject to lazy consensus.

Showstoppers

Showstoppers are issues that require a fix be in place before the next public release. They are designated as "blockers" in the issue tracker in order to focus special attention on these problems. An issue becomes a showstopper when it is designated as such in the issue tracker by a PMC member and remains so by lazy consensus.

Release Plan

A release plan must be used to keep all volunteers aware of when a release is desired, whether it will be a major, minor, or milestone release, who will be the release manager, when the repository will be tagged to create the distribution, and other assorted information to keep volunteers from tripping over each other. A release plan must be incorporated into the product documentation, or otherwise announced to the DEV list. Lazy majority decides each issue in a release plan.

Release Grade

After a proposed release is built, it must be tested and classified before being released to the general public. The proposed release may be assigned "Alpha", "Beta" or "General Availability" classifications by majority vote. Once a release is classified by the PMC Members, it may be distributed to the general public on behalf of the Foundation. Distributions may be reclassified or withdrawn by majority vote, but the release number may not be reused by another distribution.

Sandbox

Pursuant to the "Rules for Revolutionaries", any committer may submit experimental material to the Sandbox area of the repository at his or her own discretion.

Material must be moved from the sandbox to the main repository before it can be released.

If a sandbox whiteboard becomes dormant for six or more months, it may be moved to the archive section of the repository.

Experimental material that is outside the scope of the Struts project may also be submitted to the Apache Labs.