Skip to content

Releases: uutils/coreutils

0.0.28

16 Nov 19:37
1d9e162
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.28 Release:

We are thrilled to announce the release of Rust Coreutils 0.0.28! This release brings significant improvements in compatibility and stability, continuing our journey to provide a robust alternative to GNU Coreutils.

Highlights:

  • Improved Compatibility:
    • Passing GNU tests increased to 476 (+21 compared to 0.0.27).
    • Failing tests reduced to 94 (-19 compared to 0.0.27).
  • Contributions: This release was made possible by the hard work of 37 contributors, including 16 newcomers.
  • Enhanced Performance: Updates and optimizations in utilities like cksum, mkdir, and tr.

GNU Test Suite Compatibility:

Here’s how version 0.0.28 compares to the previous release:

Result 0.0.27 0.0.28 Change 0.0.27 to 0.0.28 % Total 0.0.27 % Total 0.0.28 % Change 0.0.27 to 0.0.28
Pass 455 476 +21 74.35% 77.65% +3.30%
Skip 44 43 -1 7.19% 7.01% -0.18%
Fail 113 94 -19 18.46% 15.34% -3.12%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

Call to Action:

Support our work by sponsoring us on GitHub! Your contributions help maintain our infrastructure and enable faster iterations. Sponsor us here.

For more details and to download the latest release, visit our website: https://uutils.github.io.

What's Changed

GNU Test Suite Compatibility

basenc

cat

cksum / hashsum

cp

date

dd

dircolors

echo

hashsum

  • When checksum file is untagged, detect the size by @sylvestre in #6499
  • On Windows, check in binary mode by default and allow --binary / --text by @Pistonight in #6808
  • Return error when only --strict or --quiet is given by @howjmay in #6584

hostname

  • Use dns-lookup crate to get network address(es) of the host by @lcheylus in #6550

join

ls

ln

mkdir

mv

od

paste

printf

runcon

  • Adjust error message for runcon and stdbuf to pass tests/misc/invalid-opt.pl by @sylvestre in #6657
  • Improve help message for runcon by @cakebaker in #6680

sort

Read more

0.0.27

23 Jun 17:12
9b11753
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.27 Release:

We are excited to announce the release of Rust Coreutils 0.0.27! This version continues to improve the compatibility.

This update adds +8 GNU passing tests compared to version 0.0.26 and therefore reduces the failing tests by -8.

This release saw contributions from 21 developers, including 9 newcomers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

For more details and to download the latest release, visit our website at https://uutils.github.io.

What's Changed

GNU Test Suite Compatibility

Here’s how version 0.0.27 fares in comparison to the previous release:

Result 0.0.26 0.0.27 Change 0.0.26 to 0.0.27 % Total 0.0.26 % Total 0.0.27 % Change 0.0.26 to 0.0.27
Pass 447 455 +8 73.04% 74.35% +1.31%
Skip 44 44 0 7.19% 7.19% 0.00%
Fail 121 113 -8 19.77% 18.46% -1.31%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

cksum

cksum/hashsum

cp

df

env

  • adds --ignore-signal by @Walid-Kh in #6377

fmt

id

  • Handle repeated flags, recognize conflict between pretty-print and passwd file-entry by @BenWiederhake in #6288

kill

ls

  • fix quoting alignment, add tests for default quoting style in TTY and quoting alignment by @RenjiSann in #6402
  • Fix ls: panicking on dangling symlink with --color=auto -l by @AnirbanHalder654322 in #6346

od

pinky

seq

  • fix typo in benchmarking documentation file by @TO19 in #6454

shuf

sort

  • disable clippy::suspicious_open_options on OpenBSD by @lcheylus in #6292

tail

tr

  • calculate complement set early by @jalil-salame in #6340
  • Refuse to translate if set2 contains more than one unique characters and set1 contains a character class by @cvonelm in #6472
  • A [:lower:]/[:upper:] in set2 must be matched in set1 by @cvonelm in #6445
  • disallow classes besides [:upper:]/[:lower:] in set2 when translating by @cvonelm in #6424
  • Refuse to translate if set1 is longer than set2 and set2 ends in a character class by @cvonelm in #6470

uptime

utmpx

Misc

CI

Documentation

Testing

Dependencies

Read more

0.0.26

26 Apr 21:47
f95f363
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.26 Release:

We are happy to announce the release of Rust Coreutils 0.0.26! This version comes with several significant advancements, including the initial support for AIX, ensuring broader compatibility and reach. Despite the short period since our last release, we've managed to fix numerous compatibility issues, further aligning our tools with the latest GNU testsuite, now version 9.5.

This update adds +10 GNU passing tests compared to version 0.0.25.

New in this Release:

  • Beginning of the AIX Support
  • Updated GNU Reference: We've updated our testsuite to GNU Coreutils 9.5.
  • Improved Compatibility: Thanks to the community's efforts, we've addressed several compatibility issues, pushing our pass rate even higher.
  • Automated Builds: Binaries for the latest release are once again automatically generated.

This release saw contributions from 20 developers, including 12 newcomers.

We encourage you to support our project by sponsoring us on GitHub. Your sponsorship helps us maintain and enhance our infrastructure, such as GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

For more details and to download the latest release, visit our website at https://uutils.github.io.

GNU Test Suite Compatibility

Here’s how version 0.0.26 fares in comparison to the previous release:

Result 0.0.25 0.0.26 Change 0.0.25 to 0.0.26 % Total 0.0.25 % Total 0.0.26 % Change 0.0.25 to 0.0.26
Pass 437 447 +10 72.35% 73.04% +0.69%
Skip 50 44 -6 8.28% 7.19% -1.09%
Fail 117 121 +4 19.37% 19.77% +0.40%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

Full Changelog: 0.0.25...0.0.26

What's Changed

cksum

comm

cp

csplit

cut

date

dd

dirname

dircolors

du

  • Give -h output the same precision as GNU coreutils by @mvo5 in #6226

env

hashsum

head

  • Two new tests. Improves function coverage from 38 to 75 by @jadijadi in #6195

kill

ls

mktemp

more

mv

  • Fix bug on Redox OS introduced by xattr handling by @dahc in #6215

od

seq

  • Removed zero-padding of string when parsing with parse_exponent_no_decimal by @maxer137 in #6185
  • Add the unit test even if they are failing for now by @sylvestre in #6236

tail

  • Allow multiple usage of --pid to match upstream (regression of … by @sylvestre in #6147

tee

tr

uniq

wc

Misc

### Security

Documentation

CI

Read more

0.0.25

23 Mar 20:56
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.25 Release:

We're thrilled to announce version 0.0.25. We added +15 GNU passing tests since our last update!
More and more programs have a full compatibility with the GNU testsuite.
The current list is: base64, basename, cat, chgrp, chmod, chown, dirname, expand, fold, groups, join, ln, mktemp, nice, nl, nproc, paste, pathchk, printenv, realpath, shuf, sleep, split, sync, unexpand, uniq, wc and yes.

This release saw contributions from 31 developers, including 14 newcomers.

Some of this work has been supported by the Sovereign Tech Fund.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

Visit our website at https://uutils.github.io.

GNU test suite compatibility

Here's how version 0.0.25 compares to the previous release - running GNU/Coreutils 9.4:

Result 0.0.24 0.0.25 Change 0.0.24 to 0.0.25 % Total 0.0.24 % Total 0.0.25 % Change 0.0.24 to 0.0.25
Pass 422 437 +15 69.87% 72.35% +2.48%
Skip 50 50 0 8.28% 8.28% 0.00%
Fail 132 117 -15 21.85% 19.37% -2.48%
Error 0 0 0 0.00% 0.00% 0.00%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

base32/base64/basenc

basename

cat

chcon

chmod

  • Fix chmod -c --reference reporting when no change is made by @mtimaN in #6016
  • Fix handling of preserve root flag and error messages by @BenWiederhake in #6042

cksum

cp

csplit

cut

dd

df

  • switch from u64 to u128 to handle fs with large inodes nr by @cre4ture in #6071

du

echo

env

expand

factor

fmt

  • Make sure the goal is always positive when given a positive width by @sargas in #6094
  • fail if goal is bigger than default width by @cakebaker in #6096

hashsum

install

ln

ls

more

numfmt

od

  • disable failing test_od::test_f16() for android CI by @cre4ture in #5984
  • re-enable f16 test with newer AVD system image by @cre4ture in #6099

printf

pr

seq

shuf

sort

split

stat

Read more

0.0.24

25 Jan 22:49
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.24 Release:

We've got +29 more GNU tests passing than in our last release! We are getting closer to version 1.0: each test passed is a step forward in ensuring that our users have a reliable and robust set of utilities that align closely with GNU standards.

49 developers contributed to this release (28 new contributors started with this release).

A key highlight of this release is the expansion of support to new platforms and operating systems. Notably, the software has been ported to sparc64, OpenBSD, and Redox, broadening its usability across different system architectures and environments. This marks a significant step in making Rust Coreutils more versatile and accessible to a wider range of users and developers.

In addition to these expansions, the release has also focused on the integration of more fuzzing techniques, including differential fuzzing and OSS Fuzz integration.

We also contributed to the GNU implementation to improve their test coverage.

We would like to thank to the support the Sovereign Tech Fund for their support (more details later).

Visit our website at https://uutils.github.io.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU test suite compatibility

Here's how version 0.0.24 compares to the previous release - running GNU/Coreutils 9.4:

Result 0.0.23 0.0.24 Change 0.0.23 to 0.0.24 % Total 0.0.23 % Total 0.0.24 % Change
Pass 393 422 +29 65.07% 69.87% +4.80%
Skip 49 50 +1 8.11% 8.28% +0.17%
Fail 160 132 -28 26.49% 21.85% -4.64%
Error 2 0 -2 0.33% 0.00% -0.33%

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

cat

cksum

cp

dd

df

dircolors

du

echo

expand

expr

fmt

hashsum

head

hostname

  • tests/hostname: disable failing test_hostname::test_hostname_ip on OpenBSD by @lcheylus in #5639

install

join

ls

Read more

0.0.23

14 Nov 12:36
a3af223
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.23 Release:

We've got +10 more GNU tests passing than in our last release.

24 developers contributed to this release (9 new contributors started with this release).

Visit our website at https://uutils.github.io.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU test suite compatibility

Here's how version 0.0.23 compares to the previous release - running GNU/Coreutils 9.4:

result 0.0.22 0.0.23 Change 0.0.22 to 0.0.23 % Total 0.0.23 (Change)
pass 383 393 +10 65.07% (+1.66%)
skip 48 49 +1 8.11% (+0.17%)
fail 171 160 -11 26.49% (-1.82%)
error 2 2 0 0.33% (0.00%)

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

global

  • Implement SI prefixes R and Q by @zhitkoff in #5357
    This applies to the commands: dd, df, du, head, ls, od, shref, split, tail and truncate

cat

  • cat: use error code 62 for ELOOP on FreeBSD by @cakebaker in #5477
  • cat: return the same error message as GNU with loop symlink by @sylvestre in #5466

cp

dd

  • dd: Do not use the OS provided dd utility on FIFOs by @n1000 in #5453

df

du

expand

expr

join

  • join: remove a clippy::cognitive_complexity by moving some content in functions by @sylvestre in #5367

ls

mktemp

  • mktemp: add func to expose functionality (for use in nushell) by @tskinn in #5479

mv

pathchk

pr

printf

rm

runcon

split

test

  • test: use mtime for -ot and fix direction of comparison by @n1000 in #5441

### Other OS & arch changes

### CI

Documentation

Security

Various improvements

Dependencies

New Contributors

Read more

0.0.22

15 Oct 16:38
73b7c46
Compare
Choose a tag to compare

📦 Rust Coreutils 0.0.22 Release:

We've got +11 more GNU tests passing than in our last release.
This release also adds support for NetBSD and requires a minimum Rust version of 1.70. 🛠️
We are also collaborating more and more with the nushell team. Future versions of nushell will rely on the Rust Coreutils.
24 developers contributed to this release (11 new contributors started with this release).

Visit our website at https://uutils.github.io.

If you want to help us, please consider sponsoring on GitHub. This helps us use better tools like GitHub Actions. Sponsor us at https://github.com/sponsors/uutils.

GNU test suite compatibility

Here's how version 0.0.22 compares to the previous release - running GNU/Coreutils 9.4:

result 0.0.21 0.0.22 change
pass 372 383 +11
skip 49 48 -1
fail 181 171 -10
error 2 2 0

GNU testsuite evolution

For more details, visit https://github.com/uutils/coreutils-tracking/.

What's Changed

chown

  • chown: move uid & gid detections into their own functions by @sylvestre in #5359

cp

  • cp: Error out if cp only contains source by @dmatos2012 in #5253
  • cp: fix the result of inodes are not the same when preserve links is flagged by @tommady in #5064
  • cp: fix cp -dR --no-preserve=links d c should have different inodes by @tommady in #5320
  • cp: fail when trying to copy to read only file on mac by @PGIII in #5261
  • cp: show no "skipped" msg with -vi/-vin by @cakebaker in #5348

cut

dd

  • dd: fix GNU test 'dd/skip-seek-past-dev' by @bbara in #4527

df

  • df: Fix overflow error on WSL. Default to 0 when the values are non-sense. by @howard0su in #5381

echo

expr

fmt

head

  • head: remove a clippy::cognitive_complexity by moving some content in a function by @sylvestre in #5366
  • head: add some empty lines by @cakebaker in #5373

ls

mkdir

mv

nl

relpath

rm

seq

split

  • split: implement remaining -n variants and pass GNU tests/split/fail.sh by @zhitkoff in #5252
  • split: catch broken pipe error for round robin strategy by @granquet in #5338

touch

tr

wc

  • wc: add --count-mbs option by @mbuf in #5336

whoami

yes

Build system & CI

Documentation

Security

Read more

0.0.21

03 Sep 16:12
7c7a608
Compare
Choose a tag to compare

📦 Announcing Rust Coreutils version 0.0.21. This release showcases enhanced compatibility with the GNU test suite, particularly following our upgrade to GNU Coreutils 9.4. We've made technical improvements across various utilities, ensuring more robust and efficient operations. As always, we prioritize precision and performance in our updates. Dive into the detailed changelog for a comprehensive overview. 🛠️

We have a fancy new website powered by oranda! Check it out here: https://uutils.github.io.

Supporting our development is as easy as sponsoring us on GitHub! Your contributions can help us afford a more robust Continuous Integration process through GitHub Actions. To sponsor, please visit https://github.com/sponsors/uutils.

GNU test suite compatibility

The observed changes in the test results for the Rust Coreutils version 0.0.21 are attributed to our upgrade to use GNU Coreutils 9.4 as a reference for comparison. This newer version of GNU Coreutils introduced differences that are reflected in our test outcomes. Additionally, we've actively contributed to the GNU Coreutils by reorganizing tests into a more optimal structure, significantly enhancing the results of the GNU test coverage. More details can be found in our test coverage documentation.

Below is a summary of the progress. See https://github.com/uutils/coreutils-tracking/ for more details

result 0.0.20 0.0.21 change
pass 373 372 -1
skip 49 49 0
fail 178 181 +3
error 2 2 0
xpass 0 0 0

GNU testsuite evolution

What's Changed

cat

chown

cp

csplit

date

  • date: fix panic when input will cause overflow by @tommady in #5160

dd

  • parse_size,dd: turn instance fns to associated fns by @cakebaker in #5207

factor

fmt

  • fmt: fix panic on width argument by @bluelief in #5159
  • fmt: implement Default for FmtOptions by @cakebaker in #4747

hashsum

mktemp

mknod

mv

nl

rm

seq

sum

  • Use rotate_right rather than an explicit expansion in sum by @resistor in #5115

split

  • split: loop over chars and remove char_from_digit function by @shinhs0506 in #5153
  • split: better handle numeric and hex suffixes, short and long, with and without values by @zhitkoff in #5198

stat

stty

  • stty: Implement printing assignment of control chars by @dezgeg in #5060

test

touch

tsort

website & documentation

Build system & CI

Various improvements

Read more

0.0.20

14 Jul 16:35
8093d81
Compare
Choose a tag to compare

🎉 Get ready for the newest release of Rust Coreutils! Top highlights of this release are substantial improvements in GNU test suite compatibility and refined operations in multiple utilities including cksum, chmod, chroot, comm, cp, cut, among others.
Supporting our development is as easy as sponsoring us on GitHub! Your contributions can help us afford a more robust Continuous Integration process through GitHub Actions. To sponsor, please visit https://github.com/sponsors/uutils.

GNU test suite compatibility

Many utils have gotten minor changes to improve GNU compatibility. Below is a summary of the progress. See https://github.com/uutils/coreutils-tracking/ for more details

result 0.0.19 0.0.20 change
pass 365 373 +8
skip 49 49 0
fail 186 178 -8
error 2 2 0
xpass 0 0 0

GNU testsuite evolution

What's Changed

cp

date

dd

df

du

hashsum

  • hashsum: use file_stem() instead of file_name() by @indygreg in #5020

install

ls

mkdir

more

  • More implement arguments plain and from line by @Ideflop in #4950

mv

nl

numfmt

od

pr

seq

shred

split

stty

sync

tail

tsort

  • tsort: Switch to BTreeMap and BTreeSet by @cazou in #4931

touch

yes

Code quality

Documentation

CI

misc

Dependencies

Read more

0.0.19

04 Jun 16:21
abfceda
Compare
Choose a tag to compare

🎊 Delighted to unveil the fresh release of Rust coreutils! This iteration offers an array of enhancements and novel functionalities. Key updates include enhancements to the GNU test suite compatibility, and finessed operations in a variety of utilities such as cksum, chmod, chroot, comm, cp, cut, and a multitude of others.
We're making strides towards a production-ready toolset.

GNU test suite compatibility

Many utils have gotten minor changes to improve GNU compatibility. Below is a summary of the progress. See https://github.com/uutils/coreutils-tracking/ for more details

result 0.0.18 0.0.19 change
pass 340 365 +25
skip 50 49 -1
fail 210 186 -24
error 2 2 0

GNU testsuite evolution

Detailed changes

global

b2sum

basenc

chgrp

chown

cksum

cp

date

dd

dircolors

du

factor

fmt

hashsum

  • fix: Correctly detect format when using md5sum with check flag by @kamilogorek in #4645

head

  • head: use OsStringExt::from_vec instead of std::from_utf8_unchecked by @tertsdiepraam in #4923

ls

mkdir

mktemp

more

mv

nice

  • Avoid spurious failures in the presence of non-zero default nice by @sunfishcode in #4783

paste

  • paste: handle list ending with unescaped backslash by @cakebaker in #3661

pwd

  • pwd: Allow -P flag precedence over POSIXLY_CORRECT by @tracym in #4937

rm

shred

tail

  • tail/args: Fix parsing when -F is used together with --retry or --follow by @Joining7943 in #4734
  • 'tail': ...
Read more