Create CONTRIBUTING.md

This commit is contained in:
Martin Braquet
2025-08-03 01:51:39 +02:00
committed by GitHub
parent d8cf033e36
commit 704bb48909

125
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,125 @@
# Contributing to This Repository
We welcome pull requests, but only if they meet the project's quality and design standards. Follow the process below precisely to avoid wasting time—yours or ours.
## Prerequisites
- Familiarity with Git and GitHub (basic commands, branching, forking, etc.)
- A functioning development environment
- Node.js, Python, or other relevant runtime/tools installed (check the `README.md`)
## Fork & Clone
1. **Fork the repository** using the GitHub UI.
2. **Clone your fork** locally:
```bash
git clone https://github.com/your-username/BayesBond.git
cd your-fork
3. **Add the upstream remote**:
```bash
git remote add upstream https://github.com/BayesBond/BayesBond.git
```
## Create a New Branch
Never work on `main` or `master`.
```bash
git checkout -b fix/brief-but-specific-description
```
Use a clear, descriptive branch name. Avoid vague names like `patch-1`.
## Stay Updated
Before you start, make sure your fork is up to date:
```bash
git fetch upstream
git checkout main
git merge upstream/main
```
Then rebase your feature branch if needed:
```bash
git checkout fix/your-feature
git rebase main
```
## Make Atomic Commits
Each commit should represent a single logical change. Follow this format:
```text
type(scope): concise description
body explaining what and why, if necessary
```
Example:
```text
fix(api): handle 500 error on invalid payload
```
Types include: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`.
## Test Everything
If the project has tests, run them. If it doesnt, write some. Do **not** submit code that hasn't been tested.
```bash
# Example for Node.js
npm test
```
No exceptions. If you don't validate your changes, your PR will be closed.
## Lint & Format
Ensure code matches the project style. If the repo uses a linter or formatter, run them:
```bash
npm run lint
npm run format
```
Or whatever command is defined in the repo.
## Write a Good Pull Request
When opening a pull request:
* **Title**: Describe what the PR does, clearly and specifically.
* **Description**: Explain the context. Link related issues (use `Fixes #123` if applicable).
* **Checklist**:
* [ ] My code is clean and follows the style guide
* [ ] Ive added or updated tests
* [ ] Ive run all tests and they pass
* [ ] Ive documented my changes (if necessary)
## Code Review Process
* PRs are reviewed by maintainers or core contributors.
* If feedback is given, respond and push updates. Do **not** open new PRs for changes to an existing one.
* PRs that are incomplete, sloppy, or violate the above will be closed.
## Don't Do This
* Dont commit directly to `main`
* Dont submit multiple unrelated changes in a single PR
* Dont ignore CI/test failures
* Dont expect hand-holding—read the docs and the source first
## Security Issues
Do **not** open public issues for security vulnerabilities. Email the development team instead.
## License
By contributing, you agree that your code will be licensed under the same license as the rest of the project.