Releases: uutils/coreutils
0.0.18
π 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
tois-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
- change permissions for files present even when there is a missing file by @dmatos2012 in #4359
- suppress verbose output when not verbose by @dmatos2012 in #4402
- allow verbose and quiet flags to be used more than once by @dmatos2012 in #4410
- Fix GNU test 'chmod/usage' by @bbara in #4442
chroot
comm
- Implement --total by @cakebaker in #4300
- Enable "no_arguments" & "one_argument" tests by @cakebaker in #4330
- Use delimiter on "total" line by @cakebaker in #4314
- Implement --zero-terminated by @cakebaker in #4449
- Allow multiple occurrence of --zero-terminated by @cakebaker in #4452
cp
- Modify archive flag to copy dir contents rather than dir by @dmatos2012 in #3954
- Use PathBuf instead of String for paths by @tmccombs in #4348
- Stop saying --sparse is not implemented for cp by @tmccombs in #4349
cut
date
- Show error when reading dirs for -f arg by @shanmukhateja in #4572
- Added default value for
date --i
. by @kidrigger in #4522 - fix: match date -I error messages with GNU date by @shanmukhateja in #4499
- Added tests for date ISO8601 formats. by @kidrigger in #4520
- Make sure 'invalid date' message also returns exit code 1 by @tertsdiepraam in #4526
- Fix invalid argument error for RFC 3339 by @shanmukhateja in #4535
- A better handler for
./coreutils date -f aze
by @AbhinavMir in #4482
dd
- Move dd_out() function up to module level by @jfinkels in #4428
- Allow skipping and seeking in FIFOs by @jfinkels in #4164
- Fix precision for display of total time spent by @jfinkels in #4498
- Fix unused imports on FreeBSD by @miles170 in #4512
- Open stdin from file descriptor when possible by @jfinkels in #4189
du
- threshold error message fix by @haciek in #4637
- Update the GNU error message to our for tests/du/threshold.sh by @sylvestre in #4656
- Run test_du_time with TZ=UTC. by @eggpi in #4446
- Fix unnecessary boolean operation by @papparapa in #4548
env
- start about text with uppercase char by @cakebaker in #4324
- docs: document env -f/--file in GNU extensions by @tertsdiepraam in #4331
expand
factor
- Remove
paste
dev dependency by @tertsdiepraam in #4631
hashsum
install
- Fix bad target directory permissions by @kylemanna in #4364
- Add missing directory chown by @kylemanna in #4365
ln
- Fix format of help text by @cakebaker in #4327
ls
- Cannot find function
expected_result
in this scope by @piotrkwiecinski in #4580 - Handling case sensitive ls output by @jparag in #4524
mktemp
mv
- Update of fs_extra - address the new warnings by @sylvestre in #4320
nice
- Support legacy argument syntax for nice by @eds-collabora in #4271
nproc
- Replace num_cpus crate with thread::available_parallelism by @souzaguilhermea in #4352
od
- Remove "width = width" from format strings by @cakebaker in #4263
- Fix some minor details suggested by clippy::pedantic by @cakebaker in #4492
ptx
- Fix warning from unnecessary_join lint by @cakebaker in #4313
pwd
- Small refactor of some match expressions by @tertsdiepraam in #4508
rm
shred
- Refactor to clean up code and reduce syscalls by @tertsdiepraam in #4493
- Enable
test_shred_force
on FreeBSD by @miles170 in #4523 - Fix
permissions_set_readonly_false
clippy error by @miles170 in #4488
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
- Get profile from the end of the path by @tertsdiepraam in #4638
stty
- Basic support for --file/-F by @VorpalBlade in #4401
tail
- Fix GNU test 'misc/tail' by @bbara in #4347
- Fix argument parsing of sleep interval by @Joining7943 in #4239
tests/tail
: Disabletest_follow_with_pid
on freebsd by @Joining7943 in #4307tail
: Cargo.toml: Remove unneeded features of uucore and the nix dependency by @Joining7943 in #4376
touch
- Add underscores to long number in test by @cakebaker in #4577
timeout
- Add a test to verify that it fails as expected by @sylvestre in #4419
- Fix subprocess is never terminated by @miles170 in #4315
tr
uname
- Use the same version of platform-info as arch by @sylvestre in #4290
uniq
- Remove suppression of use_self lint by @cakebaker in #4354
- Remove
strum
dependency by @tertsdiepraam in #4629
uptime
- correctly calculate boot-time by @zanbaldwin in #4440
utmpx
wc
- Implement --total by @cakebaker in #4695
uucore
- util: fix publish order of uucore_procs and uucore by @tertsdiepraam in #4287
uucore
: Fix #4298: Fails to build on s390x (and riscv64) by @Joining7943 in #4299- parser: fix index out of bounds error by @papparapa in #4484
- uucore: fix help section doesn't render 3+ level headers by @piotrkwiecinski in https://git...
0.0.17
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
andmv
can display a progress bar. This is an extension over GNU coreutils and inspired byadvcpmv
.- 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
- Bump MSRV to 1.60 by @tertsdiepraam in #3994
- Clap 4 by @tertsdiepraam in #3991
- Migrate from
winapi
towindows-sys
by @niyaznigmatullin in #4065 - Run the toybox testsuite by @sylvestre in #4222
- Use normal use declarations to import macros by @miles170 in #4151
- Add installation page to docs with package managers by @tertsdiepraam in #4048
- Test utilities
- Add
UChild
, an abstraction forstd::process::Child
by @Joining7943 in #4136 - Add possibility to set timeout for UCommand and UChild. Add
rstest
with timeout macro to dev dependencies by @Joining7943 in #4231 - Put
#[track_caller]
on assertion functions in test utils by @tertsdiepraam in #4252
- Add
uucore
chown
- Fails when
XXXX.
orXXXX:
is provided (when XXXX is numeric value) by @sylvestre in #4081
cp
- Move
copy_directory()
to its own module by @jfinkels in #3901 - Correctly copy ancestor dirs in
--parents
mode by @jfinkels in #4071 cp -i --update source existing
should not do anything and exit 0 by @sylvestre in #4078- Implement
--copy-contents
option for fifos by @jfinkels in #3978 - Remove interactive mode message on 'no' by @sssemil in #4069
- Use sparse copy on
--sparse=always
by @jfinkels in #4030 - Add progress bar by @tertsdiepraam in #3903 and improved by @djedi23 in #4179 and @ctsk in #4221
- Restrict copy through dangling symlink with
-f
by @jfinkels in #4074 - Force copying file to itself with
--backup
by @jfinkels in #3966 - Make
--preserve
use the defaults when empty by @sssemil in #4123 - Fix
cp --force --backup f f
fails on macOS by @miles170 in #4166 - Preserve hard links when target already exists by @jfinkels in #4208
- Fix
--verbose --parents
output for both files and directories by @jfinkels in #4184 - Force link between two files that exist by @jfinkels in #4213
- Remove empty line from version output by @cakebaker in #4283
- Require preserve only certain attributes by @sssemil in #4099
- Restrict permissions when copying FIFO by @jfinkels in #4211
csplit
- Rename var to simplify format strings by @cakebaker in #4266
cut
date
- Catch panic from invalid format string by @jaggededgedjustice in #4240
dd
- Allow B as a suffix for count, seek, and skip by @jfinkels in #4137
- Create Dest enum and simpler Output struct by @jfinkels in #4134
- Don't allocate buffer if count=0 by @jfinkels in #4130
- Correctly set file size when conv=sparse by @jfinkels in #4191
- Fix rendering of SI and IEC byte counts by @jfinkels in #3653
- Fix progress line if 1 byte written by @jfinkels in #4194
env
- Reraise signal from child process by @tertsdiepraam in #4011
expr
factor
- Trim the input to fix some busybox results by @sylvestre in #4215
hashsum
- Warn on file not found rather than fail by @dmatos2012 in #4064
- Enable testing
--no-names
by @tertsdiepraam and @huijeong-kim in #4088
install
ls
- Show more info in long format on Windows by @tertsdiepraam in #4014
- Use
libc::{major, minor}
to calculate device number by @SteveLauC in #4120
mktemp
- Allow default missing value by @dmatos2012 in #4091
mv
mv -i --update source existing
should not do anything and exit 0 by @sylvestre in #4078- Add progress bar by @ctsk in #4220
numfmt
- Handle negative zero values by @cakebaker in #4076
- Allow hyphen values for
--field
option by @cakebaker in #4090 - Round values if precision is 0 by @cakebaker in #4089
- Allow
-
in field list by @cakebaker in #4094 - Allow
- Add test for
--field -
(all fields) by @cakebaker in #4093
pr
- Simplify format strings by @cakebaker in #4264
- Add missing
\
before line breaks by @cakebaker in #4273
printenv
- Weird env variable names should trigger an error. by @sylvestre in #4113
pwd
- Support the env variable
POSIXLY_CORRECT
by @sylvestre in #4085
rm
seq
- Simplify format strings by @cakebaker in #4264
sleep
sort
- Allow a sort mode to appear multiple times by @tertsdiepraam in #4132
split
- Implement round-robin arg to
--number
by @jfinkels in #3281 - Match GNU semantics for missing EOF by @andrewbaptist in #4009
- Fix "backticks are unbalanced" warnings by @cakebaker in #4181
stat
- Show more info in long format on Windows by @tertsdiepraam in #4014
- Refactor by @tertsdiepraam in #4150
sum
- Fix output of about string by @cakebaker in #4274
- Fix output when using BSD sum algo (-r) by @cakebaker in #4278
tail
- Refactor handling of warnings and early exits by @Joining7943 in #4135
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:...
0.0.16
Highlights
- The minimum supported Rust version is now 1.59.
- Many utils now return exit code
1
on usage errors instead of2
to match GNU. tail
has had another significant refactor with slight improvements.chroot
returns better exit codes and supports commands with flags.cp
supports the-H
flag and handles more cases correctly.test
supports-N
,-ef
,-nt
&-ot
and supports 128 bit integers.dd
's argument parsing has been overhauled and is more compatible with GNU.- There have been refactors, fixes and performance improvements in many utils, see below for details.
GNU test suite compatibility
Many utils have seen 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.15 | 0.0.16 | change |
---|---|---|---|
pass | 293 | 322 | +29 |
skip | 73 | 49 | -24 |
fail | 222 | 217 | -5 |
error | 5 | 5 | 0 |
Changes
The PR's listed below are a selection of all the contributions in this release.
General
- Change remaining usage codes of
2
to1
for GNU compat by @tertsdiepraam in #3922 - Create new adaptive svg logo by @tertsdiepraam in #3892
cat
- Remove deprecated
unix_socket
dependency by @niyaznigmatullin in #3854
chcon
- Fix GNU
tests/misc/chcon-fail.sh
test by @niyaznigmatullin in #3857
chroot
- Improve support of
--skip-chdir
by @sylvestre in #4004 - Set exit codes to
125
,126
or127
for errors fromchroot
itself by @tertsdiepraam in #3908 - Set trailing var arg by @tertsdiepraam in #3907
- Various improvements to chroot by @sylvestre in #3960
cp
- Fix
cp-i
GNU test by @niyaznigmatullin in #3949 - Add
-H
option by @niyaznigmatullin in #3971 - Assume
--reflink=always
on no value by @sssemil in #3992 - Correct error message on copying dir to itself by @jfinkels in #3981
- Allow removing symbolic link loop destination by @jfinkels in #3972
- Preserve permissions when copying directory and don't terminate early on inaccessible file by @jfinkels in #3973
dd
- Handle stdout redirected to seekable file by @jfinkels in #3880
- Parse operands manually via positional args by @tertsdiepraam in #3938
df
factor
- Enable
union
feature forsmallvec
by @niyaznigmatullin in #3928
ls
- Exit code 2 when
IOError
happened for argument by @niyaznigmatullin in #3921 - Add support for
+FORMAT
in timestyle by @dmatos2012 in #3988 - Align
--ignore
behavior with that of GNU ls by @ackerleytng in #3803
mktemp
- Respect
TMPDIR
environment variable by @jfinkels in #3552 - Match GNU error message on too many args by @jfinkels in #3951
- Add message for directory not found by @jfinkels in #3940
pr
- Migrate from
chrono
totime
by @niyaznigmatullin in #3918 - Use clap to handle help & version by @cakebaker in #3904
rm
- Added write-protected check for files by @stefins in #3853
- Added descend messages for interactive mode Fixes #3817 by @palaster in #3931
split
- Add support for starting suffix numbers by @andrewbaptist in #3976
sync
- Various compatibility improvement by @sylvestre in #4003
tail
- Fix stdin redirect (#3842) by @jhscheer in #3845
- Fix tail panicking when seeking backwards by @kilpkonn in #3873
- Refactor tail by @Joining7943 in #3905
- Fix random errors for piped input on macos by @Joining7943 in #3953
test
- Add a bunch of operations by @sylvestre in #4002
New Contributors
@sssemil (#3852), @kilpkonn (#3873), @stefins (#3853), @snapdgn (#3923), @sashashura (#3980), @dmatos2012 (#3988)
Full Changelog: 0.0.15...0.0.16
0.0.15
Highlights
stty
is now partially implemented (#3672). We now finally have implementations for all the coreutils!tail
now implements--follow
and has seen many more improvements thanks to the giant refactor by @jhscheer.wc
andsum
have gotten performance improvements by @resistor.- There have been refactors, fixes and performance improvements in many utils.
GNU test suite compatibility
Many utils have seen minor changes to improve GNU compatibility. This marks the first release where we pass more tests than we fail. See https://github.com/uutils/coreutils-tracking/ for more details
result | 0.0.14 | 0.0.15 | change |
---|---|---|---|
pass | 242 | 293 | +51 |
skip | 73 | 73 | 0 |
fail | 270 | 222 | -48 |
error | 8 | 5 | -3 |
Changes
The PR's listed below are a selection of all the contributions in this release.
basename
- Simple format arguments by @niyaznigmatullin in #3736
basenc
- Fix error code on wrong usage by @niyaznigmatullin in #3743
comm
- Use
NUL
if delimiter is empty by @cakebaker in #3701
cp
- Correctly copy attributes of a dangling symbolic link by @jfinkels in #3692
- Implement
--sparse
flag by @pimzero in #3766 - Make
--b=simple
protective of source by @philgebhardt in #3647 - Truncate destination when
--reflink
is set by @pimzero in #3759 - Fix
test_copy_through_dangling_symlink_no_dereference_permissions
by @niyaznigmatullin in #3789
cut
dd
- Error message of invalid args is matched with GNU by @Fuchczyk in #3831
- Fix output issues by @patricksjackson in #3610
- Only print concise byte counts if count is sufficiently large by @jfinkels in #3617
- Reuse buffer for the most common cases by @patricksjackson in #3600
- Fix broken pipe in
test_bytes_oseek_bytes_trunc_oflag
by @niyaznigmatullin in #3797
df
- Better error message when executed in a chroot without
/proc
by @lendandgit in #3602 - Fix output if input path is device name by @cakebaker in #3682
- Fix rounding behavior in humanreadable mode by @cakebaker in #3554
- Read block size from env vars by @cakebaker in #3504
- Show "total" label in correct column by @jfinkels in #3579
- Trim size header in tests by @cakebaker in #3582
- Implement the
--sync
flag for df by @anastygnome in #3592
dircolors
- Add support for stdin by @jhscheer in #3591
- Escape
'
and:
by @cakebaker in #3639 - Implement
--print-ls-colors
by @cakebaker in #3566 - Make
-b
&-c
args overridable by @cakebaker in #3569 - Update error message by @cakebaker in #3596
dirname
- Add missing
"\n\"
to usage message by @cakebaker in #3570
du
- Remove unnecessary spaces from help by @cakebaker in #3622
- Add
parse_glob
module and updatedu
to useparse_glob
by @ackerleytng in #3754
expand
- Add support for
--tabs
shortcuts by @cakebaker in #3612 - Allow multiple
tabs
args by @cakebaker in #3585 - Show error if
--tabs
arg has invalid chars by @cakebaker in #3583 - Allow specifier only with last value by @cakebaker in #3595
- Handle too large tab size by @cakebaker in #3594
- Remove empty line from error message by @cakebaker in #3577
- Simplify signature of
expand_shortcuts()
by @cakebaker in #3644
hashsum
- Isolate non-"GNU Coreutils" options by @str4d in #3593
- Fix the
-c
usage by @sylvestre in #3816
install
- Verbose messages shows ginstall as command by @sylvestre in #3651
- Fix install
-C
test by @niyaznigmatullin in #3663 - Make
install -V
show the filename by @ElijahSink in #3657
ln
- Improve error messages compatibility by @niyaznigmatullin in #3730
- Implement
-L
-P
to make tests/ln/hard-to-sym.sh work by @sylvestre in #3563 - Symlink --force, src and dst are same file by @niyaznigmatullin in #3724
ls
, dir
& vdir
- Add already listed message by @niyaznigmatullin in #3707
- Fix double quoting when color is enabled by @tertsdiepraam in #3590
- Implement
--zero
by @pimzero in #3746 - Remove trailing space when using the comma format (
-m
) by @anastygnome in #3615 - Silently ignore
-T
option by @Stonks3141 in #3718 - Forbid octal numbers for width parameter by @Ganneff in #3613
mktemp
- Change directory permission after creation by @353fc443 in #3471
- Combine
--tmpdir
and subdirectory info by @jfinkels in #3568 - Error on empty
--suffix
in some situations by @jfinkels in #3599 - Exit with status
1
on usage errors by @jfinkels in #3578 - Include suffix in error message by @jfinkels in #3551
- Only replace last contiguous block of Xs by @jfinkels in #3586
- Respect
POSIXLY_CORRECT
env var when parsing args by @weijunji in #3604 - Simplify file path parameter logic by @jfinkels in #3573
mv
- Fix error when moving directory to itself by @Fuchczyk in #3809
numfmt
- Implement
--format
by @cakebaker in #3751 - Implement
--to-unit
&--from-unit
by @cakebaker in #3705 - Preserve trailing zeros by @cakebaker in #3764
- Don't round floats if
--from
isnone
by @cakebaker in #3742 - Reject suffix if unit is
none
by @cakebaker in #3716 - Remove duplicate default hints from help by @cakebaker in #3696
- Show
invalid suffix
error fori
suffix by @cakebaker in #3732 - Show error if
--padding
is zero by @cakebaker in #3686 - Show error if
i
suffix is missing by @cakebaker in #3713
paste
- Implement
-z
flag by @cakebaker in #3659
readlink
- Improve GNU compatibility by @niyaznigmatullin in #3826
- Symlink loop handling by @niyaznigmatullin in #3717
realpath
- Relative options by @niyaznigmatullin in #3710
- Improve symlink handling by @niyaznigmatullin in #3703
- Add
--no-symlinks
alias by @cakebaker in #3681
rm
- Fix help text mistakenly being used as the long option by @tertsdiepraam in #3670
shuf
- Add missing spaces to about text by @cakebaker in #3677
- Improve performance by @Garfield96 in #3642
sort
- Wait when SIGINT was raised for the program to finish properly by @niyaznigmatullin in #3801
sum
split
- Don't overwrite files by @andrewbaptist in #3719
- Set names for arg values by @cakebaker in #3541
- Don't skip chucking when the chunk size is a divisor of the buffer size by @resistor in #3800
stty
- Initial implementation by @tertsdiepraam in https:/...
0.0.14
Highlights
- Minimum supported Rust version is now 1.56 and we use the 2021 edition.
- Android support has been fixed and is now checked in the CI thanks to @jtracey.
df
has seen major improvements due to incredible work by @cakebaker.- Path completions on modern shells (like
zsh
andfish
) now work properly. - The
dir
andvdir
utilities where added as aliases forls
andls -l
, respectively. - Many utils have seen minor changes to improve GNU compatibility. See https://github.com/uutils/coreutils-tracking/ for more details
Changes
The PR's listed below change the user-facing behaviour of the utils. It is a selection of all the contributions in this release.
General
- MSRV 1.56 by @tertsdiepraam in #3350
- Rust Edition 2021 by @tertsdiepraam in #3368
- Fix Android support by @jtracey in #3396
- docs: Show supported platforms for each util by @tertsdiepraam in #3374, #3385
- docs: Don't download the tldr archive automatically by @tertsdiepraam in #3415
- docs: Require a feature to build by @tertsdiepraam in #3444
- Clap value hints by @tertsdiepraam in #3524
chown
cp
- Do not dereference symlink even when dangling - fix issue #3364 by @anastygnome in #3459
date
- Set names for arg values by @cakebaker in #3545
df
- Show error if same type is included & excluded by @cakebaker in #3369
- Show error when file argument does not exist by @jfinkels in #3376
- Fix too low values in
I*
columns by @cakebaker in #3365 - Fix calculation of
IUse%
by @cakebaker in #3387 - Fix incorrect whitespace between columns by @cakebaker in #3386
-h -H
shouldn't cause an error #3366 by @gmnsii in #3414- Fix broken "test_df_output_overridden" test by @cakebaker in #3428
- Fix
File
column width for unicode filenames by @cakebaker in #3429 - Show error if all types are excluded by @cakebaker in #3418
- Respect
-t
arg when specific file is provided by @cakebaker in #3408 - Allow sizes with a suffix for
--block-size
by @cakebaker in #3441 - Show "block-size argument too large" error by @cakebaker in #3458
- Fix
Size
column header by @cakebaker in #3456 - Set min width of
Used
column to 5 by @cakebaker in #3480 - Set names for arg values & add missing space by @cakebaker in #3490
- Fix
Size
header for multiples of 1000 & 1024 by @cakebaker in #3499 - Use blocksize of 512 if
POSIXLY_CORRECT
is set by @cakebaker in #3482 - Show error if provided block size is zero by @cakebaker in #3514
- Test default blocksize in POSIX mode by @cakebaker in #3522
- Round up values if block size is specified by @cakebaker in #3526
- Fix incorrect rounding of size header by @cakebaker in #3530
du
- Return non zero error code when dealing with permissions errors by @sylvestre in #3382
- Add support for
--exclude
and--exclude-from
by @sylvestre in #3381
env
hashsum
install
- Support of
-d dir/.
to match GNU's by @sylvestre in #3353 - When install
--strip-program=foor
fails, remove the target file by @sylvestre in #3419 - Verbose - list all created directories by @sylvestre in #3420
kill
- Accept process group with negative id by @tertsdiepraam in #3501
ls
, dir
& vdir
- Implement
--group-directories-first
by @thomasqueirozb in #3550 - Add
dir
andvdir
utils by @gmnsii in #3405
mkdir
- Fix a clippy warning on clippy::ptr-arg by @sylvestre in #3393
- Fixed not respecting set umask by @pyoky in #3150
mktemp
- Respect path given in template argument by @jfinkels in #3465
- Error on path separator in template prefix by @jfinkels in #3512
- Fix error msg when suffix has path sep. by @jfinkels in #3543
- Correct error message on absolute path by @jfinkels in #3521
mv
- Add OverwriteMode match in specific case by @sudosmile in #3383
- Move the tests in a separate function by @sylvestre in #3390
- Trigger an error when doing
mv dir1 dir2 dir2
by @sylvestre in #3392 - Allow a single source with
--target-directory
by @ilkecan in #3529
printf
ptx
- Implement
breakfile
option by @mike-kfed in #3455
rm
- Rename
none
by--interactive=never
to fix ../gnu/tests/rm/i-never.sh by @sylvestre in #3356
seq
stat
- Add support to read a filename redirected to stdin by @crazystylus in #3280
- Improve handling of stdin/fifo (fix #3485) by @jhscheer in #3498
tty
- Should not return 2 when
--help
is used by @sylvestre in #3367
uname
- Hide processor and hwplatform options by @LevitatingBusinessMan in #3537
uniq
- Fix almost all GNU tests by @tertsdiepraam in #3417
New Contributors
@pothos (#3361), @marv (#3384), @sudosmile (#3383), @pyoky (#3150), @gmnsii (#3405), @rtzoeller (#3443), @anastygnome (#3459), @naveensrinivasan (#3453), @ilkecan (#3529)
Full Changelog: 0.0.13...0.0.14
0.0.13
This is a big release with 276 new PR's merged!
The highlights of this release are:
- Mininum supported Rust version is now 1.54.
- Many improvements and fixes in many utils. In particular,
cp
,dd
,df
,split
andtr
have gotten very large improvements and are much more compatible with GNU. - Online user documentation featuring installation instructions, descriptions, flags, options and examples.
- We now use
clap
3, which gives the--help
output a new look and enables abbreviations of long arguments. For example:
ls --color # already worked pre 0.0.13
ls --col # any unambiguous shorthand now also works
Changes
The PR's listed below change the user-facing behaviour of the utils. It is just a small selection of all the contributions in this release.
General
- Clap 3 by @tertsdiepraam in #2863
- Infer unambiguous long arguments in clap by @tertsdiepraam in #2936
- User documentation by @tertsdiepraam in #2897, #3152, #3134
- Include license text in all published crates by @davide125 in #3131
uucore
- Allow backup suffix with hyphen value by @tertsdiepraam in #2997
- Error on negative interval in
parse_time::from_str()
by @jfinkels in #3292 - No uppercase suffixes in
parse_time
by @jfinkels in #3315 - Don't panic when canonicalizing a nonexistent path by @water-ghosts in #3103
- Fix
parse_size
to use u64 rather than usize for better 32-bit support by @omertuc in #3084
cp
- Override args instead of having them conflict by @tertsdiepraam in #2998
- Avoid following a destination symlink with
-P
by @refi64 in #3101 - Create backup before hardlink by @water-ghosts in #3033
- Fail when copying a directory to a file by @water-ghosts in #3044
- Only allow directory for
-t
by @shoriminimoe in #3027 - Support copying FIFOs with
-r
by @water-ghosts in #3032 - Don't panic when calling
cp -a
with a nonexistent file by @water-ghosts in #2960 - Avoid infinite recursion when source and destinations are same while using
cp -R
by @Narasimha1997 in #3018
dd
- block/unblock on ebcdic/ascii conversions by @jfinkels in #2909
- Correct behavior when status=noxfer by @jfinkels in #2915
- Support
seek=N
when destination is stdout by @jfinkels in #2911 - Add support for 'b' and 'x' multipliers in numeric arguments by @jfinkels in #3028
- Allow multiple instances of arguments by @iovanom in #3021
- Correct order and phrasing of truncated record by @jfinkels in #3154
- Correctly account for partial record written by @jfinkels in #3129
- Create ConversionMode to simplify conversion, blocking, and unblocking by @jfinkels in #3293
- Don't error when outfile is /dev/null by @jfinkels in #3148
- Implement iseek + oseek flags by @chordtoll in #3256
- Make
status=progress
rewrite once/sec by @ndd7xv in #3078 - Pad partial record with spaces in some cases by @jfinkels in #3156
- Remove spurious zero multiplier warning by @jfinkels in #3128
- Show warning if skipping past end of input by @jfinkels in #3066
- Show warning when using 0x size multiplier by @jfinkels in #3085
- Truncate to specified seek length by @jfinkels in #3076
df
- Adds support for mount path prefix matching and input path by @crazystylus in #3161
--output w/o "="
doesn't expect further args by @cakebaker in #3327- Add support for
--total
option by @jfinkels in #3197 - Always produce the same order in output table by @jfinkels in #3126
- Always round up usage percentage (#3208) by @cakebaker in #3230
- Correctly scale bytes by block size by @jfinkels in #3182
- Fix block size header for multiples of 1024 by @jfinkels in #3191
- Fix calculation of
Use%
column by @cakebaker in #3309 - Fix calculation of Use% in "total" row by @cakebaker in #3347
- Fix panic when using
-x
argument (#3257) by @cakebaker in #3258 - Implement the
--output
command-line argument by @jfinkels in #3176, #3322, #3323 - Implement the File column by @jfinkels in #3294
- Omit reserved filesystem blocks in "Available" by @cakebaker in #3270
- Remove unused "--direct" option by @cakebaker in #3263
- Some option changes by @xxyzz in #3127
echo
hashsum
- Added b2sum and b3sum utilities by @palaster in #3164
- Add BLAKE3 to Hashing Algorithms by @DestroyerXyz in #3108
head
- Add
---presume-input-pipe
parameter by @DevSabb in #3345 - Don't add trailing newline to end of file that didn't originally have one by @jfinkels in #2957
install
join
- Print unsorted line in error message by @cohosh in #2899
- Fix default check order behaviour by @cohosh in #2908
- Add support for
-t '\0'
by @jtracey in #2881 - "Support" field numbers larger than
usize::MAX
by @jtracey in #2882 - Add support for non-unicode field separators by @jtracey in #2902
- Improve performance by @jtracey in #3092
ln
- Make the tests/ln/hard-backup.sh test work by @sylvestre in #3340
- Pass tests/ln/backup-1.sh & improvement in the error messages by @sylvestre in #3346
ls
- Add new optional arguments to
--classify
flag by @abhishekc-sharma in #3041 - Add proper quotes on symlink with
--quoting-style=shell-escape
by @sylvestre in #3317 - Fix display of bad file descriptor errors by @kimono-koans in #2875
- Fix display of inodes and add allocation size feature by @kimono-koans in #3052
- When
-aA
are provided, the order matters by @sylvestre in #3285
mkdir
- Add support of
mkdir -p foo/.
by @sylvestre in #3311 - Recursive reporting of created directories in verbose mode by @353fc443 in #3217
nproc
- Add the full support of
OMP_THREAD_LIMIT
by @sylvestre in #3286 - Improve the GNU compat by @sylvestre in #3248
- Make tests/misc/nproc-override.sh pass by implementing
OMP_NUM_THREADS=X,Y,Z
by @sylvestre in #3296
paste
pinky
pr
- Move from getopts to clap and fix heuristic for
-n
by @tertsdiepraam in #3185
printf
- Update
%g
formatting to match GNU by @water-ghosts in #3087 - Fix printf sci notation round up by @nickd0 in #3116
- Support leading zeroes with
%0n
formatting by @water-ghosts in #3070 - Use clap default help and version by @ndd7xv in #3067
realpath
seq
- Add
-f FORMAT
option by @jfinkels in https://github.com/uuti...
0.0.12
Due to problems with stdbuf
, the previous release (0.0.9) required a patch to work and no binary artifacts were generated. This release fixes that issue.
Changes
These are selected user-facing changes since 0.0.8.
- The minimum supported Rust version is now 1.54.
- The version numbers of the utils, the
coreutils
binary,uucore
anduucore_procs
are now synced. Hence the jump from 0.0.9 to 0.012. - All utils now use
UResult
due to incredible work by @jfinkels, who contributed over 50 PRs for this to happen, with additional contributions by @thomasqueirozb, @Smicry and @E3uka. This change is mostly invisible to users, but does lead to more consistent error messages now and in the future.
cp
- Fix pre-write permission change by @kimono-koans in #2769
- Handle edge cases when dest is a symlink by @miDeb in #2610
env
- Don't panic when name is empty by @thomasqueirozb in #2731
join
ls
- Add possible value for
--color=
by @equal-l2 in #2738 - Reduce binary size by removing regex crate by @kimono-koans in #2781
- Fix newline when only dirs in base directory by @kimono-koans in #2853
- Fix padding for dangling links in non-Long formats by @kimono-koans in #2856
- Fix device display by @kimono-koans in #2855
more
mv
- Fix bug: Should be able to stat files, but not able to mv if source and target are the same by @kimono-koans in #2763
numfmt
rm
- Allow
-r
flag to be specified multiple times by @kevinburke in #2732 - Silently accepts ---presume-input-tty by @hbina in #2532
seq
- Use
BigDecimal
to represent floats by @jfinkels in #2698 - Correct fixed-width spacing for inf sequences by @jfinkels in #2740
split
- Add
--verbose
option by @jfinkels in #2872 - Correct filename creation algorithm by @jfinkels in #2859
tail
- Improve error handling when file not found by @jfinkels in #2886
- Implement
-<number>
flag by @Smicry in #2747
New Contributors
- @kevinburke made their first contribution in #2732
- @palfrey made their first contribution in #2734
- @ybc37 made their first contribution in #2766
- @E3uka made their first contribution in #2771
- @refi64 made their first contribution in #2778
- @sbentmar made their first contribution in #2841
- @moko256 made their first contribution in #2858
Full Changelog: 0.0.8...0.0.12
0.0.9
0.0.8
improve the publish script
0.0.7
fix the base32 dep