From 8312ebd7a6ce7dfb3f3bc7a069469119099308ad Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 4 Feb 2026 11:04:13 +0100 Subject: [PATCH] add 0.5.0 & 0.6.0 release notes --- docs/src/release-notes/0.5.0.md | 313 +++++++++++++ docs/src/release-notes/0.6.0.md | 759 ++++++++++++++++++++++++++++++++ 2 files changed, 1072 insertions(+) create mode 100644 docs/src/release-notes/0.5.0.md create mode 100644 docs/src/release-notes/0.6.0.md diff --git a/docs/src/release-notes/0.5.0.md b/docs/src/release-notes/0.5.0.md new file mode 100644 index 00000000000..3f1c40c6521 --- /dev/null +++ b/docs/src/release-notes/0.5.0.md @@ -0,0 +1,313 @@ +### 📦 **Rust Coreutils 0.5.0 Release:** + +We are excited to announce the release of **Rust Coreutils 0.5.0** — a significant milestone featuring **comprehensive platform improvements**, and **robust testing infrastructure** with continued progress toward full GNU compatibility! + +--- + +### Highlights: + +- **Improved GNU Compatibility** + - **566 passing tests** (+22 from 0.4.0), achieving **87.75%** compatibility + - Reduced failures from 56 to 55 (-1) and skipped tests from 33 to 23 (-10) + - Updated GNU reference from 9.8 to 9.9, adding 11 new tests + - Major improvements to `fold`, `cksum`, `install`, and `numfmt` + +- **Unicode & Text Processing Enhancements** + - `fold`: Added combining character support for proper Unicode text wrapping + - `ptx`: Implemented GNU mode with dumb terminal format + - Enhanced text processing across multiple utilities + +- **Security & Performance Improvements** + - `cksum`: Merged with hashsum for unified checksum functionality + - `install`: Enhanced mode parsing with comma-separated support and umask handling + - `seq`: Improved large integer handling with dedicated benchmarks + - Various memory and performance optimizations across utilities + +- **Platform Support Expansion** + - Added OpenBSD to CI pipeline with comprehensive testing + - Re-enabled Redox OS support in CI + - Enhanced Cygwin support in uucore + - Improved build processes across platforms + +- **Developer Experience Improvements** + - New TTY helper for enhanced testing capabilities + - Comprehensive benchmarking additions for multiple utilities + - Reduced dependency bloat through feature splitting + - Enhanced hardware detection module + +- **Contributions**: This release was made possible by **6 new contributors** joining our community + +--- + +### GNU Test Suite Compatibility: + +| Result | 0.4.0 | 0.5.0 | Change 0.4.0 to 0.5.0 | % Total 0.4.0 | % Total 0.5.0 | % Change 0.4.0 to 0.5.0 | +|---------------|-------|-------|------------------------|---------------|---------------|--------------------------| +| Pass | 544 | 566 | +22 | 85.80% | 87.75% | +1.95% | +| Skip | 33 | 23 | -10 | 5.21% | 3.57% | -1.64% | +| Fail | 56 | 55 | -1 | 8.83% | 8.53% | -0.30% | +| Error | 1 | 1 | 0 | 0.16% | 0.16% | 0% | +| Total | 634 | 645 | +11 (new tests) | | | | + +--- + +![GNU testsuite evolution](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true) + +--- + +### Call to Action: + +🌍 **Help us translate** - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/) +🚀 **Sponsor us on GitHub** to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils) +🔗 Download the latest release: [https://uutils.github.io](https://uutils.github.io) + +## What's Changed + +## basenc +* basenc: Fix basenc.pl GNU-compat tests pass by @karanabe in https://github.com/uutils/coreutils/pull/9203 +* fix(Basenc):fix GNU coreutils test bounded-memory.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9536 +* base32, base64, baseenc:Simplifying the base encoding uu_app and adding basic buffer tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9409 + +## chmod +* chmod:fix safe traversal/access by @mattsu2020 in https://github.com/uutils/coreutils/pull/9554 + +## cksum +* cksum/hashsum: merge digest computation & various improvements by @RenjiSann in https://github.com/uutils/coreutils/pull/9135 +* cksum: Fix GNU test cksum-base64-untagged by @RenjiSann in https://github.com/uutils/coreutils/pull/9344 +* Add --debug flag to cksum by @naoNao89 in https://github.com/uutils/coreutils/pull/9088 +* cksum: Fix GNU test `cksum-c.sh` after bump to 9.9 by @RenjiSann in https://github.com/uutils/coreutils/pull/9511 +* cksum: small improvements, l10n by @RenjiSann in https://github.com/uutils/coreutils/pull/9532 +* Fix hardware capabilities detection; cksum --debug by @RenjiSann in https://github.com/uutils/coreutils/pull/9603 + +## cp +* cp: allow directory merging when destination was just created by @vikram-kangotra in https://github.com/uutils/coreutils/pull/9325 +* cp: Adding test to cover no dereference when copying symlinks by @ChrisDryden in https://github.com/uutils/coreutils/pull/9623 +* cp: Enabling cp force flag to run on windows by @ChrisDryden in https://github.com/uutils/coreutils/pull/9624 +* Add comprehensive readonly file regression tests for cp by @naoNao89 in https://github.com/uutils/coreutils/pull/9045 + +## du +* du: Alias -A --apparent-size by @oech3 in https://github.com/uutils/coreutils/pull/9555 +* du: handle `--files0-from=-` with piped in `-` by @cakebaker in https://github.com/uutils/coreutils/pull/8985 + +## env +* Adding integration tests for the braced variable parsing in env by @ChrisDryden in https://github.com/uutils/coreutils/pull/9459 +* env: remove outdated comment by @cakebaker in https://github.com/uutils/coreutils/pull/9496 +* env: use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9614 + +## fold +* fold:Improve fold bench data generation by @mattsu2020 in https://github.com/uutils/coreutils/pull/9210 +* fix(fold): GNU fold-characters.sh test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9126 +* Fold: Adding combining character support by @ChrisDryden in https://github.com/uutils/coreutils/pull/9328 + +## hashsum +* hashsum: Fix length processing to fix last GNU test by @RenjiSann in https://github.com/uutils/coreutils/pull/9569 + +## install +* install: ignore umask by @akretz in https://github.com/uutils/coreutils/pull/9254 +* Enhance mode parsing to support comma-separated mode strings in install command by @Vesal-J in https://github.com/uutils/coreutils/pull/9298 +* install: do not call chown when called as root by @Ecordonnier in https://github.com/uutils/coreutils/pull/9477 + +## ln +* ln: add error handling for hard link creation on directories by @FidelSch in https://github.com/uutils/coreutils/pull/9342 + +## ls +* ls: prevent ReadDir from closing before entries are processed by @vikram-kangotra in https://github.com/uutils/coreutils/pull/9410 + +## mkfifo +* tests/mkfifo: added a test to check mkfifo permission denied error for code coverage by @asder8215 in https://github.com/uutils/coreutils/pull/9586 + +## nl +* fix(nl): allow repeated flags to match GNU nl behavior (fixes #9132) by @naoNao89 in https://github.com/uutils/coreutils/pull/9140 + +## nohup +* nohup: use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9613 + +## numfmt +* numfmt: support quetta/ronna suffixes and fix error messages by @naoNao89 in https://github.com/uutils/coreutils/pull/9280 + +## od +* od: fix GNU od.pl by @mattsu2020 in https://github.com/uutils/coreutils/pull/9334 +* fix(od):fix GNU coreutils test od float.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9534 + +## pr +* pr: fix header formatting for custom date formats starting with '+' by @sylvestre in https://github.com/uutils/coreutils/pull/9252 + +## ptx +* ptx: implement GNU mode with dumb terminal format by @sylvestre in https://github.com/uutils/coreutils/pull/9573 + +## readlink +* readlink: test calling without args by @cakebaker in https://github.com/uutils/coreutils/pull/9230 +* readlink:Correction to Symbolic Link Handling by @mattsu2020 in https://github.com/uutils/coreutils/pull/9633 + +## seq +* fix(seq): handle BrokenPipe like GNU by @mattsu2020 in https://github.com/uutils/coreutils/pull/9471 +* seq:fix test_broken_pipe_still_exits_success by @mattsu2020 in https://github.com/uutils/coreutils/pull/9520 +* seq: adding large integers benchmarks by @ChrisDryden in https://github.com/uutils/coreutils/pull/9561 + +## shuf +* shuf: add benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/9320 + +## sort +* sort: make compression program failures non-fatal, warn and fallback to plain files by @sylvestre in https://github.com/uutils/coreutils/pull/9266 + +## stdbuf +* Remove unsafe unwrap() calls in stdbuf error handling by @naoNao89 in https://github.com/uutils/coreutils/pull/9429 + +## stty +* Adding TTY helper for unix to be able to create tests for stty and more by @ChrisDryden in https://github.com/uutils/coreutils/pull/9348 +* Using the pty helper function for the more bin testing by @ChrisDryden in https://github.com/uutils/coreutils/pull/9441 +* stty: baud parsing integration tests and validation by @ChrisDryden in https://github.com/uutils/coreutils/pull/9454 +* stty: Implemented saved state parser for stty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9480 +* stty: Changing shell command to add recognizing a TTY for stty tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9336 + +## tail +* tail: batch inotify events to prevent redundant headers after SIGSTOP/SIGCONT by @sylvestre in https://github.com/uutils/coreutils/pull/9574 +* tail: fix intermittent overlay-headers test by batching inotify events by @sylvestre in https://github.com/uutils/coreutils/pull/9598 + +## tee +* tee: fix poll timeout causing intermittent hangs with -p flag by @sylvestre in https://github.com/uutils/coreutils/pull/9585 + +## timeout +* Reducing sleep times and timeout times in test_timeout by @ChrisDryden in https://github.com/uutils/coreutils/pull/9448 +* timeout: cleanup return values by @Ecordonnier in https://github.com/uutils/coreutils/pull/9576 +* timeout: remove FIXME in test by @Ecordonnier in https://github.com/uutils/coreutils/pull/9580 + +## dd +* dd: Handle slow transfer rates in progress display by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9529 + +## uucore +* uucore: embed system locale on cargo install by @WaterWhisperer in https://github.com/uutils/coreutils/pull/8604 +* feat(uucore): add shared hardware detection module by @naoNao89 in https://github.com/uutils/coreutils/pull/9279 +* uucore: support cygwin by @ognevny in https://github.com/uutils/coreutils/pull/9535 +* uucore: mode parsing: support comma-separated modes by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9578 + +## uudoc +* uudoc: fix manpage for individual utilities has wrong name (nit) by @shayelkin in https://github.com/uutils/coreutils/pull/9152 + +## CI & Build +* CICD.yml: split PROFILE= from CARGOFLAGS by @oech3 in https://github.com/uutils/coreutils/pull/9219 +* GNUmakefile: use PROFILE_CMD at make test by @oech3 in https://github.com/uutils/coreutils/pull/9214 +* GNUmakefile: generalize logic for SELINUX_PROGS for many platforms by @oech3 in https://github.com/uutils/coreutils/pull/9221 +* build-gnu.sh: Let SELinux optional to use it locally without libselinux by @oech3 in https://github.com/uutils/coreutils/pull/9220 +* freebsd.yml: remove not working PROFILE= by @oech3 in https://github.com/uutils/coreutils/pull/9225 +* GNUmakefile: Remove check for LIBSELINUX_ENABLED by @oech3 in https://github.com/uutils/coreutils/pull/9228 +* Update redoxer and reenable Redox OS in CI by @jackpot51 in https://github.com/uutils/coreutils/pull/9233 +* GNUmakefile: drop not used use_default:=1 by @oech3 in https://github.com/uutils/coreutils/pull/9231 +* ci: Mark runcon-no-reorder as SELinux required by @oech3 in https://github.com/uutils/coreutils/pull/9234 +* github action: add openbsd in the ci by @sylvestre in https://github.com/uutils/coreutils/pull/9196 +* openbsd.yml: Remove not working PROFILE= by @oech3 in https://github.com/uutils/coreutils/pull/9238 +* OpenBSD CI: increase max open files for test job by @lcheylus in https://github.com/uutils/coreutils/pull/9242 +* build-gnu.sh: Remove || true by @oech3 in https://github.com/uutils/coreutils/pull/9256 +* Enable test test_hostname_ip on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9257 +* build-gnu.sh: Use system tools by @oech3 in https://github.com/uutils/coreutils/pull/9251 +* ci: remove commented out line from `freebsd.yml` by @cakebaker in https://github.com/uutils/coreutils/pull/9239 +* GnuTests.yml: reduce deps by @oech3 in https://github.com/uutils/coreutils/pull/9259 +* Update CICD.yml: Stop releasing duplicated binary by @oech3 in https://github.com/uutils/coreutils/pull/9269 +* Avoid mixing wget and curl by @oech3 in https://github.com/uutils/coreutils/pull/9258 +* CICD.yml: Remove if for .exe by @oech3 in https://github.com/uutils/coreutils/pull/9271 +* GNUmakefile: Use any profile from make install by @oech3 in https://github.com/uutils/coreutils/pull/8730 +* build-gnu.sh: Freeze SELinux build mode by @oech3 in https://github.com/uutils/coreutils/pull/9270 +* CICD.yml: Avoid no space left by @oech3 in https://github.com/uutils/coreutils/pull/9277 +* GNUmakefile: Add missing PROFILE_CMD by @oech3 in https://github.com/uutils/coreutils/pull/9293 +* Cargo.toml: move panic=abort to release profile for binary size by @oech3 in https://github.com/uutils/coreutils/pull/9240 +* Fix build failure without libselinux by @oech3 in https://github.com/uutils/coreutils/pull/9290 +* Revert a patch for runcon-no-reorder (superseded) by @oech3 in https://github.com/uutils/coreutils/pull/9291 +* build-gnu.sh: fix the error on line 110 by @sylvestre in https://github.com/uutils/coreutils/pull/9297 +* build-gnu.sh: adjust the PATH for each run by @sylvestre in https://github.com/uutils/coreutils/pull/9319 +* build-gnu.sh: Use any profile & cleanup vars by @oech3 in https://github.com/uutils/coreutils/pull/9321 +* GnuTests.yml: Check that build-gnu.sh works without libselinux by @oech3 in https://github.com/uutils/coreutils/pull/9299 +* android.yml: Reduce RAM (#9278) by @oech3 in https://github.com/uutils/coreutils/pull/9436 +* l10n.yml:Don't apt-get build-essential by @oech3 in https://github.com/uutils/coreutils/pull/9472 +* l10n.yml: Use PROFILE=release-small for faster CI by @oech3 in https://github.com/uutils/coreutils/pull/9473 +* l10n.yml: Do not brew make (support Xcode make) by @oech3 in https://github.com/uutils/coreutils/pull/9474 +* Update Dockerfile: Don't apt-get jq (preinstalled) by @oech3 in https://github.com/uutils/coreutils/pull/9481 +* build-gnu.sh: Remove 2 not working sed hacks for tr by @oech3 in https://github.com/uutils/coreutils/pull/9476 +* build-gnu.sh: Reduce time to build GNU coreutils by @oech3 in https://github.com/uutils/coreutils/pull/9475 +* CICD.yml: Stop publishing conflicting artifacts by @oech3 in https://github.com/uutils/coreutils/pull/9491 +* CICD.yml: Removed unused code for i586 by @oech3 in https://github.com/uutils/coreutils/pull/9497 +* build-gnu.sh: Remove hfs dep from hardlink-case.sh by @oech3 in https://github.com/uutils/coreutils/pull/9482 +* CICD.yml: Dedup a mkdir by @oech3 in https://github.com/uutils/coreutils/pull/9504 +* CICD.yml: Drop a workaround for old package by @oech3 in https://github.com/uutils/coreutils/pull/9505 +* Remove wget dep by @oech3 in https://github.com/uutils/coreutils/pull/9522 +* Remove Makefile.toml by @oech3 in https://github.com/uutils/coreutils/pull/9568 +* build-gnu.sh: Remove 2 non-GNU binary by @oech3 in https://github.com/uutils/coreutils/pull/9583 +* validation.rs: Remove non GNU hashsum aliases by @oech3 in https://github.com/uutils/coreutils/pull/9589 +* build-gnu.sh: Enable misc/coreutils.sh by @oech3 in https://github.com/uutils/coreutils/pull/9572 +* GHA-delete-GNU-workflow-logs.sh: Add fallback to jaq by @oech3 in https://github.com/uutils/coreutils/pull/9581 +* benchmarks.yml: Stop unnecessary apt-get by @oech3 in https://github.com/uutils/coreutils/pull/9608 +* Do not apt-get preinstalled tools to avoid delaying CI by @oech3 in https://github.com/uutils/coreutils/pull/9466 +* build-gnu.sh: use GNU sed much more for macOS by @oech3 in https://github.com/uutils/coreutils/pull/9467 +* ci: add locales for GNU tests by @cakebaker in https://github.com/uutils/coreutils/pull/9052 + +## Documentation +* README.md: profiles for binary size by @oech3 in https://github.com/uutils/coreutils/pull/9268 +* installation.md: Fix wrong reference for AUR by @oech3 in https://github.com/uutils/coreutils/pull/9447 +* README.md: note that separator is needed for PROG_PREFIX by @oech3 in https://github.com/uutils/coreutils/pull/9444 +* installation.md: Ref MSYS2 package by @oech3 in https://github.com/uutils/coreutils/pull/9456 +* installation.md: Add MSYS2 Cygwin package by @oech3 in https://github.com/uutils/coreutils/pull/9566 +* why-skip.md: Remove an OOD doc by @oech3 in https://github.com/uutils/coreutils/pull/9506 +* why-skip.md: Remove a passing test by @oech3 in https://github.com/uutils/coreutils/pull/9507 +* why-skip.md: Remove 4 sparse-* by @oech3 in https://github.com/uutils/coreutils/pull/9508 +* why-skip.md: Remove 3 tests by @oech3 in https://github.com/uutils/coreutils/pull/9509 +* why-error.md: Cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9510 +* why-error.md: Cleanup and documenting by @oech3 in https://github.com/uutils/coreutils/pull/9512 +* why-skip.md: Remove 1 passing root test by @oech3 in https://github.com/uutils/coreutils/pull/9528 +* why-skip.md: Let spell-checker:ignore a comment by @oech3 in https://github.com/uutils/coreutils/pull/9540 +* why-{skip,error}.md: Cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9602 +* why-{skip,error}.md: Remove stty tests and shared strings by @oech3 in https://github.com/uutils/coreutils/pull/9626 +* lib.rs: Remove non GNU hashsum aliases by @oech3 in https://github.com/uutils/coreutils/pull/9642 +* util.rs: Update obsolete comments by @oech3 in https://github.com/uutils/coreutils/pull/9643 + +## Code Quality & Cleanup +* test: existing file is newer than non-existing file by @cakebaker in https://github.com/uutils/coreutils/pull/9245 +* move the factor divan bench into the actual directory by @sylvestre in https://github.com/uutils/coreutils/pull/9296 +* Remove high variance benchmark functions by @sylvestre in https://github.com/uutils/coreutils/pull/9311 +* Bump `markdownlint_cli2_action` & fix warnings by @cakebaker in https://github.com/uutils/coreutils/pull/9309 +* replace number_prefix by unit-prefix by @sylvestre in https://github.com/uutils/coreutils/pull/9322 +* coreutils: Print utility not found to stderr by @oech3 in https://github.com/uutils/coreutils/pull/9588 +* use github URLs for fetching tldr.zip by @dgilman in https://github.com/uutils/coreutils/pull/9584 +* unit test coverage: fix missing coverage by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9606 +* Removing the per process file flag to reduce the llvm filemerge time by @ChrisDryden in https://github.com/uutils/coreutils/pull/9449 +* Making wild a windows only dependency and gating unit-prefix by @ChrisDryden in https://github.com/uutils/coreutils/pull/9548 +* Splitting parser feature into multiple subfeatures to reduce dependency bloat by @ChrisDryden in https://github.com/uutils/coreutils/pull/9546 + +## Performance & Benchmarking +* benches: Migrate factor benchmarks from Criterion to Divan by @naoNao89 in https://github.com/uutils/coreutils/pull/9247 +* Add functionality to show when tests were previously skipped and now failing accurately by @ChrisDryden in https://github.com/uutils/coreutils/pull/9521 + +## Version Management +* update gnu ref to 9.9 + improve the script by @sylvestre in https://github.com/uutils/coreutils/pull/9216 +* prepare version 0.5.0 by @sylvestre in https://github.com/uutils/coreutils/pull/9596 + +## Dependency Updates +* chore(deps): update rust crate crc-fast to v1.7.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9224 +* chore(deps): update rust crate indicatif to v0.18.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9226 +* chore(deps): update rust crate crc-fast to v1.8.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9282 +* Update vmactions/freebsd-vm action to v1.2.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9304 +* chore(deps): update rust crate clap to v4.5.52 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9316 +* chore(deps): update rust crate clap_complete to v4.5.61 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9343 +* chore(deps): update rust crate clap to v4.5.53 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9340 +* GNUmakefile: Use libstdbuf.* instead of libstdbuf* by @oech3 in https://github.com/uutils/coreutils/pull/9345 +* chore(deps): update actions/checkout action to v6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9416 +* chore(deps): update rust crate parse_datetime to v0.13.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9434 +* chore(deps): update rust crate hostname to v0.4.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9515 +* Bump `iana-time-zone` and `windows-core` by @cakebaker in https://github.com/uutils/coreutils/pull/9519 +* chore(deps): update vmactions/freebsd-vm action to v1.2.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9524 +* chore(deps): update rust crate ctor to v0.6.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9544 +* chore(deps): update rust crate ctor to v0.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9562 +* chore(deps): update vmactions/freebsd-vm action to v1.2.9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9593 +* chore(deps): update davidanson/markdownlint-cli2-action action to v22 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9610 +* chore(deps): update actions/cache action to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9639 +* chore(deps): update rust crate crc-fast to v1.8.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9647 +* chore(deps): update github artifact actions (major) by @renovate[bot] in https://github.com/uutils/coreutils/pull/9645 +* Bump `icu` crates from `2.0.0` to `2.1.1` by @cakebaker in https://github.com/uutils/coreutils/pull/9073 + +## New Contributors +* @WaterWhisperer made their first contribution in https://github.com/uutils/coreutils/pull/8604 +* @ChrisDryden made their first contribution in https://github.com/uutils/coreutils/pull/9328 +* @FidelSch made their first contribution in https://github.com/uutils/coreutils/pull/9342 +* @ognevny made their first contribution in https://github.com/uutils/coreutils/pull/9535 +* @shayelkin made their first contribution in https://github.com/uutils/coreutils/pull/9152 +* @dgilman made their first contribution in https://github.com/uutils/coreutils/pull/9584 + +**Full Changelog**: https://github.com/uutils/coreutils/compare/0.4.0...0.5.0 diff --git a/docs/src/release-notes/0.6.0.md b/docs/src/release-notes/0.6.0.md new file mode 100644 index 00000000000..b2064eb28be --- /dev/null +++ b/docs/src/release-notes/0.6.0.md @@ -0,0 +1,759 @@ +### **Rust Coreutils 0.6.0 Release:** + +We are happy to announce the release of **Rust Coreutils 0.6.0** — a major milestone achieving **96% GNU compatibility** with significant safety improvements, enhanced locale support, and extensive bug fixes! + +--- + +### Highlights: + +- **Major GNU Compatibility Leap** + - **622 passing tests** (+56 from 0.5.0), achieving **96.28%** compatibility + - Reduced failures from 55 to just 16 (-39) and skipped tests from 23 to 7 (-16) + - Extensive test suite improvements across `sort`, `ls`, `date`, `cksum`, `tail`, and many more + +- **Safety & Code Quality** + - Removed unsafe code from `date`, `sort`, `locale.rs`, and other utilities + - Replaced raw `libc` calls with safe `nix` crate equivalents throughout + - Enhanced error handling to avoid panics on `/dev/full` writes across many utilities + +- **Locale & Internationalization** + - Added ICU support for locale-aware day/month names in `date` + - Implemented locale-aware hour formatting and calendar support + - Added locale-aware numeric sorting with thousand separator support in `sort` + - Locale-aware collation support in `join` + +- **Performance Improvements** + - `base32`/`base64`/`basenc`: Optimized with reduced memset operations + - `shuf`: Optimized numeric output and added `--random-seed` option + - `date`: Wrapped stdout in BufWriter for batch processing + - `uniq`: Optimized memory usage for ignore-case comparison + - `tsort`: Avoid reading entire input into memory, intern strings + - `df`: Performance improvements with better filesystem handling + +- **Platform Support Expansion** + - Expanded safe directory traversal to all Unix platforms + - Enhanced Cygwin support across multiple utilities + - Added SMACK security module support for `ls`, `id`, `mkdir`, `mkfifo`, `mknod` + - Added RISC-V 64-bit musl target to CI + +- **Notable Utility Improvements** + - `cksum`/`hashsum`: Merged common logic, removed deprecated `hashsum` binary + - `tail`: Added `--debug` flag, fixed `-F` symlink tracking, fixed `--pid` with FIFO + - `timeout`: Added comprehensive signal handling and `--verbose` improvements + - `sort`: Legacy `+POS/-POS` handling, locale-aware collation, debug key annotations + - `pr`: Multiple fixes for headers, form feeds, and pagination options + - `chmod`: Fixed recursive handling and `--preserve-root` option + - `rm`: Fixed error reporting and symlink handling + +- **Contributions**: This release was made possible by **41 new contributors** joining our community + +--- + +### GNU Test Suite Compatibility: + +| Result | 0.5.0 | 0.6.0 | Change 0.5.0 to 0.6.0 | % Total 0.5.0 | % Total 0.6.0 | % Change 0.5.0 to 0.6.0 | +|---------------|-------|-------|------------------------|---------------|---------------|--------------------------| +| Pass | 566 | 622 | +56 | 87.75% | 96.28% | +8.53% | +| Skip | 23 | 7 | -16 | 3.57% | 1.08% | -2.49% | +| Fail | 55 | 16 | -39 | 8.53% | 2.48% | -6.05% | +| Error | 1 | 1 | 0 | 0.16% | 0.15% | ~0% | +| Total | 645 | 646 | +1 (new test) | | | | + +--- + +![GNU testsuite evolution](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true) + +--- + +### Call to Action: + +**Help us translate** - Contribute translations at [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 +* Avoid >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10516 + +## base64 +* base(nc|32|64): Optimize performances reduction memset by @mattsu2020 in https://github.com/uutils/coreutils/pull/9632 +* Improve read error message by @dezgeg in https://github.com/uutils/coreutils/pull/10512 + +## basename +* basename . >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10553 + +## cat +* do not connect to unix domain socket and instead return an error by @asder8215 in https://github.com/uutils/coreutils/pull/9755 +* fix write error handling to propagate errors instead of panicking by @rynewang in https://github.com/uutils/coreutils/pull/10038 +* tests(cat,stdbuf): Add broken-pipe robustness tests (#4627) by @naoNao89 in https://github.com/uutils/coreutils/pull/8798 + +## chgrp +* correct exit code by @cerdelen in https://github.com/uutils/coreutils/pull/10035 + +## chmod +* fix error handling if multiple files are handled by @cerdelen in https://github.com/uutils/coreutils/pull/9793 +* recursive hyper nested dirs by @cerdelen in https://github.com/uutils/coreutils/pull/9990 +* preserve root by @cerdelen in https://github.com/uutils/coreutils/pull/10033 + +## chroot +* use execvp directly instead of process::Command by @mattsu2020 in https://github.com/uutils/coreutils/pull/9013 + +## cksum +* Checksum ignore binary by @RenjiSann in https://github.com/uutils/coreutils/pull/9695 +* Improve check-only flags handling by @RenjiSann in https://github.com/uutils/coreutils/pull/9770 +* Move --ckeck's deps to clap by @oech3 in https://github.com/uutils/coreutils/pull/9996 +* Move handle_tag_text_binary_flags to clap by @oech3 in https://github.com/uutils/coreutils/pull/9999 +* Simple default tag variable by @oech3 in https://github.com/uutils/coreutils/pull/10057 +* cksum,hashsum: Drop a message replaced by clap by @oech3 in https://github.com/uutils/coreutils/pull/10055 +* cksum/hashsum: Merge common logic under a common crate by @RenjiSann in https://github.com/uutils/coreutils/pull/10142 +* Revert recent checksum CLI changes by @RenjiSann in https://github.com/uutils/coreutils/pull/10141 +* Don't panic when checked file returned EIO by @oech3 in https://github.com/uutils/coreutils/pull/10534 +* --debug 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10589 +* -c /dev/null 2>/dev/full should not abort by @oech3 in https://github.com/uutils/coreutils/pull/10643 + +## comm +* fix comparison when reading from pipes by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9545 +* Fixes #10192 - fix(comm): improve stdout handling and add test for lossy UTF-8 output by @Paol0B in https://github.com/uutils/coreutils/pull/10206 +* Properly handle I/O errors when reading input by @dezgeg in https://github.com/uutils/coreutils/pull/10567 + +## cp +* fix preserve-gid when canonicalize fails due to inaccessible parent dirs by @ChrisDryden in https://github.com/uutils/coreutils/pull/9803 +* reduce memory usage for cp -al by skipping unnecessary tracking by @ChrisDryden in https://github.com/uutils/coreutils/pull/9805 +* set status code when encountering circular symbolic links by @Thanhphan1147 in https://github.com/uutils/coreutils/pull/9757 +* symlink flags fixing conflicting flag logic to use last flag by @Dylans123 in https://github.com/uutils/coreutils/pull/9960 +* Added test for permissions copying to an existing file by @max-amb in https://github.com/uutils/coreutils/pull/10049 +* use FileInformation without dereference for symlink destination check to match GNU behaviour for test/nfs-removal-race by @ChrisDryden in https://github.com/uutils/coreutils/pull/10086 +* Avoid other error at cp stream /dev/full by @oech3 in https://github.com/uutils/coreutils/pull/10139 +* Fixed posixly correct dangling symlink test by @max-amb in https://github.com/uutils/coreutils/pull/10247 +* cp/mv: suppress xattr ENOTSUP errors for optional preservation by @ChrisDryden in https://github.com/uutils/coreutils/pull/10083 + +## csplit +* detect and report write errors by @ChrisDryden in https://github.com/uutils/coreutils/pull/9855 + +## date +* remove unsafe by @xtqqczze in https://github.com/uutils/coreutils/pull/9688 +* fix inconsistent input parsing between -s and -d flags by @AnarchistHoneybun in https://github.com/uutils/coreutils/pull/9690 +* Implement locale-aware hour formatting for date command by @naoNao89 in https://github.com/uutils/coreutils/pull/9654 +* improve fuzzer and handle edge cases by @ChrisDryden in https://github.com/uutils/coreutils/pull/9661 +* fix hardcoded formats with nl_langinfo(D_T_FMT) by @naoNao89 in https://github.com/uutils/coreutils/pull/9756 +* Fix military date parsing not adjusting date by @cerdelen in https://github.com/uutils/coreutils/pull/9785 +* add benchmark by @CrazyRoka in https://github.com/uutils/coreutils/pull/9911 +* benchmark: keep only one value by @sylvestre in https://github.com/uutils/coreutils/pull/9989 +* avoid double parsing when resolving timezone abbreviations by @CrazyRoka in https://github.com/uutils/coreutils/pull/9997 +* perf(date): wrap stdout in BufWriter to improve batch processing by @CrazyRoka in https://github.com/uutils/coreutils/pull/9994 +* use PosixCustom formatting for GNU-compatible output by @ChrisDryden in https://github.com/uutils/coreutils/pull/10245 +* test: %x format specifier respects locale settings by @sylvestre in https://github.com/uutils/coreutils/pull/10285 +* handle parentheses as comments like GNU date by @sylvestre in https://github.com/uutils/coreutils/pull/10133 +* add ICU support for day/months names by @sylvestre in https://github.com/uutils/coreutils/pull/10457 +* add locale-aware calendar support for era years by @sylvestre in https://github.com/uutils/coreutils/pull/10473 +* use jiff-icu for locale calendar conversions by @ChrisDryden in https://github.com/uutils/coreutils/pull/10499 +* fuzz_date: skip combined short options like -Rf- that read from stdin by @ChrisDryden in https://github.com/uutils/coreutils/pull/10547 +* fix %% not being preserved in locale format strings by @ChrisDryden in https://github.com/uutils/coreutils/pull/10577 + +## dd +* should terminate with error if skip argument is too large by @ic3man5 in https://github.com/uutils/coreutils/pull/7275 +* use actual filename in nocache error messages by @ChrisDryden in https://github.com/uutils/coreutils/pull/9820 +* fix nocache flag handling at EOF by @ChrisDryden in https://github.com/uutils/coreutils/pull/9818 +* use ibs/obs-sized buffer for skip/seek on non-seekable files by @ChrisDryden in https://github.com/uutils/coreutils/pull/9806 +* use seek for stdin skip when possible by @ChrisDryden in https://github.com/uutils/coreutils/pull/9821 +* get rid of line buffered stdout by @svlv in https://github.com/uutils/coreutils/pull/10235 +* feat(dd): add first benchmark suite for performance validation by @naoNao89 in https://github.com/uutils/coreutils/pull/9136 + +## df +* add binfmt_misc to is_dummy_filesystem by @van-sprundel in https://github.com/uutils/coreutils/pull/9975 +* add benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/10123 +* improve perfs by @sylvestre in https://github.com/uutils/coreutils/pull/10122 +* add rootfs to is_dummy_filesystem by @ChrisDryden in https://github.com/uutils/coreutils/pull/10159 +* Sum scaled values to compute the totals by @3v1n0 in https://github.com/uutils/coreutils/pull/10438 + +## dir +* add "about" and "usage" instead of being "ls" by @w007878 in https://github.com/uutils/coreutils/pull/10369 + +## dirname +* refactor(dirname): implement pure string manipulation per POSIX by @naoNao89 in https://github.com/uutils/coreutils/pull/8936 +* use Cow::Borrowed to avoid unnecessary heap allocations by @sylvestre in https://github.com/uutils/coreutils/pull/10294 +* add fuzzer to test GNU compatibility by @sylvestre in https://github.com/uutils/coreutils/pull/10289 + +## du +* fix -l/--count-links option not counting hardlinks separately by @WaterWhisperer in https://github.com/uutils/coreutils/pull/9884 +* count links based on inode by @svlv in https://github.com/uutils/coreutils/pull/10313 + +## echo +* Reduce memory allocation by @AnuthaDev in https://github.com/uutils/coreutils/pull/10090 + +## env +* preserve non-UTF-8 environment variables and remove unwrap by @ChrisDryden in https://github.com/uutils/coreutils/pull/9726 +* Improve GNU coreutils Compatibility & Fix env-signal-handler.sh Test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9465 +* env/printenv: dedup the code by @sylvestre in https://github.com/uutils/coreutils/pull/9841 +* dedup some code by @sylvestre in https://github.com/uutils/coreutils/pull/9874 +* --debug 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10594 + +## expand +* address a cognitive_complexity warnings by @sylvestre in https://github.com/uutils/coreutils/pull/9930 +* expand, unexpand: Properly handle I/O errors by @dezgeg in https://github.com/uutils/coreutils/pull/10510 + +## expr +* fix regex matching on inputs containing newlines by @ChrisDryden in https://github.com/uutils/coreutils/pull/10543 + +## fmt +* handle invalid UTF-8 input by replacing malformed sequences by @mattsu2020 in https://github.com/uutils/coreutils/pull/9329 + +## fold +* fix gnu test fold-zero-width.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9274 +* Add support for -c short option and fix character mode tab handling by @mattsu2020 in https://github.com/uutils/coreutils/pull/10530 + +## groups +* groups > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10523 + +## hashsum +* Drop --no-names by @oech3 in https://github.com/uutils/coreutils/pull/9762 +* Drop non-GNU `--bits` flag by @RenjiSann in https://github.com/uutils/coreutils/pull/9773 +* Drop locales for --bits by @oech3 in https://github.com/uutils/coreutils/pull/9811 +* Drop benches as covered by cksum benches by @oech3 in https://github.com/uutils/coreutils/pull/9842 +* Move --ckeck's deps to clap by @oech3 in https://github.com/uutils/coreutils/pull/9998 +* hashsum, cksum: Move default stdin to clap by @oech3 in https://github.com/uutils/coreutils/pull/10043 +* hashsum, cksum: Move --check confliction to clap by @oech3 in https://github.com/uutils/coreutils/pull/10041 +* Remove hashsum by @RenjiSann in https://github.com/uutils/coreutils/pull/10587 +* Additional hashsum cleanup by @oech3 in https://github.com/uutils/coreutils/pull/10622 + +## head +* Consolidate legacy argument parsing for head/tail by @sylvestre in https://github.com/uutils/coreutils/pull/9727 +* refactor(head): replace unsafe raw fd usage with safe AsFd API by @mattsu2020 in https://github.com/uutils/coreutils/pull/10161 + +## hostid +* Avoid hostid > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10172 + +## id +* -p crashes with panic when the real GID doesn't exist in /etc/group by @sylvestre in https://github.com/uutils/coreutils/pull/9670 +* Fix incorrect human-readable output by @frendsick in https://github.com/uutils/coreutils/pull/7814 + +## install +* add FreeBSD's -U (unprivileged) option by @alexandrefresnais in https://github.com/uutils/coreutils/pull/9526 +* prevent TOCTOU race attack by @Dolphindalt in https://github.com/uutils/coreutils/pull/10067 +* install -dv a >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10541 + +## join +* add benchmarks by @WaterWhisperer in https://github.com/uutils/coreutils/pull/10005 +* add benchmark with the French locale by @WaterWhisperer in https://github.com/uutils/coreutils/pull/10025 +* consider locale collation in field comparison by @WaterWhisperer in https://github.com/uutils/coreutils/pull/9982 +* Benchmark join with actual Unicode data requiring locale collation by @sylvestre in https://github.com/uutils/coreutils/pull/10391 + +## kill +* kill -1 should trigger an error by @sylvestre in https://github.com/uutils/coreutils/pull/9700 + +## ln +* ln -svf /dev/null /tmp/a > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10539 + +## logname +* logname > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10522 + +## ls +* Make ls pass the GNU ls-misc.pl suite by @karanabe in https://github.com/uutils/coreutils/pull/9262 +* Add SMACK support by @ChrisDryden in https://github.com/uutils/coreutils/pull/9868 +* some improvements after #9431 by @sylvestre in https://github.com/uutils/coreutils/pull/10149 +* fixes for capability coloring by @bkueng in https://github.com/uutils/coreutils/pull/8615 +* Proper alignment for capabilities and ACLs notifications by @kimono-koans in https://github.com/uutils/coreutils/pull/8793 +* fix symlink chain target coloring by @ChrisDryden in https://github.com/uutils/coreutils/pull/10274 + +## mkdir +* create directories atomically with correct permissions by @rynewang in https://github.com/uutils/coreutils/pull/10036 +* Add SMACK support to id, mkdir, mkfifo, mknod utilities by @ChrisDryden in https://github.com/uutils/coreutils/pull/9910 +* chore: add test for setgid bit inheritance in mkdir -p by @0xferrous in https://github.com/uutils/coreutils/pull/10412 +* mkdir -pv a >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10540 + +## mkfifo +* replace unsafe libc::mkfifo with nix::unistd::mkfifo by @sylvestre in https://github.com/uutils/coreutils/pull/10112 +* do not change permission when failed to create by @w007878 in https://github.com/uutils/coreutils/pull/10376 +* error when non-file permission mode set by @w007878 in https://github.com/uutils/coreutils/pull/10372 + +## mknod +* Avoid major/minor No overflow by @oech3 in https://github.com/uutils/coreutils/pull/10196 +* fix SELinux cleanup when context setting fails by @ChiamakaUI in https://github.com/uutils/coreutils/pull/10582 + +## mktemp +* Fix template validation to require trailing consecutive Xs by @Xylphy in https://github.com/uutils/coreutils/pull/10224 +* treat empty TMPDIR as unset and fallback to /tmp by @reubenwong97 in https://github.com/uutils/coreutils/pull/10566 + +## more +* file status made more idiomatic. by @devnexen in https://github.com/uutils/coreutils/pull/10151 +* test(more): Fix test_from_line_option race condition by increasing PTY delay by @naoNao89 in https://github.com/uutils/coreutils/pull/9629 + +## mv +* Adding fixes for i-3 GNU tests related to tty output when file is not writeable by @ChrisDryden in https://github.com/uutils/coreutils/pull/9599 +* support moving folder containing symlinks to different filesystem by @yuankunzhang in https://github.com/uutils/coreutils/pull/8605 +* test_mv.rs: Remove ignore from test_mv_broken_symlink_to_another_fs by @oech3 in https://github.com/uutils/coreutils/pull/9978 +* test-mv: Use temporary directory in /dev/shm by @3v1n0 in https://github.com/uutils/coreutils/pull/10439 + +## nice +* use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9612 +* simplify the code by @sylvestre in https://github.com/uutils/coreutils/pull/9931 +* nice -n huge_num true by @oech3 in https://github.com/uutils/coreutils/pull/10213 +* nice > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10524 + +## nl +* preserve raw bytes in output instead of using from_utf8_lossy by @ChrisDryden in https://github.com/uutils/coreutils/pull/9673 + +## nohup +* use POSIXLY_CORRECT to determine failure exit code by @ChrisDryden in https://github.com/uutils/coreutils/pull/9685 + +## nproc +* Avoid nproc > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10157 + +## numfmt +* add --debug flag to print warnings about invalid input (#10110) +* add --unit-separator option for output formatting by @ChrisDryden in https://github.com/uutils/coreutils/pull/10108 +* support non-UTF8 delimiters for locales like GB18030 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10079 +* align error messages for suffixes by @sbentmar in https://github.com/uutils/coreutils/pull/9887 + +## pr +* Enable pr-tests.pl with suppressed diff output by @ChrisDryden in https://github.com/uutils/coreutils/pull/9829 +* add -b flag for backwards compatibility by @ChrisDryden in https://github.com/uutils/coreutils/pull/9993 +* allow character, block, and fifo devices as input by @SaathwikDasari in https://github.com/uutils/coreutils/pull/9946 +* use 72 char line width for all page headers by @jfinkels in https://github.com/uutils/coreutils/pull/10059 +* add default values for -s and -S separator options by @ChrisDryden in https://github.com/uutils/coreutils/pull/10073 +* add -T/--omit-pagination option by @ChrisDryden in https://github.com/uutils/coreutils/pull/10107 +* uniformly scan for form feed and newline chars by @jfinkels in https://github.com/uutils/coreutils/pull/10303 +* refactor common code for reading from file by @jfinkels in https://github.com/uutils/coreutils/pull/10334 +* ignore empty line after form feed char by @jfinkels in https://github.com/uutils/coreutils/pull/10331 +* ignore empty line after newline char by @jfinkels in https://github.com/uutils/coreutils/pull/10332 +* remove unused lines_printed variable by @jfinkels in https://github.com/uutils/coreutils/pull/10474 + +## printenv +* Fix printenv non-UTF8 by @RenjiSann in https://github.com/uutils/coreutils/pull/9728 + +## printf +* Format String Parsing Overflow Causes Panic by @sylvestre in https://github.com/uutils/coreutils/pull/9693 +* printf 1 > /dev/full is not silent by @oech3 in https://github.com/uutils/coreutils/pull/10171 + +## ptx +* fix incorrect column width calculation and padding logic by @CrazyRoka in https://github.com/uutils/coreutils/pull/9681 +* implement -S/--sentence-regexp by @CrazyRoka in https://github.com/uutils/coreutils/pull/9682 +* fix panic when reference length exceeds line width by @CrazyRoka in https://github.com/uutils/coreutils/pull/9816 +* handle invalid regex arguments gracefully instead of panicking by @CrazyRoka in https://github.com/uutils/coreutils/pull/9825 +* handle duplicate input files by @CrazyRoka in https://github.com/uutils/coreutils/pull/9823 + +## readlink +* readlink /etc/mtab > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10525 + +## rm +* fix safe traversal/access by @mattsu2020 in https://github.com/uutils/coreutils/pull/9577 +* fix error reporting for -r on Linux fixing #9011 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10111 +* don't treat symlinks as write-protected by @GomesGoncalo in https://github.com/uutils/coreutils/pull/10232 +* no abbreviation no preserve root by @cerdelen in https://github.com/uutils/coreutils/pull/10205 +* fix for -rf ./ and variants silently delete current directory by @jacek-kurlit in https://github.com/uutils/coreutils/pull/9924 + +## rmdir +* Remove all trailing slashes when checking for symlinks by @cerdelen in https://github.com/uutils/coreutils/pull/9983 + +## runcon +* use `Command::exec()` instead of `libc::execvp()` by @Ecordonnier in https://github.com/uutils/coreutils/pull/9611 +* add missing utilities to enable tests/runcon/runcon-compute and removing PATH from runcon -c by @ChrisDryden in https://github.com/uutils/coreutils/pull/10088 + +## seq +* add SIGPIPE handling for GNU compatibility by @ChrisDryden in https://github.com/uutils/coreutils/pull/9657 +* Change fuzz_seq_parse_number to should_pass: false by @sylvestre in https://github.com/uutils/coreutils/pull/10335 + +## shred +* ensure deterministic pass sequence compatibility with reference implementation by @sylvestre in https://github.com/uutils/coreutils/pull/9317 +* fix(shred): stop immediately on write errors by @naoNao89 in https://github.com/uutils/coreutils/pull/9649 + +## shuf +* Add `--random-seed`, make `--random-source` GNU-compatible, report write failures, optimize by @blyxxyz in https://github.com/uutils/coreutils/pull/7585 +* optimize numeric output by avoiding write!() by @CrazyRoka in https://github.com/uutils/coreutils/pull/10048 +* Tune performance for -i 1-1000000 by @oech3 in https://github.com/uutils/coreutils/pull/10478 + +## sort +* Add legacy +POS/-POS handling in sort to pass GNU sort-field-limit test by @karanabe in https://github.com/uutils/coreutils/pull/9501 +* remove unsafe by @xtqqczze in https://github.com/uutils/coreutils/pull/9694 +* fix(sort): GNU sort-continue.sh test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9107 +* Align sort debug key annotations with GNU coreutils by @mattsu2020 in https://github.com/uutils/coreutils/pull/9468 +* fixing locale benchmarks since locale is cached in OnceCell by @ChrisDryden in https://github.com/uutils/coreutils/pull/9914 +* bench(sort): add general numeric benchmark by @mattsu2020 in https://github.com/uutils/coreutils/pull/10101 +* feat(sort): add warning messages for obsolescent keys and options by @mattsu2020 in https://github.com/uutils/coreutils/pull/9900 +* refine error handling and localize field parsing errors by @mattsu2020 in https://github.com/uutils/coreutils/pull/10068 +* followup of #10068 by @sylvestre in https://github.com/uutils/coreutils/pull/10226 +* gnu coreutils compatibility (sort float.sh) by @mattsu2020 in https://github.com/uutils/coreutils/pull/9839 +* fix(sort): Enable locale-aware collation for UTF-8 locales by @quantum-encoding in https://github.com/uutils/coreutils/pull/9176 +* gnu coreutils compatibility (sort.pl) by @mattsu2020 in https://github.com/uutils/coreutils/pull/9862 +* gnu core utils test (sort-merge-fdlimit.sh) by @mattsu2020 in https://github.com/uutils/coreutils/pull/9849 +* feat(sort): add locale-aware numeric sorting support(sort-h-thousands-sep.sh) by @mattsu2020 in https://github.com/uutils/coreutils/pull/9848 +* FIX 10314 sort: locale-based collation is not supported by @Paol0B in https://github.com/uutils/coreutils/pull/10481 +* fix: numeric sort (-n) does not recognize thousand separators by @Kaua-Klassmann in https://github.com/uutils/coreutils/pull/10339 + +## split +* Added error when attempting to create file that already exists as directory by @max-amb in https://github.com/uutils/coreutils/pull/9945 + +## stat +* fix(stat): Collection of fixes for stat(1) by @Alonely0 in https://github.com/uutils/coreutils/pull/9078 + +## stdbuf +* use exec instead of forking by @Ecordonnier in https://github.com/uutils/coreutils/pull/9495 + +## stty +* implemented hex and octal parsing for rows and columns by @ChrisDryden in https://github.com/uutils/coreutils/pull/9516 +* columns env support and integration testing by @ChrisDryden in https://github.com/uutils/coreutils/pull/9490 +* Added unit tests for stty.rs to improve test coverage by @naoNao89 in https://github.com/uutils/coreutils/pull/9094 +* use stdin for TTY operations instead of /dev/tty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9881 +* Implemented input and output baud rate setting for stty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9517 +* bump libc & tmp stop musl-i686 by @oech3 in https://github.com/uutils/coreutils/pull/10072 +* Add bad-speed.sh test script to fetch-gnu.sh by @ChrisDryden in https://github.com/uutils/coreutils/pull/10077 +* Add cfg_aliases by @oech3 in https://github.com/uutils/coreutils/pull/10443 +* Don't panic when GNU provided stty 51 us by @oech3 in https://github.com/uutils/coreutils/pull/10526 + +## sync +* Reset O_NONBLOCK flag after file validation to match GNU behavior by @naoNao89 in https://github.com/uutils/coreutils/pull/9437 + +## tac +* fix error message by @cerdelen in https://github.com/uutils/coreutils/pull/9942 +* use temp file for stdin to respect TMPDIR and handle disk-full errors by @ChrisDryden in https://github.com/uutils/coreutils/pull/10094 +* add regex flavor translation for compatibility and new test case by @FidelSch in https://github.com/uutils/coreutils/pull/10416 +* tac, tail, dd: detect closed stdin before Rust sanitizes it to /dev/null by @ChrisDryden in https://github.com/uutils/coreutils/pull/9664 + +## tail +* fix: patch inotify-dir-recreate test for notify crate's threaded inotify by @ChrisDryden in https://github.com/uutils/coreutils/pull/9666 +* Removing flaky inotify-dir patch by @ChrisDryden in https://github.com/uutils/coreutils/pull/9800 +* fix --pid with FIFO by using non-blocking open by @ChrisDryden in https://github.com/uutils/coreutils/pull/9663 +* fix big number handling and error message quoting by @ChrisDryden in https://github.com/uutils/coreutils/pull/10155 +* add --debug flag to show follow implementation mode by @ChrisDryden in https://github.com/uutils/coreutils/pull/10105 +* fix pipe-f test by detecting broken stdout pipe by @ChrisDryden in https://github.com/uutils/coreutils/pull/10156 +* Fix tail -c panics when requested bytes exceed file size by @dhr412 in https://github.com/uutils/coreutils/pull/10268 +* tests: Add 'tests/tail/follow-name' to ignore list by @ChrisDryden in https://github.com/uutils/coreutils/pull/10297 +* fix behaviour of `tail -n0` in follow mode by @AnandajithS in https://github.com/uutils/coreutils/pull/9114 +* Fixed passing -0 to tail. Closes #10191 by @trypsynth in https://github.com/uutils/coreutils/pull/10209 +* fix -F to properly track symlinks with changing targets by @ChrisDryden in https://github.com/uutils/coreutils/pull/10158 + +## tee +* allow multiple -a flags by @sylvestre in https://github.com/uutils/coreutils/pull/10293 +* tee miss/ing 2>/dev/full should not abort by @oech3 in https://github.com/uutils/coreutils/pull/10637 + +## test +* fixing unary operators that are getting parsed as argument instead of string literal by @georgepaulsen in https://github.com/uutils/coreutils/pull/9951 +* Trim whitespace in integer comparisons by @dezgeg in https://github.com/uutils/coreutils/pull/10489 + +## timeout +* cleanup return values by @Ecordonnier in https://github.com/uutils/coreutils/pull/9576 +* use nix kill/setpgid to reduce unsafe by @mattsu2020 in https://github.com/uutils/coreutils/pull/10120 +* backport timeout tests from master by @ChrisDryden in https://github.com/uutils/coreutils/pull/10195 +* display signal 0 as '0' instead of 'EXIT' in verbose mode by @ChrisDryden in https://github.com/uutils/coreutils/pull/10194 +* Improve error handling with explicit expect messages by @naoNao89 in https://github.com/uutils/coreutils/pull/9435 +* add all signal handlers, pass on signals to child, add ignored signal handling by @ChrisDryden in https://github.com/uutils/coreutils/pull/10254 + +## touch +* fix: touch -r: dangling symlink reference is accepted Fixes #9703 by @dshemetov in https://github.com/uutils/coreutils/pull/9732 +* Use libc::UTIME_NOW in touch when updating time to now by @iburaky2 in https://github.com/uutils/coreutils/pull/9870 +* fix: use jiff time for touch tests by @aaron-ang in https://github.com/uutils/coreutils/pull/10093 +* extent a test for many device files by @oech3 in https://github.com/uutils/coreutils/pull/10199 + +## truncate +* eliminate duplicate stat() syscall by @Jean-Christian-Cirstea in https://github.com/uutils/coreutils/pull/9527 + +## tsort +* gnu misc tsort.pl by @mattsu2020 in https://github.com/uutils/coreutils/pull/9289 +* perf (tsort) : avoid reading the whole input into memory and intern strings by @anastygnome in https://github.com/uutils/coreutils/pull/9872 +* Disable tsort_input_parsing_heavy for being too intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/10109 + +## uname +* remove unwrap() for > /dev/full by @oech3 in https://github.com/uutils/coreutils/pull/10517 + +## unexpand +* use byte count for multibyte characters for column width when using -a flag by @JaneIllario in https://github.com/uutils/coreutils/pull/9949 +* add support for extended tab stop syntax (+N and /N) by @sylvestre in https://github.com/uutils/coreutils/pull/9265 +* fix +0 and /0 handling, add integration tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/10406 + +## uniq +* optimize memory usage for ignore-case comparison by @CrazyRoka in https://github.com/uutils/coreutils/pull/10050 +* rename `keys_differ` to `keys_are_equal` by @cakebaker in https://github.com/uutils/coreutils/pull/10070 + +## uptime +* Fix uptime on macOS using sysctl kern.boottime fallback by @naoNao89 in https://github.com/uutils/coreutils/pull/8908 +* refactor(uptime): use FluentArgs for loadavg formatting in get_format by @mattsu2020 in https://github.com/uutils/coreutils/pull/10102 +* Add -p, --pretty argument by @Ivan-Shaml in https://github.com/uutils/coreutils/pull/10143 + +## users +* Avoid > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10165 + +## wc +* GNU wc-cpu.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9144 +* Ensure the output order of stdout and stderror remains unchanged. by @mattsu2020 in https://github.com/uutils/coreutils/pull/9905 +* respect POSIXLY_CORRECT for word counting by @dhr412 in https://github.com/uutils/coreutils/pull/10344 +* fix word undercount with invalid byte sequences by @dhr412 in https://github.com/uutils/coreutils/pull/10348 +* --debug 2>/dev/full does not fail by @oech3 in https://github.com/uutils/coreutils/pull/10590 + +## yes +* Silently handle broken pipe on windows by @ChrisDryden in https://github.com/uutils/coreutils/pull/10429 + +## uucore +* use --suffix to enable backup mode by @jacek-kurlit in https://github.com/uutils/coreutils/pull/9741 +* parser: add binary support to determine_number_system and parse_size by @csko in https://github.com/uutils/coreutils/pull/9659 +* locale.rs: move more code outside of the unsafe block by @sylvestre in https://github.com/uutils/coreutils/pull/9720 +* fix clippy::pedantic warnings in build.rs and generated locale code by @skjha98 in https://github.com/uutils/coreutils/pull/9837 +* Remove lossy OS string conversions by @blyxxyz in https://github.com/uutils/coreutils/pull/9337 +* document that libselinux caches is_selinux_enabled by @ChrisDryden in https://github.com/uutils/coreutils/pull/9873 +* switch to `BigDecimal::powi` implementation by @xtqqczze in https://github.com/uutils/coreutils/pull/9957 +* uucore/uptime: remove unreachable code on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/9985 +* fsext.rs: Replace getmntinfo with libc by @oech3 in https://github.com/uutils/coreutils/pull/10075 +* refactor: use `jiff` for safer time features by @aaron-ang in https://github.com/uutils/coreutils/pull/10118 +* use the enable_pipe_errors instead of libc::signal by @sylvestre in https://github.com/uutils/coreutils/pull/10113 +* feat: Expand safe directory traversal to all Unix platforms and fix related type conversions. by @abendrothj in https://github.com/uutils/coreutils/pull/9792 +* simplify cfg checks in signals.rs by @sylvestre in https://github.com/uutils/coreutils/pull/10296 +* centralize SIGPIPE handling in main macro by @ChrisDryden in https://github.com/uutils/coreutils/pull/10354 +* uucore(fs): expand path normalization by @FidelSch in https://github.com/uutils/coreutils/pull/10532 + +## uudoc +* style(uudoc): update header formatting for options and examples by @hwhsu1231 in https://github.com/uutils/coreutils/pull/10004 +* print tldr.zip warning only once per process by @rynewang in https://github.com/uutils/coreutils/pull/10039 + +## coreutils +* Remove limitation for prefix by @oech3 in https://github.com/uutils/coreutils/pull/10261 +* Drop find_prefixed_util by @oech3 in https://github.com/uutils/coreutils/pull/10306 +* uu: fix typo by @antonkesy in https://github.com/uutils/coreutils/pull/10170 +* fix: properly handle write errors for --version and --help output by @naoNao89 in https://github.com/uutils/coreutils/pull/10223 + +## Platform Support +* Add more Cygwin support by @500-internal-server-error in https://github.com/uutils/coreutils/pull/9686 +* Bump mio for cygwin by @oech3 in https://github.com/uutils/coreutils/pull/9809 +* clippy: allow "cygwin" as value for "target_os" by @cakebaker in https://github.com/uutils/coreutils/pull/10054 +* fix: allow selinux on android by @xtqqczze in https://github.com/uutils/coreutils/pull/10419 +* runcon, chcon: Don't fetch crates at unsupported target by @oech3 in https://github.com/uutils/coreutils/pull/10360 + +## CI & Build +* GnuTests: Reduce gnproc deps on BSD by @oech3 in https://github.com/uutils/coreutils/pull/9644 +* GnuTests: Split online process to a script by @oech3 in https://github.com/uutils/coreutils/pull/9652 +* GnuTests: Caches for faster configure and skipping make by @oech3 in https://github.com/uutils/coreutils/pull/9627 +* run-gnu-test.sh: Fix nproc broken by cache by @oech3 in https://github.com/uutils/coreutils/pull/9735 +* build-gnu.sh: Move {ch,run}con tests to Fedora VM and avoid wrong result by @oech3 in https://github.com/uutils/coreutils/pull/9607 +* GnuTests.yml: Fix caches by @oech3 in https://github.com/uutils/coreutils/pull/9739 +* build-gnu.sh: Don't hack test suite to force-enable tests by @oech3 in https://github.com/uutils/coreutils/pull/9744 +* GnuTests.yml: Discard caches at each build-gnu.sh update by @oech3 in https://github.com/uutils/coreutils/pull/9753 +* build-gnu.sh: Enable test/df/no-mtab-status.sh by @oech3 in https://github.com/uutils/coreutils/pull/9759 +* GNUmakefile: Prepend PROG_PREFIX to LIBSTDBUF_DIR too by @oech3 in https://github.com/uutils/coreutils/pull/9068 +* build-gnu.sh: correct path suggestion for fetch-gnu.sh by @nutthawit in https://github.com/uutils/coreutils/pull/9788 +* is_a_tty.sh: Reduce lines by @oech3 in https://github.com/uutils/coreutils/pull/9814 +* ci: add Non UTF8 locale for GNU tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9807 +* Avoid wrong PASS of cp-mv-enotsup-xattr runcon-compute and enable 1 test by @oech3 in https://github.com/uutils/coreutils/pull/9743 +* CI: Add SMACK test runner for GNU tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9888 +* openbsd ci: try to remove more temporary files by @sylvestre in https://github.com/uutils/coreutils/pull/9904 +* build-gnu.sh: Use MULTICALL=y and skip not used utils for faster build by @oech3 in https://github.com/uutils/coreutils/pull/9567 +* CICD.yml: Avoid no space left much more by @oech3 in https://github.com/uutils/coreutils/pull/9907 +* GnuTests.yml: Stop manpage generation to reduce size of log by @oech3 in https://github.com/uutils/coreutils/pull/9943 +* CICD.yml: Avoid no space left again by @oech3 in https://github.com/uutils/coreutils/pull/9939 +* GnuTests: Drop texinfo dep by @oech3 in https://github.com/uutils/coreutils/pull/9944 +* GnuTests.yml: install Rust without rustfmt by @cakebaker in https://github.com/uutils/coreutils/pull/9947 +* openbsd.yml: Replace cargo cache related disk space hack by @oech3 in https://github.com/uutils/coreutils/pull/9917 +* GnuTests.yml: Drop autopoint by @oech3 in https://github.com/uutils/coreutils/pull/9965 +* GnuTests.yml: Drop git from VM by @oech3 in https://github.com/uutils/coreutils/pull/9969 +* build-gnu.sh: Skip make at SELinux tests by @oech3 in https://github.com/uutils/coreutils/pull/9970 +* build-gnu.sh: Drop a variable & cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9953 +* GnuTests.yml: use minimal Rust profile in VM by @cakebaker in https://github.com/uutils/coreutils/pull/9977 +* benchmarks: use `simulation` mode by @cakebaker in https://github.com/uutils/coreutils/pull/9986 +* CI: Default build artifact for riscv64+musl on CICD.yml by @ffgan in https://github.com/uutils/coreutils/pull/10029 +* ci: set `-no-metrics` for Android emulator by @cakebaker in https://github.com/uutils/coreutils/pull/10051 +* build-gnu.sh: Let md5sum.pl clap compatible by @oech3 in https://github.com/uutils/coreutils/pull/10065 +* FixPR.yml: Use cargo fetch --target $(rustc --print host-tuple) by @oech3 in https://github.com/uutils/coreutils/pull/10074 +* ci: add Codecov Test Analytics integration by @ChrisDryden in https://github.com/uutils/coreutils/pull/10091 +* Add some intermittent tests to the list by @sylvestre in https://github.com/uutils/coreutils/pull/10104 +* ci: re-enable i686-musl platform by @cakebaker in https://github.com/uutils/coreutils/pull/10127 +* ci: add df/skip-rootfs test to SMACK/ROOTFS CI by @ChrisDryden in https://github.com/uutils/coreutils/pull/10150 +* cp: Adding dd to SELinux CI to enable cp-a-selinux by @ChrisDryden in https://github.com/uutils/coreutils/pull/10148 +* run-gnu-tests-smack-ci.sh: Use release-small profile for faster build by @oech3 in https://github.com/uutils/coreutils/pull/10144 +* run-gnu-tests-smack-ci.sh: Use multi-call binary for faster build by @oech3 in https://github.com/uutils/coreutils/pull/10162 +* build-gnu.sh: Build seq as multicall-binary by @oech3 in https://github.com/uutils/coreutils/pull/10152 +* GNUmakefile: Support CARGO_BUILD_TARGET by @oech3 in https://github.com/uutils/coreutils/pull/9223 +* make build-gnu.sh reentrant by @sylvestre in https://github.com/uutils/coreutils/pull/10180 +* CICD.yml: Upload binaries from latest commit too by @oech3 in https://github.com/uutils/coreutils/pull/10212 +* freebsd.yml: Avoid no space left on device by @oech3 in https://github.com/uutils/coreutils/pull/10203 +* CICD.yml: Upload uudoc at least for Linux-x64-glibc by @oech3 in https://github.com/uutils/coreutils/pull/10231 +* benchmarks: Add memory benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/10229 +* CICD.yml: Drop checks for hashsum by @oech3 in https://github.com/uutils/coreutils/pull/10259 +* try to decrease the variance in the memory usage for benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/10273 +* CICD.yml: Upload manpages and completions by @oech3 in https://github.com/uutils/coreutils/pull/10257 +* CICD.yml: upload binaries without version string by @oech3 in https://github.com/uutils/coreutils/pull/10217 +* CI: Purge disk space at background to avoid delaying by @oech3 in https://github.com/uutils/coreutils/pull/10276 +* GnuTests.yml: Dedup setenforce 1 by @oech3 in https://github.com/uutils/coreutils/pull/10266 +* build-gnu.sh: Replace ${SED} with gsed wrapper by @oech3 in https://github.com/uutils/coreutils/pull/10201 +* bench: try to remove more variances by @sylvestre in https://github.com/uutils/coreutils/pull/10277 +* bench: reduce memory variance in cp and numfmt benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/10283 +* ci: ensure test failures are caught in coverage script and fix them by @sylvestre in https://github.com/uutils/coreutils/pull/10286 +* bench: fix variance in remaining numfmt benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/10292 +* CICD.yml: Remove zsh completion for [ by @oech3 in https://github.com/uutils/coreutils/pull/10278 +* CICD.yml: Add man and completion for coreutils(1) to docs.tar.zst by @oech3 in https://github.com/uutils/coreutils/pull/10299 +* prepare release 0.6.0 by @sylvestre in https://github.com/uutils/coreutils/pull/10291 +* CIDD.yml: cargo fetch platform spec crates only by @oech3 in https://github.com/uutils/coreutils/pull/10304 +* build-gnu.sh: Enable help-version-getopt.sh (PASS) by @oech3 in https://github.com/uutils/coreutils/pull/10305 +* CICD.yml: Stop manually stripping by @oech3 in https://github.com/uutils/coreutils/pull/10311 +* GnuTests: Replace incompat tests & drop obsolete hack by @oech3 in https://github.com/uutils/coreutils/pull/9976 +* Backport tests/env/env.sh for better multicall support by @oech3 in https://github.com/uutils/coreutils/pull/10337 +* CICD.yml: Drop unused apt-get by @oech3 in https://github.com/uutils/coreutils/pull/10343 +* CICD.yml: Upload individual bins to release by @oech3 in https://github.com/uutils/coreutils/pull/10338 +* CICD.yml: Drop a toolchain outside of VM by @oech3 in https://github.com/uutils/coreutils/pull/10381 +* ci: move `-no-metrics` to `COMMON_EMULATOR_OPTIONS` by @cakebaker in https://github.com/uutils/coreutils/pull/10385 +* CICD.yml: Filter-out non-SELinux progs on SELinux test by @oech3 in https://github.com/uutils/coreutils/pull/10382 +* l10n.yml: Use git clone --depth=1 by @oech3 in https://github.com/uutils/coreutils/pull/10367 +* Don't build coreutils without MULTICALL=y by @oech3 in https://github.com/uutils/coreutils/pull/10359 +* gnu: patch inotify-race tests to use Rust gdb breakpoints by @ChrisDryden in https://github.com/uutils/coreutils/pull/9908 +* fetch-gnu: add tests/tail/inotify-dir-recreate.sh by @ChrisDryden in https://github.com/uutils/coreutils/pull/10392 +* ci: generate the french locale for benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/10398 +* ci: disable memory profiling in benchmarks due to variance by @sylvestre in https://github.com/uutils/coreutils/pull/10399 +* check-safe-traversal.sh: Support any profile by @oech3 in https://github.com/uutils/coreutils/pull/10401 +* android.yml: Drop x86 by @oech3 in https://github.com/uutils/coreutils/pull/10353 +* CICD.yml: Merge 2 tests by @oech3 in https://github.com/uutils/coreutils/pull/10424 +* openbsd.yml: Try to reduce time by @oech3 in https://github.com/uutils/coreutils/pull/10423 +* freebsd.yml: Drop useless cache actions by @oech3 in https://github.com/uutils/coreutils/pull/10362 +* Reduce duplicated management of supported utils by @oech3 in https://github.com/uutils/coreutils/pull/10409 +* fix(ci): remove outdated `analysis` mode by @not-matthias in https://github.com/uutils/coreutils/pull/10414 +* Zsh suspended by @sylvestre in https://github.com/uutils/coreutils/pull/10431 +* fix(CI): clippy unnecessary unwrap by @aaron-ang in https://github.com/uutils/coreutils/pull/10435 +* ci/android: use `--locked` when installing `nextest` by @cakebaker in https://github.com/uutils/coreutils/pull/10467 +* CI: Disable incremental build for faster CI by @oech3 in https://github.com/uutils/coreutils/pull/10462 +* CICD.yml: Merge 2 "separately" by @oech3 in https://github.com/uutils/coreutils/pull/10425 +* fuzzing.yml: Reproducible toolchain setup by @oech3 in https://github.com/uutils/coreutils/pull/10487 +* ci: show diff for toml_format by @xtqqczze in https://github.com/uutils/coreutils/pull/10501 +* CICD: Remove unused rustfmt by @oech3 in https://github.com/uutils/coreutils/pull/10509 +* build-gnu.sh: remove workaround for timeout/yes by @Ecordonnier in https://github.com/uutils/coreutils/pull/10505 +* GnuTests: Drop cache action outside of VM, use preinstalled rust by @oech3 in https://github.com/uutils/coreutils/pull/10504 +* GNUmakefile: Complete TEST_PROGS by @oech3 in https://github.com/uutils/coreutils/pull/10495 +* CICD.yml: (partial) reproducible toolchain setup by @oech3 in https://github.com/uutils/coreutils/pull/10500 +* ci: use toolchain override shorthand by @xtqqczze in https://github.com/uutils/coreutils/pull/10600 +* GnuTests: Save setup time 9 min+ by @oech3 in https://github.com/uutils/coreutils/pull/10557 +* GNUmakefile: Drop HASHSUM by @oech3 in https://github.com/uutils/coreutils/pull/10634 +* Enable cat, sort, readlink and tr tests in busybox test suite by @ChrisDryden in https://github.com/uutils/coreutils/pull/9850 + +## Code Quality & Cleanup +* clippy: fix map_unwrap_or lint by @xtqqczze in https://github.com/uutils/coreutils/pull/9678 +* clippy: fix ptr lints by @xtqqczze in https://github.com/uutils/coreutils/pull/9687 +* clippy: enable `needless_raw_string_hashes` lint by @cakebaker in https://github.com/uutils/coreutils/pull/9840 +* clippy: fix uninlined_format_args lint by @xtqqczze in https://github.com/uutils/coreutils/pull/9962 +* Enable clippy::assigning_clones on OpenBSD by @xtqqczze in https://github.com/uutils/coreutils/pull/9956 +* Bump `signal-hook` & add it to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/9979 +* benchmark: some minor improvements by @sylvestre in https://github.com/uutils/coreutils/pull/9928 +* mac: change the delay value to avoid intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/9895 +* fix test_backup_mode_suffix_without_backup_option test on mac by @sylvestre in https://github.com/uutils/coreutils/pull/9891 +* fix: reduce factor parallel test runtime by @aaron-ang in https://github.com/uutils/coreutils/pull/10136 +* deny.toml: add `constant_time_eq` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10137 +* deny.toml: remove `constant_time_eq` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10176 +* fix: handle /dev/full write errors gracefully by @naoNao89 in https://github.com/uutils/coreutils/pull/10062 +* benchmarks: reduce allocations in run_util_function by @xtqqczze in https://github.com/uutils/coreutils/pull/10378 +* uutests: replace unsafe `libc::stat` with `nix::stat` by @xtqqczze in https://github.com/uutils/coreutils/pull/10364 +* deny.toml: remove `wasi` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10355 +* fuzz: fix clippy lints by @xtqqczze in https://github.com/uutils/coreutils/pull/10466 +* clippy: fix used_underscore_binding lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10058 +* clippy: fix needless_continue lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10340 +* clippy: remove assigning_clones lint suppression by @xtqqczze in https://github.com/uutils/coreutils/pull/10377 +* clippy: fix map_clone lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10619 +* deny.toml: remove unmatched items from skip list by @xtqqczze in https://github.com/uutils/coreutils/pull/10605 +* refactor: rename print functions to write for consistency by @xtqqczze in https://github.com/uutils/coreutils/pull/10536 +* editorconfig: specify toml settings by @xtqqczze in https://github.com/uutils/coreutils/pull/10601 + +## Documentation +* README.md: Guide people to release page or main by @oech3 in https://github.com/uutils/coreutils/pull/9709 +* DEVELOPMENT.md: Remove a wrong desc by @oech3 in https://github.com/uutils/coreutils/pull/9717 +* why-error.md: Cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9738 +* why-error.md: Remove 2 tests by @oech3 in https://github.com/uutils/coreutils/pull/9799 +* why-error.md: Remove 1 test by @oech3 in https://github.com/uutils/coreutils/pull/9826 +* why-*.md: Drop as issue is enough by @oech3 in https://github.com/uutils/coreutils/pull/9835 +* CONTRIBUTING.md: update crate structure by @cakebaker in https://github.com/uutils/coreutils/pull/9861 +* CONTRIBUTING.md: Bug report with LANG=C by @oech3 in https://github.com/uutils/coreutils/pull/9890 +* README.md: Avoid losting unix specific progs by @oech3 in https://github.com/uutils/coreutils/pull/9867 +* DEVELOPMENT.md: mention nightly requirement for code coverage by @nutthawit in https://github.com/uutils/coreutils/pull/9919 +* contrib: add info about expectations and ping by @sylvestre in https://github.com/uutils/coreutils/pull/10275 +* {README,CONTRIBUTIONS}.md: Add link to binaries from latest commit by @oech3 in https://github.com/uutils/coreutils/pull/10280 +* README.package.md: Fix MSRV by @oech3 in https://github.com/uutils/coreutils/pull/10485 + +## Dependency Updates +* chore(deps): update rust crate console to v0.16.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9675 +* chore(deps): update rust crate clap_complete to v4.5.62 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9698 +* chore(deps): update rust crate zip to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9731 +* chore(deps): update rust crate crc-fast to v1.8.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9730 +* chore(deps): update rust crate linux-raw-sys to v0.12.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9787 +* chore(deps): update rust crate divan to v4.2.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9786 +* chore(deps): update rust crate crc-fast to v1.9.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9791 +* chore(deps): update rust crate jiff to v0.2.17 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9830 +* chore(deps): update dawidd6/action-download-artifact action to v12 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9836 +* chore(deps): update rust crate proc-macro2 to v1.0.104 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9878 +* chore(deps): update rust crate bigdecimal to v0.4.10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9880 +* chore(deps): update actions/upload-artifact action to v6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9896 +* chore(deps): update rust crate self_cell to v1.2.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9927 +* chore(deps): update rust crate clap_complete to v4.5.64 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9909 +* chore(deps): update rust crate clap to v4.5.54 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10000 +* Bump libc to 0.2.178 with fix for FreeBSD by @oech3 in https://github.com/uutils/coreutils/pull/10046 +* chore(deps): update rust crate jiff to v0.2.18 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10084 +* chore(deps): update rust crate proc-macro2 to v1.0.105 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10085 +* chore(deps): update rust crate quote to v1.0.43 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10087 +* chore(deps): update rust crate libc to v0.2.179 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8717 +* chore(deps): update rust crate divan to v4.2.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10103 +* chore(deps): update rust crate clap_complete to v4.5.65 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10106 +* chore(deps): update rust crate libc to v0.2.180 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10126 +* replace bincode by wincode by @sylvestre in https://github.com/uutils/coreutils/pull/10134 +* chore(deps): update rust crate blake3 to v1.8.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10132 +* chore(deps): update rust crate data-encoding-macro to v0.1.19 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10163 +* chore(deps): update rust crate blake2b_simd to v1.0.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10168 +* chore(deps): update rust crate rand_core to v0.9.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10202 +* chore(deps): update rust crate time to v0.3.45 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10216 +* chore(deps): update rust crate rand_core to v0.9.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10215 +* chore(deps): update rust crate zip to v7.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10237 +* chore(deps): update rust crate filetime to v0.2.27 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10336 +* chore(deps): update rust crate thiserror to v2.0.18 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10329 +* deps: remove unused rust crate linux-raw-sys by @xtqqczze in https://github.com/uutils/coreutils/pull/10374 +* chore(deps): update rust crate zip to v7.2.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10387 +* chore(deps): update rust crate divan to v4.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10413 +* deps: remove unused rust deps by @xtqqczze in https://github.com/uutils/coreutils/pull/10404 +* chore(deps): update rust crate proc-macro2 to v1.0.106 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10420 +* fix(deps): remove duplicate itertools package by @xtqqczze in https://github.com/uutils/coreutils/pull/10440 +* fix(deps): refactor nix package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/10441 +* chore(deps): update rust crate quote to v1.0.44 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10446 +* fix(deps): refactor xattr package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/10454 +* fix(deps): refactor rlimit package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/10464 +* chore(deps): update rust crate signal-hook to v0.4.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10468 +* chore(deps): update rust crate signal-hook to v0.4.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10472 +* deps: refactor crossterm package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/10484 +* chore(deps): update rust crate clap to v4.5.55 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10521 +* chore(deps): update rust crate clap to v4.5.55 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10544 +* chore(deps): update rust crate clap to v4.5.56 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10568 +* chore(deps): update dawidd6/action-download-artifact action to v13 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10586 +* chore(deps): update dawidd6/action-download-artifact action to v14 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10641 +* chore(deps): update rust crate rlimit to 0.11.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10645 + +## New Contributors +* @xtqqczze made their first contribution in https://github.com/uutils/coreutils/pull/9678 +* @Jean-Christian-Cirstea made their first contribution in https://github.com/uutils/coreutils/pull/9527 +* @jacek-kurlit made their first contribution in https://github.com/uutils/coreutils/pull/9741 +* @csko made their first contribution in https://github.com/uutils/coreutils/pull/9659 +* @nutthawit made their first contribution in https://github.com/uutils/coreutils/pull/9788 +* @dshemetov made their first contribution in https://github.com/uutils/coreutils/pull/9732 +* @500-internal-server-error made their first contribution in https://github.com/uutils/coreutils/pull/9686 +* @CrazyRoka made their first contribution in https://github.com/uutils/coreutils/pull/9681 +* @skjha98 made their first contribution in https://github.com/uutils/coreutils/pull/9837 +* @alexandrefresnais made their first contribution in https://github.com/uutils/coreutils/pull/9526 +* @iburaky2 made their first contribution in https://github.com/uutils/coreutils/pull/9870 +* @georgepaulsen made their first contribution in https://github.com/uutils/coreutils/pull/9951 +* @SaathwikDasari made their first contribution in https://github.com/uutils/coreutils/pull/9946 +* @JaneIllario made their first contribution in https://github.com/uutils/coreutils/pull/9949 +* @Dylans123 made their first contribution in https://github.com/uutils/coreutils/pull/9960 +* @max-amb made their first contribution in https://github.com/uutils/coreutils/pull/9945 +* @van-sprundel made their first contribution in https://github.com/uutils/coreutils/pull/9975 +* @ffgan made their first contribution in https://github.com/uutils/coreutils/pull/10029 +* @hwhsu1231 made their first contribution in https://github.com/uutils/coreutils/pull/10004 +* @rynewang made their first contribution in https://github.com/uutils/coreutils/pull/10038 +* @Thanhphan1147 made their first contribution in https://github.com/uutils/coreutils/pull/9757 +* @AnuthaDev made their first contribution in https://github.com/uutils/coreutils/pull/10090 +* @abendrothj made their first contribution in https://github.com/uutils/coreutils/pull/9792 +* @antonkesy made their first contribution in https://github.com/uutils/coreutils/pull/10170 +* @Ivan-Shaml made their first contribution in https://github.com/uutils/coreutils/pull/10143 +* @bkueng made their first contribution in https://github.com/uutils/coreutils/pull/8615 +* @Xylphy made their first contribution in https://github.com/uutils/coreutils/pull/10224 +* @dhr412 made their first contribution in https://github.com/uutils/coreutils/pull/10268 +* @Dolphindalt made their first contribution in https://github.com/uutils/coreutils/pull/10067 +* @quantum-encoding made their first contribution in https://github.com/uutils/coreutils/pull/9176 +* @GomesGoncalo made their first contribution in https://github.com/uutils/coreutils/pull/10232 +* @AnandajithS made their first contribution in https://github.com/uutils/coreutils/pull/9114 +* @trypsynth made their first contribution in https://github.com/uutils/coreutils/pull/10209 +* @w007878 made their first contribution in https://github.com/uutils/coreutils/pull/10369 +* @Paol0B made their first contribution in https://github.com/uutils/coreutils/pull/10206 +* @Kaua-Klassmann made their first contribution in https://github.com/uutils/coreutils/pull/10339 +* @not-matthias made their first contribution in https://github.com/uutils/coreutils/pull/10414 +* @0xferrous made their first contribution in https://github.com/uutils/coreutils/pull/10412 +* @3v1n0 made their first contribution in https://github.com/uutils/coreutils/pull/10439 +* @reubenwong97 made their first contribution in https://github.com/uutils/coreutils/pull/10566 +* @ChiamakaUI made their first contribution in https://github.com/uutils/coreutils/pull/10582 + +**Full Changelog**: https://github.com/uutils/coreutils/compare/0.5.0...0.6.0