Governance

We contribute not because we have to, but because we want to

Invenio Principles and Purpose

Invenio is an open-source community made up of research institutions (very broadly defined) with a need to manage, curate and disseminate digital resources such as scholarly works, research data/software and cultural heritage across disciplines and user communities.

Invenio development is based on two key principles:

User Experience.

Invenio strives for top of the class user experience so that we can provide services that users love.

Scalability.

Invenio focuses on supporting large-scale digital repositories that scale with you from a single record to 100 million records.

Governance

Invenio is a community-driven effort, 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 designed to be lightweight and aims to strike a balance between agreed upon processes and standards and individual motivations. The governance model is intended to enable people to take on progressively larger and larger responsibilities with support from the leadership.

This document defines different project roles and responsibilities, establishes the decision making process, and defines how people are appointed to different roles. Overall, we expect every person who participates in the project to adhere to our Code of Conduct.

Participating Organizations

Invenio welcomes the engagement of Participating Organizations. (Invenio partners). Participating Organizations have a direct interest in advancing the open collaborative principles of the Invenio community or related activities. Participating Organizations will be recognized on the Invenio website and will receive all the news and announcements coming from the project.

Participating Organizations must make an upfront commitment and confirm their participation on an annual basis through an annual report and attendance at the annual meeting either in-person or virtually. Participating Organizations should identify a point of contact for their organization who can coordinate communications and participation in Invenio.

For more information or to register your support about becoming a Participating Organization, please contact Nicola Tarocco (nicola.tarocco@cern.ch) and Sara Gonzales (sara.gonzales2@northwestern.edu).

Evaluation process

Invenio Governance must be evaluated once a year by the Participating Organizations and CERN to reflect the current working practices of the Invenio community, as well as to respond to the growth and success of the project.

Organizations and individuals in the roles defined below will be evaluated to ensure they have made a meaningful contribution to the project in the previous year.


Roles and responsibilities

Coordination Roles

The key coordinators of Invenio:

  • Take an active role in driving the project forward.
  • Help newcomers as well as long-time contributors have a great experience contributing to Invenio.
  • Train members to progressively take larger responsibility in the project.
  • Publicize Invenio products and engage the community to ensure user needs are met by the project.
  • Exemplify the Code of Conduct and serve as role models for the community.

The product manager and community manager serve as key points of contact and coordination for the Invenio community.

  • Product Manager
    • Appointed by CERN.
    • Responsible for Invenio's overall vision, strategy and day-to-day management as well as coordination with the Participating Organizations through yearly vision and roadmap updates as well as communication about major deviations and conflicts.
  • Community Manager
    • Appointed by the Product Manager.
    • Responsible for community-based aspects of Invenio, including outreach, engagement, requirements gathering, demonstrations for new users, communication of project news and the development and dissemination of written content about the project.
  • Principal architect
    • Appointed by the Product Manager.
    • Responsible for the technical coordination and implementation of Invenio among the participating organizations and maintainers, as well as the overall architecture for Invenio.

Community Roles

A vibrant community of contributors and collaborators is essential to support the Invenio open source community. Leadership is shown across all segments of work, by people who serve in a range of roles:

  • Contributors: Anyone actively contributing to Invenio (in its widest possible interpretation).
    • Responsible for: e.g., contributing code (bug fixes/new features), translations, writing documentation, providing testing/feedback, gathering user requirements, prioritizing issues, making presentations, running outreach/training/networking events and/or helping users of Invenio (via e.g. chat room/forum or other channels).
  • Maintainers: Anyone maintaining at least one repository.
    • Appointed by the principal architect.
    • Responsible for managing the issues and code base of a repository accordingto Invenio's standards and helping engage contributors. Also, responsible for the Invenio technical architecture and release management in coordination with the principal architect in accordance with the vision and roadmap.
  • Interest and Task Group Members
    • Partners from Participating Organizations volunteer, and are appointed by the Community Manager in consultation with the Product Manager.
    • Responsible for contributing to community building activities of Invenio by performing either ongoing (Interest Group) or temporary (Task Group) work. Examples include creating documentation, presentations, event coordination, requirements gathering, blog posts, and more.

Commit access (e.g. ability to commit, merge feature branches, manage issues and PRs) on repositories can be given/granted to all roles. Only maintainers and architects can commit/merge to master/maintenance branches (meaning also only they can release packages to PyPI and NPM).

Interest and Task Groups

Interest and Task groups may be proposed by any group of members who wish to address a particular facet of the Invenio community, for example: metadata, research data management, features, or the community. After a recruitment period, these groups can establish themselves as long-standing (Interest Groups) or short-term (Task Groups). Groups may self-manage with regard to meeting and working structures, and may also request a channel in Discord for asynchronous work. Interest and Task groups help coordinate the overall vision, strategy and architecture of a specific area of Invenio. Each Interest and Task group must have a lead that reports to the Product Manager or Community Manager, as appropriate.

Role Appointments

In general, appointments are made in an informal way, and usually anyone volunteering that has been showing commitment to the project will get appointed. Anyone can volunteer or suggest others for roles.

Appointments should be in accordance with the Code of Conduct in an Open, Inclusive, Considerate, and Respectful manner.


Decision making

We strive to make 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

Inclusive leadership is actively demonstrated across Invenio and contributors are responsible for driving decision making and action in their respective domains. This means:

  • facilitating an open constructive discussion around a decision that matches the level of importance and the impact of a decision;
  • striving to reach consensus on a decision and ensuring all relevant 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 coordinators (product manager, community manager); and
  • making the decision and communicating it to the project through appropriate project channels.

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

Disagreements

Leaders of Invenio should always strive for consensus. Consensus means we have a healthy welcoming community that can openly discuss and reach a common decision in the interest of Invenio. In the highly exceptional case that a consensus cannot be reached, the Invenio product manager will facilitate a discussion to reach a decision.


Reporting and Communication

Good communication is key to a collaborative and vibrant community.

Milestone reporting

The project roadmap as maintained by the product manager, architects, and contributors is open to the public and accessible to project members for comment and contribution.

Sharing Meaningful Contributions

The Invenio Participating Organizations are encouraged annually to share their meaningful contributions to the project by completing the annual partner survey provided by Northwestern. This survey asks for information on each partner site's implementation or plans to implement Invenio, and asks for sites' details on milestones with regard to their implementation. Milestones include the following: successful deployment, reaching a threshold of records, reaching a threshold of active users, reaching a threshold of views, downloads, other metrics, etc. Results of the survey are shared out to the full community each year.

Annual meeting

An annual meeting of the Participating Organizations and users will serve as a key medium of communication about the project. The meeting will be in-person with a virtual portion on day 1. The Invenio leaders will use this opportunity to provide important project updates, and Invenio members can use this forum to report on implementations and repository hosting experiences, and to provide feedback, ask questions, and seek troubleshooting advice.

Communication

All onboarding Participating Organizations are encouraged to participate in all the Invenio communication channels, including:


Code of Conduct

We endorse the Python Community Code of Conduct: The Invenio community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you're working with members of the community, we encourage you to follow these guidelines which help steer our interactions and strive to keep Invenio a positive, successful, and growing community. A member of the Invenio community is:

Open and Inclusive.

Members of the community are open to collaboration, whether it's on RFCs, patches, problems, or otherwise. We're receptive to constructive comment and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference.

Considerate.

Members of the community are considerate of their peers -- other Invenio users. We're thoughtful when addressing the efforts of others, keeping in mind that often times the labor was completed simply for the good of the community. We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views.

Respectful.

Members of the community are respectful. We're respectful of others, their positions, their skills, their commitments, and their efforts. We're respectful of the volunteer efforts that permeate the Invenio community. We're respectful of the processes set forth in the community, and we work within them. When we disagree, we are courteous in raising our issues.


Overall, we're good to each other. We contribute to this community not because we have to, but because we want to. If we remember that, these guidelines will come naturally.


Actions to support the Code of Conduct

While not anticipated, the product manager may revoke appointed roles of a member for reasons such as (but not limited to):
  • Lack of activity and/or lack of meaningful contributions.
  • Violations to 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 serves to ensure the health of the community and collaboration for the Invenio open source community.

If you believe that someone is violating the code of conduct we ask you to report it to either Nicola Tarocco (nicola.tarocco@cern.ch) and/or Sara Gonzales (sara.gonzales2@northwestern.edu). All reports will be kept confidential.