Skip to content

Releases: uutils/coreutils

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

0.0.18

02 Apr 19:43
Compare
Choose a tag to compare

🎉 We're excited to announce the new release of Rust coreutils! This release brings several improvements and new features, including updates to the GNU test suite compatibility, and refinements in various utilities such as cksum, chmod, chroot, comm, cp, cut, and many more.

General changes

  • GNU/coreutils: update reference to 9.2 by @cakebaker in #4601
  • MSRV 1.64 & Workspace inheritance for dependencies by @tertsdiepraam in #4344
  • Fuzzing deployed for some programs and functions
  • For most of the programs, the help and description are using dedicated markdown files.
  • Adjust -i behavior for ln, cp & mv by @sylvestre in #4630
  • Refactor signal handling in yes, tee, and timeout by @anastygnome in #4588
  • Migrate from atty to is-terminal by @souzaguilhermea in #4382

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
The numbers changes in every category because of the GNU/Coreutils upgraded to 9.2

result 0.0.17 0.0.18 change
pass 338 340 +2
skip 48 50 +2
fail 204 210 +6
error 3 2 +-1

Detailed changes

cksum 

chmod

chroot

comm

cp

cut

date

dd

du

env

expand

factor

hashsum

install

ln

ls

mktemp

mv

nice

nproc

od

ptx

pwd

rm

shred

sleep

  • Fix parsing of multiple inputs panics on overflow, some whitespace issues ... by @Joining7943 in #4439
  • Replace uucore::parse_time::from_str with fundu by @Joining7943 in #4448

stdbuf

stty

tail

touch

timeout

tr

uname

uniq

uptime

utmpx

  • arch/os-independent timeval handling by @bbara in #4405

wc

uucore

Read more

0.0.17

21 Jan 11:41
7e12700
Compare
Choose a tag to compare

Highlights

  • The minimum supported Rust version is now 1.60.
  • Clap has been updated to version 4, bringing some changes in the formatting of help strings.
  • cp has been gotten many small improvements that improve compatibility.
  • dd has been simplified and has better compatibility.
  • env now reraises signals from the child process.
  • ls -l now shows more information on Windows.
  • uname is now available for all supported platforms, instead of Unix-like platforms only.
  • cp and mv can display a progress bar. This is an extension over GNU coreutils and inspired by advcpmv.
  • There have been refactors, fixes and performance improvements in many utils, see below for details.

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.16 0.0.17 change
pass 322 338 +16
skip 49 48 -1
fail 217 204 -13
error 5 3 -2

Changes

The PR's listed below are a selection of all the contributions in this release.

General

chown

  • Fails when XXXX. or XXXX: is provided (when XXXX is numeric value) by @sylvestre in #4081

cp

csplit

cut

date

dd

env

expr

  • Multiple fixes and tests added by @rivy in #4248

factor

hashsum

install

  • No longer fails when target directory does not exist by @bruecke in #3950

ls

mktemp

mv

numfmt

pr

printenv

pwd

rm

seq

sleep

  • Fix argument parsing and errors by @rivy in #4268

sort

split

stat

sum

tail

touch

uname

  • build: uname is WinOS-compatible; move to 'Tier1' feature by @rivy in #4245
  • change/uname ~ update and revise by @rivy in #4279

New Contributors

@huijeong-kim (https:...

Read more