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
This project follows [Semantic Versioning 2.0.0](https://semver.org/) principles. Version numbers are structured as MAJOR.MINOR.PATCH:
252
+
253
+
1. **MAJOR** version - Incremented for incompatible API changes
254
+
2. **MINOR** version - Incremented for backward-compatible new functionality
255
+
3. **PATCH** version - Incremented for backward-compatible bug fixes
256
+
257
+
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
258
+
259
+
### Version Bumping Rules
260
+
261
+
- Breaking changes (MAJOR): `BREAKING CHANGE:`in commit footer or `!` after type/scope
262
+
- New features (MINOR): `feat:` commit type
263
+
- Bug fixes (PATCH): `fix:` commit type
264
+
- No version bump: `chore:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:`
265
+
266
+
## 🚀 Python Semantic Release
267
+
268
+
We use [Python Semantic Release](https://python-semantic-release.readthedocs.io/en/latest/) for automated versioning and changelog generation. Key features:
269
+
270
+
- Automatic version bumping based on commit messages
271
+
- Changelog generation following Keep a Changelog format
272
+
- GitHub release creation and asset publishing
273
+
- Support for pre-releases and build metadata
274
+
275
+
### Configuration
276
+
277
+
Configuration in`pyproject.toml` integrates our versioning and changelog standards:
278
+
279
+
```toml
280
+
[tool.python_semantic_release]
281
+
# Version Management
282
+
version_variables = ["app/__init__.py:__version__"] # Update version in code
283
+
version_toml = ["pyproject.toml:tool.poetry.version"] # Update version in pyproject.toml
284
+
version_source = ["tag", "commit"] # Determine version from tags and commits
285
+
major_on_zero = false # Follow SemVer for 0.x versions
286
+
tag_format = "v{version}" # Git tag format (e.g., v1.0.0)
287
+
288
+
# Commit Parsing
289
+
commit_parser = "conventional_commits" # Use Conventional Commits standard
0 commit comments