Repository navigation
0.35 Release Plan #313
Copy link
Copy link
Closed
Labels
semver bumpIssues that will require a semver-incompatible fixIssues that will require a semver-incompatible fix
Description
Activity
- addedsemver bumpIssues that will require a semver-incompatible fixIssues that will require a semver-incompatible fix
on May 10, 2022 I've now made a prelrease: 0.35.6-beta.2, to facilitate some early testing.
API changes include:
- Most of the API is now behind feature flags. For example, to use
rustix::fs, enable the "fs" feature. io::Erroris renamed toio::Errno.fs::Dirno longer takes anOwnedFd.fs::Dir::read_fromconstructs aDirwithout taking ownership of the passed-in fd, so users that needAsFdshould use a separateOwnedFdto provide it.mmapand related functions have moved torustix::mm- Terminal-related ioctls have been renamed to their termios names and moved to
rustix::termios. ZStrandZStringhave been replaced byCStrandCString.dup2's second argument is now&mut OwnedFd.- io-lifetimes'
as_filelike_viewno longer provides&mutdereferences; to use withFileI/O, do an extra&*on the view. fchownandchownatnow takeOption<Uid>andOption<Gid>instead of publicly special-casing -1.with_retryingis renamed toretry_on_intr
- Most of the API is now behind feature flags. For example, to use
When cap-std is updated, remember to update these TODOs: sunfishcode/cap-std#248 (review)
The I/O safety FCP is now complete. io-lifetimes 0.7.0 is now released and corresponds to the API in std at this point. The next step will be the "Before releasing 0.35" parts from the top comment.
I've now run all the tests, and rebased all the experimental branches. I'll do some additional testing once various open PRs are merged, and then do a 0.35 release.
0.35.6 is now published!
Metadata
Metadata
Assignees
Labels
semver bumpIssues that will require a semver-incompatible fixIssues that will require a semver-incompatible fix
The main branch has several semver-incompatible changes, and a fair amount of overall code churn. Also, rustix has a lot of users that need stability. So here's the plan:
At some point, the I/O safety feature in Rust nightly will hopefully be stabilized. Once that happens, I plan to update io-lifetimes' API to match it, and also to switch to using the types and traits in std instead of its own copies, on Rust versions that support it. That will require a semver bump in io-lifetimes, which will also require a semver bump in rustix, so my plan is to do this in the rustix 0.35 release along with the other semver-incompatible changes, to minimize the number of semver bumps for users.
Before releasing 0.35, I'll also go through the test-users.yml script, figuring out what changes downstream users will need, and adding some of rustix's new users. I'll also do some testing on platforms not covered in CI, including old Linux versions and FreeBSD. This should help ensure stability before the release, and prepare patches to send to downstream users to help them with the API changes once the release is up.