Rust Coreutils 0.10.0 Release:
We are happy to announce the release of Rust Coreutils 0.10.0 - a release focused on GNU compatibility and robustness. The GNU test suite results improved sharply this cycle (645 passing, 29 failing, down from 56), we landed a second wave of security hardening (TOCTOU races, safe recursive descent, SELinux labeling at creation, backup guards), and we ran a broad anti-panic campaign across the utilities. On top of that: new features (mv --exchange, install --reflink, an OpenSSL backend for the checksum utilities), more zero-copy/read-ahead performance work, and wasm32-wasip2 support.
GNU Test Suite Compatibility:
| Result | 0.9.0 | 0.10.0 | Change 0.9.0 to 0.10.0 | % Total 0.9.0 | % Total 0.10.0 | % Change 0.9.0 to 0.10.0 |
|---|---|---|---|---|---|---|
| Pass | 625 | 645 | +20 | 90.58% | 93.48% | +2.90% |
| Skip | 8 | 15 | +7 | 1.16% | 2.17% | +1.01% |
| Fail | 56 | 29 | -27 | 8.12% | 4.20% | -3.92% |
| Error | 1 | 1 | 0 | 0.14% | 0.14% | 0% |
| Total | 690 | 690 | 0 |
Note: 0.9.0 bumped the GNU reference to 9.11, which added 25 new tests and temporarily pushed the failure count up. This cycle absorbed most of that debt: failures dropped from 56 to 29 and passes reached an all-time high of 645. As we contributed many tests to the GNU implementation, we are also the source of some of these regressions!
Highlights:
- GNU Compatibility
- 645 passing GNU tests (+20) and 27 fewer failures, the largest single-cycle drop we have had
- Dozens of behavior alignments:
pr(-w/-W/-l/-e/-o, merge mode, page ranges),nproc(cgroups v2 quota, affinity mask, offline cores,OMP_*handling),date(out-of-range years,-d -,Omodifier, timezone strings),numfmt,ls,du,install,od,truncate,fold,head/tail,sum,stat -
Many error messages now carry the file name and the real OS error instead of a vague or stripped message
-
Security Hardening
- Continued the TOCTOU work started in 0.9.0:
touchno longer usesO_TRUNCon create,mkfifodrops the path-basedchmod,headchecks the open fd instead of the path,splithardens the output-open path,chconanchors recursive relabeling to the traversal dirfd - Safe recursive descent fixes for
chmod/chown(symlink cycles,--preserve-rootre-checked during the descent), andcpno longer descends into a destination subdirectory that is a symlink - SELinux labels are now applied at creation in
mkdir,mkfifoandmknodinstead of being applied afterwards mvfails closed when recreating a cross-device directory destination, compares file identity in the--backup=simpleguard, and strips setuid/setgid when a cross-device copy cannot preserve ownershipchrootchroots exactly the path--skip-chdirvalidated;stdbufrefuses alibstdbufpath that cannot be represented inLD_PRELOAD;installfinalizes ownership before mode-
Added
SECURITY.mddocumenting our threat model, scope and reporting process -
Robustness: Anti-Panic Campaign
- Removed panics and aborts across a long list of utilities:
shuf,printf,numfmt,fmt,pr,chroot,dircolors,install,ln,touch,stat,split,expand,more,kill,cp,du,rm,runcon,sort,chown/chgrp,dirname,expr,cksum,dd,truncate,hashsum - Recurring classes fixed: write failures on
/dev/full, char-boundary panics on multibyte input, integer overflow on extreme widths/precisions/sizes, and unbounded allocations for huge arguments -
exprnow uses an iterative parser, so deeply nested expressions no longer overflow the stack -
New Features
mv --exchangeto atomically swap two pathsinstall --reflinksupport, andinstall -Cnow works with--preserve-timestamps- OpenSSL backend for the faster checksum utilities
cut -Oas a short option for--output-delimiterrm --one-file-system-
timeoutnow works on Windows, andtail -f/-Ffinally follows files on Windows -
Performance
- Read-ahead hints across the
cksumfamily,sum,split,expand/unexpandand thebase*utilities teezero-copy fast path;catthroughput improvements; faster non-reflinkcp; cross-devicemvvia the fast copy pathexpr:indexwent from O(N*M) to O(N+M);uniqandduimprovements;tsortnow buffers its output-
New benchmarks for
expr,tr,cut,uniqand locale-awaresortmerges -
Internationalization
cutsupports multibyte characters in non-UTF-8 localeslsuses Unicode quotes for thelocale/clocalestyles in UTF-8 locales and escapes non-ASCII control characters- Fixed
C.UTF-8being detected as ASCII, and incomplete Fluent fallback bundles -
cksumquotes file names in a locale-aware way -
Cross-platform Reach
- New wasm32-wasip2 target support
- Windows:
timeoutimplementation, sparse copy support incp,tail -f,cksumCRLF fix -
ls --numeric-uid-gidon non-unix platforms,uptimeusesCLOCK_BOOTTIMEon more platforms -
Code Quality
clippy::collapsible_ifandclippy::match_same_armsare now clean and enabled workspace-wide-
Continued
nix→rustixmigration (dd,kill,sync,uptime) and further removal ofunsafeandto_string_lossy -
Contributions: This release was made possible by 50 new contributors joining our community
Call to Action:
Try it in your browser - Online Playground powered by WebAssembly Help us translate - Contribute to Rust Coreutils on Weblate Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
What's Changed
arch
- arch: remove .to_string_lossy() by @oech3 in https://github.com/uutils/coreutils/pull/13355
base32, base64, basenc
- baseNM: read ahead by @oech3 in https://github.com/uutils/coreutils/pull/12570
- Fix base32/base64 error for file paths ending in slash by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12726
cat
- cat: drop fuse workaround by @oech3 in https://github.com/uutils/coreutils/pull/12821
- cat: improve throughput & simplify (split PR) by @oech3 in https://github.com/uutils/coreutils/pull/12850
- cat: don't call io::stdin() twice by @oech3 in https://github.com/uutils/coreutils/pull/13043
- cat: change is_unsafe_override to is_safe_override by @oech3 in https://github.com/uutils/coreutils/pull/13133
chgrp
- chgrp: unstripped error on operation not permitted error by @Devel08 in https://github.com/uutils/coreutils/pull/13361
- chgrp: fix error message for
--from nonexisting_group GROUPby @cakebaker in https://github.com/uutils/coreutils/pull/13490 - chgrp: make
test_referenceless strict on Linux by @cakebaker in https://github.com/uutils/coreutils/pull/13650
chmod
- chmod: always call chmod(2) even when mode bits are unchanged by @sylvestre in https://github.com/uutils/coreutils/pull/13213
- test_chmod.rs: remove an ignored test covered by check-safe-traversal.sh by @oech3 in https://github.com/uutils/coreutils/pull/13298
- chmod: fix 2 clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13509
- chmod: report the real error when a target's metadata is inaccessible by @0xfandom in https://github.com/uutils/coreutils/pull/13637
chown
- chown: -h on symlink to directory operates on link, not target by @rossilor95 in https://github.com/uutils/coreutils/pull/12522
- chown: restrict no-dereference symlink ctime test to Linux by @rossilor95 in https://github.com/uutils/coreutils/pull/12556
- chown, chgrp: report a verbose stdout write error instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13381
- fix(chown,chgrp): print --verbose success lines to stdout by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13419
chroot
- chroot: don't panic on --skip-chdir with a non-resolving NEWROOT by @leeewee in https://github.com/uutils/coreutils/pull/12732
- chroot: avoid unwrap-like operation by @oech3 in https://github.com/uutils/coreutils/pull/13306
cksum
- cksum family: read ahead file by @oech3 in https://github.com/uutils/coreutils/pull/12549
- cksum: fix collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12942
- feat: add OpenSSL backend for checksum utilities by @sylvestre in https://github.com/uutils/coreutils/pull/12412
- checksum: handle stdin before directory checks by @wtcpython in https://github.com/uutils/coreutils/pull/13394
- fix(cksum): reject absurdly large SHAKE --length instead of aborting by @koopatroopa787 in https://github.com/uutils/coreutils/pull/13083
- cksum: fix checksum giving false fails on windows due to crlf -> lf conversion by @nikolalukovic in https://github.com/uutils/coreutils/pull/13431
- cksum: Locale aware filename quoting in not-found messages by @RenjiSann in https://github.com/uutils/coreutils/pull/13733
comm
- comm: remove overhead by .is_dir() by @oech3 in https://github.com/uutils/coreutils/pull/13371
cp
- cp: replace match by is_ok_and by @oech3 in https://github.com/uutils/coreutils/pull/12688
- cp: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/12689
- cp: remove unuseful .map(|_|()) by @oech3 in https://github.com/uutils/coreutils/pull/12700
- cp: remove unnecessary cfgs in Linux module by @cakebaker in https://github.com/uutils/coreutils/pull/12692
- cp: Added error handling for printing debug message by @max-amb in https://github.com/uutils/coreutils/pull/12710
- cp: simplify return type of
backup_dest()by @cakebaker in https://github.com/uutils/coreutils/pull/12719 - cp: handle --parents source ending in parent dir by @nkgotcode in https://github.com/uutils/coreutils/pull/12639
- cp: propagate the --attributes-only destination open error by @leeewee in https://github.com/uutils/coreutils/pull/12625
- cp: improve perf for non-reflink copy by @oech3 in https://github.com/uutils/coreutils/pull/13057
- minorbug(cp): io error messages vague when using -g by @Devel08 in https://github.com/uutils/coreutils/pull/13110
- cp: fix --remove-destination deleting source when dest is the same file under a different path by @LoukasPap in https://github.com/uutils/coreutils/pull/13135
- cp: implement sparse copy support for windows by @nikolalukovic in https://github.com/uutils/coreutils/pull/12686
- fix(cp): remove overrides_with_all from flag group by @BAMF0 in https://github.com/uutils/coreutils/pull/13258
- cp: don't panic on write error when printing --verbose output by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13310
- cp: fix --reflink=never by @oech3 in https://github.com/uutils/coreutils/pull/13065
- fix(cp): change error to align with GNU by @BAMF0 in https://github.com/uutils/coreutils/pull/13382
- cp: dedup match & remove GNU version from comment by @oech3 in https://github.com/uutils/coreutils/pull/13556
- cp: don't hang forever when the backup destination is a fifo by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13344
- cp: fix 2 clippy expections by @oech3 in https://github.com/uutils/coreutils/pull/13537
- cp: remove feat_acl & exacl by @oech3 in https://github.com/uutils/coreutils/pull/13626
- cp: simplify loop by while let by @oech3 in https://github.com/uutils/coreutils/pull/13741
csplit
- csplit: include the file name in output-file errors by @eyupcanakman in https://github.com/uutils/coreutils/pull/13138
- csplit: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13512
cut
- cut: support
-Oas short for--output-delimiterby @cakebaker in https://github.com/uutils/coreutils/pull/13011 - cut: simplify type of
COMPLEX_SEQUENCEin test by @cakebaker in https://github.com/uutils/coreutils/pull/12601 - cut: add a benchmark for a range inside long multibyte lines by @sylvestre in https://github.com/uutils/coreutils/pull/13732
- cut: support multibyte characters in non-UTF-8 locales by @sylvestre in https://github.com/uutils/coreutils/pull/12635
- cut: refactor part of
uumainby @cakebaker in https://github.com/uutils/coreutils/pull/13757
date
- date: reject excessive format widths by @puneetdixit200 in https://github.com/uutils/coreutils/pull/12497
- date: document the format-width cap and cover its boundary by @sylvestre in https://github.com/uutils/coreutils/pull/12658
- date: parse <digits>j as a local time of day by @eyupcanakman in https://github.com/uutils/coreutils/pull/12747
- date: reject a date string with two timezone abbreviations by @mistaste in https://github.com/uutils/coreutils/pull/12883
- date: rename variable
formtofmtby @cakebaker in https://github.com/uutils/coreutils/pull/12898 - Date parse datetime 0.15 fixes by @sylvestre in https://github.com/uutils/coreutils/pull/13284
- test(date): validate locale formats via runtime expansion by @naoNao89 in https://github.com/uutils/coreutils/pull/9831
- date: preserve invalid timezone format strings by @wtcpython in https://github.com/uutils/coreutils/pull/13442
- date: treat -d - as midnight by @wtcpython in https://github.com/uutils/coreutils/pull/13511
- date: simplify code & fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13513
- date: support out-of-range years in default output by @abhishekpradhan in https://github.com/uutils/coreutils/pull/13516
- date: dedup boundary check for bytes by @oech3 in https://github.com/uutils/coreutils/pull/13697
- date: strip the O strftime modifier in the C locale by @igorgbr in https://github.com/uutils/coreutils/pull/13702
- date: use
%Odinstead of%Olin test by @cakebaker in https://github.com/uutils/coreutils/pull/13725
dd
- dd: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12567
- dd: support nocache on android, freebsd by @oech3 in https://github.com/uutils/coreutils/pull/12602
- dd: propagate truncate errors on regular files by @sylvestre in https://github.com/uutils/coreutils/pull/12667
- fix(dd): reject oversized block sizes instead of crashing by @miniex in https://github.com/uutils/coreutils/pull/12887
- test_dd.rs: remove needless printf by @oech3 in https://github.com/uutils/coreutils/pull/13467
- dd: keep short reads from corrupting re-blocked output by @relative23 in https://github.com/uutils/coreutils/pull/13459
- dd: derive the count_bytes read budget from bytes read by @relative23 in https://github.com/uutils/coreutils/pull/13435
- dd use .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13631
- dd: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13628
df
- df: Syncing when paths are provided by @max-amb in https://github.com/uutils/coreutils/pull/12707
- df: simplify bool returning by @oech3 in https://github.com/uutils/coreutils/pull/12946
- df: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13518
- refactor uu_df so crate users can call df without printing to stdout. by @philocalyst in https://github.com/uutils/coreutils/pull/12281
- df: make the public paths argument inferable and pin the test block size by @sylvestre in https://github.com/uutils/coreutils/pull/13611
dir
- dir: report stdout write errors by @wtcpython in https://github.com/uutils/coreutils/pull/13495
dircolors
- dircolors: remove commented out code & make two functions private by @cakebaker in https://github.com/uutils/coreutils/pull/12514
- dircolors: improve test by @cakebaker in https://github.com/uutils/coreutils/pull/12529
- dircolors: turn integration test into unit test & remove unsafe code by @cakebaker in https://github.com/uutils/coreutils/pull/12547
- dircolors: don't panic on an invalid TERM/COLORTERM glob by @leeewee in https://github.com/uutils/coreutils/pull/12728
- dircolors: reduce nested code by @oech3 in https://github.com/uutils/coreutils/pull/12811
- dircolors: replace
if/elsechain withmatchby @cakebaker in https://github.com/uutils/coreutils/pull/12822
dirname
- dirname: fix dirname . >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/12810
du
- du: don't deduplicate --files0-from entries by @sylvestre in https://github.com/uutils/coreutils/pull/13177
- du: don't panic when writing to stdout fails by @muscar in https://github.com/uutils/coreutils/pull/10689
- du: do not deduplicate --files0-from / operand names by name by @sylvestre in https://github.com/uutils/coreutils/pull/12750
- du: Get rid of the last
print!calls by @RenjiSann in https://github.com/uutils/coreutils/pull/13437 - du: our implementation is slower than GNU's by @wilmerdooley in https://github.com/uutils/coreutils/pull/13296
- du: fix Windows dead-code lint by @relative23 in https://github.com/uutils/coreutils/pull/13517
- du: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13520
- du(fix): print latest time with --time by @hlsxx in https://github.com/uutils/coreutils/pull/13543
- du: Refactor loop into while let by @RenjiSann in https://github.com/uutils/coreutils/pull/13739
env
- env: GNU-compatibility fixes by @sylvestre in https://github.com/uutils/coreutils/pull/12657
- env: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13521
expand
- expand: stream tab spaces to avoid abort on large --tabs values by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/13005
- (un)expand: set default of FILE by clap by @oech3 in https://github.com/uutils/coreutils/pull/13122
- (un)expand: read ahead file by @oech3 in https://github.com/uutils/coreutils/pull/13123
- expand: single-pass fast path check with early exit by @devnexen in https://github.com/uutils/coreutils/pull/10924
- expand/unexpand: fix display width of 3- and 4-byte UTF-8 characters by @sylvestre in https://github.com/uutils/coreutils/pull/13352
expr
- expr: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/12578
- expr: speed up index from O(N*M) to O(N+M) by @sylvestre in https://github.com/uutils/coreutils/pull/12580
- fix(expr): make the parser iterative to avoid a stack overflow by @abendrothj in https://github.com/uutils/coreutils/pull/13333
- expr: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13522
fmt
- fmt: large width value causes a panic by @Devel08 in https://github.com/uutils/coreutils/pull/12757
- fmt: measure -w in UTF-8 bytes to match GNU by @sankalpsthakur in https://github.com/uutils/coreutils/pull/13651
fold
- fold: fix crash when reading from pseudo-devices by @lavafroth in https://github.com/uutils/coreutils/pull/11314
- fold: insert fold newline at read-buffer boundary by @sylvestre in https://github.com/uutils/coreutils/pull/12682
- gnucompability(fold): uutils fold accept width 0 but gnu fold rejects it by @Devel08 in https://github.com/uutils/coreutils/pull/12744
- fold: continue processing files after an open error by @sylvestre in https://github.com/uutils/coreutils/pull/12668
groups
- groups: simplify by .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13708
hashsum
- fix(hashsum): always report malformed input with --status (fixes [#12867]) by @koopatroopa787 in https://github.com/uutils/coreutils/pull/12973
head
- head: deduplicate flush() workaround by @oech3 in https://github.com/uutils/coreutils/pull/12563
- fix(head): avoid overflow panic on huge negative -n/-c values by @koopatroopa787 in https://github.com/uutils/coreutils/pull/12854
- head: set default of FILE to - by clap by @oech3 in https://github.com/uutils/coreutils/pull/13354
- head/tail: parse zero byte counts with size suffix as 0 bytes by @MeGaurav4 in https://github.com/uutils/coreutils/pull/13706
hostid
- hostid: add the french locale by @sylvestre in https://github.com/uutils/coreutils/pull/12913
id
- id: don't exit 1 when uid/gid name lookup fails in default output by @c-tonneslan in https://github.com/uutils/coreutils/pull/12341
install
- fix install file with invalid uid by @zhw2101024 in https://github.com/uutils/coreutils/pull/7789
- install: don't panic when the strip program is killed by a signal by @leeewee in https://github.com/uutils/coreutils/pull/12730
- minor fix for error message install to /proc/self/mem by @zhw2101024 in https://github.com/uutils/coreutils/pull/12718
- fix install same file with backup flag by @zhw2101024 in https://github.com/uutils/coreutils/pull/12716
- install: warn --strip-program without -s by @oech3 in https://github.com/uutils/coreutils/pull/12956
- install: include missing source path in stat error by @1mpossible-code in https://github.com/uutils/coreutils/pull/13030
- install: fix dangerous index access by @oech3 in https://github.com/uutils/coreutils/pull/13140
- test_install.rs: remove binaries from repo by @oech3 in https://github.com/uutils/coreutils/pull/13159
- test_install.rs: remove cfg(not(windows)) by @oech3 in https://github.com/uutils/coreutils/pull/13173
- test_install.rs: remove unnecessary cfg by @oech3 in https://github.com/uutils/coreutils/pull/13182
- install: allow -C with --preserve-timestamps by @sylvestre in https://github.com/uutils/coreutils/pull/13176
- install: add error with -d when an argument is not dir by @LoukasPap in https://github.com/uutils/coreutils/pull/13175
- install: use early return to remove indentation level by @cakebaker in https://github.com/uutils/coreutils/pull/13244
- install: remove dead code by @oech3 in https://github.com/uutils/coreutils/pull/13336
- install: remove unused cfg by @oech3 in https://github.com/uutils/coreutils/pull/13337
- install: remove an unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/13342
- install: remove unreachable cfg block by @oech3 in https://github.com/uutils/coreutils/pull/13341
- install: simplify if & match by @oech3 in https://github.com/uutils/coreutils/pull/13339
- install fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13364
- install: show backup failure causes by @wtcpython in https://github.com/uutils/coreutils/pull/13349
- install: support reflink by @oech3 in https://github.com/uutils/coreutils/pull/13059
- install: use portable strip wrappers in tests by @wtcpython in https://github.com/uutils/coreutils/pull/13575
- install: dedup id resolution and make root test robust by @sylvestre in https://github.com/uutils/coreutils/pull/12680
- test_install.rs: strip myself instead of strip_source_file by @oech3 in https://github.com/uutils/coreutils/pull/13705
join
- join: apply the -e filler to empty output fields by @dhruv-15-03 in https://github.com/uutils/coreutils/pull/13718
kill
- kill: replace nix::sys::signal with rustix::process by @mattsu2020 in https://github.com/uutils/coreutils/pull/12326
- kill: use safe rustix Signal constructor, fix spell-checker comment by @sylvestre in https://github.com/uutils/coreutils/pull/12636
- kill: reject out-of-range obsolete -N signal instead of sending SIGTERM by @sylvestre in https://github.com/uutils/coreutils/pull/13116
- kill: move
Ok(())outside ofmatchby @cakebaker in https://github.com/uutils/coreutils/pull/13129 - kill: accept SIGIO as alias for SIGPOLL by @favilances in https://github.com/uutils/coreutils/pull/13294
- kill: remove useless fn rustix_to_io by @oech3 in https://github.com/uutils/coreutils/pull/13304
- kill: report write errors when listing signals instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13300
- kill: integrate thiserror for error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/13397
ln
- ln: accept non-utf8 source names in target-dir modes by @can1357 in https://github.com/uutils/coreutils/pull/11403
- ln: don't panic on --relative with a parentless target by @leeewee in https://github.com/uutils/coreutils/pull/12631
- ln: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13523
- ln: improve readability of
relative_pathfn by @cakebaker in https://github.com/uutils/coreutils/pull/13585 - ln: remove unreachable code by @cakebaker in https://github.com/uutils/coreutils/pull/13599
- ln: don't refuse --backup when src/dst are different names for the same inode by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13345
- ln: include destination in symbolic link failure message by @MeGaurav4 in https://github.com/uutils/coreutils/pull/13673
ls
- test_ls.rs: Add test case for -T by @oech3 in https://github.com/uutils/coreutils/pull/12840
- ls, du: don't panic on an empty time style after posix- strip by @leeewee in https://github.com/uutils/coreutils/pull/12634
- ls: use Unicode quotes for locale/clocale styles in UTF-8 locales by @sylvestre in https://github.com/uutils/coreutils/pull/12675
- ls: escape non-ASCII control chars in UTF-8 locale quoting by @sylvestre in https://github.com/uutils/coreutils/pull/13150
- ls: treat '.' and '..' command-line args as directories, not symlinks by @sylvestre in https://github.com/uutils/coreutils/pull/12656
- bug(ls): when --tabsize is a negative number ls successeds instead of rejecting it by @Devel08 in https://github.com/uutils/coreutils/pull/13278
- ls: simplify tab size parsing and loop the tabsize tests by @sylvestre in https://github.com/uutils/coreutils/pull/13283
- ls: allow detached --sort, --format, --time, --block-size by @bachorp in https://github.com/uutils/coreutils/pull/13281
- ls: avoid leading quote-alignment space for colored names by @paolo-losi in https://github.com/uutils/coreutils/pull/12433
- ls: Improve quote alignement check by @RenjiSann in https://github.com/uutils/coreutils/pull/13433
- ls: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13519
- test(ls): regression test for -aRv recursing into ./.. (#13501) by @Gooh456 in https://github.com/uutils/coreutils/pull/13515
- ls: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/13634
- ls: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13644
- ls: support numeric-uid-gid on non-unix platforms by @eduardomourar in https://github.com/uutils/coreutils/pull/13663
- ls: simplify match by .filter by @oech3 in https://github.com/uutils/coreutils/pull/13696
mkdir
- mkdir: use
map_errinstead ofmatchby @cakebaker in https://github.com/uutils/coreutils/pull/13546
mkfifo
- mkfifo: handle required arg by clap by @oech3 in https://github.com/uutils/coreutils/pull/13504
- mkfifo: stop hardcoding "File exists" as the error message by @Gooh456 in https://github.com/uutils/coreutils/pull/13551
mktemp
- mktemp: use
map_errinstead ofmatchby @cakebaker in https://github.com/uutils/coreutils/pull/12489
more
- more: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13524
- more: avoid overflow when -n is the maximum u16 value by @SAY-5 in https://github.com/uutils/coreutils/pull/12970
- test(more): add integration test for -n u16::MAX regression by @sylvestre in https://github.com/uutils/coreutils/pull/13565
- more: replace is_tty with is_terminal by @xtqqczze in https://github.com/uutils/coreutils/pull/13638
mv
- mv: use copy_stream for fast cross-device move by @oech3 in https://github.com/uutils/coreutils/pull/13046
- mv: ban eprintln! to avoid SIGABRT by @oech3 in https://github.com/uutils/coreutils/pull/13208
- mv: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13525
- mv: add --exchange to atomically swap two paths by @sylvestre in https://github.com/uutils/coreutils/pull/13215
nice
- nice: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/12911
- nice: remove 1 unwrap() using match by @oech3 in https://github.com/uutils/coreutils/pull/12909
- nice: robust clamping overflow by @oech3 in https://github.com/uutils/coreutils/pull/12914
- nice: simplify
is_prefix_of()by @cakebaker in https://github.com/uutils/coreutils/pull/12915 - nice: remove unuseful fn by @oech3 in https://github.com/uutils/coreutils/pull/12924
- nice: untangle complex
matchby @cakebaker in https://github.com/uutils/coreutils/pull/12916 - nice: add newline to warning message by @Devel08 in https://github.com/uutils/coreutils/pull/12929
nohup
- nohup: report command execution errors by @wtcpython in https://github.com/uutils/coreutils/pull/13391
nproc
- nproc: let default value of --ignore 0 by clap by @oech3 in https://github.com/uutils/coreutils/pull/12823
- nproc: reduce a nest by if by @oech3 in https://github.com/uutils/coreutils/pull/12849
- nproc: reject quota with some sched if OMP_NUM_THREADS=NaN by @oech3 in https://github.com/uutils/coreutils/pull/12853
- nproc: simplify by value_parser! by @oech3 in https://github.com/uutils/coreutils/pull/12856
- nproc: use chain for OMP_THREAD_LIMIT by @oech3 in https://github.com/uutils/coreutils/pull/12857
- nproc: honor affinity mask by @oech3 in https://github.com/uutils/coreutils/pull/12859
- nproc: clamp OMP_NUM_THREADS overflow by @oech3 in https://github.com/uutils/coreutils/pull/12861
- nproc: PASS nproc-quota-systemd.sh (manually parse cgroups2 quota) by @oech3 in https://github.com/uutils/coreutils/pull/12871
- nproc: simplify OMP_NUM_THREADS parsing by @oech3 in https://github.com/uutils/coreutils/pull/12880
- nproc: don't show offline cores by @oech3 in https://github.com/uutils/coreutils/pull/12890
- nproc: clamp --ignore overflow by @oech3 in https://github.com/uutils/coreutils/pull/12863
- nproc: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/12908
- nproc: simplify core count by @oech3 in https://github.com/uutils/coreutils/pull/12753
numfmt
- numfmt: prevent panic if float precision specifier > 65535 by @Devel08 in https://github.com/uutils/coreutils/pull/12600
- numfmt: bound --format precision for a zero value by @leeewee in https://github.com/uutils/coreutils/pull/12939
- numfmt: require equals for --header by @bachorp in https://github.com/uutils/coreutils/pull/13273
- numfmt: reject an oversized --from-unit/--to-unit instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13484
- numfmt: do not panic on a multibyte whitespace field separator by @leeewee in https://github.com/uutils/coreutils/pull/13485
- numfmt: add --from=auto test for multibyte whitespace separator by @kushals256 in https://github.com/uutils/coreutils/pull/13487
- numfmt: prevent panic for --format precision > 65535 on remaining paths by @SAY-5 in https://github.com/uutils/coreutils/pull/13514
- numfmt: simplify bool & fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13526
od
- od: bad error message whenever the argument is a directory by @Devel08 in https://github.com/uutils/coreutils/pull/13386
- fix: regression upstream gnu od (#11613) by @uselessgoddess in https://github.com/uutils/coreutils/pull/13396
- od: dedup match by @oech3 in https://github.com/uutils/coreutils/pull/13558
- od: avoid dangerous index access pattern by @oech3 in https://github.com/uutils/coreutils/pull/13592
- od: skip past end of seekable inputs without error by @sylvestre in https://github.com/uutils/coreutils/pull/12646
- od: fix clippy by @oech3 in https://github.com/uutils/coreutils/pull/13710
- od: restore skip-past-end handling for seekable special files by @sylvestre in https://github.com/uutils/coreutils/pull/13713
- od: remove Box from enum CurrentReader by @oech3 in https://github.com/uutils/coreutils/pull/13714
- od: remove enum var not used at production by @oech3 in https://github.com/uutils/coreutils/pull/13738
paste
- paste: reset the delimiter list per file in serial mode by @winklemad in https://github.com/uutils/coreutils/pull/13439
- paste: simplify 2 loop by while by @oech3 in https://github.com/uutils/coreutils/pull/13740
pr
- pr: reject a non-positive expand-tab width (-e0) by @leeewee in https://github.com/uutils/coreutils/pull/12615
- pr: reject a multibyte -e/-n argument instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/12762
- pr: uutils pr accepts -W 0 and -w 0 while gnu pr rejects it by @Devel08 in https://github.com/uutils/coreutils/pull/12779
- pr: uutils pr accepts -l 0 and --pages 0 while GNU doesn't by @Devel08 in https://github.com/uutils/coreutils/pull/12781
- pr: uutils pr accepts negative expand tabs argument, GNU pr doesn't by @Devel08 in https://github.com/uutils/coreutils/pull/12782
- Fix pr -o/--indent overflow handling by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12974
- pr: stream -o/--indent offset to avoid abort on large values by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12994
- pr: pr panics (Option::unwrap() on None) in merge mode -m on empty input [#12995] by @Devel08 in https://github.com/uutils/coreutils/pull/13080
- pr: use
matchinstead ofif/elsechain by @cakebaker in https://github.com/uutils/coreutils/pull/13004 - pr: avoid parsing numeric filename suffixes as operands by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/13353
- pr :simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13500
- pr: simplify clap's FILES & drop a clone() by @oech3 in https://github.com/uutils/coreutils/pull/13499
- pr: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13527
- pr: report missing file as "pr: <file>: <message>" by @addielaruee in https://github.com/uutils/coreutils/pull/13534
- pr: refactor IO error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/13549
- pr: report starting pages beyond page count by @wtcpython in https://github.com/uutils/coreutils/pull/13574
printf
- printf: avoid panic on integer precision above u16::MAX by @SAY-5 in https://github.com/uutils/coreutils/pull/12579
- printf, csplit: fix formatting for zero value when precision is zero by @eyupcanakman in https://github.com/uutils/coreutils/pull/13425
ptx
- ptx: fix panic caused by improper assert by @WhateverAWS in https://github.com/uutils/coreutils/pull/10916
- ptx: reject invalid sentence regexps by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12892
- fix(ptx): missing filename in error messages by @HackingRepo in https://github.com/uutils/coreutils/pull/13251
- ptx: use char counts for before-chunk sizing in get_output_chunks by @sylvestre in https://github.com/uutils/coreutils/pull/12685
- ptx: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13709
pwd
- pwd: ignore non-option arguments, drop getcwd disabling from pwd-long test by @sylvestre in https://github.com/uutils/coreutils/pull/12610
- pwd: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13366
realpath
- realpath: fix 'nonexistent/./' to be treated as invalid by @LoukasPap in https://github.com/uutils/coreutils/pull/13164
- realpath: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13360
- realpath: don't require read permission on a directory just to confirm a trailing slash by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13315
rm
- rm: hint to use ./-foo when removing a dash-prefixed file by @sylvestre in https://github.com/uutils/coreutils/pull/12608
- rm: rewrite dash-hint test with original fixtures by @sylvestre in https://github.com/uutils/coreutils/pull/12737
- rm: one-file-system by @DarthStrom in https://github.com/uutils/coreutils/pull/12819
- rm: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13528
- rm: do not panic when verbose output write fails by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13659
- rm: report a verbose write failure once without aborting the removal by @sylvestre in https://github.com/uutils/coreutils/pull/13679
- rm: use
translatemacro for two error messages by @cakebaker in https://github.com/uutils/coreutils/pull/13730
runcon
- runcon: report a stdout write error instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13380
- runcon: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13649
seq
- seq, printf: avoid integer overflow on extreme precision/exponent by @sylvestre in https://github.com/uutils/coreutils/pull/13246
- seq: simplify match by .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13598
shred
- shred: simplify nested matches by @cakebaker in https://github.com/uutils/coreutils/pull/12524
- shred: fix error message when path has trailing slash by @francesco-gaglione in https://github.com/uutils/coreutils/pull/12725
- shred: two refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/12780
- shred: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13529
- shred: report random source open errors by @wtcpython in https://github.com/uutils/coreutils/pull/13571
- shred: report the real error for an inaccessible file by @0xfandom in https://github.com/uutils/coreutils/pull/13640
shuf
- shuf: fix panic/abort on large -i range without small --head-count by @leeewee in https://github.com/uutils/coreutils/pull/12501
- shuf: don't truncate -o output when input or random source fails by @sylvestre in https://github.com/uutils/coreutils/pull/13113
sort
- sort: fix locale collation strength for hyphen ordering by @JuanCruzMateos in https://github.com/uutils/coreutils/pull/12677
- sort: reject --parallel non-zero by @oech3 in https://github.com/uutils/coreutils/pull/13024
- sort: ignore
--parallelon WASI by @cakebaker in https://github.com/uutils/coreutils/pull/13028 - sort: test punctuation-only differences are kept by -u under locale by @sylvestre in https://github.com/uutils/coreutils/pull/13142
- sort: add merge benchmarks for the UTF-8 locale by @sylvestre in https://github.com/uutils/coreutils/pull/13196
- sort: fix panic on non-UTF-8 filenames with --files0-from by @ppmpreetham in https://github.com/uutils/coreutils/pull/11593
- sort: use os_string_from_vec for --files0-from names by @leeewee in https://github.com/uutils/coreutils/pull/12773
- sort: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13530
- sort: simplify match of chars by @oech3 in https://github.com/uutils/coreutils/pull/13536
- sort: do not panic when a write fails during a merge by @mgravell in https://github.com/uutils/coreutils/pull/13654
- sort: do not panic when --check stops at the first disorder by @mgravell in https://github.com/uutils/coreutils/pull/13652
- sort: make return value of
loopexplicit by @cakebaker in https://github.com/uutils/coreutils/pull/13674
split
- split: read ahead input by @oech3 in https://github.com/uutils/coreutils/pull/12662
- split.rs: dedup io::copy by @oech3 in https://github.com/uutils/coreutils/pull/12663
- split: remove commented out code by @cakebaker in https://github.com/uutils/coreutils/pull/12666
- split: use
map_errinstead ofmatchby @cakebaker in https://github.com/uutils/coreutils/pull/12664 - split: reject excessive suffix lengths by @wondr-wclabs in https://github.com/uutils/coreutils/pull/12609
- split: reject a zero chunk count for -n l/N and r/N by @leeewee in https://github.com/uutils/coreutils/pull/12613
- split: simplify matches! and loop by @oech3 in https://github.com/uutils/coreutils/pull/13052
- split: fix --verbose >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/13054
- split: remove buffering by @oech3 in https://github.com/uutils/coreutils/pull/13069
- split: dedup if by @oech3 in https://github.com/uutils/coreutils/pull/13078
- split: simplify parsing io-blksize by @oech3 in https://github.com/uutils/coreutils/pull/13082
- split: remove Box<dyn write> by @oech3 in https://github.com/uutils/coreutils/pull/13077
- split: replace OPT_ by options:: by @oech3 in https://github.com/uutils/coreutils/pull/13070
- split: simplify match bool by @oech3 in https://github.com/uutils/coreutils/pull/13067
- split: remove dummy std::io::Cursor allocation by @oech3 in https://github.com/uutils/coreutils/pull/13079
- split: reduce strong BufRead dependency by @oech3 in https://github.com/uutils/coreutils/pull/13099
- split: replace match by map_err by @oech3 in https://github.com/uutils/coreutils/pull/13111
- split: remove unused clippy:: by @oech3 in https://github.com/uutils/coreutils/pull/13101
- split: add
platform/wasi.rsby @cakebaker in https://github.com/uutils/coreutils/pull/13076 - split: remove condition by moving reset by @cakebaker in https://github.com/uutils/coreutils/pull/13062
- split: extract proper errno from OS by @oech3 in https://github.com/uutils/coreutils/pull/13112
- split: remove io::copy for LineChunkWriter by @oech3 in https://github.com/uutils/coreutils/pull/13141
- split: remove BufReader if possible by @oech3 in https://github.com/uutils/coreutils/pull/13179
- split: extract error message from os at open_file_error by @oech3 in https://github.com/uutils/coreutils/pull/13411
- split: allow writing to symlink to nonseekable by @oech3 in https://github.com/uutils/coreutils/pull/13416
- split: translate! creating file by @oech3 in https://github.com/uutils/coreutils/pull/13100
- split: fix I/O error handling for device full conditions by @sylvestre in https://github.com/uutils/coreutils/pull/11239
stat
- stat: fix char-boundary panic on an invalid directive after a multibyte char by @leeewee in https://github.com/uutils/coreutils/pull/12617
- stat: bad error message when directory doesn't exist by @Devel08 in https://github.com/uutils/coreutils/pull/13026
- chore(l10n): fix typo in stat -L size by @BAMF0 in https://github.com/uutils/coreutils/pull/13429
- stat: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13531
- stat: use .filter & dedup check for char by @oech3 in https://github.com/uutils/coreutils/pull/13535
- stat: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13648
stty
- stty: avoid overflow when rounding max baud rate by @sjh9714 in https://github.com/uutils/coreutils/pull/13318
- stty: fix trailing semicolon in macro used in expression position by @sylvestre in https://github.com/uutils/coreutils/pull/13468
sum
- sum: read ahead for perf for 1st run by @oech3 in https://github.com/uutils/coreutils/pull/12569
- sum: when / is appended to a regular file, uutils sum reports incorrect error messages by @Devel08 in https://github.com/uutils/coreutils/pull/12870
- sum: sum /proc/self/mem error lacks file path by @Devel08 in https://github.com/uutils/coreutils/pull/12990
- sum: disable test on OpenBSD by @cakebaker in https://github.com/uutils/coreutils/pull/13044
- test_sum.rs: simplify cfg by @oech3 in https://github.com/uutils/coreutils/pull/13051
- sum: remove Box<dyn read> by @oech3 in https://github.com/uutils/coreutils/pull/13074
- sum: extract proper open & read error from OS by @oech3 in https://github.com/uutils/coreutils/pull/13367
sync
- sync: drop unuseful comment by @oech3 in https://github.com/uutils/coreutils/pull/12705
- sync: replace match by ok_or_else by @oech3 in https://github.com/uutils/coreutils/pull/12706
- sync: use map_err by @oech3 in https://github.com/uutils/coreutils/pull/12704
- sync: simplify if block by @oech3 in https://github.com/uutils/coreutils/pull/13375
- sync: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/13590
tac
- tac: set .default_value for FILES by @oech3 in https://github.com/uutils/coreutils/pull/13503
- tac: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13532
- tac: simplify .filter by @oech3 in https://github.com/uutils/coreutils/pull/13690
tail
- tail: replace .ok().is_some_and by .is_ok_and by @oech3 in https://github.com/uutils/coreutils/pull/12690
- tail: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12739
- tail: drop outdated comment about <&- by @oech3 in https://github.com/uutils/coreutils/pull/12752
- tail: reduce code by @oech3 in https://github.com/uutils/coreutils/pull/12755
- tail: fix a collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13107
- tail: treat a watched file replaced by a symlink as untailable by @sylvestre in https://github.com/uutils/coreutils/pull/12661
- tail: remove .to_string_lossy() by @oech3 in https://github.com/uutils/coreutils/pull/13356
- tail: continue processing files after error by @lauchimoon in https://github.com/uutils/coreutils/pull/13445
- tail, touch: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13533
- tail: remove commented out line by @cakebaker in https://github.com/uutils/coreutils/pull/13539
- tail: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13563
- tail: fix -f/-F not following files on Windows (#4827) by @crutkas in https://github.com/uutils/coreutils/pull/13248
- tail: remove an unused var: old_md by @oech3 in https://github.com/uutils/coreutils/pull/13636
- tail: replace matches! by is_some_and, avoid negative name by @oech3 in https://github.com/uutils/coreutils/pull/13635
- tail: remove an unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/13707
- tests(tail): fix race in untailable-symlink test by @eduardomourar in https://github.com/uutils/coreutils/pull/13704
- tail(test): Attempt to fix flaky tail pipe test by increasing byte count by @Xylphy in https://github.com/uutils/coreutils/pull/13701
tee
- tee: avoid 0fill & heap alloc by @oech3 in https://github.com/uutils/coreutils/pull/12527
- tee: fix incorrect comment about flush by @oech3 in https://github.com/uutils/coreutils/pull/12540
- tee: remove ErrorKind::Other, simplify already discarded Result by @oech3 in https://github.com/uutils/coreutils/pull/12953
- tee: simplify aborted bool by @oech3 in https://github.com/uutils/coreutils/pull/12988
- tee: add zero-copy fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11943
- tee: avoid returning double negative Result by @oech3 in https://github.com/uutils/coreutils/pull/13407
timeout
- fix(timeout, uucore): use sigwait and timers for waiting by @Alonely0 in https://github.com/uutils/coreutils/pull/13237
- timeout: Implemention for windows by @nikolalukovic in https://github.com/uutils/coreutils/pull/13363
touch
- touch: do not hang on a reader-less FIFO by @sylvestre in https://github.com/uutils/coreutils/pull/12735
- touch: fix char-boundary panic on a multibyte char in a -t timestamp by @leeewee in https://github.com/uutils/coreutils/pull/12619
- touch: report original input in -t timestamp error message by @wtcpython in https://github.com/uutils/coreutils/pull/13321
- touch: remove unnecessary error msg by @cakebaker in https://github.com/uutils/coreutils/pull/13325
- touch: parse unpadded dates in local time by @wtcpython in https://github.com/uutils/coreutils/pull/13340
- touch: simplify bool, remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13365
- touch: update times on owned files with no read/write permission by @sylvestre in https://github.com/uutils/coreutils/pull/12638
tr
- tr: add codspeed benchmark by @parasol-aser in https://github.com/uutils/coreutils/pull/12189
true
- true, false: strip errno & cleanup use by @oech3 in https://github.com/uutils/coreutils/pull/13591
truncate
- truncate: process all files when one fails by @sylvestre in https://github.com/uutils/coreutils/pull/12734
- truncate: remove duplicate test by @cakebaker in https://github.com/uutils/coreutils/pull/12756
- truncate: simplify fn is_modifier by @oech3 in https://github.com/uutils/coreutils/pull/13412
- truncate: a few trivial refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/13413
- fix(truncate): reject relative size overflow by @ThomasHabets in https://github.com/uutils/coreutils/pull/13427
- truncate: missing input value in error when -s flag is empty by @Devel08 in https://github.com/uutils/coreutils/pull/13588
tsort
- tsort: simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12550
- Add buffered printing and lock output stream to tsort by @mrkalling in https://github.com/uutils/coreutils/pull/12733
- tsort simplify cfg by @oech3 in https://github.com/uutils/coreutils/pull/13219
- tsort: remove unreachable error case by @cakebaker in https://github.com/uutils/coreutils/pull/13238
- tsort: remove unnecessary uses of unsafe by @mrkalling in https://github.com/uutils/coreutils/pull/13323
- tsort: improve expect error message by @xtqqczze in https://github.com/uutils/coreutils/pull/13566
unexpand
- unexpand: reject too-large --tabs increment instead of overflowing by @santhreal in https://github.com/uutils/coreutils/pull/13383
uniq
- uniq: add benchmarks for -w/--check-chars by @sylvestre in https://github.com/uutils/coreutils/pull/13247
- Uniq: improve performances by @sylvestre in https://github.com/uutils/coreutils/pull/13249
- uniq: remove
write_line_terminatormacro by @cakebaker in https://github.com/uutils/coreutils/pull/13632
uptime
- uptime: fix leading zero in the hours field by @eyupcanakman in https://github.com/uutils/coreutils/pull/13098
- uucore, uptime: replace unsafe libc::clock_gettime by rustix by @Devel08 in https://github.com/uutils/coreutils/pull/13291
- uptime: use CLOCK_BOOTTIME on additional platforms by @xtqqczze in https://github.com/uutils/coreutils/pull/13461
- uptime: drop extra spaces by @oech3 in https://github.com/uutils/coreutils/pull/13498
users
- users: fix clippy::collapsible_if (OpenBSD) by @oech3 in https://github.com/uutils/coreutils/pull/13547
wc
- wc: cleanup cfg by @oech3 in https://github.com/uutils/coreutils/pull/12559
- wc: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12738
- wc: remove a nest by cfg by @oech3 in https://github.com/uutils/coreutils/pull/12802
- wc: splice non FIFO stream too by @oech3 in https://github.com/uutils/coreutils/pull/12736
who
- fix(who): add missing rustix feature by @xtqqczze in https://github.com/uutils/coreutils/pull/13681
yes
- yes: improve throughput & simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12650
- yes: match with GNU's strace behaviour by @oech3 in https://github.com/uutils/coreutils/pull/12717
- yes: prepare supporting invalid unicode by @oech3 in https://github.com/uutils/coreutils/pull/12935
- yes: fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/13003
uucore
- simplify pipe wrapper by @oech3 in https://github.com/uutils/coreutils/pull/12528
- pipes:rs: replace unnecessary splice by read-ahead hint by @oech3 in https://github.com/uutils/coreutils/pull/12548
- pipes.rs: fix typo by @oech3 in https://github.com/uutils/coreutils/pull/12554
- uucore: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12740
- uucore: supress clippy::collapsible_if warning by @oech3 in https://github.com/uutils/coreutils/pull/12940
- uucore: handle SIGRTMIN+N and SIGRTMAX-N notation by @enr0n in https://github.com/uutils/coreutils/pull/12149
- uucore: remove dead code by @oech3 in https://github.com/uutils/coreutils/pull/13183
- uucore: rename copy_stream to copy_fast to avoid confusion by @oech3 in https://github.com/uutils/coreutils/pull/13289
- locale: fix incomplete fallback bundles by @BAMF0 in https://github.com/uutils/coreutils/pull/13257
- locale: simplify partial-resource fallback with unwrap_or_else by @sylvestre in https://github.com/uutils/coreutils/pull/13301
- perms.rs: replace unnecessary to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13359
- uucore: replace unnecessary to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13358
- uucore/fsxattr: simplify two matches by @cakebaker in https://github.com/uutils/coreutils/pull/13362
- fn starts_with_plus by @oech3 in https://github.com/uutils/coreutils/pull/13357
- backup_control.rs: remove unsafe & Mutex by @oech3 in https://github.com/uutils/coreutils/pull/12290
- uucore parser: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13510
- signals.rs: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13508
- uucore: fix C.UTF-8 locale incorrectly detected as ASCII by @mufeedali in https://github.com/uutils/coreutils/pull/12525
- lib.rs: simplify fn read_yes by @oech3 in https://github.com/uutils/coreutils/pull/13692
- uucore: document strip_errno with an example by @sylvestre in https://github.com/uutils/coreutils/pull/13724
- uucore: use workspace dependencies by @xtqqczze in https://github.com/uutils/coreutils/pull/13729
- error: clarify UUsageError documentation by @xtqqczze in https://github.com/uutils/coreutils/pull/13737
Security
- Fix recursive descent by @sylvestre in https://github.com/uutils/coreutils/pull/12541
- chmod/chown: symlink cycles detection by @nikolalukovic in https://github.com/uutils/coreutils/pull/11805
- touch: drop O_TRUNC on create to close TOCTOU race (#10019) by @sylvestre in https://github.com/uutils/coreutils/pull/12171
- head: Fixed TOCTOU bug in checking of metadata by @max-amb in https://github.com/uutils/coreutils/pull/12439
- head: add TOCTOU regression tests and fix comment typo by @sylvestre in https://github.com/uutils/coreutils/pull/12637
- mkfifo: drop path-based chmod to close TOCTOU race (#10020) by @sylvestre in https://github.com/uutils/coreutils/pull/12174
- util: move touch/head TOCTOU checks into check-toctou.sh by @sylvestre in https://github.com/uutils/coreutils/pull/12643
- split: harden output open path against TOCTOU target swaps by @sylvestre in https://github.com/uutils/coreutils/pull/12565
- chcon: anchor recursive relabel resolution to traversal dirfd by @sylvestre in https://github.com/uutils/coreutils/pull/12566
- mv: regression test + strace check for cross-device O_NOFOLLOW (#10015) by @sylvestre in https://github.com/uutils/coreutils/pull/12468
- cp: don't open FIFOs/devices when preserving timestamps by @sylvestre in https://github.com/uutils/coreutils/pull/13351
- head: check directory on open fd, not via path is_dir() (#11972) by @sylvestre in https://github.com/uutils/coreutils/pull/12173
- chmod: re-check --preserve-root during the recursive descent by @sylvestre in https://github.com/uutils/coreutils/pull/13621
- uucore: add O_NOFOLLOW to DirFd::open_file_at by @sylvestre in https://github.com/uutils/coreutils/pull/13623
- cp: do not descend into a destination subdirectory that is a symlink by @sylvestre in https://github.com/uutils/coreutils/pull/13624
- install: finalize ownership before mode, and skip the mode if chown fails by @sylvestre in https://github.com/uutils/coreutils/pull/13629
- mv: compare file identity in the --backup=simple safety guard by @sylvestre in https://github.com/uutils/coreutils/pull/13660
- mknod: label the node at creation instead of relabelling it after by @sylvestre in https://github.com/uutils/coreutils/pull/13668
- Backup guard: improve support for mv, cp & install by @sylvestre in https://github.com/uutils/coreutils/pull/13672
- stdbuf: refuse a libstdbuf path that cannot be represented in LD_PRELOAD by @sylvestre in https://github.com/uutils/coreutils/pull/13622
- mv: fail closed when recreating a cross-device directory destination by @sylvestre in https://github.com/uutils/coreutils/pull/13627
- mkdir, mkfifo: label at creation instead of relabelling after by @sylvestre in https://github.com/uutils/coreutils/pull/13676
- chroot: chroot the path that --skip-chdir validated by @sylvestre in https://github.com/uutils/coreutils/pull/13678
- mv: strip setuid/setgid when the cross-device copy cannot preserve ownership by @sylvestre in https://github.com/uutils/coreutils/pull/13675
Code Quality & Cleanup
- remove some collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12537
- remove some collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12539
- Fix clippy by @zhw2101024 in https://github.com/uutils/coreutils/pull/12645
- ignore a ln wasm test by @sylvestre in https://github.com/uutils/coreutils/pull/12679
- uufuzz: simplify by @oech3 in https://github.com/uutils/coreutils/pull/12745
- Simplify if-guard-then-bool returns by @sylvestre in https://github.com/uutils/coreutils/pull/12702
- test: simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12888
- workspace.wordlist.txt: remove hashsum by @oech3 in https://github.com/uutils/coreutils/pull/12907
- test: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/12938
- Cargo.toml: drop unused feat_os_windows_legacy by @oech3 in https://github.com/uutils/coreutils/pull/13055
- Use Option::ok_or with ? instead of let...else returning Err by @sylvestre in https://github.com/uutils/coreutils/pull/13102
- Stabilize some benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/13254
- clippy: fix lints by @xtqqczze in https://github.com/uutils/coreutils/pull/13329
- fuzz_date.rs: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13369
- Cargo.toml: enable clippy::used_underscore_items by @oech3 in https://github.com/uutils/coreutils/pull/13542
- complete fix for clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13538
- fix more ruff warnings by @sylvestre in https://github.com/uutils/coreutils/pull/13560
- refactor: use core::ffi types by @xtqqczze in https://github.com/uutils/coreutils/pull/13568
- Cargo.toml: drop unnecessary comment by @oech3 in https://github.com/uutils/coreutils/pull/13589
- clippy: fix with_capacity_zero beta lint by @xtqqczze in https://github.com/uutils/coreutils/pull/13602
- fix: nightly clippy redundant else block lint by @HackingRepo in https://github.com/uutils/coreutils/pull/13601
- clippy: allow missing_const_for_thread_local false positives by @xtqqczze in https://github.com/uutils/coreutils/pull/12333
- test: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13548
- test: fix
unreachable_patternslint on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/13616 - fix some clippy::match_same_arms's (split [#13541]) by @oech3 in https://github.com/uutils/coreutils/pull/13617
- test: widen several linux-only tests to run on all unix platforms by @eduardomourar in https://github.com/uutils/coreutils/pull/13666
- test: fix platform assumptions in du and realpath tests by @eduardomourar in https://github.com/uutils/coreutils/pull/13665
- enable clippy::match_same_arms globally by @oech3 in https://github.com/uutils/coreutils/pull/13689
- cargo: move lints section after dependencies and features by @xtqqczze in https://github.com/uutils/coreutils/pull/13715
- benchmarks: prepare args outside benchmark by @xtqqczze in https://github.com/uutils/coreutils/pull/10388
- test: fix comparison of integers wider than i128 by @dhruv-15-03 in https://github.com/uutils/coreutils/pull/13719
CI & Build
- CICD: remove an unused variable by @oech3 in https://github.com/uutils/coreutils/pull/12534
- openbsd.yml: improve perf & sync disk space cleanup by @oech3 in https://github.com/uutils/coreutils/pull/12583
- openbsd.yml: get additional free disk space by @oech3 in https://github.com/uutils/coreutils/pull/12627
- GnuTests (SMACK): bump busybox URL by @oech3 in https://github.com/uutils/coreutils/pull/12754
- Potential fix for code scanning alert no. 5: Workflow does not contain permissions by @sylvestre in https://github.com/uutils/coreutils/pull/12655
- make.yml: reduce binary size by @oech3 in https://github.com/uutils/coreutils/pull/12247
- GnuTests: remove LD_PRELOAD from nproc-quota.sh & avoid 0 period by @oech3 in https://github.com/uutils/coreutils/pull/13255
- util: re-point GNU test harness at current checkout in run-gnu-test.sh by @sylvestre in https://github.com/uutils/coreutils/pull/13163
- make.yml: install uutils to CI image by @oech3 in https://github.com/uutils/coreutils/pull/9634
- CICD.yml: Publish both of coreutils and individual MSVC *.exe by @oech3 in https://github.com/uutils/coreutils/pull/11270
- Group fuzz targets in fuzzing workflow by @mattsu2020 in https://github.com/uutils/coreutils/pull/12450
- Revert "make.yml: install uutils to CI image" by @oech3 in https://github.com/uutils/coreutils/pull/13406
- ci(FixPR): add explicit least-privilege permissions block by @kobihikri in https://github.com/uutils/coreutils/pull/13402
- fuzzing.yml: simplify host-tuple by @oech3 in https://github.com/uutils/coreutils/pull/13392
- make.yml: don't publish cygwin bins (hot fix for CI) by @oech3 in https://github.com/uutils/coreutils/pull/13456
- benchmarks: reduce CodSpeed CI load to avoid cache API rate limits by @sylvestre in https://github.com/uutils/coreutils/pull/13462
- GNUmakefile: don't try to install libstdbuf for Windows target by @oech3 in https://github.com/uutils/coreutils/pull/12533
- CI: remove actions/setup-python by @oech3 in https://github.com/uutils/coreutils/pull/13465
- ci: fix Cygwin build failure due to Windows Mandatory ASLR by @sylvestre in https://github.com/uutils/coreutils/pull/13470
- fix(ci): keep coverage profraw writable under umask 0777 tests by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13502
- fuzzing.yml: Bump GNU coreutils to 9.11 by @oech3 in https://github.com/uutils/coreutils/pull/13201
- Revert "fuzzing.yml: Bump GNU coreutils to 9.11" by @sylvestre in https://github.com/uutils/coreutils/pull/13559
- GnuTests: backport cat/splice.sh by @oech3 in https://github.com/uutils/coreutils/pull/13387
- Disable Redox target in CICD workflow by @sylvestre in https://github.com/uutils/coreutils/pull/13657
- ci: Change the spell detection strategy by @sylvestre in https://github.com/uutils/coreutils/pull/13472
- ci: skip cspell on pre-commit.ci by @sylvestre in https://github.com/uutils/coreutils/pull/13661
- fix the CI by @sylvestre in https://github.com/uutils/coreutils/pull/13711
Documentation
- CONTRIBUTING: link to the review guidelines website by @sylvestre in https://github.com/uutils/coreutils/pull/12523
- installation.md: fix broken ubuntu link by @cakebaker in https://github.com/uutils/coreutils/pull/12515
- installation.md: bump Ubuntu version by @oech3 in https://github.com/uutils/coreutils/pull/12526
- release notes for 0.9.0 by @sylvestre in https://github.com/uutils/coreutils/pull/12531
- SECURITY.md: document threat model, scope, and GitHub reporting by @sylvestre in https://github.com/uutils/coreutils/pull/12724
- we have a domain name now by @sylvestre in https://github.com/uutils/coreutils/pull/13114
- CONTRIBUTING.md: Add URL to get latest GNU coreutils by @oech3 in https://github.com/uutils/coreutils/pull/13233
- CONTRIBUTING.md: improve wording of reference GNU coreutils section by @sylvestre in https://github.com/uutils/coreutils/pull/13269
- README: fix gnu vs musl note by @JohannesSchilling in https://github.com/uutils/coreutils/pull/13303
- docs: fix macOS tier 1 targets and platform compatibility table by @wtcpython in https://github.com/uutils/coreutils/pull/13305
- chore: fix markdown rendering typo by @HackingRepo in https://github.com/uutils/coreutils/pull/13586
Platform Support
- chore: restrict Android cfg too 64-bit to match
linux_execfnby @YumeYuka in https://github.com/uutils/coreutils/pull/12416 - wasm: support for wasm32-wasip2 target by @eduardomourar in https://github.com/uutils/coreutils/pull/12653
Dependency Updates
- chore(deps): update rust crate libfuzzer-sys to v0.4.13 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12606
- chore(deps): update codecov/codecov-action action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12678
- chore(deps): update rust crate regex to v1.12.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12746
- chore(deps): update rust crate memchr to v2.8.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12796
- Bump
time& adaptpinkyandwhoto API change by @cakebaker in https://github.com/uutils/coreutils/pull/12872 - chore(deps): update actions/checkout action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12966
- Bump
getrandomfrom0.4.2to0.4.3by @cakebaker in https://github.com/uutils/coreutils/pull/12957 - chore(deps): update rust crate jiff to v0.2.29 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13008
- Bump
itertoolsfrom0.14.0to0.15.0by @cakebaker in https://github.com/uutils/coreutils/pull/12987 - chore(deps): update rust crate quote to v1.0.46 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13021
- chore(deps): update rust crate time to v0.3.51 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13022
- chore(deps): update rust crate memmap2 to v0.9.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13033
- chore(deps): update rust crate divan to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13050
- chore(deps): update actions/cache action to v6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13049
- chore(deps): update rust crate bstr to v1.12.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13071
- chore(deps): update rust crate icu_collator to v2.2.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13072
- chore(deps): update rust crate bstr to v1.12.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13081
- chore(deps): update rust crate divan to v5.0.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13106
- Bump
phf&phf_codegenfrom0.13.1to0.14.0by @cakebaker in https://github.com/uutils/coreutils/pull/13048 - chore(deps): update rust crate openssl to v0.10.81 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13188
- chore(deps): update rust crate jiff to v0.2.31 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13214
- chore(deps): update rust crate indicatif to v0.18.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13211
- chore(deps): update rust crate time to v0.3.52 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13229
- chore(deps): update rust crate clap_complete to v4.6.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13236
- chore(deps): update rust crate time to v0.3.53 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13239
- chore(deps): update rust crate console to v0.16.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13242
- chore(deps): update rust crate indicatif to v0.18.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13243
- chore(deps): update rust crate clap_complete to v4.6.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13245
- chore(deps): update rust crate rand to v0.10.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13253
- chore(deps): update actions/checkout action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13189
- chore(deps): update rust crate selinux to v0.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13262
- chore(deps): update rust crate rustc-hash to v2.1.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13261
- chore(deps): update davidanson/markdownlint-cli2-action action to v24 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13266
- chore(deps): update reactivecircus/android-emulator-runner action to v2.38.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13277
- chore(deps): update astral-sh/ruff-action action to v4.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13279
- Bump
defmtfrom1.1.0to1.1.1by @cakebaker in https://github.com/uutils/coreutils/pull/13271 - chore(deps): update rust crate ctor to v1.0.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13285
- deny.toml: remove
winnowfrom skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13290 - Bump
crossbeam-epochfrom0.9.18to0.9.20by @cakebaker in https://github.com/uutils/coreutils/pull/13299 - chore(deps): update rust crate memchr to v2.8.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13309
- chore(deps): update rust crate jiff to v0.2.32 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13322
- chore(deps): update rust crate regex to v1.13.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13328
- chore(deps): update rust crate bstr to v1.13.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13405
- fix(cargo): update filetime dependency version constraint by @xtqqczze in https://github.com/uutils/coreutils/pull/12334
- chore(deps): update rust crate clap to v4.6.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13414
- chore(deps): update rust crate regex to v1.13.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13415
- chore(deps): update rust crate ctor to v1.0.9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13417
- chore(deps): update rust crate self_cell to v1.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13418
- chore(deps): update rust crate cfg_aliases to v0.2.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13424
- chore(deps): update rust crate quote to v1.0.47 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13448
- chore(deps): update rust crate proc-macro2 to v1.0.107 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13447
- chore(deps): update rust crate jiff to v0.2.33 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13446
- Bump
thiserror& addsynto skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13457 - Bump
spinfrom0.10.0to0.10.1by @cakebaker in https://github.com/uutils/coreutils/pull/13455 - chore(deps): update rust crate jiff to v0.2.34 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13463
- chore(deps): update rust crate time to v0.3.54 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13469
- chore(deps): update rust crate clap to v4.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13477
- chore(deps): update actions/checkout action to v7.0.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13476
- chore(deps): update rust crate libc to v0.2.187 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13486
- chore(deps): update rust crate syn to v3.0.2 by @xtqqczze in https://github.com/uutils/coreutils/pull/13474
- chore(deps): update rust crate libc to v0.2.188 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13489
- chore(deps): update rust crate libc to v0.2.189 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13497
- chore(deps): update rust crate clap to v4.6.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13496
- chore(deps): update rust crate glob to v0.3.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13492
- chore(deps): update rust crate ctor to v1.0.10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13491
- fuzz: update thiserror to 2.0.19 by @xtqqczze in https://github.com/uutils/coreutils/pull/13553
- chore(deps): update rust crate jiff to v0.2.35 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13573
- chore(deps): update rust crate socket2 to v0.6.5 by @xtqqczze in https://github.com/uutils/coreutils/pull/13577
- chore(deps): update rust crate jiff-tzdb to v0.1.8 by @xtqqczze in https://github.com/uutils/coreutils/pull/13582
- chore(deps): update rust crate num-bigint to v0.4.8 by @xtqqczze in https://github.com/uutils/coreutils/pull/13581
- chore(deps): run cargo shear by @xtqqczze in https://github.com/uutils/coreutils/pull/13583
- chore(deps): update rust crate ctor to v1.0.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13584
- chore(deps): update rust crate zmij to 1.0.23 by @xtqqczze in https://github.com/uutils/coreutils/pull/13587
- chore(deps): update rust crate clap_complete to v4.6.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13606
- chore(deps): update rust crate jobserver to v0.1.35 by @xtqqczze in https://github.com/uutils/coreutils/pull/13607
- chore(deps): update rust crate displaydoc to v0.2.7 by @xtqqczze in https://github.com/uutils/coreutils/pull/13618
- chore(deps): update rust crate zerocopy to v0.8.55 by @xtqqczze in https://github.com/uutils/coreutils/pull/13619
- chore(deps): update codspeedhq/action action to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13642
- chore(deps): update mozilla-actions/sccache-action action to v0.0.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13641
- chore(deps): update rust crate ctor to v1.0.12 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13647
- chore(deps): update rust crate clap to v4.6.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13677
- chore(deps): update rust crate time to v0.3.55 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13693
- deps: update cfg_aliases dependency to use workspace configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/13712
- chore(deps): update rust crate data-encoding-macro to v0.1.21 by @xtqqczze in https://github.com/uutils/coreutils/pull/13726
- chore(deps): update rust crate similar to v3.1.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13743
Version Management
- prepare release 0.10.0 by @sylvestre in https://github.com/uutils/coreutils/pull/13721
New Contributors
- @leeewee made their first contribution in https://github.com/uutils/coreutils/pull/12501
- @SAY-5 made their first contribution in https://github.com/uutils/coreutils/pull/12579
- @puneetdixit200 made their first contribution in https://github.com/uutils/coreutils/pull/12497
- @wondr-wclabs made their first contribution in https://github.com/uutils/coreutils/pull/12609
- @JuanCruzMateos made their first contribution in https://github.com/uutils/coreutils/pull/12677
- @francesco-gaglione made their first contribution in https://github.com/uutils/coreutils/pull/12725
- @TheAdamWarlock made their first contribution in https://github.com/uutils/coreutils/pull/12726
- @koopatroopa787 made their first contribution in https://github.com/uutils/coreutils/pull/12854
- @mrkalling made their first contribution in https://github.com/uutils/coreutils/pull/12733
- @mistaste made their first contribution in https://github.com/uutils/coreutils/pull/12883
- @DarthStrom made their first contribution in https://github.com/uutils/coreutils/pull/12819
- @nkgotcode made their first contribution in https://github.com/uutils/coreutils/pull/12639
- @enr0n made their first contribution in https://github.com/uutils/coreutils/pull/12149
- @1mpossible-code made their first contribution in https://github.com/uutils/coreutils/pull/13030
- @LoukasPap made their first contribution in https://github.com/uutils/coreutils/pull/13164
- @ppmpreetham made their first contribution in https://github.com/uutils/coreutils/pull/11593
- @HackingRepo made their first contribution in https://github.com/uutils/coreutils/pull/13251
- @bachorp made their first contribution in https://github.com/uutils/coreutils/pull/13273
- @JohannesSchilling made their first contribution in https://github.com/uutils/coreutils/pull/13303
- @favilances made their first contribution in https://github.com/uutils/coreutils/pull/13294
- @Chaganti-Reddy made their first contribution in https://github.com/uutils/coreutils/pull/13310
- @wtcpython made their first contribution in https://github.com/uutils/coreutils/pull/13305
- @sjh9714 made their first contribution in https://github.com/uutils/coreutils/pull/13318
- @muscar made their first contribution in https://github.com/uutils/coreutils/pull/10689
- @miniex made their first contribution in https://github.com/uutils/coreutils/pull/12887
- @parasol-aser made their first contribution in https://github.com/uutils/coreutils/pull/12189
- @santhreal made their first contribution in https://github.com/uutils/coreutils/pull/13383
- @kobihikri made their first contribution in https://github.com/uutils/coreutils/pull/13402
- @ThomasHabets made their first contribution in https://github.com/uutils/coreutils/pull/13427
- @paolo-losi made their first contribution in https://github.com/uutils/coreutils/pull/12433
- @uselessgoddess made their first contribution in https://github.com/uutils/coreutils/pull/13396
- @winklemad made their first contribution in https://github.com/uutils/coreutils/pull/13439
- @l46983284-cpu made their first contribution in https://github.com/uutils/coreutils/pull/13419
- @lauchimoon made their first contribution in https://github.com/uutils/coreutils/pull/13445
- @relative23 made their first contribution in https://github.com/uutils/coreutils/pull/13459
- @kushals256 made their first contribution in https://github.com/uutils/coreutils/pull/13487
- @wilmerdooley made their first contribution in https://github.com/uutils/coreutils/pull/13296
- @addielaruee made their first contribution in https://github.com/uutils/coreutils/pull/13534
- @mufeedali made their first contribution in https://github.com/uutils/coreutils/pull/12525
- @philocalyst made their first contribution in https://github.com/uutils/coreutils/pull/12281
- @crutkas made their first contribution in https://github.com/uutils/coreutils/pull/13248
- @abhishekpradhan made their first contribution in https://github.com/uutils/coreutils/pull/13516
- @eduardomourar made their first contribution in https://github.com/uutils/coreutils/pull/12653
- @Gooh456 made their first contribution in https://github.com/uutils/coreutils/pull/13515
- @sankalpsthakur made their first contribution in https://github.com/uutils/coreutils/pull/13651
- @0xfandom made their first contribution in https://github.com/uutils/coreutils/pull/13640
- @mgravell made their first contribution in https://github.com/uutils/coreutils/pull/13654
- @MeGaurav4 made their first contribution in https://github.com/uutils/coreutils/pull/13673
- @igorgbr made their first contribution in https://github.com/uutils/coreutils/pull/13702
- @dhruv-15-03 made their first contribution in https://github.com/uutils/coreutils/pull/13718
Full Changelog: https://github.com/uutils/coreutils/compare/0.9.0...0.10.0