-
-
Notifications
You must be signed in to change notification settings - Fork 2
feat: implement optional dependencies and modernize packaging (issue #96) #119
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
) - Create pyproject.toml with PEP 517/518 support - Move cloud providers (boto3, google-cloud) to optional extras - Add extras: s3, gcs, cloud, dev - Pin dependency versions for reproducibility - Modernize setup.py to PEP 517 shim - Update requirements.txt with version constraints and installation instructions - Add GitHub Actions workflow for building and publishing to PyPI - All 114 tests pass with new packaging configuration
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #119 +/- ##
=======================================
Coverage 68.70% 68.70%
=======================================
Files 20 20
Lines 1553 1553
Branches 279 279
=======================================
Hits 1067 1067
+ Misses 411 410 -1
- Partials 75 76 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR modernizes the Python packaging configuration by migrating from setup.py to a declarative pyproject.toml configuration (PEP 517/518), implements optional dependencies for cloud storage providers (S3, GCS), and adds a GitHub Actions workflow for automated PyPI publishing.
Key Changes
- Migrated packaging configuration from
setup.pytopyproject.tomlwith modern declarative format - Added optional dependency groups for S3, GCS, cloud providers, and development tools
- Implemented automated PyPI publishing workflow with build artifact management
Reviewed Changes
Copilot reviewed 3 out of 6 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| setup.py | Replaced with minimal backwards-compatibility shim that delegates to pyproject.toml |
| pyproject.toml | New declarative packaging configuration with build system requirements, project metadata, dependencies, and optional dependency groups |
| .github/workflows/publish-pypi.yml | New GitHub Actions workflow for building and publishing packages to PyPI on releases |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 3 out of 5 changed files in this pull request and generated 2 comments.
| build: | ||
| needs: update-version |
Copilot
AI
Oct 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 'build' job has an unconditional dependency on 'update-version', but 'update-version' only runs when 'github.event_name == release'. For workflow_dispatch events, the 'build' job will be skipped because its dependency never runs. Either make the 'needs' conditional or ensure 'update-version' runs for both event types.
|
|
||
| steps: | ||
| - uses: actions/checkout@v5 | ||
|
|
Copilot
AI
Oct 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 'build' job checks out code without specifying a ref, which means it will checkout the default branch state before the version update committed in the 'update-version' job. Add 'ref: main' to ensure the updated pyproject.toml is used for the build.
| with: | |
| ref: main |
Description
Implements optional dependencies and modernizes packaging for the project.
Closes #96
Changes
Type of change