PMC Head Concept

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.


STATUS OBSOLETE: This concept was replacement by Software Development Procedure from 29th of November 2010. (It was originally accepted by the citizens via vote on 12th of October 2009).


1) Changing the release strategy

Enforcing a stable trunk was one of the main issues we had for years causing lots of discussions. We suggest to switch to Release branch and make trunk experimental.

Here the points:

  • 1.1 Trunk becomes experimental
  • 1.2 consequent use of release branches with high quality and migration path
  • 1.3 Existing Committer group votes who should have commit rights to trunk
  • 1.4 Existing Committer set up rules for trunk

2) Funding extra work for maintaining release branch

Society of ADempiere e.V. is willing to compensate a considerable amount of money a month to PMC Head for the extra work and the job in general.

The monthly amount is defined every year by ADempiere e.V. and is related to the income from donations, subscriptions and contributions. We encourage every company in this community to become a "supporting member" of the society to support this effort. We think that if the PMC Head gets paid it should be done over an independent non profit organization. Then we really would get the benefit of the PMC Head becoming independent from any particular interest. We would redefine our “sponsored membership” to get different level of sponsorship like suggested in the forums. Other ways of gathering money (like ads) should be considered.

3) Extending PMCs Rules

3.1 Scope of Appointment

  • 3.1.1 PMC Head is voted every two years by counting most votes
  • 3.1.2 time for nominating PMC is one week
  • 3.1.3 time for electing PMC is one week
  • 3.1.4 the election is secret. No one need to defend his vote
  • 3.1.5 vote of no confidence:
    • 3.1.5.1 If more or equal than five citizens initiate a non confidence vote an election is started
    • 3.1.5.2 > 50% of all votes must be indicating non confidence
    • 3.1.5.3 > 25% of all citizens must vote for non confidence
    • 3.1.5.4 If the election is successful the PMC Head is dismissed and a new PMC Head gets elected

3.2 Scope of Authority

4) Scope of Role and Responsibilities

Copied from Source (http://www.adempiere.com/index.php/Project_Management_Committee_archive) and modified!

4.1 Goals

  • 4.1.1 Protect the stability of Releases
  • 4.1.2 Provide guidance and direction for functional and technical development
  • 4.1.3 Serve as liaison with end users from the community to promote further Enhancements and testing
  • 4.1.4 Help the project operate effectively by providing leadership, removing obstacles, solving problems, and resolving conflicts
  • 4.1.5 Ensure that additional functionality is discussed and reviewed appropriately from both a functional and technical standpoint

4.2 Responsibilities

  • 4.2.1 Manage the Roadmap
  • 4.2.2 Coordinate the Release schedule
  • 4.2.3 Manage the committer layer mentoring process
  • 4.2.4 Schedule and conduct a regular triage session on IRC as a channel for people to escalate and also to discuss their patch or feature request
  • 4.2.5 Define architecture for new developments
  • 4.2.6 Establish the development processes and infrastructure needed for the development Team to be effective
  • 4.2.7 Produce “how to get involved” guidelines to help new potential contributors get started
  • 4.2.8 Facilitating code or other donations by individuals or companies
  • 4.2.9 Working with Committers to ensure in-bound contributions are made in accordance with the ADempiere IP Policy.
  • 4.2.10 Establish rules and guidelines for QA
  • 4.2.11 Maintain branch rules
  • 4.2.12 encourage and breed more skilled developers
  • 4.2.13 Manage release policies for:
    • 4.2.13.1 New features under development
    • 4.2.13.2 high risk bug fixes
    • 4.2.13.3 high risk enhancements
    • 4.2.13.4 experimental stuff
  • 4.2.14 oversee merging proven stuff from trunk into release branch
  • 4.2.15 reverting when something goes wrong in release branch