-
Notifications
You must be signed in to change notification settings - Fork 166
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
1.0 release planning #753
Comments
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
If this is going to be a stable release, we should make sure that In my opinion a stable release is a bad idea, as the API is still somewhat volatile. There should at least be an "unstable" feature flag to test new APIs for inclusion, like Tokio has. |
I already consider 0.38 to be stable. For example, I maintain an older version of linux-raw-sys to preserve compatibility with rustix 0.38. And I'm not aware of any significant volatility in the 0.38 API. It's added lots of features, and even deprecated a handful of things, but ideas for breaking changes are collected here in this issue, specifically to keep 0.38 stable. So my idea for 1.0 is just to better communicate what's already happening. It would be nice to better encapsulate libc/linux-raw-sys types, and I'm open to adding an "unstable" feature flag if there's a need for it. I'm under the impression that these aren't urgent right now, though I'd be happy to learn more about how these impact users. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
I'd like to propose making the |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Fair enough. From #1105 (comment), let's add to the todo list that we need to fix the occurrences of |
From #1110 (comment): Sidenote: the deprecations won't actually work due to rust-lang/rust#30827. (For example the |
I've now created the 0.38 branch and have started doing 0.38.x releases from it, so the main branch can now start accepting semver-incompatible fixes. First up is porting the 1.0-staging patches. |
Is there anything you could use outside help with as part of the effort towards a 1.0 release ? |
@raftario Anyone's welcome to work on any of the items from the checklist at the top here that isn't checked and doesn't have a PR next to it. Some of them are involved, but some are just simple renames. |
Also, anything with a question mark is known to need further thought. |
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:
fs
module (details)rustix::fs::Access
consistent between linux_raw and libc backendsmount_recursive_bind
tomount_bind_recursive
? Factor out a new top-levelmount
module. #763 (comment)SeekFrom::Hole
andSeekFrom::Data
's field fromi64
tou64
.Shutdown::ReadWrite
toShutdown::Both
to align with stdfeatures = ["extra_traits"]
from the libc dependency (Remove the "libc-extra-traits" feature. #1168)sched_yield
and othersched_*
functions fromprocess
tothread
, since they apply to threads rather than processes on Linux etc.rustix::process::waitpid
has no way to wait for specific process groups (Pid
now requires non-negative values).waitpgid
has been added as a temporary workaround.rustix::cstr!
with something likerustix::nativestr!
so that users don't hard code "native strings are C strings" in their code?set_ip_add_membership
/get_ip_add_membership
should takeaddress
andifindex
arguments and*_with_ifindex
should be removed.stx_mtime
and similar members ofStatx
should bei64
, because Unix timestamps can be negative.futex
's first argument should beAtomic
open
andopenat
into separate functions for "create" which needs a mode vs. "open existing" which doesn't need a mode?get_
from sockopt getters, following Rust convention. Consider removingget_
in other things too.udata
argument torustix::event::kqueue::Event::new
should be a pointer instead of anisize
in order to better preserve provenance.stx_attributes_mask
field ofStatx
with flags likelibc::STATX_ATTR_MOUNT_ROOT
should ideally be a bitflags, which requires makingStatx
a custom type (which should match layout withlibc::statx
).Dir
into its own crate, and have rustix exportgetdents
directly?get_*
functions (eg. sockopts) to remove theget_
prefix, which is more idiomatic Rust?MountPropagationFlags::SLAVE
(Rename a flag inMountPropagationFlags
. #1169)ClockId::Uptime
on FreeBSD toBoottime
, since it's an aliasWaitidOptions
,WaitidStatus
, and/orWaitId
to make the capitalization ofId
consistentRecvAncillaryBuffer::drain
always remove all messages, even if the iterator isn't exhausted. With that, we can remove theread_and_length
inAncillaryDrain
.inotify_
prefixes from things in thefs::inotify
module.shm_
andShm
prefixes from things in theshm
module.recv
into an uninitialized buffer with theTRUNC
flag set (see Fixrecv_uninit
to handle theTRUNC
flag. #1159)Arg::as_str
to avoid "a method with this name may be added to the standard library in the future" warningsio_uring_register_files_skip
from aconst fn
to a constant.The text was updated successfully, but these errors were encountered: