Governance

Invenio is governed by CERN for the benefit of the community. CERN strives to make Invenio a collaborative, open and transparent project to ensure that everyone can contribute and have their say on the directions of the project.

Invenio governance 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.

Note

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 Invenio. The leaders of Invenio 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 Invenio,
  • help train members to progressive take larger responsibility in the project,
  • are role models for the remaining community.

Roles:

  • Members: Anyone using Invenio.
  • Contributors: Anyone contributing to Invenio (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 Invenio’s standards.
  • Architects: Anyone maintaining 20+ repositories (though max 10 people). Architects are responsible for the overall Invenio technical architecture as well as managing and training maintainers on their respective repositories.
  • Coordinators: Representatives of Invenio based services that would like to coordinate their Invenio development efforts with other services and provide input on the product road map.
  • Product manager: Overall responsible for Invenio’s vision, strategy and day-to-day management. 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 packages to PyPI and NPM).

Decision making

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

Leaders drive decision making

The Invenio 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 Invenio vision, strategy, architecture and standards,
  • coordinating the decision with the Invenio leadership (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 Invenio 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 Invenio product manager may escalate the product manager’s decision to their hierarchy at CERN.

Appointments

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

Maintainers are appointed by the architects (e.g. a new Invenio module) 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 Invenio has 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 Invenio (say MARC21 support or research data management). Working/interest groups help coordinate the overall vision, strategy and architecture of a specific area of Invenio. Each working/interest group must have chair that reports to the product manager.