Introduction
Maintainers are a key part of the Invenio open source community. They help ensure the health, quality, and sustainability of the codebase while fostering a welcoming environment for contributors. This document defines the role of maintainers, their responsibilities, how to become a maintainer, and related processes.
Role of Maintainers
Maintainers are individuals who have demonstrated expertise and commitment to the Invenio project. They maintain at least one Invenio software repository and are appointed by the Principal Architect, in accordance with the Product Manager.
Responsibilities
Maintainers have responsibilities across several key areas:
Technical Leadership: Maintainers participate in architectural discussions, make technical decisions, and evaluate contributions for community reusability. They help shape the technical architecture in coordination with the Principal Architect and manage releases according to the principles and roadmap. They may specialize in specific areas of the framework such as translations, infrastructure, metadata schemas, or UI/UX.
Code Quality and Repository Management: Maintainers review pull requests, test new changes, manage issues, prepare releases, backport changes when necessary, and address security vulnerabilities. They ensure contributions follow best practices and are aligned with project goals. A minimum of two maintainers should agree before merging significant changes.
Community Support: Maintainers guide newcomers, answer questions and share their expertise on communication channels (GitHub, Discord, Discourse), help engage contributors, and ensure adequate documentation for repositories. They identify testers and reviewers for complex PRs and participate in merge parties during telecons and events.
Fostering Best Practices: Maintainers exemplify the Code of Conduct and maintain a supportive environment for contributors. They use GitHub boards to organize work, proactively address technical debt, and seek input from other maintainers when reviewing unfamiliar changes. Regular participation in community events and an active presence in communication channels helps maintain project momentum.
Becoming a Maintainer
Prerequisites
- Active contributor to Invenio
- Demonstrated understanding of the codebase
- Adherence to the Code of Conduct and Maintainers Handbook
- Track record of quality contributions
- Association with a participating partner organization is typical but not required
Application Process
- Applicant – Contact the Product Manager or Principal Architect to express interest, OR be nominated by current maintainers
-
Existing maintainers
- Review with consideration for diversity, representation and above prerequisites.
- Vote through anonymous process – 7-day period, requires ≥70% positive votes and <20% negative votes with majority participation
- Applicant – Onboard with appropriate GitHub access and introduction to communication channels, tools, and practices
- Applicant – Formal announcement in official channels and update to public pages
Leaving the Maintainer Role
- Voluntary Departure: Notify leadership and assist with transitioning responsibilities when possible.
- Involuntary Removal: Leadership may revoke a maintainer role for lack of activity, Code of Conduct violations, or repeated infringements of project guidelines. A warning will be given, except in severe cases, as revoking roles is considered a last measure.
Communication and Decision-Making
Maintainers communicate through the dedicated "maintainers" Discord channel, GitHub discussions, monthly maintainer calls, and Invenio events. They follow Invenio's decision-making principles by striving for consensus, facilitating open discussions, and ensuring alignment with the overall project vision.