Skip to content
24 changes: 24 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Code Owners for TorchJD
#
# This file defines the code owners for the repository. When a pull request is opened,
# GitHub automatically requests reviews from the appropriate code owners based on the
# files changed.
#
# Each line contains a pattern followed by one or more owners (GitHub usernames or team names).
# Patterns use gitignore-style glob patterns.
#
# For more information, see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customifying-your-repository/about-code-owners
#
# Note: Ownership for new packages should be decided by the maintainers and SimplexLab.

# Default owners for the entire repository
* @SimplexLab/maintainers

# CI workflows
/.github/workflows/ @PierreQuinton @ValerianRey

# Python packages in src/torchjd
/src/torchjd/_linalg/ @PierreQuinton @ValerianRey
/src/torchjd/aggregation/ @PierreQuinton @ValerianRey
/src/torchjd/autogram/ @PierreQuinton @ValerianRey
/src/torchjd/autojac/ @PierreQuinton @ValerianRey
7 changes: 7 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -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 can only be made upon request from SimplexLab, which defines when and how such changes are possible.
18 changes: 16 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
# Contributing to TorchJD

This document explains how to contribute to TorchJD. Please use issues or discussions to communicate
with maintainers before implementing major changes.
This document explains how to contribute to TorchJD.

## Getting Started

- **Minor changes** (bug fixes, documentation, small improvements): Open a pull request directly following the guidelines in this document.
- **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.

## Code Ownership

This project uses a [CODEOWNERS](CODEOWNERS) file to automatically assign reviewers to pull requests
based on which files are changed. The code owners are the people or groups who created or maintain
specific parts of the codebase.

When you open a pull request, GitHub will automatically request reviews from the relevant code owners
for the files you've modified. This ensures that changes are reviewed by the people most familiar
with the affected code.

## Installation

Expand Down
80 changes: 80 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# TorchJD Governance

This document defines the governance structure and decision-making process for the TorchJD project.

## Project Ownership

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.

## 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

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.

### 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. SimplexLab operates as a democratic decision-making body. If consensus among maintainers cannot be reached:
- The decision may be postponed for further discussion
- 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

## 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 SimplexLab, based on the report and recommendation of 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. If maintainers cannot reach consensus, SimplexLab has the final authority to resolve the conflict
4. 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 can only be made upon request from SimplexLab, which defines when and how such changes are possible.
Loading