v0.8.0
Announcing zerocopy 0.8! See our release notes for more details.
What's Changed
Full changelog
Based on v0.7.35...v0.8.0:
- Release 0.8.0-alpha by @joshlf in #681
- Initial commit of
NoCell
by @joshlf in #656 - [derive] Support deriving
NoCell
by @joshlf in #667 - Use KnownLayout to construct and operate on Refs by @joshlf in #678
- [CI] Bump github/codeql-action from 2.22.8 to 2.22.9 by @dependabot in #685
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #684
- Rename
FromZeroes
toFromZeros
by @jswrenn in #430 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #690
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #691
- [derive] Support
derive(TryFromBytes)
for structs by @jswrenn in #665 - [readme] Link to GitHub Releases by @joshlf in #692
- Traits other than
NoCell
permitUnsafeCell
s by @joshlf in #682 - Release 0.8.0-alpha.1 by @joshlf in #698
- [tests] Fix UI tests with missing imports by @joshlf in #706
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #711
- [issues] Add "Customer request" template by @joshlf in #708
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #713
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #717
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #718
- [CI] Bump github/codeql-action from 2.22.9 to 2.22.10 by @dependabot in #719
- [ci] check all-jobs-succeed depends on all jobs by @tommy-gilligan in #720
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #729
- [CI] Bump github/codeql-action from 2.22.10 to 3.22.11 by @dependabot in #730
- Rename
AsBytes
toIntoBytes
by @joshlf in #700 - [docs] Add yank log by @joshlf in #732
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #734
- [CI] Bump actions/upload-artifact from 3.1.3 to 4.0.0 by @dependabot in #735
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #736
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #737
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #739
- [docs] Link to customer request issue template by @joshlf in #738
- [yanks] Document yanks for #716 by @joshlf in #733
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #740
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #741
- [derive] Exclude large test files when publishing by @joshlf in #743
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #745
- [CI] Bump github/codeql-action from 3.22.11 to 3.22.12 by @dependabot in #747
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #746
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #748
- [ci] Use pinned nightly for cargo-semver-checks by @joshlf in #753
- [doc] fix doc_cfg feature name of new_vec_zeroed by @Lencerf in #750
- Pin transitive dep
cargo-platform
for MSRV by @jswrenn in #757 - Fix soundness hole in Ref::into_ref and into_mut (#721) by @joshlf in #755
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #760
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #761
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #762
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #763
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #764
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #766
- [CI] Bump actions/dependency-review-action from 3.1.4 to 3.1.5 by @dependabot in #767
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #768
- [CI] Bump github/codeql-action from 3.22.12 to 3.23.0 by @dependabot in #771
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #769
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #770
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #772
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #773
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #774
- [CI] Bump model-checking/kani-github-action from 1.0 to 1.1 by @dependabot in #776
- [CI] Bump Swatinem/rust-cache from 2.7.1 to 2.7.2 by @dependabot in #777
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #778
- [CI] Bump actions/cache from 3.3.2 to 3.3.3 by @dependabot in #779
- [CI] Bump actions/upload-artifact from 4.0.0 to 4.1.0 by @dependabot in #783
- [CI] Bump Swatinem/rust-cache from 2.7.2 to 2.7.3 by @dependabot in #784
- [CI] Bump actions/cache from 3.3.3 to 4.0.0 by @dependabot in #787
- [CI] Bump github/codeql-action from 3.23.0 to 3.23.1 by @dependabot in #789
- [CI] Bump actions/dependency-review-action from 3.1.5 to 4.0.0 by @dependabot in #790
- Invariant-parameterize
Ptr
and makeis_bit_valid
safe by @jswrenn in #699 - [byteorder] Remove byteorder feature and crate dep by @joshlf in #583
- [doc] Test
cargo doc
under--no-default-features
by @joshlf in #537 - [CI] Bump actions/upload-artifact from 4.1.0 to 4.2.0 by @dependabot in #793
- Support
derive(TryFromBytes)
onpacked
structs by @jswrenn in #794 - Add at-least-as-strict-as bounds to
Ptr
invariant system by @jswrenn in #798 - Implement
TryFromBytes
for[T; N]
by @jswrenn in #799 - [derive] Derive TryFromBytes on unions by @jswrenn in #800
- [ci] Fix missing UI test checks in CI by @jswrenn in #797
- [derive] FromZeros requires repr on unit-only enums by @joshlf in #802
- [derive] Rename is_c_like -> is_fieldless by @joshlf in #804
- [derive] Support TryFromBytes on field-less enums by @joshlf in #803
- Add TryFromBytes::try_read_from by @joshlf in #808
- [derive] TryFromBytes on repr(C) enums by @joshlf in #806
- [ci] Separately track MSRV and MWRV by @joshlf in #810
- [CI] Bump actions/upload-artifact from 4.2.0 to 4.3.0 by @dependabot in #813
- Revert "[ci] Separately track MSRV and MWRV" by @joshlf in #811
- Lower our MSRV to 1.59.0 by @joshlf in #791
- [CI] Bump obi1kenobi/cargo-semver-checks-action from 2.2 to 2.3 by @dependabot in #819
- [CI] Bump github/codeql-action from 3.23.1 to 3.23.2 by @dependabot in #823
- [byteorder] Implement TryFromBytes by @joshlf in #824
- [CI] Bump peter-evans/create-pull-request from 5.0.2 to 6.0.0 by @dependabot in #828
- [CI] Bump step-security/harden-runner from 2.6.1 to 2.7.0 by @dependabot in #829
- Add implementation of
padding_needed_for
by @ezrosent in #830 - [util] Use new padding_needed_for implementation by @joshlf in #833
- [CI] Bump github/codeql-action from 3.23.2 to 3.24.0 by @dependabot in #840
- [CI] Bump actions/upload-artifact from 4.3.0 to 4.3.1 by @dependabot in #842
- Roll nightly toolchain by @joshlf in #845
- Support arbitrary toolchain versions in
build.rs
by @joshlf in #843 - Roll nightly toolchain by @joshlf in #846
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #849
- Lower MSRV to 1.57 by @joshlf in #848
- [ci] Check with tests by @joshlf in #852
- [byteorder] Make some methods const by @joshlf in #851
- Introduce
invariant::Initialized
and migrateMaybe
to it by @jswrenn in #853 - [testutil] Downgrade to edition 2018 by @joshlf in #856
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #858
- Implement
TryFromBytes
for pointers by @jswrenn in #854 - Implement
TryFromBytes
for more types by @joshlf in #817 - Lower MSRV to 1.56 by @joshlf in #855
- Roll nightly toolchain by @joshlf in #865
- [derive] Support IntoBytes on some generic structs by @joshlf in #862
- [doc] TryFromBytes, IntoBytes aren't symmetrical by @joshlf in #860
- Release 0.8.0-alpha.5 by @joshlf in #869
- Renamed
as_bytes_mut
toas_mut_bytes
by @dorryspears in #870 - Add caching dupe change by @dorryspears in #835
- Add git pre-push hook by @tommy-gilligan in #728
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #875
- [CI] Bump actions/dependency-review-action from 4.0.0 to 4.1.0 by @dependabot in #877
- [CI] Bump github/codeql-action from 3.24.0 to 3.24.1 by @dependabot in #876
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #880
- [CI] Bump github/codeql-action from 3.24.1 to 3.24.3 by @dependabot in #881
- derive: generalize
require_self_sized
by @jswrenn in #883 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #887
- [derive] Disable prelude when testing; fix bugs by @joshlf in #886
- TryFromBytes for MaybeUninit requires T: NoCell by @joshlf in #889
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #895
- Remove unsound
Ptr::forget_valid
by @jswrenn in #898 - [
TryFromBytes
] PermitUnsafeCells
by @jswrenn in #890 - Relax type bounds in Ptr::from_maybe_uninit_ref by @joshlf in #900
- [ptr] Clean up prose for field invariants by @joshlf in #901
- Add TryFromBytes::try_from_mut by @joshlf in #892
- Implement
<Unalign as TryFromBytes>::is_bit_valid
by @joshlf in #903 - Implement TryFromBytes for Option for fn types by @joshlf in #904
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #908
- [ptr] Fix soundness hole in "at least" invariants by @joshlf in #909
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #910
- [CI] Bump actions/dependency-review-action from 4.1.0 to 4.1.1 by @dependabot in #911
- [ptr] Relax some method bounds by @joshlf in #902
- [CI] Bump actions/dependency-review-action from 4.1.1 to 4.1.2 by @dependabot in #916
- Roll pinned nightly toolchain by @joshlf in #917
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #920
- [CI] Bump actions/dependency-review-action from 4.1.2 to 4.1.3 by @dependabot in #921
- [CI] Bump github/codeql-action from 3.24.3 to 3.24.4 by @dependabot in #923
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #922
- [ci] Test Git hooks by @joshlf in #919
- Convert shell scripts to Rust by @djkoloski in #891
- Support testing TryFromBytes for !NoCell types by @joshlf in #924
- [ci] Pin Kani to last known-good version by @joshlf in #930
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #927
- [CI] Bump github/codeql-action from 3.24.4 to 3.24.5 by @dependabot in #928
- [derive] Automatically derive super-traits by @joshlf in #926
- [ci] Automatically roll pinned Kani version by @joshlf in #931
- [derive] Use macro to generate some scaffolding by @joshlf in #937
- [ci] Roll Kani version to 0.47.0 by @joshlf in #939
- [ci][generate_cache] Run steps in parallel by @joshlf in #940
- [derive] Support deriving deprecated AsBytes by @joshlf in #938
- [githooks][pre-push] Run steps in parallel by @joshlf in #942
- [ci] Run
cargo fix
when rolling toolchains by @joshlf in #943 - Fix alignment bug in test_impls by @joshlf in #944
- Use Box instead of &T in test_impls success cases by @joshlf in #945
- Implement TryFromBytes for UnsafeCell by @joshlf in #912
- Make Ptr::reborrow public by @joshlf in #949
- Fix some uses of FromBytes and NoCell in doc tests by @joshlf in #950
- Fix UI tests by @joshlf in #951
- [derive] Fix UI tests by @joshlf in #954
- Fix some uses of NoCell in doc tests by @joshlf in #956
- Fix Clippy lints by @joshlf in #957
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #959
- [cargo-zerocopy] Pass failure return codes through by @djkoloski in #948
- Implement
PartialOrd
andOrd
where possible by @00xc in #915 - Disable re-exporting renamed traits in dev and CI by @joshlf in #961
- [CI] Bump peter-evans/create-pull-request from 6.0.0 to 6.0.1 by @dependabot in #965
- [ptr] Add TransparentWrapper by @joshlf in #958
- Add
IntoByteSlice
trait, use as bound forinto_ref
by @joshlf in #966 - Add
KnownLayout
, removeSized
from some APIs by @joshlf in #967 - Use KnownLayout in more APIs by @joshlf in #970
- Deprecate some
Ref
methods in favor ofKnownLayout
by @joshlf in #971 - [githooks/pre-push] Fail when sub-command fails by @joshlf in #969
- [ci] Pass dev and CI
--cfg
when rolling toolchain by @joshlf in #973 - Document
TryFromBytes
by @jswrenn in #974 - [ci] Roll pinned nightly toolchain by @joshlf in #975
- Make TryFromBytes a super-trait of FromZeros by @joshlf in #952
- Make TryFromBytes methods not #[doc(hidden)] by @joshlf in #976
- Document
NoCell
by @jswrenn in #977 - Deprecate FromBytes::slice_from by @joshlf in #978
- Release 0.8.0-alpha.6 by @joshlf in #979
- Make old names errors instead of warnings by @joshlf in #980
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #981
- [CI] Bump github/codeql-action from 3.24.5 to 3.24.6 by @dependabot in #982
- Restructure crate-level 'Overview' documentation by @jswrenn in #983
- Document
Unaligned
by @jswrenn in #984 - Add deprecated IntoBytes::as_bytes_mut by @joshlf in #987
- Consolodate and improve use of old names by @joshlf in #990
- Implement Copy and Clone for Ref by @joshlf in #989
- Document
KnownLayout
by @jswrenn in #988 - Split ByteSlice and SplitByteSlice by @joshlf in #991
- Deprecate more Ref constructors by @joshlf in #997
- Delevel headers in crate-level documentation by @jswrenn in #1000
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1005
- Remove underscores from now-used item names by @joshlf in #1004
- Annotate public macros/functions with
#[must_use]
by @joshlf in #1003 - Remove post-monomorphization compile-fail tests by @joshlf in #1006
- Remove unnecessary Ptr "assume" calls by @joshlf in #1002
- [wrappers] Replace some
unsafe
code withPtr
by @joshlf in #1007 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1008
- Impl traits for TransparentWrapper types safely by @joshlf in #1001
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1012
- Implement
TransparentWrapper
for atomic types by @joshlf in #1011 - Document const-ness of
transmute(_*)!
macros by @jswrenn in #1019 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1020
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1023
- TransparentWrapper supports UnsafeCell variance by @joshlf in #1024
- Implement
TransparentWrapper
forUnsafeCell
by @joshlf in #1025 - Release 0.8.0-alpha.7 by @joshlf in #1027
- Implement traits for atomic types by @joshlf in #1028
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1030
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1031
- Move deprecated items to dedicated module by @joshlf in #1036
- Roll pinned nightly toolchain by @joshlf in #1033
- [CI] Bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in #1038
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1037
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1039
- [CI] Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2 by @dependabot in #1040
- [CI] Bump github/codeql-action from 3.24.6 to 3.24.7 by @dependabot in #1041
- Set manifest keywords and categories by @jswrenn in #1042
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1044
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1048
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1047
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1052
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1053
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1054
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1056
- [CI] Bump github/codeql-action from 3.24.7 to 3.24.8 by @dependabot in #1057
- Use pseudocode to document
transmute_ref
by @jswrenn in #1050 - Use pseudocode to document
transmute
,transmute_mut
by @jswrenn in #1058 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1060
- [CI] Bump obi1kenobi/cargo-semver-checks-action from 2.3 to 2.4 by @dependabot in #1061
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1062
- [CI] Bump actions/dependency-review-action from 4.1.3 to 4.2.3 by @dependabot in #1063
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1065
- [CI] Bump github/codeql-action from 3.24.8 to 3.24.9 by @dependabot in #1066
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1064
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1067
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1068
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1069
- [CI] Bump actions/dependency-review-action from 4.2.3 to 4.2.5 by @dependabot in #1074
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1075
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1078
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1079
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1080
- [derive] Pin syn to 2.0.55 by @joshlf in #1089
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1090
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1092
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1094
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1096
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1097
- [CI] Bump github/codeql-action from 3.24.9 to 3.24.10 by @dependabot in #1100
- [ci] Roll nightly toolchain by @joshlf in #1101
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1102
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1103
- [CI] Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3 by @dependabot in #1107
- [ci] Roll Kani to 0.50.50 by @joshlf in #1117
- [CI] Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4 by @dependabot in #1115
- Add
SplitByteSlice::split_at_unchecked
by @jswrenn in #1071 - [CI] Bump github/codeql-action from 3.24.10 to 3.25.1 by @dependabot in #1116
- Rename
TryFromBytes
methods to be consistent withFromBytes
by @jswrenn in #1119 - [CI] Bump actions/upload-artifact from 4.3.1 to 4.3.2 by @dependabot in #1124
- [CI] Bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in #1129
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1131
- [CI] Bump actions/upload-artifact from 4.3.2 to 4.3.3 by @dependabot in #1132
- [CI] Bump github/codeql-action from 3.25.1 to 3.25.2 by @dependabot in #1133
- Also return remaining bytes in
FromBytes
conversion methods by @jswrenn in #1059 - Remove zeroing Ref constructors by @joshlf in #1135
- KnownLayout tracks pointer metadata type by @joshlf in #995
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1136
- Rename
NoCell
toImmutable
by @jswrenn in #1137 - Add non-slice Ref constructors w/ slice elem count by @joshlf in #996
- Replace a panic with an error branch by @jrvanwhy in #544
- Release 0.8.0-alpha.8 by @joshlf in #1138
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1140
- [CI] Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 by @dependabot in #1141
- [CI] Bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in #1142
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1143
- [CI] Bump github/codeql-action from 3.25.2 to 3.25.3 by @dependabot in #1145
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1146
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1147
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1148
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1151
- [CI] Bump actions/dependency-review-action from 4.2.5 to 4.3.1 by @dependabot in #1153
- [CI] Bump step-security/harden-runner from 2.7.0 to 2.7.1 by @dependabot in #1152
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1156
- [CI] Bump actions/dependency-review-action from 4.3.1 to 4.3.2 by @dependabot in #1157
- Use compile-time assertions to deny ZSTy DSTs by @jswrenn in #1154
- [layout] Move DstLayout from root, update comments by @joshlf in #1159
- [FromBytes] Replace Ref with Ptr in some methods by @joshlf in #1163
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1164
- Restate
Immutable
's guarantees by @jswrenn in #1165 - [pointer] Make "at least" machinery generic by @joshlf in #1166
- Add "release new crate version" workflow by @joshlf in #1172
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1175
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1174
- [tools/update-ui-test-files.sh] Initial commit by @joshlf in #1171
- [release-crate-versions] Support arbitrary branches by @joshlf in #1176
- [pointer] Support as_bytes on unsized types by @joshlf in #1180
- Overhaul error reporting (enum version) by @jswrenn in #1144
- Release 0.8.0-alpha.9 by @google-pr-creation-bot in #1181
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1185
- Roll pinned toolchain versions on v0.7.x by @joshlf in #1190
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1195
- Fix bug in Kani roller by @joshlf in #1193
- Use
AlignmentError
inUnalign
's failure conditions by @jswrenn in #1198 - [ci] Roll pinned nightly toolchain by @joshlf in #1202
- [
build.rs
] Supportunexpected_cfgs
lint by @joshlf in #1204 - [derive] Make some pub items pub(crate) by @joshlf in #1205
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1207
- [CI] Bump actions/checkout from 4.1.4 to 4.1.5 by @dependabot in #1208
- [pointer] Ptr::try_cast_into returns two Ptrs by @joshlf in #1161
- [derive][tests] Test IntoBytes failure #1182 by @joshlf in #1186
- [FromBytes] Rename some methods for consistency by @joshlf in #1210
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1213
- [CI] Bump github/codeql-action from 3.25.3 to 3.25.4 by @dependabot in #1214
- Document
IntoByteSlice
safety invariants by @jswrenn in #1215 - Move
Ref
to its own module by @joshlf in #1216 - [ci] Roll pinned Kani version by @google-pr-creation-bot in #1220
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1222
- [ref] Move
Ref
definition into its own module by @joshlf in #1218 - Add
TryFromBytes
prefix/suffix conversion methods by @jswrenn in #1072 - [pointer] Relax UnsafeCell requirements by @joshlf in #1211
- Add
AliasingSafe
framework by @joshlf in #1224 - Remove Immutable where it's no longer needed by @joshlf in #1225
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1231
- [CI] Bump ossf/scorecard-action from 2.3.1 to 2.3.3 by @dependabot in #1232
- [ci] Publish
cargo doc
to GitHub Pages by @joshlf in #1227 - Add missing copyright header comments by @joshlf in #1229
- [CI] Bump actions/configure-pages from 4 to 5 by @dependabot in #1233
- Factor out some duplicated code in FromBytes by @joshlf in #1234
- Release 0.8.0-alpha.10 by @google-pr-creation-bot in #1235
- Ptr::try_cast_into takes explicit element count by @joshlf in #1160
- Implement
FromBytes::{mut,ref}_from_with_trailing_elements
by @jswrenn in #1237 - [ref] Change some
Ref
constructor names by @joshlf in #1239 - Remove more unnecessary
Immutable
bounds fromFromBytes
by @jswrenn in #1236 - Move tests to more appropriate locations by @joshlf in #1240
- Release 0.8.0-alpha.11 by @google-pr-creation-bot in #1241
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1244
- [impls] Move trait impls from crate root by @joshlf in #1242
- Rename FromBytes methods using
with_elems
suffix by @joshlf in #1245 - Add back some removed
Ref
methods as deprecated by @joshlf in #1246 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1248
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1250
- [CI] Bump github/codeql-action from 3.25.4 to 3.25.5 by @dependabot in #1251
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1255
- Implement
try_transmute!
by @jswrenn in #1018 - Remove .forget_exclusive from Ptr::try_into_valid by @joshlf in #1257
- Add Ref more
with_elems
Ref
constructors by @joshlf in #1258 - Remove incorrect
TryFromBytes
docs w.r.t unions by @jswrenn in #1259 - Make
IntoByteSlice
an unsafe trait by @joshlf in #1261 - Release 0.8.0-alpha.12 by @google-pr-creation-bot in #1264
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1266
- read_from_{prefix,suffix} return remaining bytes by @joshlf in #1270
- Include
try_transmute!
in crate-level overview by @jswrenn in #1267 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1272
- Rephrase conversion methods' documentation to accommodate DSTs by @jswrenn in #1269
- Improve UI/UX of post-monomorphization errors by @jswrenn in #1268
- [ci] Add code coverage reporting for PRs and main by @joshlf in #1274
- Add tests for some uncovered lines by @joshlf in #1277
- Rename FromBytes::ref_from[_with_elems] by @joshlf in #1278
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1280
- [CI] Bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in #1281
- Update deprecated methods for
FromBytes
,Ref
by @joshlf in #1282 - Document slice DSTs and size validity by @joshlf in #1273
- Release 0.8.0-alpha.13 by @google-pr-creation-bot in #1283
- Move
*ByteSlice*
traits intobyte_slice
module by @jswrenn in #1286 - Expand test_macros_evaluate_args_once to test more by @joshlf in #1287
- Make
ConvertError
and variants public by @jswrenn in #1284 - Release 0.8.0-alpha.14 by @google-pr-creation-bot in #1285
- [trybuild] Only compile when
feature = "derive"
by @joshlf in #1291 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1294
- [githooks] CI scripts pipe failures to stderr by @joshlf in #1300
- Move
IntoByteSlice[Mut]: Into
into methods by @joshlf in #1299 - Add more safety proof to
KnownLayout
derive by @joshlf in #1302 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1304
- [ci] Make matrix names more concise by @joshlf in #1306
- [ci] Run Miri tests on multiple threads by @joshlf in #1307
- Split
test_ptr_try_cast_into_soundness
by @joshlf in #1308 - [ci] Only run Miri tests in merge queue by @joshlf in #1313
- [ci] Test some targets only in the merge queue by @joshlf in #1314
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1327
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1334
- Add trybuild test to ensure deprecated types are derivable. by @daniel-levin in #1332
- [CI] Bump github/codeql-action from 3.25.5 to 3.25.6 by @dependabot in #1335
- Move contributing guide to GitHub discussion by @joshlf in #1319
- [derive] Test derives on deprecated types by @joshlf in #1336
- [CI] Bump step-security/harden-runner from 2.7.1 to 2.8.0 by @dependabot in #1340
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1338
- Roll pinned nightly toolchain by @joshlf in #1362
- [CI] Bump github/codeql-action from 3.25.6 to 3.25.7 by @dependabot in #1365
- [macro_util] Add TODO comment to trailing_field_offset! by @joshlf in #1368
- [ci] Add Windows target by @joshlf in #1373
- Fix incorrect trailing field offset test by @djkoloski in #1370
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1377
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1382
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1385
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1393
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1391
- [CI] Bump github/codeql-action from 3.25.7 to 3.25.8 by @dependabot in #1394
- [ci] Updates actions/cache to v4 by @sl4m in #1396
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1398
- [CI] Bump step-security/harden-runner from 2.8.0 to 2.8.1 by @dependabot in #1410
- [CI] Bump actions/dependency-review-action from 4.3.2 to 4.3.3 by @dependabot in #1399
- Resolve Flags Handling and Improve CI Stability by @zoo868e in #1388
- [ci] Use cargo-semver-checks on stable, not nightly by @joshlf in #1415
- [CI] Bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in #1421
- [CI] Bump github/codeql-action from 3.25.8 to 3.25.9 by @dependabot in #1420
- [CI] Bump github/codeql-action from 3.25.9 to 3.25.10 by @dependabot in #1426
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1424
- [CI] Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 by @dependabot in #1440
- In trybuild tests, manually set -Wwarnings by @joshlf in #1414
- Roll nightly toolchain by @joshlf in #1441
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1447
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1450
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1453
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1455
- [error] Document validation order by @joshlf in #1456
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1459
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1461
- [error] Implement std::error::Error on errors by @joshlf in #1298
- Use
copy_nonoverlapping
instead ofslice::copy_from
by @jswrenn in #1448 - Release 0.8.0-alpha.15 by @google-pr-creation-bot in #1462
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1464
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1466
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1468
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1470
- [CI] Bump github/codeql-action from 3.25.10 to 3.25.11 by @dependabot in #1474
- Rename
TryFromBytes
methods for consistency withFromBytes
by @jswrenn in #1475 - Always use manual impl of
KnownLayout
forUnalign
by @jswrenn in #1476 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1480
- Relax zerocopy-derive's MSRV policy by @joshlf in #1482
- Release 0.8.0-alpha.16 by @google-pr-creation-bot in #1484
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1488
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1490
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1492
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1494
- [CI] Bump actions/upload-artifact from 4.3.3 to 4.3.4 by @dependabot in #1502
- Roll pinned nightly toolchain by @joshlf in #1503
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1506
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1508
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1510
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1512
- [CI] Bump actions/dependency-review-action from 4.3.3 to 4.3.4 by @dependabot in #1513
- [CI] Bump github/codeql-action from 3.25.11 to 3.25.12 by @dependabot in #1514
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1517
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1519
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1521
- [CI] Bump obi1kenobi/cargo-semver-checks-action from 2.4 to 2.5 by @dependabot in #1522
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1525
- Add toolchain cfg for testing msrv by @djkoloski in #1515
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1530
- Hide large enums from rust-analyzer by @djkoloski in #1526
- Improve zero discriminant detection for enums by @djkoloski in #1527
- [CI] Bump github/codeql-action from 3.25.12 to 3.25.13 by @dependabot in #1543
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1542
- [CI] Bump step-security/harden-runner from 2.8.1 to 2.9.0 by @dependabot in #1535
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1545
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1547
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1550
- [CI] Bump obi1kenobi/cargo-semver-checks-action from 2.5 to 2.6 by @dependabot in #1552
- [CI] Bump github/codeql-action from 3.25.13 to 3.25.14 by @dependabot in #1553
- [ci] Roll pinned stable toolchain by @google-pr-creation-bot in #1551
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1555
- Parse the package manifest directly for toolchains by @djkoloski in #1564
- [CI] Bump ossf/scorecard-action from 2.3.3 to 2.4.0 by @dependabot in #1562
- [CI] Bump github/codeql-action from 3.25.14 to 3.25.15 by @dependabot in #1563
- [ci] Run cargo-semver-checks on all targets by @joshlf in #1523
- [testutil] Pin winapi-util to 0.1.8 by @joshlf in #1573
- Strengthen soundness proof for size_of_val_raw by @joshlf in #1574
- [CI] Bump step-security/harden-runner from 2.9.0 to 2.9.1 by @dependabot in #1570
- [CI] Bump actions/upload-artifact from 4.3.4 to 4.3.5 by @dependabot in #1567
- [ci] fully qualify
--package
IDs in toolchain roller by @jswrenn in #1568 - [CI] Bump actions/upload-artifact from 4.3.5 to 4.3.6 by @dependabot in #1576
- [CI] Bump github/codeql-action from 3.25.15 to 3.26.0 by @dependabot in #1577
- [ci] generate lockfile in roller by @jswrenn in #1578
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1580
- Remove dependency on assert_matches by @djkoloski in #1575
- Fix unsoundness in impl_for_transparent_wrapper! by @joshlf in #1585
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1588
- [CI] Bump github/codeql-action from 3.26.0 to 3.26.1 by @dependabot in #1590
- [CI] Bump github/codeql-action from 3.26.1 to 3.26.2 by @dependabot in #1591
- [CI] Bump github/codeql-action from 3.26.2 to 3.26.3 by @dependabot in #1594
- [ci] Skip some matrix combinations by @joshlf in #1596
- Detect atomic support using target_has_atomic by @joshlf in #1586
- Release 0.8.0-alpha.17 by @google-pr-creation-bot in #1597
- [CI] Bump github/codeql-action from 3.26.3 to 3.26.4 by @dependabot in #1598
- [CI] Bump github/codeql-action from 3.26.4 to 3.26.5 by @dependabot in #1600
- [CI] Bump github/codeql-action from 3.26.5 to 3.26.6 by @dependabot in #1602
- [CI] Bump actions/upload-artifact from 4.3.6 to 4.4.0 by @dependabot in #1603
- never construct value on stack in new_box_zeroed by @Freax13 in #1601
- [CI] Bump peter-evans/create-pull-request from 6.1.0 to 7.0.0 by @dependabot in #1606
- [CI] Bump peter-evans/create-pull-request from 7.0.0 to 7.0.1 by @dependabot in #1608
- Release 0.8.0-alpha.18 by @google-pr-creation-bot in #1609
- Roll pinned nightly and stable toolchains by @joshlf in #1612
- [ci] Roll pinned Kani version by @google-pr-creation-bot in #1611
- [pointer] Update requirements for zero-sized types by @joshlf in #1614
- Write some safety proofs by @joshlf in #1615
- Redocument
derive(IntoBytes)
to reflect current implementation by @jswrenn in #1616 - Tighten soundness of
addr_of!
uses by @joshlf in #1617 - [Ref] Make methods into associated functions by @joshlf in #1618
- FromZeros boxed slice method supports slice DSTs by @joshlf in #1478
- Implement TryFromBytes for unsized UnsafeCell by @joshlf in #1619
- Add safety comment for MaybeUninit UnsafeCell by @joshlf in #1620
- Release 0.8.0-alpha.19 by @google-pr-creation-bot in #1621
- Implement
try_transmute_{ref,mut}
by @jswrenn in #1622 - Reorganize macro modules under util module by @joshlf in #1623
- Module reorg finish by @joshlf in #1624
- [README] Link to 0.8 alpha draft release notes by @joshlf in #1625
- Release 0.8.0-alpha.20 by @google-pr-creation-bot in #1626
- [ci] Don't fail fast when rolling pinned versions by @joshlf in #1628
- [Cargo.toml] Make crate description consistent with README by @joshlf in #1627
- [ci] Roll toolchains using filepath package names by @joshlf in #1630
- Support deriving traits on data-carrying enums by @djkoloski in #879
- Release 0.8.0-alpha.21 by @google-pr-creation-bot in #1635
- [CI] Bump step-security/harden-runner from 2.9.1 to 2.10.1 by @dependabot in #1641
- [CI] Bump peter-evans/create-pull-request from 7.0.1 to 7.0.2 by @dependabot in #1646
- [ci] Roll pinned nightly toolchain by @joshlf in #1633
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1645
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1650
- Document derive requirements for enums by @jswrenn in #1647
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1652
- Update document about field-less enums in lib.rs by @BatuhanDagistanli in #1654
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1657
- Make extend_vec_zeroed, insert_vec_zeroed fallible by @joshlf in #1658
- [doc] Update wording regarding transmute macros by @joshlf in #1662
- [error] Implement
core::error::Error
for errors by @joshlf in #1663 - [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1667
- [CI] Bump github/codeql-action from 3.26.6 to 3.26.7 by @dependabot in #1669
- [CI] Bump peter-evans/create-pull-request from 7.0.2 to 7.0.3 by @dependabot in #1668
- [derive] Test exact output of derives by @joshlf in #1664
- Document that writes to padding are not preserved by @joshlf in #1660
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1671
- [docs] Clarify derive dependency recommendation by @joshlf in #1672
- [derive] Test TryFromBytes output on dataful enums by @joshlf in #1665
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1675
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1677
- [CI] Bump peter-evans/create-pull-request from 7.0.3 to 7.0.5 by @dependabot in #1679
- [CI] Bump github/codeql-action from 3.26.7 to 3.26.8 by @dependabot in #1678
- [docs] Link to 0.8 release notes by @joshlf in #1681
- Make
map_src
public on error types by @jswrenn in #1686 - [doc] 0x70 -> 0x10 by @jswrenn in #1687
- Test elem count preservation for ZST slice tails by @joshlf in #1689
- doc: various pre-release improvements by @jswrenn in #1691
- [derive] More complex TryFromBytes enum output tests by @joshlf in #1683
- Use #[diagnostic::on_unimplemented] on traits by @joshlf in #1682
- Release 0.8.0-alpha.22 by @google-pr-creation-bot in #1693
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1695
- [doc] Document
Ref
PMEs by @jswrenn in #1697 - [doc] Fix broken links in
ByteSlice
by @jswrenn in #1699 - Seal
ByteOrder
trait by @jswrenn in #1698 - [byte_slice] Clean up docs and methods by @joshlf in #1700
- [Unalign] Update docs by @joshlf in #1701
- [Unalign::update] Optimize when T is unaligned by @joshlf in #1703
- Implement
TryReadFrom::map_src
by @jswrenn in #1704 - [byteorder] Clean up docs by @joshlf in #1707
- [Ref] Clean up docs by @joshlf in #1706
- Move Vec zero extension functions to FromZeros by @joshlf in #1690
- [derive] Make output tests insensitive to syntax by @joshlf in #1711
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1715
- Improve IntoBytes derive error message by @joshlf in #1713
- Fix
FromBytes::read_from_suffix
return type; remove panic paths by @jswrenn in #1716 - [derive] Improve IntoBytes error messages by @joshlf in #1712
- Release 0.8.0-alpha.23 by @google-pr-creation-bot in #1719
- Encode infallible alignment errors in types by @joshlf in #1718
- Release 0.8.0-alpha.24 by @google-pr-creation-bot in #1722
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1728
- [Ref] Remove unaligned constructors by @joshlf in #1723
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1733
- [doc] Document rustc type privacy bug by @jswrenn in #1734
- [docs] Make infallible align errors discoverable by @joshlf in #1737
- Add TryFromBytes::try_read_from_{prefix,suffix} by @joshlf in #1738
- Add TryFromBytes::try_ref_from_bytes_with_elems by @joshlf in #1740
- Rename generic param to avoid name collision by @djkoloski in #1705
- Inline TryFromBytes derive for variant structs by @djkoloski in #1709
- Release 0.8.0-alpha.25 by @google-pr-creation-bot in #1742
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1746
- [tools] Refactor update-ui-test-files.sh by @joshlf in #1743
- Add TryFromBytes::try_{ref,mut}from{bytes,prefix,suffix}_with_elems by @joshlf in #1747
- [byteorder] Implement additional ops for native RHSs by @jswrenn in #1741
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1754
- [CI] Bump github/codeql-action from 3.26.8 to 3.26.9 by @dependabot in #1755
- Fix copyright headers by @joshlf in #1751
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1761
- [CI] Bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in #1762
- Release 0.8.0-alpha.26 by @google-pr-creation-bot in #1767
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1766
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1771
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1773
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1775
- [CI] Bump github/codeql-action from 3.26.9 to 3.26.10 by @dependabot in #1776
- [derive] Overhaul repr parsing by @joshlf in #1752
- Derive packed by @joshlf in #1781
- [derive] Don't support IntoBytes on repr(Rust) types by @joshlf in #1783
- [derive] Correctly handle #[repr(align)] enums by @joshlf in #1784
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1788
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1791
- [docs] Link to Discord by @joshlf in #1793
- Derive trivial
is_bit_valid
when possible by @joshlf in #1303 - aarch64 fix for big endian types by @lucarlig in #1786
- [ci] Roll pinned nightly toolchain by @google-pr-creation-bot in #1801
- [derive] Support IntoBytes on repr(Rust) structs by @joshlf in #1796
- Fix FromZeros method signatures by @joshlf in #1805
- Mark deprecated functions #[doc(hidden)] by @joshlf in #1806
- Refactor try_read_from_xxx by @joshlf in #1810
- [derive] IntoBytes on unions requires --cfg by @joshlf in #1804
- Release 0.8.0-alpha.27 by @google-pr-creation-bot in #1803
- [POLICIES] Update MSRV policy: multiple crate deps by @joshlf in #1811
- Warn more loudly about IntoBytes on unions by @joshlf in #1812
- Release 0.8.0 by @google-pr-creation-bot in #1813
New Contributors
- @tommy-gilligan made their first contribution in #720
- @Lencerf made their first contribution in #750
- @ezrosent made their first contribution in #830
- @dorryspears made their first contribution in #870
- @00xc made their first contribution in #915
- @jrvanwhy made their first contribution in #544
- @daniel-levin made their first contribution in #1332
- @sl4m made their first contribution in #1396
- @Freax13 made their first contribution in #1601
- @BatuhanDagistanli made their first contribution in #1654
- @lucarlig made their first contribution in #1786