You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -14,20 +14,121 @@ There are several ways to contribute:
14
14
15
15
## Setting Up Your Development Environment
16
16
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.
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
+
```
18
71
19
72
## Contribution Workflow
20
73
21
74
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.
24
77
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.
31
132
32
133
## Updating Tool Evaluations
33
134
@@ -36,5 +137,3 @@ If your contribution involves updating a major tool version or suggesting a diff
36
137
## Communication
37
138
38
139
For questions or discussion about contributions, open an issue or a discussion on the [GitHub repository](https://github.com/robust-python/cookiecutter-robust-python).
0 commit comments