diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 484f711a..37af3cef 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -10,7 +10,7 @@ jobs: name: Build & push docker image runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: 'Login to GitHub Container Registry' uses: docker/login-action@v1 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cb7a053b..a8ce40ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,13 +7,13 @@ on: jobs: build_dist: name: Build distribution on Ubuntu - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-python@v3 + - uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' - name: Install build dependencies run: python -m pip install --no-cache-dir -U setuptools build @@ -28,7 +28,7 @@ jobs: upload_dist: needs: [ build_dist ] name: Upload distribution to PyPI - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 if: github.event_name == 'release' && github.event.action == 'published' steps: - uses: actions/download-artifact@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index de9616ed..f970319d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,13 +5,13 @@ on: [push, pull_request] jobs: run_tests: name: Run tests - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-python@v3 + - uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.10' cache: 'pip' - name: Install dependencies diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e7d95b1..32129d27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +[2.9.3] - 2025-05-09 + +### Changed + +- `stream_io.open_stream()` now defaults to authenticating with signature + version 4 rather than signature version 2 when no `s3_signature_version` + is specified for reads from most object storage endpoints + [2.9.2] - 2025-02-20 ### Fixed @@ -416,6 +424,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `get_gpu_name` - `no_init_or_tensor` +[2.9.3]: https://github.com/coreweave/tensorizer/compare/v2.9.2...v2.9.3 [2.9.2]: https://github.com/coreweave/tensorizer/compare/v2.9.1...v2.9.2 [2.9.1]: https://github.com/coreweave/tensorizer/compare/v2.9.0...v2.9.1 [2.9.0]: https://github.com/coreweave/tensorizer/compare/v2.8.1...v2.9.0 diff --git a/tensorizer/_version.py b/tensorizer/_version.py index 4f1e6b1b..a78f213c 100644 --- a/tensorizer/_version.py +++ b/tensorizer/_version.py @@ -1 +1 @@ -__version__ = "2.9.2" +__version__ = "2.9.3" diff --git a/tensorizer/stream_io.py b/tensorizer/stream_io.py index 81deb6cf..1ae291ed 100644 --- a/tensorizer/stream_io.py +++ b/tensorizer/stream_io.py @@ -978,8 +978,9 @@ def _s3_download_url( s3_signature_version: Optional[str] = None, ) -> str: bucket, key = _parse_s3_uri(path_uri) - # v2 signature is important to easily align the presigned URL expiry - # times. This allows multiple clients to generate the exact same + # v2 signature is important with accel-object + # to easily align the presigned URL expiry times. + # This allows multiple clients to generate the exact same # presigned URL, and get hits on a HTTP caching proxy. # # why v2 signature? @@ -989,7 +990,8 @@ def _s3_download_url( # See upstream bug https://github.com/boto/botocore/issues/2230 # if not s3_signature_version: - s3_signature_version = "s3" + is_accel: bool = "accel-object" in s3_endpoint.lower().split(".") + s3_signature_version = "s3" if is_accel else "v4" client = _new_s3_client( s3_access_key_id, s3_secret_access_key,