-
Notifications
You must be signed in to change notification settings - Fork 0
docs: add versioning and release process documentation #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add comprehensive RELEASING.md documenting: - Version storage in __init__.py and pyproject.toml - Semantic versioning guidelines - Complete release process with git tags - Release checklist and common tasks Update CONTRIBUTING.md and CLAUDE.md to reference new release docs.
Code Review - PR #24Thanks for adding comprehensive release documentation! This is a valuable addition that will help maintain consistency in the release process. Here's my review: ✅ Strengths
🔍 Observations & Suggestions1. Version Sync Automation OpportunityThe document correctly identifies that versions must be kept in sync manually. Consider adding a simple validation script or CI check to prevent drift. This could be added to the existing CI workflow to catch mismatches early. 2. CI Integration for Version ChecksRELEASING.md mentions verifying the version command works, but this isn't automated. Consider adding a version consistency check to 3. Minor Documentation Clarifications
4. Test Coverage SuggestionThe PR description mentions manually verifying 5. Release AutomationThe manual tag creation process is well documented. Worth mentioning tools like 🔒 SecurityNo security concerns - this is documentation only. 🎯 Minor Issues
✅ RecommendationAPPROVE - This is a solid documentation PR that adds significant value. The suggestions above are enhancements for the future, not blockers. The documentation is clear, comprehensive, and follows good practices. The manual version management is acceptable for now, but automation would be valuable as the project matures. Priority of suggestions:
Great work documenting the release process! 🎉 |
BREAKING CHANGE: Project now requires Python 3.13 (was >=3.12) ## Semantic Release Integration - Add python-semantic-release for automated versioning - Create GitHub Actions workflow for automated releases - Configure conventional commit parsing for version bumping - Add CHANGELOG.md with Keep a Changelog format - Integrate semantic-release with pyproject.toml ## Version Validation - Add scripts/check_version.py to validate version consistency - Use tomllib for robust TOML parsing (Python 3.13 stdlib) - Add version-check job to CI workflow - Create comprehensive tests for version validation ## Python 3.13 Standardization - Update requires-python to >=3.13 - Remove Python 3.12 from classifiers - Update all CI/CD workflows to Python 3.13 - Remove version matrix (was testing 3.12 and 3.13) - Update all documentation to reference Python 3.13 - Update all template files to default to Python 3.13 - Update all test fixtures to use Python 3.13 ## Documentation - Expand RELEASING.md with conventional commits guide - Document automated release workflow - Add versioning section to CLAUDE.md - Update CONTRIBUTING.md with Python 3.13 requirement - Add CHANGELOG.md reference to all documentation ## Code Review Fixes - Add explicit persist-credentials to release workflow - Use tomllib instead of regex for TOML parsing - Make CI version-check job consistent with other jobs (use uv) - Fix test assertions to avoid hardcoded version strings
Pull Request Review: docs: add versioning and release process documentationOverviewThis PR adds comprehensive versioning and release automation infrastructure. The changes are well-structured and follow the project's conventions. Overall, this is a high-quality contribution that significantly improves the project's release workflow. ✅ Strengths1. Excellent Documentation
2. Automated Version Validation
3. Code Quality
4. CI/CD Improvements
🔍 Issues & RecommendationsCritical Issues1. Inconsistent Python Invocation in CI
|
- Use consistent Python invocation (uv run python) in release workflow - Remove template_dir config that referenced wrong templates directory - Add explicit UTF-8 encoding to file read operations for cross-platform safety - Add 7 comprehensive unit tests for version check functions These changes improve consistency, robustness, and test coverage based on code review feedback.
Pull Request ReviewSummaryThis PR adds comprehensive release automation and version management infrastructure to the project. The changes are well-structured and follow best practices. I've identified a few minor issues and suggestions for improvement. ✅ StrengthsDocumentation Quality
Code Quality
Test Coverage
CI/CD Integration
🔍 Issues & Suggestions1. BREAKING CHANGE: Python 3.13 RequirementSeverity: High The second commit contains a breaking change that drops Python 3.12 support, but this is buried in the commit body. This should be more prominently communicated. Recommendation:
2. Missing Error Handling in Release WorkflowSeverity: Medium In .github/workflows/release.yml, the semantic-release commands run sequentially without explicit error checking. The default bash behavior in GitHub Actions is to exit on error, so this should work, but consider making it explicit or separating into multiple steps for clearer failure reporting. 3. Semantic Release Configuration CompletenessSeverity: Low The semantic_release.changelog.environment section in pyproject.toml (lines 148-160) contains default Jinja2 template settings that appear to be redundant. Recommendation:
4. Version Check Script Path AssumptionSeverity: Low In scripts/check_version.py, the script assumes it is always in scripts/ directory. Consider using git rev-parse or making the paths configurable via CLI arguments for more robustness, though the current approach is acceptable for a project-internal script. 5. Test Fragility - Hardcoded Version ExtractionSeverity: Low In tests/unit/test_version_check.py:33-79, the test creates its own version extraction logic rather than importing the functions from the script. Lines 11-13 show that functions ARE imported for unit tests (lines 113-195), which is the right approach. Recommendation: 6. CHANGELOG.md Initial ContentSeverity: Low The CHANGELOG contains manual entries for Unreleased and 0.1.0. If semantic-release regenerates this file, manual entries may be lost. Recommendation:
7. Missing Dependencies ValidationSeverity: Low The release workflow doesn't verify that semantic-release is actually installed before running. The all-extras flag in uv sync should include it (already in pyproject.toml), so this is likely fine. 📋 Checklist ReviewBased on the PR description checklist - all items completed. Suggest adding:
🎯 RecommendationsBefore Merge:
Nice to Have (Post-Merge):
🔒 SecurityNo security concerns identified. The workflow uses appropriate permissions, GITHUB_TOKEN, and has persist-credentials explicitly set. 🎨 Code StyleAll changes follow the project conventions with type hints, Google-style docstrings, ruff formatting, mypy strict checks, and UTF-8 encoding. Final RecommendationAPPROVE with minor suggestions This is a solid implementation of release automation. The identified issues are minor and most are optional improvements. The breaking change for Python 3.13 is the only item that needs explicit confirmation before merge. Great work on the comprehensive documentation and test coverage! 🚀 Reviewed using repository guidelines from CLAUDE.md |
Pull Request ReviewThank you for this comprehensive documentation PR! This adds valuable release process documentation and automation. Overall this is well-structured and thorough. Below are my findings organized by category. ✅ Strengths
🔴 Critical Issues1. Release Workflow Permissions IssueLocation: .github/workflows/release.yml:14-16 permissions:
contents: write
issues: write
pull-requests: writeProblem: Missing Recommendation: permissions:
contents: write
issues: write
pull-requests: write
id-token: write # For PyPI trusted publishing2. Git Configuration Uses Bot Account Without Clear Token StrategyLocation: .github/workflows/release.yml:44-46 The workflow uses Recommendation: Add a note in RELEASING.md about token permissions and why default GITHUB_TOKEN is sufficient (or if a PAT is needed for triggering subsequent workflows). 3. Version Consistency Check Runs After PublishLocation: .github/workflows/release.yml:55-57 - name: Verify version consistency
if: success()
run: uv run python scripts/check_version.pyProblem: If version check fails AFTER publishing, you've already created the release. This should run BEFORE publishing. Fix: - name: Verify version consistency
run: uv run python scripts/check_version.py
- name: Run semantic-release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
uv run semantic-release version --print
uv run semantic-release publish
|
Pull Request Review: Release Process DocumentationSummaryThis PR adds comprehensive release process documentation and automated versioning via python-semantic-release. The implementation is well-structured and follows best practices. Strengths
Critical Issues1. Release Workflow Configuration Issue (.github/workflows/release.yml:52-53)Running 'version --print' before 'publish' may cause problems. The --print flag is a dry-run. Recommend using just 'semantic-release publish' which handles both versioning and publishing. 2. CHANGELOG Date ErrorCHANGELOG.md:18 shows 2024-12-22 but should be 2025-12-22. RecommendationsSecurityRelease workflow grants broad permissions (contents, issues, pull-requests write). Consider reducing to just contents:write unless semantic-release needs the others. Code Organizationtests/unit/test_version_check.py uses sys.path manipulation which is fragile. Consider moving scripts/check_version.py to src/agentspaces/ as a proper module. Python Version Supportpyproject.toml now requires Python >=3.13 only. Is dropping 3.12 support intentional? Most packages support a range during transitions. Test MatrixCI workflow removed Python version matrix testing. Fine if only supporting 3.13, but document this decision. Minor Improvements
Security ReviewNo security concerns identified. Script only reads files, no injection vulnerabilities, proper subprocess usage, official GitHub Actions. Test CoverageExcellent coverage of version validation, unit tests, edge cases (missing files, invalid TOML, mismatches). Overall AssessmentRecommendation: Approve with minor fixes High-quality work that significantly improves the release process. Priority fixes:
Great work on the comprehensive documentation and automation! |
Summary
__init__.pyandpyproject.tomlTest plan
agentspaces --versiondisplays correct version--versionand-V)