📦 Rust Coreutils 0.0.29 Release:
We are excited to announce the release of Rust Coreutils 0.0.29!
Highlights:
- Improved Compatibility:
- Passing GNU tests increased to 506 (+30 compared to 0.0.28).
- Failing tests reduced to 67 (-27 compared to 0.0.28).
- Contributions: This release was made possible by the dedication of 32 contributors, including 18 newcomers.
- Compared with 0.0.28, several commands now achieve 100% compatibility with GNU tests, including
df
,dircolors
,chmod
,chroot
,comm
,seq
,split
,uniq
, and more. - Performance Boost: Optimizations in tools like
du
,echo
, andseq
.
GNU Test Suite Compatibility:
Here’s how version 0.0.29 compares to the previous release:
Result | 0.0.28 | 0.0.29 | Change 0.0.28 to 0.0.29 | % Total 0.0.28 | % Total 0.0.29 | % Change 0.0.28 to 0.0.29 |
---|---|---|---|---|---|---|
Pass | 476 | 506 | +30 | 77.65% | 82.38% | +4.73% |
Skip | 43 | 41 | -2 | 7.01% | 6.68% | -0.33% |
Fail | 94 | 67 | -27 | 15.34% | 10.92% | -4.42% |
Error | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
Call to Action:
Support our work by sponsoring us on GitHub! Your contributions directly help maintain our infrastructure and enable faster development. Sponsor us here.
For more details and to download the latest release, visit our website: https://uutils.github.io.
What's Changed
basenc
- basenc: ignore Interrupted errors by @andrewliebenow in #6778
- basenc: ignore case with "--base16 --decode" by @cakebaker in #6963
- build-gnu.sh: adapt
basenc
message to clap changes by @cakebaker in #6966
base32/base64
- handle two corner cases by @sylvestre in #6906
checksum
- prepare further behavior fix with a rework by @RenjiSann in #6822
- Further rework by @RenjiSann in #6868
- cksum: even more fixes by @RenjiSann in #6929
- fuzzing: add a new fuzzer for cksum by @sylvestre in #6585
- fix error message when the flags length and an algorithm different from blake2b are present by @Felle33 in #7071
- the --tag is meaningless with --check by @Felle33 in #7079
- remove some unnecessary type info by @cakebaker in #7080
chmod
- Remove duplicate declarations + start to plug it to chmod too by @sylvestre in #7017
- add uucore's
perms
feature toCargo.toml
by @cakebaker in #7037 - add support for the deref and links options by @sylvestre in #7025
- remove test tests/chmod/symlinks from the list by @sylvestre in #7125
chroot
- fix parsing of --userspec argument by @jfinkels in #7043
- remove
-G
short option by @cakebaker in #7051 - fix many issues with chroot by @jfinkels in #7057
- handle the error when invalid user by @sylvestre in #7015
- make group option self overwriting by @AnirbanHalder654322 in #7123
- tests/chroot/chroot-credentials has been fixed by @sylvestre in #7124
comm
- generate an error if the input is a directory by @sylvestre in #6853
- adapt GNU error messages by @cakebaker in #6998
- don't use files for test by @sylvestre in #7140
- implement the ordering check by @sylvestre in #7144
cp
- remove some
sleep()
calls in tests by @cakebaker in #6890 - use the function from uucore by @sylvestre in #7003
- when copying a read only file, make sure that the xattrs can be set properly by @sylvestre in #7009
- copy attributes after making subdir by @rm-dr in #6884
- make --backup and --no-clobber are mutually exclusive by @sylvestre in #7082
- implement copying from streams by @DaringCuteSeal in #7061
csplit
- fix bug when --suppress-matched flag is active and positive/negative offset is present by @Felle33 in #7088
- support reading from pipe by @fuad1502 in #6951
- simplify test by @cakebaker in #7106
- add support for
-q
by @cakebaker in #7000 - allow offset without sign in pattern by @cakebaker in #7006
cut
- Fix cut when lines don't end with specified delim by @andreistan26 in #5844
- adjust to our messages as they are better by @sylvestre in #6921
- some test refactorings by @cakebaker in #6970
- fix overriding of
-d=
by @cakebaker in #6984 - don't merge adjacent ranges by @cakebaker in #6990
- fix handling of newline as delimiter by @cakebaker in #6996
date
dd
df
- fix display of special characters by @jfinkels in #7151
- error on over-mounted device by @jfinkels in #7116
- df test now passes by @sylvestre in #7130
dircolors
- fix empty COLORTERM matching with ?* pattern by @sylvestre in #7089
- move
use
declaration to top by @cakebaker in #7143 - dircolors is fixed by @sylvestre in #7141
du
- Reuse metadata from DirEntry where possible by @jesseschalken in #6839
- fix the display with --inodes by @sylvestre in #6878
- deduplicate the input by @sylvestre in #6885
- Reuse existing metadata instead of calling path.is_dir() again by @jesseschalken in #6840
echo
- remove code made obsolete by MSRV 1.79 by @cakebaker in #6989
- handle double hyphens by @cakebaker in #6997
- add support for
POSIXLY_CORRECT
by @cakebaker in #7059
env
- add missing
cfg
attributes to tests by @cakebaker in #6896 - better handling of the errors by @sylvestre in #7090
- fix only long options are allowed to contain '=' by @jovielarue in #7008
fmt
- generate an error if the input is a directory by @sylvestre in #6854
head
- fix subtraction underflow with --bytes=-N by @jfinkels in #7036
- make head fail when writing to /dev/full by @DaringCuteSeal in #7068
install
- create destination file with safer modes before copy by @nerdroychan in #6595
- Revert "create destination file with safer modes before copy" by @sylvestre in #6922
- implement copying from streams by @DaringCuteSeal in #6965
kill
- add
-n
hidden option for compatibility with bash by @samueltardieu in #7069 - make
-s
conflict with-l
and-t
by @samueltardieu in #7070
ls
- when a file has capabilities (setcap), change the color by @sylvestre in #6987
- finish the plug of mtime by @sylvestre in #7016
- add better support for non-UTF-8 bytes by @jtracey in #7020
mkfifo
- better handle the mode + umask by @sylvestre in #6971
- add missing "mode" feature for uucore dep by @jfinkels in #7075
more
- reduce memory usage a bit by @tertsdiepraam in #6399
mv
- fix the output of an error message by @sylvestre in #6861
- remove
sleep
in tests by @cakebaker in #6880 - show "same file" error for
mv d/f d
by @cakebaker in #5788 - Revert "show 'same file' error for
mv d/f d
" by @sylvestre in #6905 - fix invalid numbered backup path by @hamflx in #6119
- don't panic if apply_xattrs fails by @alexs-sh in #6936
- improve move-to-self error handling by @sgvictorino in #6995
numfmt
- use
succeeds()
/fails()
instead ofrun()
in tests by @cakebaker in #7135 - adapt GNU
numfmt
error message by @cakebaker in #7086
printf
rm
- fix r4_gnu_test by @AnirbanHalder654322 in #6621
- remove outdated comment by @cakebaker in #7022
- remove open call from uu-rm by @elde-n in #7010
seq
- add overflow checks when parsing exponents by @steinwand6 in #6858
- handle scientific notation with uppercase 'E' by @artP2 in #6928
- reduce memory allocation during prefix search by @alexs-sh in #6949
- handle 0e... scientific notation without padding by @aimerlief in #6934
- use
stdout_only()
to removeno_stderr()
by @cakebaker in #6937 - improve error handling for invalid -f values by @jfinkels in #7032
- re-enable GNU test file precision.sh by @jfinkels in #7095
- add floating point support by @alexs-sh in #6959
- add a lower bound for exponents by @alexs-sh in #7145
- fixed tests/seq/seq-precision by @sylvestre in #7147
sort
- Rework merge batching logic by @karlmcdowall in #6957
split
stat
- Improve "stat" compatibility by @sylvestre in #6933
- fix precision when rendering mtime (%Y) by @jfinkels in #7115
tail
- fix issue #6543 (--pid when reading from stdin) by @just-an-engineer in #6582
tr
- Add ambiguous octal escape warning by @OshinoShinobu-Chan in #6886
- generate an error if the input is a directory by @sylvestre in #6855
- generate an error for real if the input is a directory by @sylvestre in #6907
tsort
- split edge data on any whitespace chars by @jfinkels in #7078
- print nodes and cycles as they are visited by @jfinkels in #7093
uniq
- fix multibyte input by @sylvestre in #7046
wc
uucore
- Make EscapedChar and friends pub by @LegNeato in #6903
- Make
Spec
public by @LegNeato in #6946 - uucore/buf_copy: bug fixes for compatibility with uutils core utilities by @DaringCuteSeal in #6983
- uucore: add common splice-write functionality by @DaringCuteSeal in #6964
- uucore: correctly truncate response if getgroups shrinks by @santtu in #6978
- uucore: add alacritty to the list of terminals that support colors by @sylvestre in #6923
- uucore/buf-copy: delete redundant functions by @DaringCuteSeal in #7060
- quoting_style: Add support for non-UTF-8 bytes by @jtracey in #6882
- uucore:format:fix floating-point representation by @alexs-sh in #7034
- Remove crash! macro by @saulvaldelvira in #7084
- uucore: remove mention of crash in docs by @jfinkels in #7109
Build & CI
- GNUmakefile: remove
sleep
fromUNIX_PROGS
to avoid warning by @cakebaker in #6960 - publish: by default, put it as draft by @sylvestre in #6860
- Bump MSRV to
1.77
by @cakebaker in #6870 - Improve gnu build script by @sylvestre in #7136
- GnuComment: zizmor: ignore[dangerous-triggers] by @dcampbell24 in #6974
- Android CICD: use posix style test by @jtracey in #6982
- GNU: try to remove the fail-2eperm.sh workaround by @sylvestre in #7013
- ci: install
libselinux1-dev
by @cakebaker in #7132 - Put DEFAULT_BRANCH into an env variable. by @dcampbell24 in #6973
- Set persist-credentials: false by @dcampbell24 in #6975
- Use the env variable STYLE_FAIL_ON_FAULT. by @dcampbell24 in #6976
- GNU: Improve the SKIP reporting by @sylvestre in #6988
- GnuTests: also display CURRENT_RUN_SKIP for debug purposes by @sylvestre in #6992
- CI: test all features individually by @sylvestre in #7038
- CI: disable the windows job for indiv tests by @sylvestre in #7047
- deny.toml: remove entries from skip list by @cakebaker in #7118
- Refresh cargo.lock and update deny configuration by @sylvestre in #7120
- Prepare release 0.0.29 by @sylvestre in #7121
Code quality
- Fix new clippy warnings by @sylvestre in #6898
- Use
div_ceil()
fromstd
by @cakebaker in #6877 - uudoc,chcon: fix
needless_lifetimes
warnings by @cakebaker in #6899 - uucore/perms: use ORs instead of
match
(fix todo) by @cakebaker in #6891 - clippy: fix clippy warnings by @sylvestre in #6910
- Fix clippy warnings by @RenjiSann in #6932
- Improve the GNU compat doc by @sylvestre in #7012
- clippy: fix errors introduced with Rust
1.84
by @cakebaker in #7111
Documentation
- doc: remove fixed tests from
why-error.md
by @cakebaker in #7101 - doc: improve why-error doc by @sylvestre in #7091
- document two more failures by @sylvestre in #7041
- Fix: broken doc links by @jovielarue in #7024
Dependencies
- Bump
crossterm
from0.27.0
to0.28.1
by @cakebaker in #6874 - Bump
thiserror
from1.0.69
to2.0.3
by @cakebaker in #6888 - Bump
cpp
andcpp_build
from0.5.9
to0.5.10
by @cakebaker in #6887 - fuzz: bump
bigdecimal
from0.4.3
to0.4.7
by @cakebaker in #7148 - Bump
chrono-tz
to0.10.0
by @cakebaker in #7146 - Bump
itertools
from0.13.0
to0.14.0
by @cakebaker in #7045 - Bump
tempfile
from3.14.0
to3.15.0
by @cakebaker in #7062 - Bump
unicode-width
, adapt test and fixtures by @cakebaker in #6904 - Bump
clap
to4.5.23
& fix failingseq
tests by @cakebaker in #6955 - Bump
zip
from1.1.4
to2.2.2
by @cakebaker in #6873 - Cargo.lock: downgrade
log
from0.4.24
to0.4.22
by @cakebaker in #7131 - fix(deps): update rust crate libc to v0.2.164 by @renovate in #6847
- chore(deps): update rust crate serde to v1.0.215 by @renovate in #6862
- chore(deps): update davidanson/markdownlint-cli2-action action to v18 by @renovate in #6864
- fix(deps): update rust crate libfuzzer-sys to v0.4.8 by @renovate in #6863
- fix(deps): update rust crate tempfile to v3.14.0 by @renovate in #6866
- chore(deps): update rust crate thiserror to v1.0.69 by @renovate in #6843
- chore(deps): update rust crate bstr to v1.11.0 by @renovate in #6865
- chore(deps): update rust crate clap_mangen to v0.2.24 by @renovate in #6358
- fix(deps): update rust crate proc-macro2 to v1.0.91 by @renovate in #6879
- fix(deps): update rust crate proc-macro2 to v1.0.92 by @renovate in #6881
- chore(deps): update rust crate fts-sys to v0.2.13 by @renovate in #6883
- fix(deps): update rust crate libc to v0.2.165 by @renovate in #6889
- fix(deps): update rust crate libc to v0.2.166 by @renovate in #6894
- chore(deps): update rust crate blake3 to v1.5.5 by @renovate in #6895
- chore(deps): update dawidd6/action-download-artifact action to v7 by @renovate in #6900
- fix(deps): update rust crate libc to v0.2.167 by @renovate in #6901
- chore(deps): update rust crate terminal_size to v0.4.1 by @renovate in #6902
- chore(deps): update rust crate time to v0.3.37 by @renovate in #6908
- chore(deps): update rust crate thiserror to v2.0.4 by @renovate in #6909
- chore(deps): update rust crate self_cell to v1.1.0 by @renovate in #6927
- chore(deps): update rust crate thiserror to v2.0.5 by @renovate in #6939
- chore(deps): update rust crate thiserror to v2.0.6 by @renovate in #6940
- chore(deps): update rust crate bigdecimal to v0.4.7 by @renovate in #6941
- fix(deps): update rust crate libc to v0.2.168 by @renovate in #6943
- chore(deps): update rust crate chrono to v0.4.39 by @renovate in #6942
- chore(deps): update rust crate serde to v1.0.216 by @renovate in #6948
- chore(deps): update rust crate bstr to v1.11.1 by @renovate in #6950
- fix(deps): update rust crate lazy_static to v1.5.0 by @renovate in #6952
- chore(deps): update mozilla-actions/sccache-action action to v0.0.7 by @renovate in #6953
- chore(deps): update rust crate thiserror to v2.0.7 by @renovate in #6958
- chore(deps): update rust crate clap_complete to v4.5.38 by @renovate in #6361
- fix(deps): update rust crate clap_complete to v4.5.39 by @renovate in #6961
- chore(deps): update rust crate clap_complete to v4.5.40 by @renovate in #6967
- chore(deps): update rust crate thiserror to v2.0.8 by @renovate in #6969
- fix(deps): update rust crate libc to v0.2.169 by @renovate in #6977
- chore(deps): update rust crate thiserror to v2.0.9 by @renovate in #6986
- chore(deps): update rust crate platform-info to v2.0.5 by @renovate in #6991
- chore(deps): update vmactions/freebsd-vm action to v1.1.6 by @renovate in #6994
- fix(deps): update rust crate quote to v1.0.38 by @renovate in #6999
- chore(deps): update rust crate serde to v1.0.217 by @renovate in #7007
- chore(deps): update rust crate glob to v0.3.2 by @renovate in #7018
- chore(deps): update vmactions/freebsd-vm action to v1.1.7 by @renovate in #7014
- chore(deps): update davidanson/markdownlint-cli2-action action to v19 by @renovate in #7019
- chore(deps): update rust crate rstest to 0.24.0 by @renovate in #7049
- chore(deps): update rust crate bstr to v1.11.3 by @renovate in #7054
- chore(deps): update rust crate xattr to v1.4.0 by @renovate in #7081
- chore(deps): update rust crate phf to v0.11.3 by @renovate in #7085
- chore(deps): update rust crate phf_codegen to v0.11.3 by @renovate in #7083
- chore(deps): update rust crate clap to v4.5.24 by @renovate in #7099
- chore(deps): update rust crate clap_complete to v4.5.41 by @renovate in #7100
- chore(deps): update rust crate clap_mangen to v0.2.25 by @renovate in #7102
- chore(deps): update rust crate thiserror to v2.0.10 by @renovate in #7104
- chore(deps): update vmactions/freebsd-vm action to v1.1.8 by @renovate in #7105
- chore(deps): update rust crate clap to v4.5.26 by @renovate in #7107
- chore(deps): update rust crate clap_complete to v4.5.42 by @renovate in #7108
- chore(deps): update rust crate clap_mangen to v0.2.26 by @renovate in #7112
- fix(deps): update rust crate proc-macro2 to v1.0.93 by @renovate in #7117
- chore(deps): update rust crate thiserror to v2.0.11 by @renovate in #7114
- chore(deps): update rust crate notify to v8 by @renovate in #7113
- fix(deps): update rust crate data-encoding-macro to v0.1.16 by @renovate in #7137
- chore(deps): update rust crate chrono-tz to v0.10.1 by @renovate in #7150
- fix(deps): crates import compatible uucore by @Banyc in #6869
New Contributors
- @Banyc made their first contribution in #6869
- @jesseschalken made their first contribution in #6839
- @steinwand6 made their first contribution in #6858
- @LegNeato made their first contribution in #6903
- @hamflx made their first contribution in #6119
- @andreistan26 made their first contribution in #5844
- @nerdroychan made their first contribution in #6595
- @artP2 made their first contribution in #6928
- @aimerlief made their first contribution in #6934
- @alexs-sh made their first contribution in #6936
- @santtu made their first contribution in #6978
- @karlmcdowall made their first contribution in #6957
- @elde-n made their first contribution in #7010
- @jovielarue made their first contribution in #7008
- @Felle33 made their first contribution in #7071
- @rm-dr made their first contribution in #6884
- @saulvaldelvira made their first contribution in #7084
- @fuad1502 made their first contribution in #6951
Full Changelog: 0.0.28...0.0.29