| Tl;DR: OpenSearch’s Contribution Ladder policy maps a transparent, merit-based path from first-time contributor to maintainer. It defines three roles, Public, Member, and Maintainer, each with clear responsibilities and privileges, so anyone can see how to climb. |
As the OpenSearch Project grows, sustaining a thriving, inclusive community requires more than just code; it requires clear pathways for community members to grow, lead, and shape the project’s future. Since the beginning of, we had only two designations; Public or Maintainer and the middle ground felt like it needed something else.
The OpenSearch Project formalized this journey through its Contribution Ladder policy, hosted in the Technical Steering repository. Whether you’re making your very first pull request or looking to step into becoming a maintainer, the Contribution Ladder outlines a transparent, merit-based path for all developers.
Let’s dive into what a contribution ladder is, why it matters, and how you can climb it.
Why a contribution ladder matters
In many open-source ecosystems, the path from a casual contributor to a project maintainer can feel opaque. Questions like “How do I get merge permissions?” or “What does it take to become a maintainer?” are often left unanswered.
The OpenSearch Contribution Ladder policy addresses this by establishing:
- Clarity and expectations: Explicit responsibilities and requirements for each community role.
- Growth pathways: Clear stepping stones so contributors know how to advance their involvement and influence.
- Decentralized ownership: A structured way to scale governance, distribute maintainership, and prevent burnout among core maintainers.
The roles: From first-time contributor to leadership
The policy defines a progression of roles, outlining the responsibilities, privileges, and requirements for each level:
Public
- Summary: The entry point for anyone with a GitHub account. Allows you to open and comment on issues, submit and review pull requests, and participate in community meetings or forum discussions without needing formal approval or onboarding.
- Requirements: Follow the project’s Code of Conduct and contribution guidelines.
Member
- Summary: Active, recurring contributors who are officially added to the opensearch-project GitHub organization, granting them issue-management tools and elevated repository access.
- Requirements: Sustained, constructive participation (code, documentation, issue triage, or reviews) across one or more repositories, along with sponsorship from an existing repository maintainer who vouches for the work and community conduct.
- Privileges: Organization membership, triage-level permissions (managing labels, assigning issues, marking duplicates), and the ability to be directly assigned to project issues.
Maintainer
- Summary: Trusted leaders appointed on a per-repository basis who set technical strategy, direct development, and hold final approval for merging pull requests into the codebase.
- Requirements: A deep, sustained body of work and long-term commitment tailored to the specific repository’s standards, followed by a formal nomination process detailed in RESPONSIBILITIES.md. (While being a Member is a common prerequisite step, it is not strictly required).
- Privileges: Full approval and merge authority, entry into the repository’s MAINTAINERS.md file, and decision-making power over repository technical strategy.
How to get started on your journey
Ready to start climbing the ladder? Here’s how you can make your mark on OpenSearch today:
- Find an issue: Look for issues tagged good first issue or help wanted across the OpenSearch GitHub organization.
- Review open PRs: Jump into ongoing pull requests and offer constructive feedback or run tests locally.
- Join the conversation: Engage with developers on the OpenSearch forum, Slack, and triage or TAG meetings.
- Check out the policy: Read the full CONTRIBUTION_LADDER.md document to learn more about the exact nomination and voting processes for maintainer roles.
How are you planning to contribute to OpenSearch this year?