Invenio Principles and Purpose
The two key principles on which Invenio products are developed is:
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.
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.
Invenio welcomes the engagement of Participating Organisations. Participating Organisations have a direct interest in
advancing the open collaborative principles of the Invenio community or related activities. Participating Organisations
will be recognized on the Invenio website and will receive all the news and announcements coming from the project.
Participating Organisations 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.
For more information or to register your support about becoming a Participating Organisation, please contact email@example.com.
The consultative board is made up of institutions that make meaningful contributions to Invenio. Contributions can include code, support materials, community building, direct contributions of financial support to the project, and much more. Membership of the consultative board is by invitation of CERN among the institutions of the Participating Organizations for terms of two years. The consultative board provides advice to the project and helps identify strategic and community priorities. The board will meet twice per year, one virtual meeting and ideally, one in-person meeting with as many members of the consultative board as available. The consultative board may be called upon by the product manager on an ad hoc basis, should the need arise.
Invenio Governance must be evaluated once a year by the Consultative Board, Participating Organisations 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.
Organisations 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 responsibilitiesThe 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 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
- 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, prioritising 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 Architects in consultation with the Product Manager.
- Responsible for managing the issues and code base of a repository according to Invenio's standards and helping engage contributors.
- Architects: Maintainers and project managers who have made very large contributions and have broad extensive deep knowledge about Invenio’s technical architecture as well as leading development teams.
- Appointed by the Product Manager.
- Responsible managing and training maintainers as well as for the overall Invenio technical architecture and release management in accordance with the vision and roadmap defined by the Product Manager.
- Community Ambassadors
- Appointed by the Community Manager in consultation with the Product Manager.
- Responsible for contributing to community building activities of Invenio by working with the Community Manager. Examples include presentations, event coordination, requirements gathering, blog posts, and more.
- 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.
- Product Manager
- Appointed by CERN.
- Responsible for Invenio's overall vision, strategy and day-to-day management as well as coordination with the Consultative Board and Participating Organisations through yearly vision and roadmap updates as well as communication about major deviations and conflicts.
- Consultative Board Member: Representative from an institution that is a member of the Consultative Board.
- Appointed by the institution. The institution itself is appointed by CERN to become a member of the Consultative Board (see section above).
- Responsible for representing their institution on the Consultative Board by providing advice to the project and helping to identify strategic and community priorities.
Commit access (e.g. ability to commit, merge feature branches, manage issues and PRs) on repositories are given 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).
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.
Revoking of appointed roles
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 serve the purpose to ensure that Invenio has a healthy community and collaboration based on our Code of Conduct.
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
The Invenio product manager, architects, coordinators and maintainers as the
leaders of the project are responsible for driving decision making in their
- 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 leadership (product manager, community manager, and architects); and
- making the decision and communicating it to the project through appropriate project channels.
Leaders implement decisions
Leaders 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.
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 making the decision. Members who disagree with a decision may ask the product manager to review
a specific decision and possibly change it. The product manager should seek advice from the Consultative Board prior to resolving
Members who disagree with the Invenio product manager may escalate the product manager's decision to their hierarchy at CERN who should seek advice from the Consultative Board prior to resolving the disagreement.
Working/Interest groupsWorking/interest groups may be set up by the product manager on request of any group of members who wish to address a particular facet of the Invenio project, for example: metadata, research data management, features, or the community. Working/interest groups help coordinate the overall vision, strategy and architecture of a specific area of Invenio. Each working/interest group must have a chair that reports to the product manager or community manager, as appropriate.
Reporting and CommunicationGood communication is key to a collaborative and vibrant community.
The project roadmap as maintained by the product manager, architects, and contributors will remain open to the public and accessible to project members for comment and contribution. This roadmap is exposed to the Consultative Board as a method of reporting milestones, demonstrating project progress, and bringing forward any deviations.
Sharing Meaningful Contributions
Consultative Board members and Participating Organisations must provide feedback as part of their meaningful contribution to Invenio in the form of annual reporting 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.
An annual meeting of the Consultative Board, Participating Organisations, and users will serve as a key medium of communication about the project. The meeting will be in-person with a virtual attendance option. The Invenio leaders will use this opportunity to provide important project updates, and Invenio members can use this forum to report on implementations and success stories, and to provide feedback, ask questions, and seek troubleshooting advice.
Code of ConductWe 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: