Skip to content

Latest commit

 

History

History
200 lines (136 loc) · 10.9 KB

File metadata and controls

200 lines (136 loc) · 10.9 KB

Dragonfly Contributor Ladder

This document outlines the different contributor roles and responsibilities within the Dragonfly project. Think of it as a guide to help you understand your role, what's expected, and how you can grow with us in the community.

Goals

We've put this document together with a few key goals in mind:

  • To ensure the long-term health and sustainability of the Dragonfly community.
  • To encourage new contributors to get more involved and take on formal roles.
  • To provide a clear path for those looking to grow into leadership positions.
  • To build a strong pipeline of future leaders for the project.

Scope

This guide covers the roles and responsibilities for everyone who contributes to the Dragonfly open source project and its subprojects and libraries. Whether you're writing code, improving documentation, creating tests, or helping in other ways, this is for you.

General Guidelines

Everyone is Welcome

We truly appreciate every contribution. You don't need a formal title to create or review pull requests, help with issues, or join in on discussions. Taking on a formal role is completely optional, so feel free to contribute in any way that works for you.

Guidance

As described in our Contribution Guide, we welcome all kinds of contributions, whether it's PRs, issues, or new feature ideas. If you're new here, we recommend starting with smaller, meaningful changes. They're easier to review and a great way to get familiar with our processes.

Since we're an open source project, review times can vary depending on when Maintainers and Approvers are available. You can build trust and speed up your progression by making consistent, smaller contributions or by giving constructive feedback on other people's work.

Every time we merge a contribution, we're committing to maintaining it for the long haul. That's why larger changes require not just a lot of effort, but also a proven track record to show the community that you'll be around to support your changes.

Remember, "no is temporary, yes is forever." 🙇‍♂️

Continued Contributions

If you're thinking about applying for one of the roles below, we hope it's because you plan to stay active at that level. If life gets in the way and you can't keep up with the responsibilities of your role, it's perfectly fine to step down. Members who are inactive for an extended period will be removed from the Dragonfly GitHub Organizations, but you can always go through the membership process again when you're ready.

Consensus for Merging

If you think a change might be controversial, please hold off on merging and give others a chance to share their thoughts. Even if you have merge access, it doesn't mean you should always use it. We want to avoid blocking PRs indefinitely, but it's important to make sure everyone's perspective is heard first.

Start a Discussion

If you're interested in moving up the ladder and taking on one of these roles, just reach out to a project maintainer on Slack. We're here to help you get started!

Contributor Ladder

This document lays out the different contributor roles in our open source project, detailing the responsibilities, qualifications, and perks that come with each one.

Contributors usually start at the first level and move up as they become more involved and make a bigger impact. We're here to support you every step of the way as you climb the contributor ladder!

Our ladder has four main roles: Contributor, Member, Approver, and Maintainer. Each role comes with its own set of responsibilities, qualifications, and privileges that reflect a contributor's level of involvement and the trust they've earned in the community.

Here's a quick look at the roles:

Role Responsibilities Qualifications Privileges
Contributor Follow our Code of Conduct & Contribution Guide Anyone who participates in the community Can be assigned issues and request reviews
Member Contribute regularly and complete tasks you volunteer for A history of contributions at least three months Trigger CI/CD, review PRs, and recommend others for Member status
Approver Review PRs in your area of expertise and maintain quality A Member with a solid track record of high-quality reviews Approve PRs in specific areas and recommend others for Approver
Maintainer Merge PRs, coordinate releases, and help shape the project's direction Long-term contributions, leadership, and a deep understanding of the project Merge code, represent the project publicly, and nominate new Maintainers

Each role is defined by three key things:

  • Responsibilities: The tasks and duties we expect from you at this level.
  • Qualifications: The criteria you need to meet to earn this role.
  • Privileges: The rights and benefits you get as a contributor at this level.

As the project grows, these roles and responsibilities might change. The final say on role assignments belongs to the project Maintainers.

Contributor

A Contributor is anyone who adds value to the project. This can be through code, but it doesn't have to be! This role is often where new or occasional contributors start.

  • Responsibilities:

  • Qualifications:

    • Open to anyone who wants to be part of the community.
    • Contributions can include things like:
      • Joining in on community discussions.
      • Reporting bugs or giving feedback.
      • Testing new releases and sharing your thoughts.
      • Helping out with documentation.
      • Attending or speaking at community events.
      • Submitting pull requests (PRs).
      • Helping other users or answering questions.
      • Spreading the word about the project.
  • Privileges:

    • You can be assigned to issues and ask for reviews on your contributions.

This is the first step to becoming a Member.

Member

A Member is a consistent contributor who is actively involved in the project. They have more permissions in our repositories and are trusted to act in the community's best interest.

  • Responsibilities:

    • Make regular contributions to the project.
    • Finish any tasks or initiatives you volunteer for.
  • Qualifications:

    • A history of successful contributions, including at least one of these:
      • Submitting or reviewing PRs.
      • Fixing issues or bugs.
      • Making other impactful contributions.
    • You're actively contributing to an area of the project where Member privileges would be helpful.
    • A track record of contributing (e.g., code, reviews, discussions) for at least 3 months.
    • You consistently follow the project's Code of Conduct.
  • Privileges:

    • You can trigger CI/CD pipelines.
    • You can leave reviews and comments on PRs.
    • You can recommend other Contributors to become Members.
    • You can nominate yourself for higher roles as described in our project governance.

The current Member list is maintained in the MEMBERS.md file.

Approver

An Approver is a Member who takes ownership of a specific part of the project (like code, docs, or tests). They play a key role in keeping our quality high by reviewing and approving changes in their area.

  • Responsibilities:

    • Handle all the responsibilities of a Member.
    • Regularly review PRs in your area of expertise.
    • Make sure changes meet our coding standards, don't introduce bugs, and are good for the project.
    • Help other contributors become Approvers.
    • Help triage issues.
  • Qualifications:

    • You must already be a Member.
    • Proven track record of high-quality reviews and contributions.
    • Deep understanding of your specific area.
    • Commitment to maintaining responsibility for your designated area.
    • Supportive of new and occasional contributors, helping refine PRs for merging.
  • Privileges:

    • You'll have GitHub permissions to approve PRs and manage labels in your specific areas.
    • You can recommend and review other Members for the Approver role.

The current Approver list is maintained in the Approvers.md file.

Maintainer

A Maintainer is a highly trusted member of the project with the authority to merge code, vote on project matters, and help guide the project's direction. This role is for those who have shown a deep commitment to our community.

  • Responsibilities:

    • Fulfill all the responsibilities of an Approver.
    • Merge PRs to the main branch.
    • Maintain the codebase's overall quality, stability, and performance.
    • Coordinate releases and update documentation.
    • Shape the project's technical direction and roadmap.
    • Mentor new contributors and Maintainers.
    • Engage in strategic and policy discussions for the project.
    • Participate in voting on key project decisions as per governance rules.
    • Approve promotions to various roles within the project.
  • Qualifications:

    • The specifics are detailed in our project's governance document under the commit access criteria.
    • A history of long-term, high-quality contributions and leadership.
    • In-depth understanding of the project’s architecture and design.
    • Supportive of new contributors, aiding in refining contributions.
    • Demonstrates independent judgment for the project’s benefit, beyond personal or employer interests.
    • Actively mentors others in the community.
  • Privileges:

    • You can merge code into the project repositories.
    • You can vote on project-level decisions.
    • You can represent the project in public.
    • You can nominate new Maintainers.

The current Maintainer list is maintained in the Maintainers.md file.