docs/src/release-notes/0.6.0.md
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!
Major GNU Compatibility Leap
sort, ls, date, cksum, tail, and many moreSafety & Code Quality
date, sort, locale.rs, and other utilitieslibc calls with safe nix crate equivalents throughout/dev/full writes across many utilitiesLocale & Internationalization
datesortjoinPerformance Improvements
base32/base64/basenc: Optimized with reduced memset operationsshuf: Optimized numeric output and added --random-seed optiondate: Wrapped stdout in BufWriter for batch processinguniq: Optimized memory usage for ignore-case comparisontsort: Avoid reading entire input into memory, intern stringsdf: Performance improvements with better filesystem handlingPlatform Support Expansion
ls, id, mkdir, mkfifo, mknodNotable Utility Improvements
cksum/hashsum: Merged common logic, removed deprecated hashsum binarytail: Added --debug flag, fixed -F symlink tracking, fixed --pid with FIFOtimeout: Added comprehensive signal handling and --verbose improvementssort: Legacy +POS/-POS handling, locale-aware collation, debug key annotationspr: Multiple fixes for headers, form feeds, and pagination optionschmod: Fixed recursive handling and --preserve-root optionrm: Fixed error reporting and symlink handlingContributions: This release was made possible by 41 new contributors joining our community
| 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) |
Help us translate - Contribute translations at Weblate Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
--bits flag by @RenjiSann in https://github.com/uutils/coreutils/pull/9773Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9611--random-seed, make --random-source GNU-compatible, report write failures, optimize by @blyxxyz in https://github.com/uutils/coreutils/pull/7585tail -n0 in follow mode by @AnandajithS in https://github.com/uutils/coreutils/pull/9114keys_differ to keys_are_equal by @cakebaker in https://github.com/uutils/coreutils/pull/10070BigDecimal::powi implementation by @xtqqczze in https://github.com/uutils/coreutils/pull/9957jiff for safer time features by @aaron-ang in https://github.com/uutils/coreutils/pull/10118simulation mode by @cakebaker in https://github.com/uutils/coreutils/pull/9986-no-metrics for Android emulator by @cakebaker in https://github.com/uutils/coreutils/pull/10051-no-metrics to COMMON_EMULATOR_OPTIONS by @cakebaker in https://github.com/uutils/coreutils/pull/10385analysis mode by @not-matthias in https://github.com/uutils/coreutils/pull/10414--locked when installing nextest by @cakebaker in https://github.com/uutils/coreutils/pull/10467needless_raw_string_hashes lint by @cakebaker in https://github.com/uutils/coreutils/pull/9840signal-hook & add it to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/9979constant_time_eq to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10137constant_time_eq from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10176libc::stat with nix::stat by @xtqqczze in https://github.com/uutils/coreutils/pull/10364wasi from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10355Full Changelog: https://github.com/uutils/coreutils/compare/0.5.0...0.6.0