Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
Full Internationalization & Localization
Complete translation infrastructure using Mozilla's Fluent framework with French translations included.
Support for complex plural forms (Arabic, Hebrew, etc.) and locale-aware formatting.
Even error messages from clap are fully localizable!
Community Translation Platform
Join our translation efforts at Weblate
or contribute directly via our l10n repository
Unicode & Non-UTF8 Path Support
All programs now handle non-UTF8 paths seamlessly while supporting full Unicode features.
Example:
echo "🍔🍟🥤" | cut -d"🍟" -f1
works perfectly with emoji delimiters!Massive Performance Gains
Notable example:
tr
went from 9.81x slower than GNU to 1.58x faster — a 15x improvement!Additional optimizations in sort, cat, and other utilities.
Enhanced GNU Compatibility
538 passing tests (+16 from 0.1.0), with reduced failures from 65 to 52.
Continued improvements in edge case handling and behavior matching.
Production Ready for Ubuntu
As part of Ubuntu's announcement of plans to integrate Rust Coreutils, this release focuses on stability and compatibility improvements to ensure Ubuntu users have the best possible experience.
Contributions
This release includes 1183 commits from 46+ contributors, including 28 newcomers!
All this with a code coverage about 87%!
GNU Test Suite Compatibility:
Call to Action:
🌍 Help us translate - Contribute translations at Weblate
🚀 Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
🔗 Download the latest release: https://uutils.github.io
What's Changed
basenc
basename
/
by @drinkcat in basename: Simply logic, do not trim path separators/
uutils/coreutils#8372cat
chmod
chown
chroot
cksum
cp
clap
render help & version by @cakebaker in cp: letclap
render help & version uutils/coreutils#8199cp
: Properly preserves fifos and symlink attributes uutils/coreutils#8416csplit
date
-d
, last wins by @cakebaker in date: allow multiple-d
, last wins uutils/coreutils#8507df
OsString
by @drinkcat in df: Move to usingOsString
uutils/coreutils#8371du
du
/ls
: Unify file metadata time handling by @drinkcat indu
/ls
: Unify file metadata time handling uutils/coreutils#8396du
/ls
: Improve time-style handling based on GNU coreutils manual by @drinkcat indu
/ls
: Improve time-style handling based on GNU coreutils manual uutils/coreutils#8415echo
--version
is the only argument by @cakebaker in echo: show version when--version
is the only argument uutils/coreutils#8341env
expr
expr.pl
fromwhy-error.md
by @frendsick in expr: Removeexpr.pl
fromwhy-error.md
uutils/coreutils#8022factor
fmt
fold
hashsum
head
BadEncoding
variant ofHeadError
by @cakebaker in head: removeBadEncoding
variant ofHeadError
uutils/coreutils#8484uumain
by @cakebaker in head: refactoruumain
uutils/coreutils#8497install
bool
as return type ofneed_copy
by @cakebaker in install: usebool
as return type ofneed_copy
uutils/coreutils#8288ln
logname
unsafe extern "C"
block by @cakebaker in logname: removeunsafe extern "C"
block uutils/coreutils#8177ls
mkdir
mkfifo
mknod
mktemp
more
mv
next()
instead ofpeekable().peek()
inis_empty_dir()
by @cakebaker in mv: usenext()
instead ofpeekable().peek()
inis_empty_dir()
uutils/coreutils#8413nice
nl
OsString
for--number-separator
by @cakebaker in nl: useOsString
for--number-separator
uutils/coreutils#8519--join-blank-lines
by @cakebaker in nl: allow zero for--join-blank-lines
uutils/coreutils#8540od
flo16
/flo32
/flo64
tof16
/f32
/f64
in function names by @cakebaker in od: renameflo16
/flo32
/flo64
tof16
/f32
/f64
in function names uutils/coreutils#8369pr
file_last_modified_time_format()
by @cakebaker in pr: reduce nesting to improve readability offile_last_modified_time_format()
uutils/coreutils#8420printf
pwd
realpath
rm
--interactive
arg aliases by @cakebaker in rm: support the--interactive
arg aliases uutils/coreutils#8419uumain
by @cakebaker in rm: do "early return" earlier inuumain
uutils/coreutils#8045is_dir_empty
from O(n) to O(1) by @cakebaker in rm: improveis_dir_empty
from O(n) to O(1) uutils/coreutils#8384shred
sort
stat
stat
: Convert to useuucore
functions by @drinkcat instat
: Convert to useuucore
functions uutils/coreutils#8398stdbuf
stty
cfg
by @cakebaker in stty: remove redundantcfg
uutils/coreutils#8262stty
: remove quotes around strings in locale files by @willshuttleworth instty
: remove quotes around strings in locale files uutils/coreutils#8290stty
: special settings by @willshuttleworth instty
: special settings uutils/coreutils#8309sync
tail
tee
linux_only
module by @cakebaker in tee: move test tolinux_only
module uutils/coreutils#8225timeout
touch
parse_datetime
& adapttouch
tests by @cakebaker in Bumpparse_datetime
& adapttouch
tests uutils/coreutils#8424tr
uname
unexpand
uptime
uptime_since
by @cakebaker in uptime: improve readability ofuptime_since
uutils/coreutils#8164users
who
match
instead ofif
/else
chain by @cakebaker in who: usematch
instead ofif
/else
chain uutils/coreutils#8541uucore
to_string_lossy
only once indir_strip_dot_for_creation
by @cakebaker in uucore/fs: callto_string_lossy
only once indir_strip_dot_for_creation
uutils/coreutils#8399format_float_shortest
by @drinkcat in uucore: num_format: Optimizeformat_float_shortest
uutils/coreutils#8444lines()
by @cakebaker in uucore/clap_localization: use iterator fromlines()
uutils/coreutils#8536Localization & Internationalization
\n
with a new line in ftl files by @cakebaker in l10n: replace\n
with a new line in ftl files uutils/coreutils#8349View the full release notes at https://github.com/uutils/coreutils/releases/tag/0.2.0.