-
Notifications
You must be signed in to change notification settings - Fork 28
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
[Draft] Icechunk CLI Design Document #714
base: main
Are you sure you want to change the base?
Conversation
|
||
Here is a list of tasks a user might want to do with Icechunk: | ||
|
||
- List my repositories |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What should this list? Probably all repositories in the repositories config?
It would also be great to be able to point at a location and auto-discover repos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Auto discover would be cool... seems like an advanced feature we may not need for a while.
- Create a new repository | ||
- Check configuration | ||
- Diff between two commits | ||
- Invoke administrative tasks (garbage collection, compaction, etc) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not yet reflected in the current Interface
section. Detailed API is out of scope, but it might be useful to think about this to see if the proposed command structure works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great Daniel!
I suppose we should start with the skeleton, to test the binary parts and the interaction rust-python. I'd peek whatever is the simplest action and implement that one. Maybe initially without the config file parts?
|
||
Here is a list of tasks a user might want to do with Icechunk: | ||
|
||
- List my repositories |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Listing repositories is something Icechunk cannot do today. It can only verify if a repository exists at a given location.
We don't expect to add this functionality, we tend to see anything that is outside the repo prefix as "unknown" to Icechunk.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about listing the repositories defined in the proposed repo config?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
- Create a new repository | ||
- Check configuration | ||
- Diff between two commits | ||
- Invoke administrative tasks (garbage collection, compaction, etc) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd add:
- Print the zarr hierarchy
- Get repo statistics, example:
getsize
- Fetch metadata for a node
- Update node user attributes?
- One day search metadata (IC cannot do this today)
- In the future we could include "export" functionality, like "export array foo to a zarr store"
|
||
Here is a list of tasks a user might want to do with Icechunk: | ||
|
||
- List my repositories |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Auto discover would be cool... seems like an advanced feature we may not need for a while.
icechunk snapshot diff <repo> <snapshot_id_1> <snapshot_id_2> | ||
icechunk ref list <repo> | ||
|
||
icechunk config init # init: interactive setup |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice! interactive could be very usefu
Thanks for the feedback! Here's the skeleton I used when I was exploring the Python integration: #716 |
Icechunk CLI Design Document
Design document for #461
Written as a design document, but this is just a proposal – feel free to disagree and offer alternatives.
TODOs
The configuration section is underdeveloped and the next part I will work on.