diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..b4fc1954 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# These owners will be the default owners for everything in the repo. +* @ValerianRey @PierreQuinton diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..69a3424c --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,7 @@ +# Code of Conduct + +TorchJD follows the [Linux Foundation Code of Conduct](https://lfprojects.org/policies/code-of-conduct/). + +## Changes to this Code of Conduct + +Changes to this Code of Conduct require approval from all maintainers. diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 00000000..273b14de --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,73 @@ +# TorchJD Governance + +This document defines the governance structure and decision-making process for the TorchJD project. + +## Maintainers + +TorchJD is maintained by: + +- **Valérian Rey** ([@ValerianRey](https://github.com/ValerianRey)) +- **Pierre Quinton** ([@PierreQuinton](https://github.com/PierreQuinton)) + +Maintainers are responsible for: +- Reviewing and merging pull requests +- Managing releases +- Setting project direction and priorities +- Ensuring code quality and consistency + +## Decision Making + +### Technical Decisions + +Most technical decisions are made through the pull request process: + +1. **Minor changes** (bug fixes, documentation, small improvements): Require approval from at least one maintainer +2. **Significant changes** (new features, API changes, refactoring): Should be discussed in an issue first, then require approval from at least one maintainer +3. **Major changes** (breaking changes, architectural decisions): Should be discussed in an issue or discussion thread and require consensus from all maintainers + +### Pull Request Process + +1. Contributors submit pull requests following the guidelines in [CONTRIBUTING.md](CONTRIBUTING.md) +2. Maintainers review the code for correctness, style, and alignment with project goals +3. Once approved, any maintainer can merge the pull request +4. All pull requests must pass CI checks before being merged + +### Consensus + +For major decisions, maintainers aim for consensus. If consensus cannot be reached: +- The decision may be postponed for further discussion +- If a decision must be made, the maintainer with the most relevant expertise in the area makes the final call + +## Release Process + +Releases are managed by maintainers following the process described in [CONTRIBUTING.md](CONTRIBUTING.md): + +1. Ensure all tests pass +2. Update the changelog +3. Update the version number +4. Create a release on GitHub +5. Verify deployment to PyPI + +## Adding Maintainers + +New maintainers may be added when: +- They have made significant, sustained contributions to the project +- They demonstrate understanding of the project's goals and coding standards +- They are committed to the long-term maintenance of the project + +New maintainers must be approved by all existing maintainers. + +## Conflict Resolution + +Conflicts are resolved through discussion: +1. Issues should first be discussed in the relevant issue or pull request +2. If unresolved, maintainers discuss privately to reach consensus +3. The goal is always to find the best solution for the project and its users + +## Code of Conduct + +This project follows the [Linux Foundation Code of Conduct](https://lfprojects.org/policies/code-of-conduct/). + +## Changes to Governance + +Changes to this governance document require approval from all maintainers.