This document provides a complete summary of the release infrastructure that has been set up for PyPSA-China (PIK) version 1.3.2.
-
CHANGELOG.md - Tracks all changes across versions
- Follows Keep a Changelog format
- Organized by version with dated releases
- Categories: Added, Changed, Deprecated, Removed, Fixed, Security
-
CITATION.cff - Machine-readable citation file
- GitHub-recognized citation format
- Includes software citation and related papers
- Enables "Cite this repository" feature on GitHub
-
CITATION.md - Human-readable citation guide
- BibTeX entries for software and related papers
- Instructions for proper citation
-
CONTRIBUTING.md - Contributor guidelines
- Development workflow
- Coding standards
- Testing requirements
- Release process overview
-
.github/workflows/docs.yml - Updated documentation deployment
- Uses
mikefor versioned documentation - Automatically deploys on push to main
- Maintains
devandlatestversions
- Uses
-
.github/workflows/release.yml - Automated release workflow
- Triggered by version tags (v*..)
- Creates GitHub releases automatically
- Extracts release notes from CHANGELOG.md
- Deploys versioned documentation
-
.github/workflows/create-tag.yml - Tag creation workflow
- Manual workflow for creating release tags
- Validates version format
- Checks version consistency
- Verifies CHANGELOG entry exists
-
.github/PULL_REQUEST_TEMPLATE.md - PR template
- Ensures comprehensive PR descriptions
- Checklist for contributors
-
.github/ISSUE_TEMPLATE/bug_report.md - Bug report template
- Structured bug reporting
- Environment information capture
-
.github/ISSUE_TEMPLATE/feature_request.md - Feature request template
- Structured feature proposals
- Use case documentation
-
docs/releases.md - Release information page
- Version history
- Installation instructions for specific versions
- Upgrade guide
-
docs/release-guide.md - Maintainer's release guide
- Step-by-step release process
- Pre-release checklist
- Troubleshooting guide
-
README.md - Updated with badges and links
- Release badges
- Quick links to documentation
- Improved structure
Users can:
- View versioned documentation at https://pik-piam.github.io/PyPSA-China-PIK/
- Select specific versions using the version selector
- Download specific releases from GitHub
- Track changes via CHANGELOG.md
- Cite the software using CITATION.cff or CITATION.md
Contributors should:
- Follow CONTRIBUTING.md guidelines
- Update CHANGELOG.md under
[Unreleased]section - Use PR template when submitting changes
- Follow semantic versioning principles
To create a release:
-
Prepare Release
# Update version in workflow/__init__.py __version__ = "1.3.0" # Update CHANGELOG.md with release date ## [1.3.0] - 2025-12-02
-
Commit Changes
git add workflow/__init__.py CHANGELOG.md git commit -m "chore: prepare release v1.3.0" git push origin main -
Create Tag via GitHub Actions (Recommended)
- Go to Actions → "Create Release Tag"
- Enter version (e.g.,
1.3.0) - Click "Run workflow"
OR manually:
git tag -a v1.3.0 -m "Release version 1.3.0" git push origin v1.3.0 -
Automated Process
- GitHub Release created automatically
- Documentation deployed with version
- Release notes extracted from CHANGELOG
The documentation uses mike for version management:
- latest - Always points to the most recent stable release
- dev - Current development version (main branch)
- vX.Y.Z - Specific version documentation
- Development docs (main branch) deploy as
devandlatest - Release tags deploy as specific version and update
latest - All versions accessible via version selector in docs
The project follows Semantic Versioning 2.0.0:
- MAJOR (X.0.0) - Incompatible API changes
- MINOR (X.Y.0) - New features, backward compatible
- PATCH (X.Y.Z) - Bug fixes, backward compatible
Current version: 1.3.0
README now includes:
- License badge
- Documentation badge
- Release version badge
GitHub's "Cite this repository" feature enabled via CITATION.cff
Structured templates for:
- Bug reports
- Feature requests
- (Can add more as needed)
Standardized PR descriptions with checklist
-
Review and Merge: Review all created files and merge to main branch
-
Create First Tag: Use the create-tag workflow to create v1.3.0
Actions → Create Release Tag → Run workflow Version: 1.3.0 Create Release: Yes -
Verify Deployment:
- Check GitHub release page
- Verify documentation at https://pik-piam.github.io/PyPSA-China-PIK/
- Test version selector
-
Zenodo Integration (Recommended)
- Link repository to Zenodo for DOI generation
- Each release gets automatic DOI
- Update CITATION.md with DOI once available
-
GitHub Pages Configuration
- Ensure gh-pages branch is the source for GitHub Pages
- Verify custom domain if applicable
-
Branch Protection (Recommended)
- Protect main branch
- Require PR reviews
- Require status checks to pass
-
Release Announcement
- Consider posting about the release
- Update external documentation
- Notify users/collaborators
Before the first official release, test:
-
Documentation Build
mkdocs build mkdocs serve
-
Mike Version Management (local)
mike deploy 1.3.0-test --push mike list mike delete 1.3.0-test --push
-
Workflow Validation
- Create a test tag on a branch
- Verify workflows run correctly
- Delete test tag afterwards
- Update CHANGELOG.md with each PR
- Review and update documentation
- Monitor issues and PRs
- Plan releases based on accumulated changes
- Run full test suite
- Update dependencies if needed
- Review open issues for inclusion
- Update documentation
- Prepare release notes
- Keep a Changelog
- Semantic Versioning
- GitHub Actions Documentation
- Mike Documentation
- MkDocs Material
- Citation File Format
For questions about the release process:
- See docs/release-guide.md
- Open a GitHub Discussion
- Contact repository maintainers
Status: Ready for first official release v1.3.0
Created: 2025-12-02
Last Updated: 2025-12-02