Changelog Reference¶
This document provides information about the Zaojun changelog, including how to read it, versioning scheme, and how changes are documented.
Changelog Location¶
The official Zaojun changelog is available at:
- CHANGELOG.md in the repository
- Included in each release on PyPI
- Displayed with zaojun --version (shows current version)
Versioning Scheme¶
Zaojun uses Semantic Versioning (SemVer) with the format:
Where: - MAJOR: Incremented for incompatible API changes - MINOR: Incremented for backwards-compatible functionality additions - PATCH: Incremented for backwards-compatible bug fixes
Examples:¶
1.0.0: Initial stable release1.1.0: Added new features in a backwards-compatible manner2.0.0: Made breaking changes to the API
Why SemVer?¶
- Clear communication about the nature of changes
- Helps users understand compatibility implications
- Standardized across the Python ecosystem
- Facilitates dependency management
Changelog Format¶
The changelog is a simple chronological list of commits for each release:
Structure¶
# Changelog
## [Unreleased]
- Changes not yet released
## [Version] — YYYY-MM-DD
- Commit message with git hash reference [abc1234]
- Another commit message [def5678]
Entry Format¶
Each changelog entry includes: - Version number - Release date in YYYY-MM-DD format - List of commit messages with their git hash references
Example:
## `0.9.8` — [2026-02-14]
- Update dependencies versions. [c34d869]
## `0.9.7` — [2026-01-24]
- Update dependencies versions. [bf6b4c1]
Reading the Changelog¶
For Users¶
- Check current version:
zaojun --version - Review recent changes: Look at the latest entries
- See what changed: Read commit messages to understand updates
- Find specific changes: Use git hash references to locate commits
For Developers¶
- Track changes: Read commit messages to understand modifications
- Link to code: Use git hash references to view specific commits
- Understand context: Commit messages provide context for changes
- Review history: See chronological progression of the project
Simple Commit-Based Format¶
The Zaojun changelog uses a straightforward commit-based format where each release entry contains:
- Version number with date
- List of commit messages from that release
- Git commit hash references in brackets
This format provides: - Direct link to the actual code changes - Clear chronological progression - Easy tracking of specific changes - Minimal maintenance overhead
Benefits of This Approach¶
- Transparency: Each change is directly linked to its commit
- Simplicity: No need to categorize or rewrite commit messages
- Accuracy: Commit messages remain unchanged and authentic
- Efficiency: Automated generation is straightforward
Dependency Updates¶
Dependency updates are tracked separately:
Security Updates¶
- Marked with vulnerability references (e.g., GHSA-xxxx-xxxx)
- Include transient dependency fixes
- Critical updates highlighted
Regular Updates¶
- Routine dependency maintenance
- Compatibility updates
- Performance improvements
How Changes Are Managed¶
Zaojun uses uv-ship for automated changelog management:
- Commit changes: Make commits with clear, descriptive messages
- Create release:
uv-shipautomatically updates CHANGELOG.md with commit messages - Review changelog: Verify automatic updates are correct
- Publish: Release is published to PyPI
Release Process¶
- Update version in
pyproject.toml - Create release with
uv-ship(automatically updates CHANGELOG.md) - Publish to PyPI
Finding Specific Changes¶
By Version¶
By Feature¶
By Date¶
Migration Guides¶
For significant changes, migration information is included:
Breaking Changes¶
- Clear upgrade instructions
- Backward compatibility notes
- Migration steps
Deprecation Periods¶
- Timeline for removal
- Alternatives suggested
- Upgrade paths
Security Advisories¶
Security-related changes include:
Vulnerability References¶
- GitHub Security Advisory IDs (GHSA-xxxx-xxxx)
- CVE references when available
- Impact assessment
Update Recommendations¶
- Urgency level
- Update instructions
- Workarounds if available
Related Documentation¶
Current Version¶
- Always check your current version first
- Compare with latest release
Upgrade Instructions¶
- Follow recommended upgrade paths
- Test in development first
Support Timeline¶
- No formal LTS releases
- Regular maintenance updates
- Security fixes as needed
Getting Update Notifications¶
PyPI¶
- Watch package on PyPI
- RSS feed for releases
Codeberg¶
- Watch repository
- Release notifications
Command Line¶
Contributing to Changelog¶
When contributing to Zaojun:
- Write clear commit messages - these become changelog entries
- Use descriptive summaries - explain what changed and why
- Reference issues/PRs when relevant in commit messages
- Group related changes in logical commits
Examples¶
Simple Update¶
Feature Release¶
## `0.9.7` — [2026-01-24]
### Added
- Support for dependency groups with `--groups` flag. [abc123]
### Fixed
- Handle network errors more gracefully. [def456]
Security Release¶
## `0.9.6` — [2026-01-10]
### Security
- Address vulnerability in transient dependency `urllib3` (GHSA-xxxx-xxxx). [ghi789]
Questions?¶
If you have questions about the changelog: - Check the repository issues - Review the contributing guidelines - Contact maintainers through Codeberg
See Also¶
- Installation - How to install/upgrade
- Command Reference - CLI documentation
- Contributing - How to contribute changes