Summary Base install pulls large cloud SDKs by default. Make heavy dependencies optional and modernize packaging. Proposed changes - Move cloud providers to extras: struct[s3], struct[gcs], struct[cloud]. - Pin compatible dependency versions for reproducibility. - Adopt pyproject.toml (PEP 517/518); keep setup.py as shim if needed. - Update docs/installation.md for extras and pinned installs. Files - requirements.txt -> optional extras in pyproject.toml - setup.py / pyproject.toml - docs/installation.md Acceptance criteria - pip install struct installs a lean base without boto3/GCS by default. - pip install struct[s3] and struct[gcs] enable respective features. - CI builds and tests pass with new packaging.
Activity
feat: implement optional dependencies and modernize packaging (issue #96
feat: implement optional dependencies and modernize packaging (issue #96