Release Roadmap
joshlf opened this issue · 0 comments
joshlf commented
0.8
Release plan
- Resolve all remaining outstanding issue (see next section)
- Attempt to vendor 0.8.0-alpha.N into Fuchsia in order to find bugs (we won't be able to actually land this since it will require a temporary workaround for #1292)
- Release 0.8 but do not publicize it
- Put up PRs to other crates to use 0.8
- After #1292 / rust-lang/rust#45713 is resolved and stable upstream, publicize 0.8
Definitely include
- Any issues labeled
blocking-next-release
This issue should be resolved before we release on crates.io - #5
- #29
- #251
- #871
- #874
- #1358
- #896
- #1088
- #1086
- #1295
- Do we need to do anything about this? rust-lang/rust#125021
- #1297
- Update as necessary based on these changes:
- #210
- #1358
- Can we tell cargo-semver-checks to ignore certain items? If so, we can whitelist which things we know we’ve changed since 0.7, be and it make sure we didn’t break anything else
- Decide on our policy regarding whether adding
#[deprecated]
is an MSRV-breaking change; if we decide that it's not, then we can remove some blockers for 0.8 - Replace
Unalign::set
withreplace
orswap
(which returns the original)? Strictly more powerful. - Deprecate
FromZeros::new_boxed_slice_zeroed
and replace with method which supports slice DSTs? - Audit our entire API for other changes we should make for 0.8
- #1182
-
Resolve rust-lang/unsafe-code-guidelines#429 before releasingNoCell for Box<T>
whereT: Sized
- Replaced with #1358
- Consider making macros into functions which fail via post-monomorphization error. This has the advantage of supporting transmutations in generic contexts, but the downside of the cross-crate post-monomorphization footgun. It's possible that this can't be supported given our MSRV and our desire to support these macros/functions in a
const
context.- Alternatively, we could always use a macro, but use toolchain version detection to either use the current macro logic or, on more recent toolchains, use a generic function
- #1260
- #1018
- #1139
- #1158
- #1055
- #1149
- #1051
- Current draft: #1059
- #1134
- #1046
- #998
- #986
- #855
- #438
- #431
- Specifically: #430
- #716
- #758
- #873
- #882
- #897
- #909
- #925
- Provide derive for deprecated name
AsBytes
just as we do forFromZeroes
Include if we have time
- Refactor module structure
- #1183 (at least the non-public-API parts)
- #115
- #888
- #358
- Overhaul naming of various functions and methods
- #188
- #1
- #627
- #1121
Non-breaking; do after 0.8 is released
0.9
- Safe transmute
0.10
General API overhaul without changing fundamental analysis. Things like:
- Error reporting (e.g. #528)
- How to express which properties are validated statically vs dynamically