# Overview

This project aims to be governed in a transparent, accessible way for the benefit of the community. All participation in this project is open and not bound to corporate affilation. Participants are bound to the project's [Code of Conduct](https://github.com/rtdip/core/blob/develop/CODE_OF_CONDUCT.md).

# Project roles

## Contributor

The contributor role is the starting role for anyone participating in the project and wishing to contribute code.

# Process for becoming a contributor

* Review the [Contribution Guidelines](https://github.com/rtdip/core/blob/develop/CONTRIBUTING.md) to ensure your contribution is inline with the project's coding and styling guidelines.
* Submit your code as a PR with the appropriate DCO signoff
* Have your submission approved by the committer(s) and merged into the codebase.

## Codeowner

The codeowners role enables the contributor to commit code directly to the repository, but also comes with the responsibility of being a responsible leader in the community.

### Process for becoming a codeowner

* Show your experience with the codebase through contributions and engagement on the community channels.
* Request to become a codeowner. To do this, create a new pull request that adds your name and details to the [Codeowners File](https://github.com/rtdip/core/blob/develop/CODEOWNERS.md) file and request existing codeowners to approve.
* After the majority of codeowners approve you, merge in the PR. Be sure to tag the whomever is managing the GitHub permissions to update the codeowners team in GitHub.

### Codeowners responsibilities

* Monitor email aliases (if any).
* Monitor Slack (delayed response is perfectly acceptable).
* Triage GitHub issues and perform pull request reviews for other codeowners and the community.
* Make sure that ongoing PRs are moving forward at the right pace or closing them.
* In general continue to be willing to spend at least 25% of ones time working on the project (~1.25 business days per week).

### When does a codeowner lose codeowner status

If a codeowner is no longer interested or cannot perform the codeowner duties listed above, they
should volunteer to be moved to emeritus status. In extreme cases this can also occur by a vote of
the codeowners per the voting process below.

## Lead

The project codeowners will elect a lead ( and optionally a co-lead ) which will be the primary point of contact for the project and representative to the TAC upon becoming an Active stage project. The lead(s) will be responsible for the overall project health and direction, coordination of activities, and working with other projects and codeowners as needed for the continuted growth of the project.

# Release Process

Project releases will occur on a scheduled basis as agreed to by the codeowners.

# Conflict resolution and voting

In general, we prefer that technical issues and codeowner membership are amicably worked out
between the persons involved. If a dispute cannot be decided independently, the codeowners can be
called in to decide an issue. If the codeowners themselves cannot decide an issue, the issue will
be resolved by voting. The voting process is a simple majority in which each codeowner receives one vote.

# Communication

This project, just like all of open source, is a global community. In addition to the [Code of Conduct](https://github.com/rtdip/core/blob/develop/CODE_OF_CONDUCT.md), this project will:

* Keep all communucation on open channels ( mailing list, forums, chat ).
* Be respectful of time and language differences between community members ( such as scheduling meetings, email/issue responsiveness, etc ).
* Ensure tools are able to be used by community members regardless of their region.

If you have concerns about communication challenges for this project, please contact the codeowners.

[Code of Conduct]: CODE_OF_CONDUCT.md
[Codeowners File]: CODEOWNERS.csv
[Contribution Guidelines]: CONTRIBUTING.md