|
| 1 | +--- |
| 2 | +title: Maintainers Handbook |
| 3 | +eleventyNavigation: |
| 4 | + key: 'Maintainers' |
| 5 | + parent: Community |
| 6 | + order: 6 |
| 7 | +--- |
| 8 | +{% layout 'layouts/page.html' %} |
| 9 | + |
| 10 | +{% block content %} |
| 11 | +<section class="maintainers-section section-content-white-bg"> |
| 12 | + <div class="container"> |
| 13 | + <h1>Introduction</h1> |
| 14 | + <p> |
| 15 | + Maintainers are a key part of the Invenio open source community. They help |
| 16 | + ensure the health, quality, and sustainability of the codebase while |
| 17 | + fostering a welcoming environment for contributors. This document defines |
| 18 | + the role of maintainers, their responsibilities, how to become a |
| 19 | + maintainer, and related processes. |
| 20 | + </p> |
| 21 | + |
| 22 | + <h2>Role of Maintainers</h2> |
| 23 | + <p> |
| 24 | + Maintainers are individuals who have demonstrated expertise and commitment |
| 25 | + to the Invenio project. They maintain at least one Invenio software |
| 26 | + repository and are appointed by the Principal Architect, in accordance |
| 27 | + with the Product Manager. |
| 28 | + </p> |
| 29 | + |
| 30 | + <h2>Responsibilities</h2> |
| 31 | + <p>Maintainers have responsibilities across several key areas:</p> |
| 32 | + <p> |
| 33 | + <strong>Technical Leadership:</strong> Maintainers participate in |
| 34 | + architectural discussions, make technical decisions, and evaluate |
| 35 | + contributions for community reusability. They help shape the technical |
| 36 | + architecture in coordination with the Principal Architect and manage |
| 37 | + releases according to the <a href="/governance/">principles</a> and |
| 38 | + <a href="https://github.com/orgs/inveniosoftware/projects/80">roadmap</a>. |
| 39 | + They may specialize in specific areas of the framework such as |
| 40 | + translations, infrastructure, metadata schemas, or UI/UX. |
| 41 | + </p> |
| 42 | + <p> |
| 43 | + <strong>Code Quality and Repository Management</strong>: Maintainers |
| 44 | + review pull requests, test new changes, manage issues, prepare releases, |
| 45 | + backport changes when necessary, and address security vulnerabilities. |
| 46 | + They ensure contributions follow best practices and are aligned with |
| 47 | + project goals. A minimum of two maintainers should agree before merging |
| 48 | + significant changes. |
| 49 | + </p> |
| 50 | + <p> |
| 51 | + <strong>Community Support</strong>: Maintainers guide newcomers, answer |
| 52 | + questions and share their expertise on communication channels (GitHub, |
| 53 | + Discord, Discourse), help engage contributors, and ensure adequate |
| 54 | + documentation for repositories. They identify testers and reviewers for |
| 55 | + complex PRs and participate in merge parties during telecons and events. |
| 56 | + </p> |
| 57 | + <p> |
| 58 | + <strong>Fostering Best Practices:</strong> Maintainers exemplify the Code |
| 59 | + of Conduct and maintain a supportive environment for contributors. They |
| 60 | + use GitHub boards to organize work, proactively address technical debt, |
| 61 | + and seek input from other maintainers when reviewing unfamiliar changes. |
| 62 | + Regular participation in community events and an active presence in |
| 63 | + communication channels helps maintain project momentum. |
| 64 | + </p> |
| 65 | + <h2>Becoming a Maintainer</h2> |
| 66 | + <h3>Prerequisites</h3> |
| 67 | + <ul> |
| 68 | + <li>Active contributor to Invenio</li> |
| 69 | + <li>Demonstrated understanding of the codebase</li> |
| 70 | + <li>Adherence to the Code of Conduct and Maintainers Handbook</li> |
| 71 | + <li>Track record of quality contributions</li> |
| 72 | + <li> |
| 73 | + Association with a participating partner organization is typical but not |
| 74 | + required |
| 75 | + </li> |
| 76 | + </ul> |
| 77 | + <h3>Application Process</h3> |
| 78 | + <ol> |
| 79 | + <li> |
| 80 | + Applicant – Contact the Product Manager or Principal Architect to |
| 81 | + express interest, <strong>OR</strong> be nominated by current |
| 82 | + maintainers |
| 83 | + </li> |
| 84 | + <li> |
| 85 | + Existing maintainers |
| 86 | + <ul> |
| 87 | + <li> |
| 88 | + Review with consideration for diversity, representation and above |
| 89 | + prerequisites. |
| 90 | + </li> |
| 91 | + <li> |
| 92 | + Vote through anonymous process – 7-day period, requires ≥70% |
| 93 | + positive votes and <20% negative votes with majority |
| 94 | + participation |
| 95 | + </li> |
| 96 | + </ul> |
| 97 | + </li> |
| 98 | + <li> |
| 99 | + Applicant – Onboard with appropriate GitHub access and introduction to |
| 100 | + communication channels, tools, and practices |
| 101 | + </li> |
| 102 | + <li> |
| 103 | + Applicant – Formal announcement in official channels and update to |
| 104 | + public pages |
| 105 | + </li> |
| 106 | + </ol> |
| 107 | + |
| 108 | + <h2>Leaving the Maintainer Role</h2> |
| 109 | + <ul> |
| 110 | + <li> |
| 111 | + <strong>Voluntary Departure:</strong> Notify leadership and assist with |
| 112 | + transitioning responsibilities when possible. |
| 113 | + </li> |
| 114 | + <li> |
| 115 | + <strong>Involuntary Removal:</strong> Leadership may revoke a maintainer |
| 116 | + role for lack of activity, Code of Conduct violations, or repeated |
| 117 | + infringements of project guidelines. A warning will be given, except in |
| 118 | + severe cases, as revoking roles is considered a last measure. |
| 119 | + </li> |
| 120 | + </ul> |
| 121 | + |
| 122 | + <h2>Communication and Decision-Making</h2> |
| 123 | + <p> |
| 124 | + Maintainers communicate through the dedicated "maintainers" Discord |
| 125 | + channel, GitHub discussions, monthly maintainer calls, and Invenio events. |
| 126 | + They follow Invenio's decision-making principles by striving for |
| 127 | + consensus, facilitating open discussions, and ensuring alignment with the |
| 128 | + overall project vision. |
| 129 | + </p> |
| 130 | + </div> |
| 131 | +</section> |
| 132 | +{% endblock %} |
0 commit comments