Skip to content

Conversation

@httpdss
Copy link
Owner

@httpdss httpdss commented Oct 25, 2025

Description

Implements optional dependencies and modernizes packaging for the project.

Closes #96

Changes

  • Implement optional dependencies
  • Modernize packaging configuration

Type of change

  • New feature
  • Enhancement

)

- 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
Copy link

codecov bot commented Oct 25, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.70%. Comparing base (3a7450f) to head (5110805).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@httpdss httpdss requested a review from Copilot October 25, 2025 23:38
Copy link

Copilot AI left a 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.py to pyproject.toml with 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

@httpdss httpdss requested a review from Copilot October 27, 2025 01:20
Copy link

Copilot AI left a 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.

Comment on lines +44 to +45
build:
needs: update-version
Copy link

Copilot AI Oct 27, 2025

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.

Copilot uses AI. Check for mistakes.

steps:
- uses: actions/checkout@v5

Copy link

Copilot AI Oct 27, 2025

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.

Suggested change
with:
ref: main

Copilot uses AI. Check for mistakes.
@httpdss httpdss merged commit 890bbe0 into main Oct 27, 2025
5 checks passed
@httpdss httpdss deleted the feature/issue-96-optional-dependencies branch October 27, 2025 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Packaging and optional dependencies

2 participants