Skip to content

Commit e2f2b18

Browse files
chore: Add governance documentation (#637)
- Add GOVERNANCE.md documenting technical governance structure - Add CODEOWNERS file defining project maintainers - Add CODE_OF_CONDUCT.md referencing Linux Foundation CoC These files are required for PyTorch Ecosystem membership. --------- Co-authored-by: Valérian Rey <31951177+ValerianRey@users.noreply.github.com>
1 parent b413122 commit e2f2b18

4 files changed

Lines changed: 127 additions & 2 deletions

File tree

CODEOWNERS

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Code Owners for TorchJD
2+
#
3+
# This file defines the code owners for the repository. When a pull request is opened,
4+
# GitHub automatically requests reviews from the appropriate code owners based on the
5+
# files changed.
6+
#
7+
# Each line contains a pattern followed by one or more owners (GitHub usernames or team names).
8+
# Patterns use gitignore-style glob patterns.
9+
#
10+
# For more information, see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customifying-your-repository/about-code-owners
11+
#
12+
# Note: Ownership for new packages should be decided by the maintainers and SimplexLab.
13+
14+
# Default owners for the entire repository
15+
* @SimplexLab/maintainers
16+
17+
# CI workflows
18+
/.github/workflows/ @PierreQuinton @ValerianRey
19+
20+
# Python packages in src/torchjd
21+
/src/torchjd/_linalg/ @PierreQuinton @ValerianRey
22+
/src/torchjd/aggregation/ @PierreQuinton @ValerianRey
23+
/src/torchjd/autogram/ @PierreQuinton @ValerianRey
24+
/src/torchjd/autojac/ @PierreQuinton @ValerianRey

CODE_OF_CONDUCT.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Code of Conduct
2+
3+
TorchJD follows the [Linux Foundation Code of Conduct](https://lfprojects.org/policies/code-of-conduct/).
4+
5+
## Changes to this Code of Conduct
6+
7+
Changes to this Code of Conduct can only be made upon request from SimplexLab, which defines when and how such changes are possible.

CONTRIBUTING.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
11
# Contributing to TorchJD
22

3-
This document explains how to contribute to TorchJD. Please use issues or discussions to communicate
4-
with maintainers before implementing major changes.
3+
This document explains how to contribute to TorchJD.
4+
5+
## Getting Started
6+
7+
- **Minor changes** (bug fixes, documentation, small improvements): Open a pull request directly following the guidelines in this document.
8+
- **Significant or major changes** (new features, API changes, architectural decisions): Join the [SimplexLab Discord server](https://discord.gg/76KkRnb3nk), introduce yourself and your idea, and discuss it with the community to determine if and how it fits within the project's goals before implementing.
9+
10+
## Code Ownership
11+
12+
This project uses a [CODEOWNERS](CODEOWNERS) file to automatically assign reviewers to pull requests
13+
based on which files are changed. The code owners are the people or groups who created or maintain
14+
specific parts of the codebase.
15+
16+
When you open a pull request, GitHub will automatically request reviews from the relevant code owners
17+
for the files you've modified. This ensures that changes are reviewed by the people most familiar
18+
with the affected code.
519

620
## Installation
721

GOVERNANCE.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# TorchJD Governance
2+
3+
This document defines the governance structure and decision-making process for the TorchJD project.
4+
5+
## Project Ownership
6+
7+
The TorchJD project is the property of SimplexLab. SimplexLab has full authority over the project, including its direction, governance structure, and major decisions. Maintainers are typically members of SimplexLab and are responsible for day-to-day operations, code reviews, and technical decisions.
8+
9+
## Maintainers
10+
11+
TorchJD is maintained by:
12+
13+
- **Valérian Rey** ([@ValerianRey](https://github.com/ValerianRey))
14+
- **Pierre Quinton** ([@PierreQuinton](https://github.com/PierreQuinton))
15+
16+
Maintainers are responsible for:
17+
- Reviewing and merging pull requests
18+
- Managing releases
19+
- Setting project direction and priorities
20+
- Ensuring code quality and consistency
21+
22+
## Decision Making
23+
24+
### Technical Decisions
25+
26+
Most technical decisions are made through the pull request process:
27+
28+
1. **Minor changes** (bug fixes, documentation, small improvements): Require approval from at least one maintainer
29+
2. **Significant changes** (new features, API changes, refactoring): Should be discussed in an issue first, then require approval from at least one maintainer
30+
3. **Major changes** (breaking changes, architectural decisions): Should be discussed in an issue or discussion thread and require consensus from all maintainers
31+
32+
For significant or major changes, contributors should join the [SimplexLab Discord server](https://discord.gg/76KkRnb3nk), introduce themselves and their idea, and discuss it with the community to determine if and how it fits within the project's goals.
33+
34+
### Pull Request Process
35+
36+
1. Contributors submit pull requests following the guidelines in [CONTRIBUTING.md](CONTRIBUTING.md)
37+
2. Maintainers review the code for correctness, style, and alignment with project goals
38+
3. Once approved, any maintainer can merge the pull request
39+
4. All pull requests must pass CI checks before being merged
40+
41+
### Consensus
42+
43+
For major decisions, maintainers aim for consensus. SimplexLab operates as a democratic decision-making body. If consensus among maintainers cannot be reached:
44+
- The decision may be postponed for further discussion
45+
- If a decision must be made, SimplexLab resolves the consensus based on the expertise of all maintainers relevant to the discussion as well as all people involved in the discussion
46+
47+
## Release Process
48+
49+
Releases are managed by maintainers following the process described in [CONTRIBUTING.md](CONTRIBUTING.md):
50+
51+
1. Ensure all tests pass
52+
2. Update the changelog
53+
3. Update the version number
54+
4. Create a release on GitHub
55+
5. Verify deployment to PyPI
56+
57+
## Adding Maintainers
58+
59+
New maintainers may be added when:
60+
- They have made significant, sustained contributions to the project
61+
- They demonstrate understanding of the project's goals and coding standards
62+
- They are committed to the long-term maintenance of the project
63+
64+
New maintainers must be approved by SimplexLab, based on the report and recommendation of all existing maintainers.
65+
66+
## Conflict Resolution
67+
68+
Conflicts are resolved through discussion:
69+
1. Issues should first be discussed in the relevant issue or pull request
70+
2. If unresolved, maintainers discuss privately to reach consensus
71+
3. If maintainers cannot reach consensus, SimplexLab has the final authority to resolve the conflict
72+
4. The goal is always to find the best solution for the project and its users
73+
74+
## Code of Conduct
75+
76+
This project follows the [Linux Foundation Code of Conduct](https://lfprojects.org/policies/code-of-conduct/).
77+
78+
## Changes to Governance
79+
80+
Changes to this governance document can only be made upon request from SimplexLab, which defines when and how such changes are possible.

0 commit comments

Comments
 (0)