### **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`, 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!

---

![GNU testsuite evolution](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true)

---

### 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 -`, `O` modifier, 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: `touch` no longer uses `O_TRUNC` on create, `mkfifo` drops the path-based `chmod`, `head` checks the open fd instead of the path, `split` hardens the output-open path, `chcon` anchors recursive relabeling to the traversal dirfd
  - Safe recursive descent fixes for `chmod`/`chown` (symlink cycles, `--preserve-root` re-checked during the descent), and `cp` no longer descends into a destination subdirectory that is a symlink
  - SELinux labels are now applied **at creation** in `mkdir`, `mkfifo` and `mknod` instead of being applied afterwards
  - `mv` fails closed when recreating a cross-device directory destination, compares file identity in the `--backup=simple` guard, and strips setuid/setgid when a cross-device copy cannot preserve ownership
  - `chroot` chroots exactly the path `--skip-chdir` validated; `stdbuf` refuses a `libstdbuf` path that cannot be represented in `LD_PRELOAD`; `install` finalizes ownership before mode
  - Added `SECURITY.md` documenting 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
  - `expr` now uses an iterative parser, so deeply nested expressions no longer overflow the stack

- **New Features**
  - `mv --exchange` to atomically swap two paths
  - `install` supports reflink, and `install -C` now works with `--preserve-timestamps`
  - **OpenSSL backend** for the faster checksum utilities
  - `cut -O` as a short option for `--output-delimiter`
  - `rm --one-file-system`
  - `timeout` now works on Windows, and `tail -f`/`-F` finally follows files on Windows

- **Performance**
  - Read-ahead hints across the `cksum` family, `sum`, `split`, `expand`/`unexpand` and the `base*` utilities
  - `tee` zero-copy fast path; `cat` throughput improvements; faster non-reflink `cp`; cross-device `mv` via the fast copy path
  - `expr`: `index` went from O(N*M) to O(N+M); `uniq` and `du` improvements; `tsort` now buffers its output
  - New benchmarks for `expr`, `tr`, `cut`, `uniq` and locale-aware `sort` merges

- **Internationalization**
  - `cut` supports multibyte characters in non-UTF-8 locales
  - `ls` uses Unicode quotes for the `locale`/`clocale` styles in UTF-8 locales and escapes non-ASCII control characters
  - Fixed `C.UTF-8` being detected as ASCII, and incomplete Fluent fallback bundles
  - `cksum` quotes file names in a locale-aware way

- **Cross-platform Reach**
  - New **wasm32-wasip2** target support
  - Windows: `timeout` implementation, sparse copy support in `cp`, `tail -f`, `cksum` CRLF fix
  - `ls --numeric-uid-gid` on non-unix platforms, `uptime` uses `CLOCK_BOOTTIME` on more platforms

- **Code Quality**
  - `clippy::collapsible_if` and `clippy::match_same_arms` are now clean and enabled workspace-wide
  - Continued `nix` → `rustix` migration (`dd`, `kill`, `sync`, `uptime`) and further removal of `unsafe` and `to_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](https://uutils.github.io/playground/) powered by WebAssembly
**Help us translate** - Contribute to [Rust Coreutils on Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
**Sponsor us on GitHub** to accelerate development: [github.com/sponsors/uutils](https://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 GROUP` by @cakebaker in https://github.com/uutils/coreutils/pull/13490
* chgrp: make `test_reference` less 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 `-O` as short for `--output-delimiter` by @cakebaker in https://github.com/uutils/coreutils/pull/13011
* cut: simplify type of `COMPLEX_SEQUENCE` in 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 `uumain` by @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 `form` to `fmt` by @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 `%Od` instead of `%Ol` in 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`/`else` chain with `match` by @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 of `match` by @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_path` fn 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_err` instead of `match` by @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_err` instead of `match` by @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 `match` by @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 `match` instead of `if`/`else` chain 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 `translate` macro 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 `--parallel` on 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 `loop` explicit 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_err` instead of `match` by @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.rs` by @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_terminator` macro 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_patterns` lint 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_execfn` by @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` & adapt `pinky` and `who` to 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 `getrandom` from `0.4.2` to `0.4.3` by @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 `itertools` from `0.14.0` to `0.15.0` by @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_codegen` from `0.13.1` to `0.14.0` by @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 `defmt` from `1.1.0` to `1.1.1` by @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 `winnow` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13290
* Bump `crossbeam-epoch` from `0.9.18` to `0.9.20` by @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` & add `syn` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13457
* Bump `spin` from `0.10.0` to `0.10.1` by @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
