Skip to content

Commit 34fc165

Browse files
committed
docs: update CONTRIBUTING.md info
1 parent a7a3776 commit 34fc165

File tree

1 file changed

+110
-11
lines changed

1 file changed

+110
-11
lines changed

CONTRIBUTING.md

Lines changed: 110 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,121 @@ There are several ways to contribute:
1414

1515
## Setting Up Your Development Environment
1616

17-
Refer to the **[Getting Started: Contributing to the Template](https://robust-python.github.io/cookiecutter-robust-python/getting-started-template-contributing.html)** section in the template documentation for instructions on cloning the repository, installing template development dependencies (using uv), setting up the template's pre-commit hooks, and running template checks/tests.
17+
1. **Clone** the repository:
18+
```bash
19+
git clone https://github.com/robust-python/cookiecutter-robust-python.git
20+
cd cookiecutter-robust-python
21+
```
22+
23+
2. **Install dependencies** using uv:
24+
```bash
25+
uv sync --all-groups
26+
```
27+
28+
3. **Install pre-commit hooks**:
29+
```bash
30+
uvx nox -s pre-commit -- install
31+
```
32+
33+
4. **Generate a demo project** to test changes:
34+
```bash
35+
nox -s generate-demo
36+
```
37+
38+
Refer to the **[Getting Started: Contributing to the Template](https://robust-python.github.io/cookiecutter-robust-python/getting-started-template-contributing.html)** section in the template documentation for more detailed instructions.
39+
40+
## Development Commands
41+
42+
### Code Quality
43+
```bash
44+
# Lint the template source code
45+
nox -s lint
46+
47+
# Lint from generated demo project
48+
nox -s lint-from-demo
49+
50+
# Run template tests
51+
nox -s test
52+
53+
# Build template documentation
54+
nox -s docs
55+
```
56+
57+
### Demo Projects
58+
```bash
59+
# Generate a demo project for testing
60+
nox -s generate-demo
61+
62+
# Generate demo with Rust extension
63+
nox -s generate-demo -- --add-rust-extension
64+
65+
# Update existing demo projects
66+
nox -s update-demo
67+
68+
# Clear demo cache
69+
nox -s clear-cache
70+
```
1871

1972
## Contribution Workflow
2073

2174
1. **Fork** the repository and **clone** your fork.
22-
2. Create a **new branch** for your contribution based on the main branch. Use a descriptive name (e.g., `fix/ci-workflow-on-windows`, `feat/update-uv-version`).
23-
3. Set up your development environment following the [Getting Started](https://robust-python.github.io/cookiecutter-robust-python/getting-started-template-contributing.html) guide (clone, `uv sync`, `uvx nox -s pre-commit -- install`).
75+
2. Create a **new branch** for your contribution based on the `develop` branch. Use a descriptive name (e.g., `fix/ci-workflow-on-windows`, `feat/update-uv-version`).
76+
3. Set up your development environment as described above.
2477
4. Make your **code or documentation changes**.
25-
5. Ensure your changes adhere to the template's **code quality standards** (configured in the template's `.pre-commit-config.yaml`, `.ruff.toml`, etc.). The pre-commit hooks will help with this. Run `uvx nox -s lint`, `uvx nox -s check` in the template repository for more comprehensive checks.
26-
6. Ensure your changes **do not break existing functionality**. Run the template's test suite: `uvx nox -s test`. Ideally, add tests for new functionality or bug fixes.
27-
7. Ensure the **template documentation builds correctly** with your changes: `uvx nox -s docs`.
28-
8. Write clear, concise **commit messages** following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification where possible, especially for significant changes (fixes, features, chore updates, etc.).
29-
9. **Push** your branch to your fork.
30-
10. **Open a Pull Request** from your branch to the main branch of the main template repository. Provide a clear description of your changes. Link to any relevant issues.
78+
5. Ensure your changes adhere to the template's **code quality standards**. Run:
79+
```bash
80+
nox -s lint
81+
nox -s test
82+
```
83+
6. Ensure the **template documentation builds correctly**:
84+
```bash
85+
nox -s docs
86+
```
87+
7. Write clear, concise **commit messages** following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification. This is **required** as we use Commitizen to generate changelogs automatically.
88+
8. **Push** your branch to your fork.
89+
9. **Open a Pull Request** from your branch to the `develop` branch of the main repository. Provide a clear description of your changes. Link to any relevant issues.
90+
91+
## Commit Message Guidelines
92+
93+
We use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages. This enables automatic changelog generation via Commitizen.
94+
95+
### Format
96+
```
97+
<type>(<scope>): <description>
98+
99+
[optional body]
100+
101+
[optional footer(s)]
102+
```
103+
104+
### Types
105+
- `feat`: A new feature
106+
- `fix`: A bug fix
107+
- `docs`: Documentation only changes
108+
- `style`: Changes that do not affect the meaning of the code
109+
- `refactor`: A code change that neither fixes a bug nor adds a feature
110+
- `perf`: A code change that improves performance
111+
- `test`: Adding missing tests or correcting existing tests
112+
- `build`: Changes that affect the build system or external dependencies
113+
- `ci`: Changes to CI configuration files and scripts
114+
- `chore`: Other changes that don't modify src or test files
115+
116+
### Examples
117+
```
118+
feat(template): add support for Python 3.13
119+
fix(ci): correct workflow trigger for demo sync
120+
docs(readme): update installation instructions
121+
chore(deps): bump ruff to 0.12.0
122+
```
123+
124+
## Versioning
125+
126+
This template uses **Calendar Versioning (CalVer)** with the format `YYYY.MM.MICRO`:
127+
- `YYYY`: Four-digit year
128+
- `MM`: Month (1-12, no leading zero)
129+
- `MICRO`: Incremental patch number, resets to 0 each new month
130+
131+
Releases are handled automatically via CI when changes are merged to `main`. Contributors do not need to bump versions manually.
31132
32133
## Updating Tool Evaluations
33134
@@ -36,5 +137,3 @@ If your contribution involves updating a major tool version or suggesting a diff
36137
## Communication
37138
38139
For questions or discussion about contributions, open an issue or a discussion on the [GitHub repository](https://github.com/robust-python/cookiecutter-robust-python).
39-
40-
---

0 commit comments

Comments
 (0)