Back to Coreutils

0.6.0

docs/src/release-notes/0.6.0.md

0.8.059.2 KB
Original Source

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:

Result0.5.00.6.0Change 0.5.0 to 0.6.0% Total 0.5.0% Total 0.6.0% Change 0.5.0 to 0.6.0
Pass566622+5687.75%96.28%+8.53%
Skip237-163.57%1.08%-2.49%
Fail5516-398.53%2.48%-6.05%
Error1100.16%0.15%~0%
Total645646+1 (new test)


Call to Action:

Help us translate - Contribute translations at Weblate Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils

What's Changed

arch

base64

basename

cat

chgrp

chmod

chroot

cksum

comm

cp

csplit

date

dd

df

dir

dirname

du

echo

env

expand

expr

fmt

fold

groups

hashsum

hostid

id

install

join

kill

ln

logname

ls

mkdir

mkfifo

mknod

mktemp

more

mv

nice

nl

nohup

nproc

numfmt

pr

printenv

printf

ptx

rm

rmdir

runcon

seq

shred

shuf

sort

split

stat

stdbuf

stty

sync

tac

tail

tee

test

timeout

touch

truncate

tsort

uname

unexpand

uniq

uptime

users

wc

yes

uucore

uudoc

coreutils

Platform Support

CI & Build

Code Quality & Cleanup

Documentation

Dependency Updates

New Contributors

Full Changelog: https://github.com/uutils/coreutils/compare/0.5.0...0.6.0