Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 66 additions & 25 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,108 @@
# 🚀 Contributing to Trevas

Thank you for your interest in contributing to Trevas! Your help is invaluable in improving this project. Here’s how you can get started:
Thank you for your interest in contributing to Trevas! Your help is invaluable in improving this project. Here’s how you can get started.

## 🛠️ Contribution Guidelines

### 📌 Roles & Responsibilities

- **[Making Sense](https://making-sense.info/)** is responsible for the overall **project governance**. They guide the vision of the project, make final decisions, and ensure the project aligns with its long-term goals.
- **[Making Sense](https://making-sense.info/)** are responsible for reviewing **Pull Requests (PRs)**, merging them into the main branch, adjusting the **GitHub project board**, and tagging issues to ensure proper tracking. They ensure the code meets the project's standards before merging and help prioritize tasks.
- **[Insee](https://www.insee.fr/en)** is responsible for the overall **project governance**. They guide the vision of the project, make final decisions, and ensure the project aligns with its long-term goals.
- **[Making Sense](https://making-sense.info/)** are responsible for reviewing **Pull Requests (PRs)**, merging them into the master branch, adjusting the **GitHub project board**, and tagging issues to ensure proper tracking. They ensure the code meets the project's standards before merging and help prioritize tasks.
- **Maintainers** (which can include anyone who is granted this role) help with day-to-day management of the project, such as reviewing code, merging PRs, and managing the project's direction. If you're interested in becoming a maintainer, please see the section below.

### 📌 Issues & Pull Requests

- Every **Pull Request (PR) must be linked to an existing issue**.
- Every **Pull Request (PR) must be linked to an existing issue**
- When creating a PR, use the following naming convention:
- **`Feat/your-feature-name`** for new features.
- **`Fix/your-bug-fix`** for bug fixes.
- Discuss your ideas in an issue before starting major work.
- **`feat/your-feature-name`** for new features
- **`fix/your-bug-fix`** for bug fixes
- Discuss your ideas in an issue before starting major work

### 👀 Four Eyes Principle & Code Review Practices

To ensure the quality, reliability, and security of Trevas, we follow the **Four Eyes Principle** for all code contributions.

#### 🔍 What is the Four Eyes Principle?

The **Four Eyes Principle** means that **at least two people must review and approve any important action** before it is finalized. In the context of Trevas, this applies specifically to:

- Pull Request (PR) reviews and approvals
- Merges into the `develop` or `master` branches
- Structural changes in architecture, testing strategy, or documentation

This principle helps:
- Catch potential bugs or security issues early
- Encourage collaborative development
- Share knowledge across the team
- Avoid single points of failure or bias in code review

#### ✅ Code Review Guidelines

All Pull Requests should:

- Be reviewed by **at least one other maintainer** who is **not the author**
- Receive **two approvals** if the PR is large, critical, or affects core logic
- Be **linked to an existing issue**
- Follow the **project’s formatting rules**
- Include relevant **unit or integration tests**
- Be tested locally (or via CI) to ensure nothing is broken

**Only after meeting these conditions can a PR be merged**.

Maintainers are expected to **uphold these principles** and ensure reviews are thoughtful, constructive, and inclusive.
We believe that code review is not just a checkpoint, but a space to learn, improve, and grow as a team.

> 🤝 If you're contributing regularly and want to become a maintainer, don't hesitate to reach out to us at **contact@making-sense.info** — we’d love to welcome more eyes to the team!

### 🧪 Test-Driven Development (TDD)

We encourage a **test-driven approach** to ensure code reliability and maintainability:

1. **Write a failing test** for the feature or bug fix.
2. **Implement the code** needed to pass the test.
3. **Refactor** while ensuring all tests remain green.
1. **Write a failing test** for the feature or bug fix
2. **Implement the code** needed to pass the test
3. **Refactor** while ensuring all tests remain green

### 🎨 Code Formatting

To keep our codebase consistent, please follow these formatting guidelines:

- **Indentation**: Use tabs for indentation.
- **Line Length**: Keep lines under 120 characters.
- **Naming**: Use meaningful and descriptive English names for variables, functions, and classes.
- **Indentation**: Use tabs for indentation
- **Line Length**: Keep lines under 120 characters
- **Naming**: Use meaningful and descriptive English names for variables, functions, and classes

## 🔄 Creating a Pull Request

To contribute, follow these steps:

1. **Fork** the repository.
2. **Create a branch** from `develop` using the correct prefix (`Feat/` or `Fix/`). Example: `Feat/authentication` or `Fix/typo-readme`.
3. **Commit** your changes with a clear and concise message.
4. **Push** your branch to your fork.
5. **Open a Pull Request** targeting the `develop` branch.
1. **Fork** the repository
2. **Create a branch** from `develop` using the correct prefix (`feat/` or `fix/`). Example: `feat/authentication` or `fix/typo-readme`
3. **Commit** your changes with a clear and concise message
4. **Push** your branch to your fork
5. **Open a Pull Request** targeting the `develop` branch

Your PR should:

✅ Reference an [existing issue](https://github.com/InseeFr/Trevas/issues).
✅ Include a clear description of the changes.
✅ Be tested and follow the formatting rules mentioned above.
✅ Reference an [existing issue](https://github.com/InseeFr/Trevas/issues)
✅ Include a clear description of the changes
✅ Be tested and follow the formatting rules mentioned above

### 🌟 Becoming a Maintainer

If you're interested in taking on a more active role and helping maintain the project, feel free to reach out to us! You can request to become a **maintainer** by sending an email to **todo@mail.com**. We’d love to have you help guide the project forward!
If you're interested in taking on a more active role and helping maintain the project, feel free to reach out to us!
You can request to become a **maintainer** by sending an email to **contact@making-sense.info**.
We’d love to have you help guide the project forward!

### 📅 Roadmap & Progress Tracking

We use **GitHub Projects** to manage our roadmap and track the progress of issues and PRs. Check out our [Project Board](https://github.com/InseeFr/Trevas/projects) to see what's in progress and what needs help!
We use **GitHub Projects** to manage our roadmap and track the progress of issues and PRs.
Check out our [Project Board](https://github.com/InseeFr/Trevas/projects) to see what's in progress and what needs help!

### 🗣️ Communication

We encourage **open and transparent discussions**. If you have any questions or suggestions, please use [GitHub Issues](https://github.com/InseeFr/Trevas/issues) so the whole community can participate.
We encourage **open and transparent discussions**.
If you have any questions or suggestions, please use [GitHub Issues](https://github.com/InseeFr/Trevas/issues) so the whole community can participate.

## 📄 License

By contributing to Trevas, you agree that your contributions will be licensed under the **MIT License**. Please ensure that you have the right to share any code or content you submit.
By contributing to Trevas, you agree that your contributions will be licensed under the **MIT License**.
Please ensure that you have the right to share any code or content you submit.