Skip to content

Latest commit

 

History

History
94 lines (55 loc) · 4.09 KB

GOVERNANCE.md

File metadata and controls

94 lines (55 loc) · 4.09 KB

Governance

As a CNCF member project, Synapse adheres to the CNCF Code of Conduct.

For specific guidance on contributing to Synapse, please refer to our contributing guide.

For any questions or concerns, contact the project maintainers via the Serverless Workflow Specification Maintainers mailing list.

Maintainership

Responsibilities

Maintainers are responsible for:

  1. Ensuring the project's overall success.
  2. Committing significant time and effort to enhance the project.
  3. Handling necessary tasks, even those that may not be the most engaging.

Reviewers

Reviewers play a crucial role by:

  • Reviewing and approving issues and pull requests.
  • Approving pull requests is necessary for code changes to be merged into the project.

Emeritus Maintainers

Emeritus maintainers are former maintainers who have significantly contributed to the project but are no longer able to be actively involved. They continue to:

  1. Provide guidance and mentorship to current maintainers and contributors.
  2. Offer historical context and insights based on their past experiences.
  3. Participate in discussions and reviews on an advisory basis.

Adding Maintainers

To add a new maintainer:

  1. Candidates must demonstrate strong, ongoing commitment to the project by actively contributing, reviewing pull requests, and managing issues for at least three months.
  2. Current maintainers review and propose new maintainers through a pull request.
  3. A candidate requires at least 66% approval from existing maintainers to be added. Only one maintainer per organization is allowed.

For the reviewer role, candidates need 33% approval from current maintainers.

Adding Emeritus Maintainers

To transition a maintainer to emeritus status:

  1. Follow the same voting and approval process as for adding new maintainers.
  2. A pull request is created for the transition, requiring a 66% approval vote from current maintainers.
  3. Once approved, the emeritus maintainer is added to the EMERITUS file and announced to the community.

Subprojects

Adding Core Subprojects

  1. To add a new subproject, submit a GitHub issue in the specification repository.
  2. Existing maintainers have fourteen business days to discuss and vote on the proposal.
  3. A subproject requires at least 66% approval from current maintainers.

Stepping Down

Maintainers intending to step down should:

  1. Inform other maintainers and, if possible, help find a successor.
  2. Open a pull request to remove their name from the MAINTAINERS file.

Removal of Inactive Maintainers

Inactive maintainers are reviewed periodically. If a maintainer has not been active for three months:

  1. A neutral person will contact them to confirm their desire to continue.
  2. If they wish to step down, a pull request is opened to remove them from the MAINTAINERS file.
  3. If they wish to remain but cannot perform their duties, they can be removed with a 66% vote from the current maintainers.

Decision-Making Process

Decisions are made through:

  1. Opening a pull request, which anyone can do.
  2. Discussing the pull request, which anyone can contribute to.
  3. Merging or refusing the pull request, which depends on the nature of the change.

Consensus among maintainers is required for significant decisions. Proposals should be discussed before opening a pull request.

Maintainer Pull Requests

Maintainers must also make changes via pull requests. Direct pushes to master are not allowed. For details, see the Contributing guide.

Conflict Resolution

To merge changes, at least one maintainer must approve the pull request. If maintainers do not voice their opinions within two days, their approval is assumed via lazy consensus.

For disputes, efforts should be made to resolve issues amicably. If unresolved, a third-party maintainer can mediate. The core maintainers have the final say, making decisions by consensus or majority vote if necessary, ideally within two weeks.