Skip to content

Conversation

@gcamp
Copy link
Member

@gcamp gcamp commented Jul 29, 2025

Summary

This PR improves the GitHub Actions workflows with two key changes:

Updated pull-request.yml workflow:

  • Now reads Python version from .python-version file instead of hardcoding it in the matrix strategy
  • Removes the matrix strategy since we only use one Python version
  • Makes Python version management more centralized and easier to maintain

Added new release.yml workflow:

  • Automatically triggers on pushes to main branch
  • Detects version changes by comparing current pyproject.toml version to the last GitHub release
  • Only deploys when the version has actually changed (handles multiple commits properly)
  • Runs full test suite before deployment
  • Publishes package to PyPI using twine
  • Creates git tags and GitHub releases automatically
  • Requires PYPI_API_TOKEN secret to be configured for PyPI deployment

🤖 Generated with Claude Code

gcamp and others added 5 commits July 29, 2025 14:17
- Replace setup.py with modern pyproject.toml configuration
- Update installation instructions in README.md and CLAUDE.md to use uv sync
- Update GitHub Actions workflow to use uv instead of pip
- Add uv.lock file for reproducible dependency resolution
- Update deployment process to use uv build

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Move pytest and flake8 to development dependencies in pyproject.toml
- Update GitHub Actions to use uv sync --extra dev instead of adding flake8 during CI
- Update installation instructions to include dev dependencies
- Verified package discovery pattern matches actual codebase structure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Create .flake8 config file to exclude .venv, build, dist, and *.egg-info
- Set max-line-length to 127 and max-complexity to 10
- Simplify GitHub Actions workflow to use global config instead of command-line flags
- Remove tool.flake8 from pyproject.toml (flake8 doesn't support this format)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Update pull-request.yml to use .python-version file instead of hardcoded version
- Add release.yml workflow for automatic deployment when version changes:
  - Detects version changes by comparing current version to last GitHub release
  - Runs tests before deployment
  - Publishes to PyPI using twine
  - Creates git tags and GitHub releases automatically

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@gcamp gcamp changed the title Improve GitHub Actions workflows GitHub Actions : python version + deploy workflow Jul 29, 2025
@gcamp gcamp merged commit 5f8d8f4 into main Jul 29, 2025
1 check passed
@gcamp gcamp deleted the feature/better-ci branch July 29, 2025 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants