Skip to content
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

Add committing to stateful test actions #466

Merged
merged 31 commits into from
Dec 27, 2024
Merged

Add committing to stateful test actions #466

merged 31 commits into from
Dec 27, 2024

Conversation

dcherian
Copy link
Contributor

@dcherian dcherian commented Dec 10, 2024

xref #445

Fixes another bug found by hypothesis, if the same path is in the snapshot, then deleted, then recreated we list both old and new chunk paths

@dcherian dcherian requested a review from paraseba December 10, 2024 21:02
@@ -193,7 +193,7 @@ async def test_icechunk_can_read_old_repo():
]
assert sorted(
[p async for p in store.list_dir("group2/group3/group4/group5/inner")]
) == ["c", "zarr.json"]
) == ["zarr.json"]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this test never wrote a chunk, so c should not have been created.

Copy link
Collaborator

Choose a reason for hiding this comment

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

There is some weird behavior in here i think ... sometimes i need it sometimes i don't?

@dcherian dcherian force-pushed the update-stateful-test branch from 46f2427 to 40b559e Compare December 12, 2024 23:16
The "Unbounded" upper bound of the range query could return chunk
coordinates for nodes that were not requested if there were arrays with
NodeId > requested NodeId.

This affected `list_prefix`, unclear if it affects anything else.
@dcherian dcherian force-pushed the update-stateful-test branch from 3c27994 to e121a83 Compare December 12, 2024 23:33
None
}
self.last_key = Some(k.clone());
Some((coord.clone(), payload.clone()))
Copy link
Contributor Author

Choose a reason for hiding this comment

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

With the take_while approach, we would return ChunkInfo here and unpack it up in verified_node_chunk_iterator. Worth it?

@dcherian dcherian marked this pull request as ready for review December 12, 2024 23:40
* main:
  API Refactor (#470)
  Virtual chunks design document (#436)
@dcherian dcherian force-pushed the update-stateful-test branch from 3e93f55 to a10e57f Compare December 17, 2024 21:30
* main:
  Repository config overriding (#481)
  Update version control notebook (fixes doc build) (#480)
  Update documentation for new API and rename `writeable_session` to `writable_session` (#479)
@dcherian dcherian force-pushed the update-stateful-test branch from 8470c6a to cda8c36 Compare December 18, 2024 21:28
@dcherian dcherian force-pushed the update-stateful-test branch from 3e66789 to bd937b1 Compare December 18, 2024 23:44
* main:
  Add design doc for rebase and commit python api improvements (#483)
  Python config design doc (#488)
  Python learns to rebase and report conflicts (#485)
@@ -75,45 +75,39 @@ impl ChangeSet {
self.new_arrays.get(path)
}

/// IMPORTANT: This method does not delete children. The caller
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think this is the cleanest solution. Session.delete_group already builds a list of nodes to delete. We could filter those to not be children of any groups added in this session (and may some other similarly complex predicate), or we can just not delete children ...

@dcherian dcherian requested a review from paraseba December 20, 2024 22:21
* main:
  Bring 'test_can_read_old' test back to life (#511)
  Join `RepositoryConfig` and `StoreConfig` (#507)
  Bump jinja2 in /docs in the pip group across 1 directory (#509)
  Python can now set checksums for virtual chunk refs (#508)
  Virtual chunk location inspection (#504)
  Canonicalize local fs object store (#501)
  Python library learns how to use virtual chunk containers (#502)
  [python] Add conflicted chunk report out on `RebaseFailedError` (#495)
  Refactor how we initialize and configure storage and repos (#497)
  Refine Ref APIs on Repository (#499)
@dcherian dcherian merged commit 2b1a1b3 into main Dec 27, 2024
4 checks passed
@dcherian dcherian deleted the update-stateful-test branch December 27, 2024 22:09
dcherian added a commit that referenced this pull request Jan 2, 2025
* main: (22 commits)
  Re-implement `list_dir` (#528)
  Fix rust library release action (#531)
  0.1.0-alpha.8 release preparation (#530)
  Add docstrings (#529)
  Update dask_write.py to the new API (#527)
  Add support for Google Cloud Storage (#503)
  Fix s3 prefix issue (#525)
  Fix reset_branch op in stateful test (#521)
  Implement credentials refresh (#517)
  Add stateful testing for version control ops (#453)
  Create specific credential types for each object store (#512)
  Add committing to stateful test actions (#466)
  Bring 'test_can_read_old' test back to life (#511)
  Join `RepositoryConfig` and `StoreConfig` (#507)
  Bump jinja2 in /docs in the pip group across 1 directory (#509)
  Python can now set checksums for virtual chunk refs (#508)
  Virtual chunk location inspection (#504)
  Canonicalize local fs object store (#501)
  Python library learns how to use virtual chunk containers (#502)
  [python] Add conflicted chunk report out on `RebaseFailedError` (#495)
  ...
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