Repository navigation
1.0 release planning #753
Copy link
Copy link
Closed
Labels
semver bumpIssues that will require a semver-incompatible fixIssues that will require a semver-incompatible fix
Description
Here's a planning issue for a 1.0 release, similar to the one for the 0.38 release. Hopefully we won't need a semver bump for a good long while, but when we do, here's the list of changes we can make:
- Remove the deprecated mount functions in the
fsmodule (details) - Make the underlying type of
rustix::fs::Accessconsistent between linux_raw and libc backends (Port 1.0-staging to main #1152) - Rename
mount_recursive_bindtomount_bind_recursive? Factor out a new top-levelmountmodule. #763 (comment) (Renamemount_recursive_bindtomount_bind_recursive. #1273) - Change
SeekFrom::HoleandSeekFrom::Data's field fromi64tou64. (Make the offsets forSeekFrom'sHoleandDataunsigned. #1266) - rename
Shutdown::ReadWritetoShutdown::Bothto align with std (RenameShutdown::ReadWritetoShutdown::Both. #1264) - remove the
features = ["extra_traits"]from the libc dependency (Remove the "libc-extra-traits" feature. #1168) - move (or perhaps alias?)
sched_yieldand othersched_*functions fromprocesstothread, since they apply to threads rather than processes on Linux etc. (Movesched_*andmembarrier_*intorustix::thread. #1265) -
stx_mtimeand similar members ofStatxshould bei64, because Unix timestamps can be negative. -
futex's first argument should beAtomic - Remove
get_from sockopt getters, following Rust convention. Consider removingget_in other things too. (Rename sockopts getters to remove the "get_". #1269) - The
udataargument torustix::event::kqueue::Event::newshould be a pointer instead of anisizein order to better preserve provenance. (Make APIs preserve strict provenance. #1270) - The
stx_attributes_maskfield ofStatxwith flags likelibc::STATX_ATTR_MOUNT_ROOTshould ideally be a bitflags, which requires makingStatxa custom type (which should match layout withlibc::statx). (Reorganize Stat, Statx, and SockaddrStorage #1282) - Rename
get_*functions (eg. sockopts) to remove theget_prefix, which is more idiomatic Rust? - Rename
MountPropagationFlags::SLAVE(Rename a flag inMountPropagationFlags. #1169) - Rename some of
WaitidOptions,WaitidStatus, and/orWaitIdto make the capitalization ofIdconsistent (RenameWaidid*toWaidId*, for consistency withWaitId. #1267) - Remove the
inotify_prefixes from things in thefs::inotifymodule. - Remove the
shm_andShmprefixes from things in theshmmodule. - Figure out a way to do a
recvinto an uninitialized buffer with theTRUNCflag set (see Fixrecv_uninitto handle theTRUNCflag. #1159) (Report the number of received bytes inrecv_uninitandrecvfrom_uninit. #1278) - remove rustix::procfs and publish rustix-linux-procfs as the replacement (Remove procfs. #1275)
- remove linux-raw-sys from the public API (Port 1.0-staging to main #1152) (Remove most linux-raw-sys types from the public API #1277) (Reorganize Stat, Statx, and SockaddrStorage #1282)
- change
io_uring_register_files_skipfrom aconst fnto a constant. (Replace theio_uring_register_files_skipfunction with a constant. #1268)
Deferring for now:
- move rustix::thread sleep functions into a new rustix::sleep module, because they're usable from single-threaded programs too
- Move
Dirinto its own crate, and have rustix exportgetdentsdirectly? - Split
openandopenatinto separate functions for "create" which needs a mode vs. "open existing" which doesn't need a mode? - Make
RecvAncillaryBuffer::drainalways remove all messages, even if the iterator isn't exhausted. With that, we can remove theread_and_lengthinAncillaryDrain. - Replace
rustix::cstr!with something likerustix::nativestr!so that users don't hard code "native strings are C strings" in their code? - rename
Arg::as_strto avoid "a method with this name may be added to the standard library in the future" warnings rustix::process::waitpidhas no way to wait for specific process groups (Pidnow requires non-negative values).waitpgidhas been added as a temporary workaround.- remove libc from the public API (Port 1.0-staging to main #1152) (Remove most linux-raw-sys types from the public API #1277)
Don't do these:
set_ip_add_membership/get_ip_add_membershipshould takeaddressandifindexarguments and*_with_ifindexshould be removed.- Rename
ClockId::Uptimeon FreeBSD toBoottime, since it's an alias
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
semver bumpIssues that will require a semver-incompatible fixIssues that will require a semver-incompatible fix
Activity
notgull commentedon Aug 6, 2023
sunfishcode commentedon Oct 1, 2023
[-]0.39 release planning[/-][+]1.0 release planning[/+]sunfishcode commentedon Oct 22, 2023
notgull commentedon Oct 22, 2023
sunfishcode commentedon Oct 22, 2023
SUPERCILEX commentedon Dec 5, 2023
rosymati commentedon Dec 5, 2023
sunfishcode commentedon Jan 16, 2024
SUPERCILEX commentedon Feb 16, 2024
SUPERCILEX commentedon Aug 15, 2024
sunfishcode commentedon Aug 15, 2024
SUPERCILEX commentedon Aug 15, 2024
SUPERCILEX commentedon Aug 16, 2024
4 remaining items
Change impl trait arguments to explicit generic parameters.
sunfishcode commentedon Jan 23, 2025
SUPERCILEX commentedon Jan 23, 2025
sunfishcode commentedon Jan 23, 2025
SUPERCILEX commentedon Jan 23, 2025
Change impl trait arguments to explicit generic parameters. (#1283)
sunfishcode commentedon Jan 27, 2025
sunfishcode commentedon Feb 16, 2025
sunfishcode commentedon Feb 26, 2025
sunfishcode commentedon Feb 26, 2025
I've now published rustix 1.0.0-prerelease.1. Please test out the prerelease, and please comment on if there are any problems or if there are any changes we should consider before releasing 1.0.
I've documented all the API changes I'm aware of here; please let me know if anything there is unclear or if there's something not covered.
SUPERCILEX commentedon Feb 27, 2025
Just did the upgrade in Ringboard and it went pretty smoothly: SUPERCILEX/clipboard-history@28109d2
Stebalien commentedon Mar 4, 2025
I've tested on both tempfile and xattr and I've seen no real issues.
sunfishcode commentedon Mar 5, 2025
Thanks for the reports! I've now done more testing too, and fixed a few issues that came up. I think everything is ready for a 1.0.0 release. I'm thinking of doing the release two days from now, unless any problems surface.
sunfishcode commentedon Mar 6, 2025
Rustix 1.0.0 is now released! Thanks to everyone who helped submit patches, bug reports, code reviews, and testing!