Release Process Guide
This document outlines the complete manual process for releasing new versions of RIDE CLI.
Version Numbering
RIDE CLI follows Semantic Versioning (SemVer):
- MAJOR version (X.0.0): Incompatible API changes, major feature changes
- MINOR version (0.X.0): New functionality added in a backward compatible manner
- PATCH version (0.0.X): Backward compatible bug fixes
Pre-Release Checklist
Before starting the release process, verify:
- [ ] All tests pass (
pytest -v
) - [ ] Documentation is up-to-date
- [ ] CHANGELOG.md is updated with all changes
- [ ] All GitHub issues for this milestone are closed or moved
- [ ] Code quality checks pass (
flake8
,black
,isort
) - [ ] All dependencies are pinned to specific versions
Step 1: Update Version Numbers
Manually update version numbers in these files:
-
ride/init.py:
-
setup.py:
-
pyproject.toml:
Step 2: Update CHANGELOG.md
Add a new entry at the top of the CHANGELOG.md file:
## [0.3.1] - YYYY-MM-DD
### Added
- List of new features
### Changed
- List of changes in existing functionality
### Deprecated
- List of features that will be removed in future releases
### Removed
- List of removed features
### Fixed
- List of bug fixes
### Security
- List of security fixes
Make sure to: - Use today's date - Group changes by type - Be specific about changes - Reference GitHub issues when applicable (e.g., "Fixed crash when loading CSV files (#123)")
Step 3: Commit Version Changes
# Stage all changed files
git add ride/__init__.py setup.py pyproject.toml CHANGELOG.md
# Create a commit
git commit -m "Release v0.3.1"
Step 4: Create a Git Tag
Step 5: Push to GitHub
Create GitHub Release
- Go to https://github.com/sudhanshumukherjeexx/ride-cli/releases
- Click "Draft a new release"
- Select the tag you created (v0.3.1)
- Title: "RIDE CLI v0.3.1"
- Description: Copy release notes from CHANGELOG.md
- Attach the built packages from the
dist/
directory - Click "Publish release"
Update Documentation
If using GitHub Pages with MkDocs:
If manually deploying documentation, update the documentation site with:
Post-Release
- Verify the package is available on PyPI: https://pypi.org/project/ride-cli/
- Verify documentation is updated
- Update project roadmap if necessary
- Create new milestone for next version on GitHub (if applicable)
GitHub Release Issues
Problem: Tag already exists
Solution: Delete the existing tag and create a new one
git tag -d v0.3.1
git push origin :refs/tags/v0.3.1
git tag -a v0.3.1 -m "Release v0.3.1"
git push origin v0.3.1
Problem: Upload fails
Solution: Ensure your GitHub token has appropriate permissions
Documentation
For each release, update:
- Installation instructions with new version
- API documentation for changed interfaces
- User guides for new features
- Migration guides for breaking changes
Quick Release Reference
For experienced maintainers, here's a quick reference:
# 1. Update versions:
# - ride/__init__.py
# - setup.py
# - pyproject.toml
# 2. Update CHANGELOG.md
# 3. Commit and tag
git add .
git commit -m "Release v0.3.1"
git tag -a v0.3.1 -m "Release v0.3.1"
# 4. Push
git push origin main
git push origin v0.3.1
# 5. Create GitHub release
git push origin main
git push origin v0.3.1
# 6. Deploy docs
mkdocs gh-deploy --force