Skip to content

Tests for S3VersionStore::store_version_from_reader#404

Open
CleanCut wants to merge 15 commits intomainfrom
cleancut/s3-tests
Open

Tests for S3VersionStore::store_version_from_reader#404
CleanCut wants to merge 15 commits intomainfrom
cleancut/s3-tests

Conversation

@CleanCut
Copy link
Copy Markdown
Contributor

@CleanCut CleanCut commented Mar 30, 2026

Note: I won't blame you if you can't find this PR! 🤣 (Look at the PR number)

These tests are in a separate PR from #398 because pulling in s3s as a dev dependency required a newer chrono, which required a newer duckdb, which required a newer arrow. It felt like isolating this in its own PR in case of side effects would be a good idea (and there was one observed side effect that had to be fixed).

We need to get over this hurdle so we can have unit tests for the S3 implementation.

…producer task errors out--otherwise we may attempt to begin or continue uploads after sending abort_multipart_upload, which would be weird
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 30, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 020af1db-e59d-4dd1-b5d5-31fe2941723b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cleancut/s3-tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Collaborator

@malcolmgreaves malcolmgreaves left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great PR w/ 1 requested change! Easy to follow. Great test cases and excellent in-line documentation. One requested change before merging -- please use workspace versions for hyper, hyper-util, s3s, and s3s-fs.

…3 without multipart upload shenanigans" because it fails at runtime without a size

This reverts commit 7690d04.
…t; use file size to determine part size for multipart uploads for files > 100MB
@CleanCut CleanCut force-pushed the cleancut/s3-tests branch from 1ac0ab1 to 58091e1 Compare April 1, 2026 15:46
@CleanCut CleanCut force-pushed the cleancut/s3-tests branch from 6cc41e0 to f2c6737 Compare April 1, 2026 17:13
CleanCut added a commit that referenced this pull request Apr 1, 2026
I'm tackling the S3 implementation one method at a time, and there's
many more methods to go, so it will be a bit until we get into a state
where we can actually try it out. But I have unit tests [in a separate
PR](#404) (since they required some
hefty dependency updates).

- Implement the S3VersionStore::store_version_from_reader
- Now requires specifying the file size up front, which all callers can
easily do.
  - Uploads files <= 100MB in one shot (as per AWS recommendations)
- Determines a file part size dynamically based on the file size for
files > 100MB
  - Does not write to disk
  - Uploads up to 16 file parts concurrently
  - Cancels the multipart upload if anything goes wrong.
- Add a new `OxenError::AwsS3Error` variant.
- Updated the aws crates
- Added instructions for claude to stop creating functions for random
tiny bits of code just to call them exactly once and to stop deleting
relevant comments🤞🏻

---------

Co-authored-by: Malcolm Greaves <malcolmgreaves@users.noreply.github.com>
Base automatically changed from cleancut/implement-s3-store-version-from-reader to main April 1, 2026 17:45
@CleanCut CleanCut enabled auto-merge (squash) April 1, 2026 18:01
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