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

maintenance consensus issue tracker #379

Open
cgwalters opened this issue Sep 25, 2024 · 3 comments
Open

maintenance consensus issue tracker #379

cgwalters opened this issue Sep 25, 2024 · 3 comments

Comments

@cgwalters
Copy link
Collaborator

In #375 (comment) Alex is currently planning to invite me (done) and @xzfc as maintainers.

Let's try to get some rough consensus here for our goals for this crate and set expectations for people.

For me things are pretty easy to say: I work on OCI containers and tar is pretty central there. The ecosystem is heavily Go oriented but I am also trying to increase the use of Rust there, somewhat successfully. (For example, https://github.com/microsoft/rpmoci is a relatively new project I came across that uses this crate along with another I maintain).

From my PoV the crate mostly works as is, and I don't need substantial new features, just occasional API conveniences.

So specifically for example, #355 is a change that's beyond my review/maintenance bandwidth and I am inclined to reject.

In fact more generally, something on my mind is to try to split off some of the API types and helper functions into something like a "tar-core" that would operate more sans-io style. For multiple reasons my consuming code ends up doing more custom and sophisticated things than just mapping a tar directly to/from a filesystem, so I don't really use the high level APIs here like unpack_in etc.
Also a sans-io crate would allow sharing code with https://docs.rs/async-tar/latest/async_tar/ - and today I actually do tar processing in a tokio::task::spawn_blocking

In other words to sum things up: I want a crate for tar that has a solid collaborative maintenance but to be generally conservative about features we add and has a strong code review/testing and rough consensus approach. In fact I would go so far as to say that merging a big nontrivial PR here would require a review from two maintainers (exactly like 365 above).

@alexcrichton is that all OK with you?

If @xzfc accepts being a maintainer too I'd like them to write up something similar here and then we can add it to the README.md and set clear expectations for future contributors.

@alexcrichton
Copy link
Owner

Sounds reasonable to me 👍. Although I wouldn't necesarily reject PRs like #355 outright, but more leave a comment saying "sorry but at this time the review bandwidth isn't here for this" or similar.

@NobodyXu
Copy link

NobodyXu commented Sep 26, 2024

Also a sans-io crate would allow sharing code with https://docs.rs/async-tar/latest/async_tar/ - and today I actually do tar processing in a tokio::task::spawn_blocking

I would really want to see that happen.

cargo-binstall currently has to use both a fork of tar and async-tar, because async-tar does not support parsing tarball with sparse entries.

We also have a fork of tar because the sparse entries wasn't merged.

Having a sans-io crate would enable us to use one tar implementation within cargo-binstall, and remove the spawn_blocking/block_in_place for better ergonomic.

@cgwalters
Copy link
Collaborator Author

We also have a fork of tar because the sparse entries wasn't merged.

#375 was merged btw.

Also re-ping @xzfc can you outline your vision/goals here?

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

No branches or pull requests

3 participants