Skip to content

Latest commit

 

History

History
147 lines (115 loc) · 6.49 KB

GOVERNANCE.md

File metadata and controls

147 lines (115 loc) · 6.49 KB

Governance

Repositories under the CS3 GitHub Organization are governed by CERN for the benefit of the community. CERN strives to make the projects under this organization collaborative, open and transparent to ensure that everyone can contribute and have their say on the directions of the projects.

The governance model is in general informal and we try to strike a balance between processes and agreed upon standards vs. the wild west where everyone do as they see fit. The governance model is intended to allow that people progressively take larger and larger responsibilities with support from the existing leadership.

These following sections define the different roles and responsibilities in the project, define how decisions are taken and how people are appointed to different roles. Overall, we expect every person who participates in the project to adhere to our code-of-conduct.

The currrent governance model puts in words how the collaboration currently works in practice today and sets a basic framework for how we collaborate and take decisions in the project. If the nature of the community or contributors changes this governance model may be reviewed and changed if necessary.

Roles and responsibilities

The product manager, coordinators, architects and maintainers (as defined below) make up the leadership of all projects under the CS3 Organization. The leaders are service people who:

  • take an active role in driving the project forward,
  • help newcomers as well as long-time contributors have great experience contributing to projects under CS3,
  • help train members to progressive take larger responsibility in the project,
  • are role models for the remaining community.

Roles:

  • Members: Anyone using any of the projects (REVA, CS3APIS, ...)
  • Contributors: Anyone contributing to the repositories (in it widest possible interpretation, i.e. not only programmers).
  • Maintainers: Anyone maintaining at least one repository. Maintainers are responsible for managing the issues and/or the code base of a repository according to CS3 Organization's standards.
  • Architects: Anyone maintaining multiple repositories (though max 10 people). Architects are responsible for the overall technical architecture as well as managing and training maintainers on their respective repositories.
  • Coordinators: Representatives of CS3 community that would like to coordinate their development efforts with other services and provide input on the product road map.
  • Product manager: Overall responsible for the vision, strategy and day-to-day management of projects under the organization. Responsible for managing and training architects and coordinators.

Commit access on repositories are given to contributors, maintainers and architects. Contributors can commit/merge to feature branches while only maintainers and architects can commit/merge to master/maintenance branches (meaning also only they can release new versions).

Decision making

We strive to take decisions openly and by consensus, though ultimately CERN represented by the product manager has the final say on all decisions in the projects. In particular this means that there is no formal voting procedure for projects under the CS3 Organization.

Leaders drive decision making

The CS3 Organization product manager, architects, coordinators and maintainers as the leaders of the project are responsible for driving decision making in their respective domains.

Driving decision making means:

  • facilitating an open constructive discussion around a decision that matches the level of importance and impact of a decision,
  • striving for reaching consensus on a decision and ensuring relevant other members are aware and included on the decision,
  • ensuring decisions are in alignment with the overall CS3 vision, strategy, architecture and standards,
  • coordinating the decision with the leadership of the CS3 projects (product manager, architects and coordinators),
  • taking the decision.

Leaders implement decisions

Leaders are responsible for following up decisions they take by actual implementation. Decision should not be considered final unless it is actually implemented or documented publicly.

Disagreements

Leaders of the project should always strive for consensus. If that is not possible the leader taking a decision should alert the product manager prior to taking the decision.

Members who are disagreeing with a decision may ask the product manager to review a specific decision and possible change it.

Members who are disagreeing with the product manager may escalate the product manager's decision to their hierarchy at CERN.

Appointments

The product manager is appointed by CERN. Architects, coordinators and maintainers are appointed by the product manager in collaboration with existing architects and coordinators.

Maintainers are appointed by the architects (e.g. for a new CS3 project) or coordinators (e.g. a new special interest group).

In general, appointments are made in an informal way, and usually anyone volunteering that have been showing commitment to the project will get appointed. Any member can volunteer or suggest other members for roles.

Revoking of appointed roles

The product manager may revoke appointed roles of a member for reasons such as (but not limitied to):

  • lack of activity
  • violations of the code of conduct
  • repeated infringements of the contribution, style or maintainer guides.

The product manager must give a warning to the member to allow them to correct their behavior except in severe cases. Revoking roles should be a last measure, and only serve the purpose to ensure that projects have a healthy community and collaboration based on our code-of-conduct.

Working/Interest groups

Working/interest groups may be set up by the product manager on request of any group of members who wish to address a particular area of CS3-based services (say Interoperable Clouds Working Group). Working/interest groups help coordinate the overall vision, strategy and architecture of a specific area of the CS3 Organization. Each working/interest group must have chair that reports to the product manager.