feat: implement automated version bumping and PyPI publishing#22
feat: implement automated version bumping and PyPI publishing#22
Conversation
- Add python-semantic-release with patch-only configuration - Create GitHub Actions workflows for PR testing and automated releases - Configure OIDC trusted publishing for PyPI (no API tokens needed) - Update CLAUDE.md with complete automation documentation - All commits now auto-increment patch version (0.1.14 → 0.1.15) - Manual control available for minor/major bumps when needed Resolves #14
- Configure semantic-release to also update README.md version references - Update current README.md version to match current release (0.1.14)
- Mark integration tests with @pytest.mark.integration - Update GitHub Actions to run 'pytest -m "not integration"' - This skips tests that require live authentication to IDTAP server - Unit tests with mocked authentication will still run
- Mark test_trajectory_sequence_patterns, test_duration_and_segmentation, and test_serialization_compatibility as integration tests - These all use SwaraClient() without mocking and pull data from web
- All logout tests trigger auto_login on SwaraClient() initialization - These tests would fail in CI without authentication credentials - Marking as integration tests excludes them from PR workflows
- This test creates SwaraClient() and calls single_query() which requires authentication - Would cause CI to hang at 61% when trying to authenticate to live server
- Add build, twine, and python-semantic-release to workflow installs - These packages are needed for building and publishing to PyPI
- Add continue-on-error to comment step since it's not essential - Everything important works: tests, build, semantic-release, TestPyPI upload - Comment permissions vary based on GitHub token configuration
- Add explicit permissions block to allow PR commenting - Remove continue-on-error since it should now work properly - This allows the workflow to post TestPyPI links as PR comments
|
📦 Test Package Built Successfully! This PR has been automatically built and uploaded to TestPyPI for testing. 🔗 TestPyPI Link: https://test.pypi.org/project/idtap/ To test this version: pip install --index-url https://test.pypi.org/simple/ idtap✅ All tests passed and package builds successfully. |
|
@claude review |
|
Claude finished @jon-myers's task —— View job PR Review: Automated Version Bumping & PyPI PublishingReview Tasks:
GitHub Actions Workflows Analysis ✅
|
|
Claude finished @jon-myers's task —— View job Automated Version Management PR Review ✅This is a well-implemented automated publishing system with excellent attention to security and best practices. The PR successfully addresses issue #14 and provides a robust CI/CD solution. 🔧 Implementation Quality✅ Strong Points:
✅ Workflow Design:
🛠️ Configuration AnalysisSemantic Release Setup (
Test Integration:
🔒 Security AssessmentExcellent security posture:
📝 Documentation QualityThe CLAUDE.md updates are comprehensive and actionable:
|
- Update Python setup action from v4 to v5 (latest version) - Add dependency caching to speed up CI runs by ~30-50% - Add version validation step to ensure __init__.py and pyproject.toml stay in sync - Applied to both test-pr.yml and release.yml workflows
|
📦 Test Package Built Successfully! This PR has been automatically built and uploaded to TestPyPI for testing. 🔗 TestPyPI Link: https://test.pypi.org/project/idtap/ To test this version: pip install --index-url https://test.pypi.org/simple/ idtap✅ All tests passed and package builds successfully. |
Summary
Implements automated version bumping and PyPI publishing to resolve issue #14.
🚀 New Features
🔧 Implementation Details
__init__.py,pyproject.toml,docs/conf.py📋 Required Setup (One-time)
🎛️ Manual Version Control
When you want special version bumps:
Test Plan
Closes #14
🤖 Generated with Claude Code