uutils/coreutils
Cross-platform Rust rewrite of the GNU coreutils
๐ฆ **Rust Coreutils 0.9.0 Release:**
- ---
๐งช GNU Test Suite Compatibility:
- | Result | 0.8.0 | 0.9.0 | Change 0.8.0 to 0.9.0 | % Total 0.8.0 | % Total 0.9.0 | % Change 0.8.0 to 0.9.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 630 | 625 | -5 | 94.74% | 90.58% | -4.16% |
- | Skip | 14 | 8 | -6 | 2.11% | 1.16% | -0.95% |
- | Fail | 21 | 56 | +35 | 3.16% | 8.12% | +4.96% |
- | Error | 0 | 1 | +1 | 0% | 0.14% | +0.14% |
- | Total | 665 | 690 | +25 (new tests) | | | |
- ---
- + 2 more
๐ฆ Highlights:
- Security Hardening (Zellic audit)
- A third-party security audit by [Zellic](https://github.com/Zellic/publications/blob/master/uutils%20coreutils%20-%20Zellic%20Audit%20Report.pdf) reviewed the codebase; the findings - widely reported as [44 CVEs](https://www.reddit.com/r/rust/comments/1st3tl0/44cves_found_in_rust_coreutils_audit/) (see also the [Ubuntu update](https://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773) and the corrode write-up [*Bugs Rust won't catch*](https://corrode.dev/blog/bugs-rust-wont-catch/)) - were concentrated in TOCTOU races and filesystem edge cases that Rust's type system does not prevent
- It's worth noting that many of these CVEs are not memory-safety issues but differences in behavior from GNU coreutils that the audit identified; aligning our semantics with GNU resolves them
- This release closes many of them: a new TOCTOU-resistant `uucore::safe_copy` module; TOCTOU fixes in `cp`, `mv`, and `chmod` recursive traversal; `rm` dot/dotdot path-parsing protection; `nohup.out` now created with mode `0600`; and `chroot` now resolves all ids before chrooting
- Reducing `unsafe` & migrating to `rustix`
- A sustained, project-wide push to shrink the `unsafe` surface: dozens of `unsafe` removals across utilities, tests, fuzz targets and `uucore` (`get_groups`, `make_fifo`, `build.rs`, and more)
- Migration from `nix`/`libc` to `rustix` across `id`, `tr`, `timeout`, `sort`, `wc`, `tail`, `cp`, `who`, `factor`, and core process/IO paths
- Performance
- + 17 more
๐ฆ Call to Action:
- Try it in your browser - [Online Playground](https://uutils.github.io/playground/) powered by WebAssembly
- Help us translate - Contribute to [Rust Coreutils on Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
๐ฆ cat
- cat: avoid unnecessary allocation by @oech3 in https://github.com/uutils/coreutils/pull/11675
- cat: do not splice() on FUSE by @oech3 in https://github.com/uutils/coreutils/pull/11723
- cat: replace copy_exact() with write_all by @oech3 in https://github.com/uutils/coreutils/pull/11800
- cat: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11884
- cat: call pipe() once with multiple input by @oech3 in https://github.com/uutils/coreutils/pull/11699
- cat: avoid unnecessary alloc on Linux by @oech3 in https://github.com/uutils/coreutils/pull/11906
- cat: remove unsafe from test code by @oech3 in https://github.com/uutils/coreutils/pull/12027
- cat: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/12178
- + 3 more
๐ฆ chroot
- chroot: start removing unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12053
๐ฆ cksum
- cksum: fix parsing error with tagged cheksum files by @frenchua in https://github.com/uutils/coreutils/pull/11704
- cksum: get rid of `print!` and `println!` to avoid panicking on write errors by @RenjiSann in https://github.com/uutils/coreutils/pull/12099
- cksum: Fix --check filename escaping for 9.11 by @RenjiSann in https://github.com/uutils/coreutils/pull/12156
- cksum: Introduce HashLength newtype to avoid byte/bit misuse by @RenjiSann in https://github.com/uutils/coreutils/pull/12235
๐ฆ coreutils
- coreutils: --help args is same with --help by @oech3 in https://github.com/uutils/coreutils/pull/11367
- coreutils: fix panic on linux < 6.4 when /proc is not mounted by @oech3 in https://github.com/uutils/coreutils/pull/12104
๐ฆ cp
- cp: improve throughput with pipe input (Linux only) by @oech3 in https://github.com/uutils/coreutils/pull/11798
- cp: fix fail-perm GNU test adaptation by @karanabe in https://github.com/uutils/coreutils/pull/12119
- chore(cp): : move raw libc calls to rustix by @Alonely0 in https://github.com/uutils/coreutils/pull/12112
๐ฆ date
- date: replace regex with hand-written format spec parser by @sylvestre in https://github.com/uutils/coreutils/pull/11758
- date: use cfg unix by @oech3 in https://github.com/uutils/coreutils/pull/11952
- date: width prefix in %N format specifier is ignored ( %3N, %6N always output full 9 nanosecond digits) #12001 by @Devel08 in https://github.com/uutils/coreutils/pull/12010
- date: fix build for cygwin by @oech3 in https://github.com/uutils/coreutils/pull/12309
- date: re-zone trailing TZ abbreviation input to local timezone by @0xSoftBoi in https://github.com/uutils/coreutils/pull/12327
๐ฆ dd
- dd: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11885
- dd: exit when bs/ibs/obs/cbs isn't positive by @iburaky2 in https://github.com/uutils/coreutils/pull/11630
- dd: support wasm32-wasip1 by @pocopepe in https://github.com/uutils/coreutils/pull/12258
- dd: fix OOM panic with skip=1 by @oech3 in https://github.com/uutils/coreutils/pull/12399
๐ฆ df
- df: get rid of unnecessary clone calls by @fogti in https://github.com/uutils/coreutils/pull/12073
๐ฆ dirname
- dirname: get rid of needless `Cow` by @ChrisDenton in https://github.com/uutils/coreutils/pull/11960
๐ฆ du
- du: fix error from `needless_borrow` lint on FreeBSD by @cakebaker in https://github.com/uutils/coreutils/pull/11791
- du: remove unnecessary implementation of `code()` by @cakebaker in https://github.com/uutils/coreutils/pull/11803
- du: make du -a -s error by @oech3 in https://github.com/uutils/coreutils/pull/11917
- du: Allow command-line argument that appears more than once by @ajanicij in https://github.com/uutils/coreutils/pull/11897
- refactor(du): simplify error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/11957
- du: propagate errors from --exclude-from instead of panicking by @rossilor95 in https://github.com/uutils/coreutils/pull/11996
- du: honor LC_NUMERIC for decimal separator by @eyupcanakman in https://github.com/uutils/coreutils/pull/12357
๐ฆ echo
- echo: add benchmark by @oech3 in https://github.com/uutils/coreutils/pull/12091
๐ฆ env
- tests(env): increase signal delivery delay to fix flaky macOS CI by @sylvestre in https://github.com/uutils/coreutils/pull/11829
๐ฆ expr
- expr: avoid panic on regex retry-limit by @eyupcanakman in https://github.com/uutils/coreutils/pull/11833
๐ฆ factor
- factor: emit GNU 9.11 'is not a valid positive integer' for stdin input by @sylvestre in https://github.com/uutils/coreutils/pull/12137
- factor: remove unsafe str::from_utf8_unchecked by @oech3 in https://github.com/uutils/coreutils/pull/12142
๐ฆ fmt
- fmt: remove unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/11810
๐ฆ head
- head: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11883
- refactor(head): rename read functions to print for clarity by @xtqqczze in https://github.com/uutils/coreutils/pull/11988
- head: remove print(ln) macros by @oech3 in https://github.com/uutils/coreutils/pull/11974
- head: catch I/O error with -c 1 by @oech3 in https://github.com/uutils/coreutils/pull/12030
- head: strip os error suffix from stdout write error message by @sylvestre in https://github.com/uutils/coreutils/pull/12121
- head: fix -c0 and -n0 on directories to match GNU behavior by @sylvestre in https://github.com/uutils/coreutils/pull/12217
- head/tail: use OPTION rather than FLAG by @fnadeau in https://github.com/uutils/coreutils/pull/12301
๐ฆ id
- fix(id): refine feature checks for SELinux and SMACK support by @xtqqczze in https://github.com/uutils/coreutils/pull/12047
- id: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12164
๐ฆ install
- fix(install): follow symlink components in destination path with -D by @abendrothj in https://github.com/uutils/coreutils/pull/11505
- install: update comments and tests after symlink follow behavior change by @Ecordonnier in https://github.com/uutils/coreutils/pull/12475
๐ฆ join
- join: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11901
- join: use `show_error` instead of `eprintln` by @cakebaker in https://github.com/uutils/coreutils/pull/11932
๐ฆ ln
- ln: Improve to LnError and make public fns for nushell by @dmatos2012 in https://github.com/uutils/coreutils/pull/12009
- ln: add WASI support via symlink_path by @DePasqualeOrg in https://github.com/uutils/coreutils/pull/11713
๐ฆ logname
- fix(logname): return error exit code when there is an error by @rodrigost23 in https://github.com/uutils/coreutils/pull/9313
๐ฆ ls
- ls: drop #[allow(clippy::needless_bool)] by @oech3 in https://github.com/uutils/coreutils/pull/11739
- ls: fix link-count column inflating per ACL file by @sylvestre in https://github.com/uutils/coreutils/pull/11781
- refactor `uu_ls` so that crate users can call the `ls` without having to print everything to stdout by @fdncred in https://github.com/uutils/coreutils/pull/9851
- ls: restore WASI ".." metadata fallback in collect_directory_entries by @sylvestre in https://github.com/uutils/coreutils/pull/11930
- ls: use cfg unix by @oech3 in https://github.com/uutils/coreutils/pull/11953
- ls: fix comparisons in version sorting and recursive mode by @Alonely0 in https://github.com/uutils/coreutils/pull/12108
- ls: hide `paths` argument by @cakebaker in https://github.com/uutils/coreutils/pull/12113
- fix(ls): respect sorting when grouping directories; disambiguate size sorting properly by @Alonely0 in https://github.com/uutils/coreutils/pull/12109
- + 4 more
๐ฆ md5sum
- md5sum: remove some `stderr_is("")` in the tests by @cakebaker in https://github.com/uutils/coreutils/pull/12168
๐ฆ mkdir
- mkdir: acl and permission inheritance with -p by @j5awry in https://github.com/uutils/coreutils/pull/11931
- mkdir: simplify umask shaping and add regression tests by @sylvestre in https://github.com/uutils/coreutils/pull/12467
๐ฆ mknod
- mknod: avoid 2>/dev/full SIGABRT by @oech3 in https://github.com/uutils/coreutils/pull/12059
๐ฆ mktemp
- mktemp: build for wasip1 by @oech3 in https://github.com/uutils/coreutils/pull/12319
- mktemp: fix hidden file creation with dot prefix by @gabrielhnf in https://github.com/uutils/coreutils/pull/12311
- mktemp: ensure that "-q XX" shows error msg by @cakebaker in https://github.com/uutils/coreutils/pull/12492
๐ฆ more
- refactor(more): avoid Box<dyn Write> by @xtqqczze in https://github.com/uutils/coreutils/pull/12090
- more: replace InputType enum with Input struct; cache file_size by @aaron-ang in https://github.com/uutils/coreutils/pull/12225
- more: gate tty-only writes; extract clear_line/highlight_text by @aaron-ang in https://github.com/uutils/coreutils/pull/12224
- more: replace nix::unistd with std::fs by @xtqqczze in https://github.com/uutils/coreutils/pull/12268
๐ฆ mv
- mv: preserve ownership (uid/gid) on cross-device moves by @sylvestre in https://github.com/uutils/coreutils/pull/11706
- mv: merge two "unix" blocks by @cakebaker in https://github.com/uutils/coreutils/pull/11820
- mv: dedup libc by @oech3 in https://github.com/uutils/coreutils/pull/12242
๐ฆ nl
- nl: continue if a file can't be opened by @cakebaker in https://github.com/uutils/coreutils/pull/11983
๐ฆ nohup
- nohup: simplify cfg & use compile_error! by @oech3 in https://github.com/uutils/coreutils/pull/11912
- nohup: reduce unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12111
- nohup: remove unsafe stub by @oech3 in https://github.com/uutils/coreutils/pull/12125
- nohup: refactor `find_stdout` by @cakebaker in https://github.com/uutils/coreutils/pull/12146
๐ฆ nproc
- nproc: Reject quota with some schedulers by @oech3 in https://github.com/uutils/coreutils/pull/11173
๐ฆ numfmt
- numfmt: apply prefix after scaling for --to-unit by @BipulLamsal in https://github.com/uutils/coreutils/pull/11684
- numfmt: fix zero-padding placement for negative numbers by @Sim-hu in https://github.com/uutils/coreutils/pull/11694
- numfmt:fix issue #11653 & correct test cases by @THEMIScale in https://github.com/uutils/coreutils/pull/11695
- fix(numfmt):fix precision loss for large numbers in #11654 by @THEMIScale in https://github.com/uutils/coreutils/pull/11716
- numfmt: precision is ignored #11667 by @Devel08 in https://github.com/uutils/coreutils/pull/11683
- numfmt: fix --to=auto to return with exitcode=1 by @BipulLamsal in https://github.com/uutils/coreutils/pull/11701
- numfmt: honor LC_NUMERIC for decimal separator by @pocopepe in https://github.com/uutils/coreutils/pull/11941
- numfmt: fix #11935 --invalid=warn/ignore/fail ignores mode when rejecting scientific notation by @Devel08 in https://github.com/uutils/coreutils/pull/11945
- + 4 more
๐ฆ od
- od: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11900
- od: hex byte offset case fix by @max-amb in https://github.com/uutils/coreutils/pull/12175
- od: remove unsafe, GNU stdin compat on wasi by @oech3 in https://github.com/uutils/coreutils/pull/12205
- od: generalize RawReader by @oech3 in https://github.com/uutils/coreutils/pull/12220
๐ฆ paste
- paste: remove unsafe from test code by @oech3 in https://github.com/uutils/coreutils/pull/12028
๐ฆ pathchk
- pathchk: fix name by @oech3 in https://github.com/uutils/coreutils/pull/11689
๐ฆ pinky
- refactor(pinky): improve output handling by @xtqqczze in https://github.com/uutils/coreutils/pull/12002
๐ฆ pr
- pr: exit with code 1 if --column argument is zero by @Devel08 in https://github.com/uutils/coreutils/pull/11750
๐ฆ realpath
- realpath: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11895
๐ฆ rm
- rm: fix inaccessible GNU test adaptation by @karanabe in https://github.com/uutils/coreutils/pull/12127
๐ฆ rmdir
- rmdir: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11896
๐ฆ shred
- shred: fix --remove=unlink with relative paths by @gabrielhnf in https://github.com/uutils/coreutils/pull/12516
๐ฆ sort
- fix(sort): always install SIGINT handler to ensure temp dir cleanup by @mattsu2020 in https://github.com/uutils/coreutils/pull/11889
- fix(sort): explicitly clean up temp directory in TmpDirWrapper::Drop by @mattsu2020 in https://github.com/uutils/coreutils/pull/11888
- Add sort_bench_merge benchmark for sort -m (merge) performance by @nonontb in https://github.com/uutils/coreutils/pull/12022
- sort: Fix inconsistent sort orderg under i18n-collator with equal sorting keys. by @ksgk1 in https://github.com/uutils/coreutils/pull/12013
- sort: add benchmark for locale UTF-8 sorting by @sylvestre in https://github.com/uutils/coreutils/pull/12185
- sort: replace nix feature resource with rustix by @xtqqczze in https://github.com/uutils/coreutils/pull/12275
- sort: remove nix from dep by @oech3 in https://github.com/uutils/coreutils/pull/12378
- fix(sort): reject leading '+' in numeric (-n) sort by @leno23 in https://github.com/uutils/coreutils/pull/12350
- + 1 more
๐ฆ split
- split: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11891
๐ฆ stat
- stat: warn once when QUOTING_STYLE env has an unknown value by @sylvestre in https://github.com/uutils/coreutils/pull/12136
- stat: fix %N quoting of filenames containing control characters by @fullwoodenshovel in https://github.com/uutils/coreutils/pull/12330
๐ฆ stdbuf
- stdbuf: support cross-platform building by @YumeYuka in https://github.com/uutils/coreutils/pull/11609
- stdbuf: build on Windows (depending on cygwin dll) by @oech3 in https://github.com/uutils/coreutils/pull/12329
๐ฆ stty
- stty: add two missing baud rates by @cakebaker in https://github.com/uutils/coreutils/pull/11865
- stty: add support for tabs/-tabs combination settings by @sylvestre in https://github.com/uutils/coreutils/pull/11735
๐ฆ sum
- feat(sum): use larger buffer in bsd_sum and sysv_sum by @xtqqczze in https://github.com/uutils/coreutils/pull/12391
๐ฆ sync
- refactor(sync): DRY do_sync_with function by @hlsxx in https://github.com/uutils/coreutils/pull/12033
- refactor(sync): remove unnecessary files move by @hlsxx in https://github.com/uutils/coreutils/pull/12485
๐ฆ tail
- tail: replace unsafe libc::kill by rustix by @mattsu2020 in https://github.com/uutils/coreutils/pull/11725
- tail: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11890
- tail: fix panic on write error in bounded_tail by @rossilor95 in https://github.com/uutils/coreutils/pull/11886
- tail: improve throughput for -c +0 by splice() by @oech3 in https://github.com/uutils/coreutils/pull/11962
- tail: remove ?Sized by @oech3 in https://github.com/uutils/coreutils/pull/12014
- test(tail): fix flaky test_follow_name_multiple on macOS by @naoNao89 in https://github.com/uutils/coreutils/pull/9636
- tail: improve throughput for -c N file by @oech3 in https://github.com/uutils/coreutils/pull/11979
- tail: reuse existing pipe when stdout is already a pipe by @dragutreis in https://github.com/uutils/coreutils/pull/12463
๐ฆ tee
- tee: fix input with sleep by @oech3 in https://github.com/uutils/coreutils/pull/11686
- tee: add short-read regression test by @kevinburke in https://github.com/uutils/coreutils/pull/11784
- tee: remove unused returned usize by @oech3 in https://github.com/uutils/coreutils/pull/11830
- tee: avoid 2 Err(e) at match by @oech3 in https://github.com/uutils/coreutils/pull/11878
- tee: drop cfg for unsupported target by @oech3 in https://github.com/uutils/coreutils/pull/11875
- tee: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11876
- tee: move fn copy to MultiWriter & simplify by @oech3 in https://github.com/uutils/coreutils/pull/11899
- tee: remove duplicated flush() by @oech3 in https://github.com/uutils/coreutils/pull/11909
- + 14 more
๐ฆ timeout
- timeout: replace nix with rustix by @gabrielhnf in https://github.com/uutils/coreutils/pull/12440
๐ฆ touch
- touch: add regression test for pre-epoch date on 32-bit by @sylvestre in https://github.com/uutils/coreutils/pull/11817
๐ฆ tr
- tr: fix complemented class truncation ordering by @can1357 in https://github.com/uutils/coreutils/pull/11406
- tr: drop '[:...:]' wrapper from invalid character class error by @sylvestre in https://github.com/uutils/coreutils/pull/12122
- tr: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12266
๐ฆ tty
- tty: Build for Windows by @oech3 in https://github.com/uutils/coreutils/pull/12077
- tty: Build tty.wasm by @oech3 in https://github.com/uutils/coreutils/pull/12079
- tty: support printing msys2 tty path by @ChrisDenton in https://github.com/uutils/coreutils/pull/12083
๐ฆ unexpand
- unexpand: remove Box dyn - perf +7.5% by @oech3 in https://github.com/uutils/coreutils/pull/11806
- unexpand: rename `uflag` to `utf8` by @cakebaker in https://github.com/uutils/coreutils/pull/11826
๐ฆ uniq
- uniq: remove a collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11894
๐ฆ uptime
- clippy(uptime): fix some lints on windows by @xtqqczze in https://github.com/uutils/coreutils/pull/11726
๐ฆ wc
- wc: replace unsafe sysconf by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11707
- wc: introduce IS_POSIXLY_CORRECT static by @xtqqczze in https://github.com/uutils/coreutils/pull/11853
- wc: avoid pipe() if input is pipe by @oech3 in https://github.com/uutils/coreutils/pull/11636
- wc: Fix fallback when pipe() or splice() failed by @oech3 in https://github.com/uutils/coreutils/pull/11990
- wc: remove else by @oech3 in https://github.com/uutils/coreutils/pull/12165
- wc: reduce some nest by @oech3 in https://github.com/uutils/coreutils/pull/12382
- wc: remove splice_exact by @oech3 in https://github.com/uutils/coreutils/pull/12316
- wc: reduce lines of code by @oech3 in https://github.com/uutils/coreutils/pull/12420
- + 1 more
๐ฆ who
- Fixed panic in who > /dev/full by @AntoxaBarin in https://github.com/uutils/coreutils/pull/11767
- who: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12074
๐ฆ yes
- yes: simplify logic for buffer creation by @oech3 in https://github.com/uutils/coreutils/pull/11727
- yes: replace match by ok_or_else by @oech3 in https://github.com/uutils/coreutils/pull/11740
- yes: use tee syscall as fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11458
- yes: avoid kernel side length validation by @oech3 in https://github.com/uutils/coreutils/pull/12115
- yes: remove cfg & move ownership of buffer to fn exec by @oech3 in https://github.com/uutils/coreutils/pull/12095
- yes: move import to the other imports by @cakebaker in https://github.com/uutils/coreutils/pull/12153
- yes: remove unnecessary cfg by @oech3 in https://github.com/uutils/coreutils/pull/12159
- yes: fix wrong assumption for stdout by @oech3 in https://github.com/uutils/coreutils/pull/12249
- + 5 more
๐ฆ uucore
- fix(uucore): fix build failure by @xtqqczze in https://github.com/uutils/coreutils/pull/11729
- uucore: simplify splice() by @oech3 in https://github.com/uutils/coreutils/pull/11745
- uucore: replace nix of buf_copy by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11765
- uucore: replace nix of FS related parts by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11771
- uucore: enable `process` feature of `rustix` by @cakebaker in https://github.com/uutils/coreutils/pull/11792
- fix(uucore): use is_dir() instead of exists() for locale path resolution by @mattsu2020 in https://github.com/uutils/coreutils/pull/11851
- cp, uucore: remove unused returned u64 by @oech3 in https://github.com/uutils/coreutils/pull/11837
- uucore: remove returned and unused usize by @oech3 in https://github.com/uutils/coreutils/pull/11920
- + 34 more
๐ Security
- deps: bump rand to 0.10.1 to fix RUSTSEC-2026-0097 by @sylvestre in https://github.com/uutils/coreutils/pull/11756
- tail: fix TOCTOU race in follow retry logic by @sylvestre in https://github.com/uutils/coreutils/pull/11711
- rm: fix path parsing for dot/dotdot protection by @naoNao89 in https://github.com/uutils/coreutils/pull/11005
- uucore: add safe_copy module with TOCTOU-resistant copy primitives by @sylvestre in https://github.com/uutils/coreutils/pull/12130
- uucore/safe_copy: use rustix Mode flags to avoid mode_t width mismatch by @sylvestre in https://github.com/uutils/coreutils/pull/12140
- chmod: fix TOCTOU race in recursive traversal by @mattsu2020 in https://github.com/uutils/coreutils/pull/11918
- cp: address the remaining toctou issues by @sylvestre in https://github.com/uutils/coreutils/pull/12135
- mv: fix the remaining TOCTOU by @sylvestre in https://github.com/uutils/coreutils/pull/12170
- + 2 more
๐ฆ Code Quality & Cleanup
- Deduplicate block size logic by @sylvestre in https://github.com/uutils/coreutils/pull/11678
- tests: tail: skip test_follow_name_multiple on macOS by @sylvestre in https://github.com/uutils/coreutils/pull/11709
- Add 'tests/tail/tail-n0f' to ignore list by @sylvestre in https://github.com/uutils/coreutils/pull/11710
- forbid scientific notation in numfmt #11655 by @Devel08 in https://github.com/uutils/coreutils/pull/11721
- deny.toml: add `redox_syscall` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/11749
- fuzz: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11764
- fuzz: bump `rand` to `0.10.1` by @cakebaker in https://github.com/uutils/coreutils/pull/11313
- remove seekable from local cspell conf and use it by @oech3 in https://github.com/uutils/coreutils/pull/11773
- + 51 more
๐ฆ CI & Build
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/uutils/coreutils/pull/11685
- Publish a comment in case of significant size change by @sylvestre in https://github.com/uutils/coreutils/pull/11757
- GnuTests: mask an equivalent df test by @oech3 in https://github.com/uutils/coreutils/pull/11766
- CI/GnuComment: enhance PR commenting logic to update existing comments by @xtqqczze in https://github.com/uutils/coreutils/pull/11763
- CI/GnuComment: add safeguards by @xtqqczze in https://github.com/uutils/coreutils/pull/11793
- fix: replace apt with apt-get in scripts by @xtqqczze in https://github.com/uutils/coreutils/pull/11808
- ci: group openbsd log sections for easier failure triage by @sylvestre in https://github.com/uutils/coreutils/pull/11819
- gitignore: remove .vscode directory from ignored files by @xtqqczze in https://github.com/uutils/coreutils/pull/11839
- + 16 more
๐ Documentation
- 0.8.0 release notes by @sylvestre in https://github.com/uutils/coreutils/pull/11691
- wc drop outdated info from BENCHMARKING.md by @oech3 in https://github.com/uutils/coreutils/pull/11720
- docs: remove hashsum from compiles_table.csv by @venoosoo in https://github.com/uutils/coreutils/pull/11732
- yes: add BENCHMARKING.md by @oech3 in https://github.com/uutils/coreutils/pull/12097
- README.md: update compatibility by @oech3 in https://github.com/uutils/coreutils/pull/12302
- docs: remove authors field from book.toml by @xtqqczze in https://github.com/uutils/coreutils/pull/11849
- uucore::pipes::splice_exact: improve document by @oech3 in https://github.com/uutils/coreutils/pull/12414
- docs: update clippy section in DEVELOPMENT.md by @xtqqczze in https://github.com/uutils/coreutils/pull/12369
- + 3 more
๐ฆ Platform Support
- fix: sort and remove duplicates from feat_wasm feature by @xtqqczze in https://github.com/uutils/coreutils/pull/11737
- tests: add WASI integration test support via wasmtime by @DePasqualeOrg in https://github.com/uutils/coreutils/pull/11717
- cat, windows.rs: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/12093
- fix: unused import on redox by @xtqqczze in https://github.com/uutils/coreutils/pull/12332
๐ฆ Dependency Updates
- chore(deps): update rust crate zip to v8.5.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11696
- chore(deps): update rust crate selinux to v0.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11702
- chore(deps): update rust crate ctor to 0.9.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11733
- chore(deps): update actions/github-script action to v9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11741
- chore(deps): update rust crates by @xtqqczze in https://github.com/uutils/coreutils/pull/11730
- chore(deps): update rust crate clap_complete to v4.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11753
- chore(deps): update vampire/setup-wsl action to v6.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11754
- deps: unpin selinux rust crate by @xtqqczze in https://github.com/uutils/coreutils/pull/11759
- + 49 more
๐ฆ Version Management
- prepare release 0.9.0 by @sylvestre in https://github.com/uutils/coreutils/pull/12494
โจ New Contributors
- @pre-commit-ci[bot] made their first contribution in https://github.com/uutils/coreutils/pull/11685
- @BipulLamsal made their first contribution in https://github.com/uutils/coreutils/pull/11684
- @Sim-hu made their first contribution in https://github.com/uutils/coreutils/pull/11694
- @THEMIScale made their first contribution in https://github.com/uutils/coreutils/pull/11695
- @Devel08 made their first contribution in https://github.com/uutils/coreutils/pull/11721
- @DePasqualeOrg made their first contribution in https://github.com/uutils/coreutils/pull/11717
- @AntoxaBarin made their first contribution in https://github.com/uutils/coreutils/pull/11767
- @fdncred made their first contribution in https://github.com/uutils/coreutils/pull/9851
- + 23 more
๐ฆ **Rust Coreutils 0.8.0 Release:**
- ---
๐งช GNU Test Suite Compatibility:
- | Result | 0.7.0 | 0.8.0 | Change 0.7.0 to 0.8.0 | % Total 0.7.0 | % Total 0.8.0 | % Change 0.7.0 to 0.8.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 629 | 630 | +1 | 94.59% | 94.74% | +0.15% |
- | Skip | 13 | 14 | +1 | 1.95% | 2.11% | +0.16% |
- | Fail | 23 | 21 | -2 | 3.46% | 3.16% | -0.30% |
- | Error | 0 | 0 | 0 | 0% | 0% | 0% |
- | Total | 665 | 665 | 0 | | | |
- ---
- + 2 more
๐ฆ Highlights:
- GNU Compatibility & Upstream Collaboration
- 630 passing GNU tests, with 2 fewer failures than 0.7.0
- Continued contributing tests and bug reports upstream to GNU coreutils, strengthening both projects
- Our compatibility work regularly uncovers edge cases in GNU itself, leading to fixes on both sides
- `nix` โ `rustix` Migration
- Replaced `nix` crate with `rustix` across cat, df, wc, tty, tsort, tail, touch, date, mkdir, and uucore
- Reduced range of unsafe code in hostname, logname, who, and nice
- `uucore`: uses `rustix` for `splice()`, restricted to Linux
- + 33 more
๐ฆ Call to Action:
- Try it in your browser โ [Online Playground](https://uutils.github.io/playground/) powered by WebAssembly
- Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
๐ฆ cat
- cat: Drop a clone() and use clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11298
- cat: replace nix with rustix by @oech3 in https://github.com/uutils/coreutils/pull/11567
- cat: avoid pipe() if stdout is pipe, extend pipe by @oech3 in https://github.com/uutils/coreutils/pull/11551
- cat: add bench for large size for splice by @oech3 in https://github.com/uutils/coreutils/pull/11587
- cat: add WASI stub for is_unsafe_overwrite and add to feat_wasm by @sylvestre in https://github.com/uutils/coreutils/pull/11573
- cat: fallback with pipe() failure by @oech3 in https://github.com/uutils/coreutils/pull/11635
- cat: don't lock stdout before splice() by @oech3 in https://github.com/uutils/coreutils/pull/11643
- cat: simplify splice & fix comment by @oech3 in https://github.com/uutils/coreutils/pull/11627
- + 2 more
๐ฆ chown
- chown(ref): parse_uid flattened syntax by @hlsxx in https://github.com/uutils/coreutils/pull/11351
- chown: warn when '.' is used as owner:group separator by @eyupcanakman in https://github.com/uutils/coreutils/pull/11438
๐ฆ cksum
- cksum family: #[allow(clippy::unwrap_used)] by @oech3 in https://github.com/uutils/coreutils/pull/11307
- cksum: add length support for shake128 and shake256 validation by @AldanTanneo in https://github.com/uutils/coreutils/pull/11320
- cksum: Bring back blake3 algorithm by @RenjiSann in https://github.com/uutils/coreutils/pull/11316
- cksum: rework blake length validation, add tests by @RenjiSann in https://github.com/uutils/coreutils/pull/11437
- cksum: Match GNU behavior for digest length errors in --check mode by @RenjiSann in https://github.com/uutils/coreutils/pull/11499
- *sum: protect names against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11375
๐ฆ coreutils
- coreutils: --help >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/11444
- coreutils: --list arg and no args should fail by @oech3 in https://github.com/uutils/coreutils/pull/11385
- coreutils: Protect against env -a for security by @oech3 in https://github.com/uutils/coreutils/pull/10773
- coreutils: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/11484
- yes, coreutils: backport(enable) 2 GnuTests by @oech3 in https://github.com/uutils/coreutils/pull/11480
๐ฆ cp
- clippy(cp): fix collapsible_if lint by @mattsu2020 in https://github.com/uutils/coreutils/pull/11288
- fix(cp): always create dest dirs with owner write bit before fixing permissions by @baa-ableton in https://github.com/uutils/coreutils/pull/11318
- wasm: add support for cp & mv by @sylvestre in https://github.com/uutils/coreutils/pull/11572
๐ฆ cut
- cut: Drop a clone() and use clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11310
- cut: improve some error messages by @cakebaker in https://github.com/uutils/coreutils/pull/11338
- cut: reject literal '' delimiter special-casing by @can1357 in https://github.com/uutils/coreutils/pull/11399
- cut: honor only-delimited in newline-delimiter mode by @can1357 in https://github.com/uutils/coreutils/pull/11394
- cut: use `?` instead of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/11461
๐ฆ date
- date: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11646
- date: fix "unused variable" warning by @cakebaker in https://github.com/uutils/coreutils/pull/11637
- date: fix date +%9223372036854775807c panic by @mattsu2020 in https://github.com/uutils/coreutils/pull/11046
- date: fix %#P case-swap on lowercase am/pm by @vishakha1411 in https://github.com/uutils/coreutils/pull/11671
- date: honor narrow width on wide default strftime fields by @vishakha1411 in https://github.com/uutils/coreutils/pull/11670
- date: apply locale-aware localization before GNU modifier processing by @sylvestre in https://github.com/uutils/coreutils/pull/11661
- date: add ignored tests for GNU compatibility gaps found by fuzz_date by @sylvestre in https://github.com/uutils/coreutils/pull/11665
๐ฆ dd
- dd: fix ISO-8859-1 case conversion for conv=lcase/ucase by @sylvestre in https://github.com/uutils/coreutils/pull/10830
- dd: catch OOM by @oech3 in https://github.com/uutils/coreutils/pull/11562
- dd: avoid 0-filling buf at read_and_discard by @oech3 in https://github.com/uutils/coreutils/pull/11583
- dd: do not show zero multiplier warning when zero is the multiplicand by @iburaky2 in https://github.com/uutils/coreutils/pull/11673
๐ฆ df
- df: replace unsafe libc sync with nix crate by @mattsu2020 in https://github.com/uutils/coreutils/pull/11279
- df: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11576
๐ฆ env
- env: fix --version and protect against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11370
- env: Disallow __ALL__ in --{ignore,default,block}-signal by @aweinstock314 in https://github.com/uutils/coreutils/pull/11218
๐ฆ expand
- clippy(expand): fix collapsible_if lint by @xtqqczze in https://github.com/uutils/coreutils/pull/11286
๐ฆ expr
- expr: fix eager evaluation of parenthesized dead branches by @can1357 in https://github.com/uutils/coreutils/pull/11395
๐ฆ factor
- factor: fix crash on malformed input by @Alonely0 in https://github.com/uutils/coreutils/pull/11190
- factor: deduplicate code, refactor & optimize parsing by @Alonely0 in https://github.com/uutils/coreutils/pull/11292
๐ฆ head
- head: reset stale partial line state on reused buffers by @can1357 in https://github.com/uutils/coreutils/pull/11407
- head: fix error message when input is a directory by @aguimaraes in https://github.com/uutils/coreutils/pull/11541
- head: split head.rs by @oech3 in https://github.com/uutils/coreutils/pull/11679
- feat_wasm: add head to the WASM-compatible utilities by @sylvestre in https://github.com/uutils/coreutils/pull/11570
๐ฆ install
- install: refactor conditional expression by @xtqqczze in https://github.com/uutils/coreutils/pull/11280
- install: rename `unprivileged` property by @cakebaker in https://github.com/uutils/coreutils/pull/11283
- clippy(install): fix collapsible_if lint by @xtqqczze in https://github.com/uutils/coreutils/pull/11285
- install: improve help texts by @cakebaker in https://github.com/uutils/coreutils/pull/11290
๐ฆ ln
- ln: Avoid dereferencing target if --no-dereference is passed by @aweinstock314 in https://github.com/uutils/coreutils/pull/11253
- ln: Restore backup to destination if linking fails by @aweinstock314 in https://github.com/uutils/coreutils/pull/11355
- ln: simplify the code by @sylvestre in https://github.com/uutils/coreutils/pull/11390
๐ฆ ls
- ls: replace recursion with depth-first search by @Alonely0 in https://github.com/uutils/coreutils/pull/11386
- ls: remove many unnecessary allocations by @Alonely0 in https://github.com/uutils/coreutils/pull/11447
- chore(ls): refactor codebase into new files by @Alonely0 in https://github.com/uutils/coreutils/pull/11429
- ls: add header to new files by @cakebaker in https://github.com/uutils/coreutils/pull/11442
- ls: Fix error message for ls file/missing-file by @oech3 in https://github.com/uutils/coreutils/pull/11333
- ls: fall back to "." metadata for ".." on WASI by @sylvestre in https://github.com/uutils/coreutils/pull/11633
- ls,dir,vdir: protect names against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11371
- simplify the ls code by @sylvestre in https://github.com/uutils/coreutils/pull/11391
๐ฆ mkdir
- mkdir: replace libc and unsafe by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11647
๐ฆ nice
- nice: Remove unsafe and reduce bin size by @oech3 in https://github.com/uutils/coreutils/pull/11489
๐ฆ numfmt
- numfmt: protect name from argv[0], perf +3% by @oech3 in https://github.com/uutils/coreutils/pull/11379
- numfmt: move duplicate code to function by @cakebaker in https://github.com/uutils/coreutils/pull/11381
- numfmt: implement the last changes by @sylvestre in https://github.com/uutils/coreutils/pull/11411
- numfmt: preserve fractional digits when --from-unit is used without suffix by @Eshwar1440 in https://github.com/uutils/coreutils/pull/11674
- numfmt: add failing test cases by @sylvestre in https://github.com/uutils/coreutils/pull/11668
- numfmt & others: Dedup some code by @sylvestre in https://github.com/uutils/coreutils/pull/11645
๐ฆ od
- od: default `-t f` to double precision by @can1357 in https://github.com/uutils/coreutils/pull/11396
๐ฆ pr
- pr: don't convert to String when storing lines to print by @venoosoo in https://github.com/uutils/coreutils/pull/11327
๐ฆ sort
- sort: fix infinite loop on --files0-from read error by @vitkyrka in https://github.com/uutils/coreutils/pull/11504
- sort: fix warnings about unused stuff on Redox by @cakebaker in https://github.com/uutils/coreutils/pull/11547
- Sort: improve some of the performances by @sylvestre in https://github.com/uutils/coreutils/pull/11412
- sort: add locale-aware month sorting (-M) by @sylvestre in https://github.com/uutils/coreutils/pull/11445
- sort: disable rayon on wasi by @sylvestre in https://github.com/uutils/coreutils/pull/11595
- sort: add WASI single-threaded sort path & run most of the tests by @sylvestre in https://github.com/uutils/coreutils/pull/11624
- docs(sort): fix random number generation example by @xtqqczze in https://github.com/uutils/coreutils/pull/11295
๐ฆ split
- split: preserve non-UTF-8 bytes in output filename generation by @can1357 in https://github.com/uutils/coreutils/pull/11397
๐ฆ stdbuf
- stdbuf: detect unsupported target at build time by @oech3 in https://github.com/uutils/coreutils/pull/11476
- stdbuf: Fix cfg block for Cygwin by @oech3 in https://github.com/uutils/coreutils/pull/11311
- stdbuf: remove clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11545
- stdbuf: use .with_capacity for Vec storing searched paths by @oech3 in https://github.com/uutils/coreutils/pull/11546
- Fix `stdbuf` on NetBSD by @0323pin in https://github.com/uutils/coreutils/pull/11428
- libstdbuf: remove eprintln! causing 2>/dev/full abort by @oech3 in https://github.com/uutils/coreutils/pull/11213
- uu_stdbuf_libstdbuf: add LICENSE by @michel-slm in https://github.com/uutils/coreutils/pull/11417
๐ฆ stty
- stty: Fix incorrect ppc64el type presumption by @BAMF0 in https://github.com/uutils/coreutils/pull/11284
๐ฆ sync
- sync: fix exit code when fcntl failed & 2>/dev/full abort by @oech3 in https://github.com/uutils/coreutils/pull/11508
- sync: fall back to full sync when --file-system has no operands by @can1357 in https://github.com/uutils/coreutils/pull/11393
๐ฆ tail
- tail: increase retry delay and sleep interval for flaky test by @mattsu2020 in https://github.com/uutils/coreutils/pull/11278
- tail: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11606
- tail: add WASI support by disabling notify and pid features by @sylvestre in https://github.com/uutils/coreutils/pull/11569
๐ฆ tee
- tee: remove Box and dyn by @oech3 in https://github.com/uutils/coreutils/pull/11578
- tee: increase buf size for large input by @oech3 in https://github.com/uutils/coreutils/pull/11441
- tee: fix < . message and strip errno by @oech3 in https://github.com/uutils/coreutils/pull/11483
- tee: simplify by clap by @oech3 in https://github.com/uutils/coreutils/pull/11582
- tee: reduce if block by @oech3 in https://github.com/uutils/coreutils/pull/11472
- tee: split cli part of tee.rs by @oech3 in https://github.com/uutils/coreutils/pull/11640
๐ฆ timeout
- timeout: return timed-out status after kill grace period by @can1357 in https://github.com/uutils/coreutils/pull/11392
- feat(timeout): add benchmarking support with divan by @mattsu2020 in https://github.com/uutils/coreutils/pull/9733
๐ฆ touch
- touch: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11648
๐ฆ tr
- tr: reject unknown character classes during sequence parsing by @can1357 in https://github.com/uutils/coreutils/pull/11398
- tr: fix graph/print character class mapping by @can1357 in https://github.com/uutils/coreutils/pull/11405
๐ฆ true/false
- true, false, echo: avoid uu_app().render_version() for smaller binary by @oech3 in https://github.com/uutils/coreutils/pull/11362
๐ฆ tsort
- tsort: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11598
๐ฆ tty
- tty: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11589
๐ฆ wc
- wc: replace File::from_raw_fd with nix::sys::stat by @mattsu2020 in https://github.com/uutils/coreutils/pull/11248
- wc: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11575
- wc: improve wc -c perf with unextended pipe input (Linux only) by @oech3 in https://github.com/uutils/coreutils/pull/11591
- wc: support cross-platform building and 32-bit by @YumeYuka in https://github.com/uutils/coreutils/pull/11452
- wc: add bench for small file by @oech3 in https://github.com/uutils/coreutils/pull/11526
- wc: drop #[allow(clippy::question_mark)] by @oech3 in https://github.com/uutils/coreutils/pull/11638
๐ฆ yes
- yes: Refactor by clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11296
- yes: dedup some logic by @oech3 in https://github.com/uutils/coreutils/pull/11536
- yes: drop unused feat deps by @oech3 in https://github.com/uutils/coreutils/pull/11518
๐ฆ uucore
- uucore: tr, nice -n . 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10762
- uucore: share a fluent resource between threads - dd perf + 45% by @oech3 in https://github.com/uutils/coreutils/pull/11220
- uucore: Permit 'D' as a decimal suffix modifier in size parsing for GNU compatibility by @aweinstock314 in https://github.com/uutils/coreutils/pull/11354
- uucore: use rustix'splice & restrict to Linux by @oech3 in https://github.com/uutils/coreutils/pull/11566
- uucore: add WASI support for FileInformation and io module by @sylvestre in https://github.com/uutils/coreutils/pull/11568
- uucore: pipes.rs replace != with > by @oech3 in https://github.com/uutils/coreutils/pull/11629
- uucore: add a function returning /dev/null to use splice() for wc,dd,tail by @oech3 in https://github.com/uutils/coreutils/pull/11601
- uucore: add missing feature of rustix by @oech3 in https://github.com/uutils/coreutils/pull/11632
- + 5 more
๐ uudoc
- uudoc: make tldr attribution and disclaimer translatable by @sylvestre in https://github.com/uutils/coreutils/pull/11450
- uudoc: drop legacy FA4 `fa` class from platform icons by @sylvestre in https://github.com/uutils/coreutils/pull/11641
- Improve the manpages & lint them in github by @sylvestre in https://github.com/uutils/coreutils/pull/11339
๐ฆ CI & Build
- CICD.yml: split jobs for make by @oech3 in https://github.com/uutils/coreutils/pull/11269
- make.yml: Replace wrong *.yml ref by @oech3 in https://github.com/uutils/coreutils/pull/11281
- make.yml: Switch to stable from MSRV by @oech3 in https://github.com/uutils/coreutils/pull/11273
- CICD: Partial check for NetBSD by @oech3 in https://github.com/uutils/coreutils/pull/11334
- CICD: Check more NetBSD progs by @oech3 in https://github.com/uutils/coreutils/pull/11408
- CICD.yml: Bump cross for NetBSD by @oech3 in https://github.com/uutils/coreutils/pull/11496
- l10n.yml: Simplify by @oech3 in https://github.com/uutils/coreutils/pull/11335
- l10n.yml: drop cargo build covered by cargo {test,run} by @oech3 in https://github.com/uutils/coreutils/pull/11349
- + 19 more
๐ Documentation
- docs(sort): fix random number generation example by @xtqqczze in https://github.com/uutils/coreutils/pull/11295
- docs(performance): Use gnuls where ls is uutils by @danielzgtg in https://github.com/uutils/coreutils/pull/11342
- ls,pr: wrap angle-bracket placeholders in backticks to fix mdbook HTML warnings by @sylvestre in https://github.com/uutils/coreutils/pull/11520
- CONTRIBUTING.md: drop outdated hint, add policies and links by @oech3 in https://github.com/uutils/coreutils/pull/11433
- arch, uname, Cargo.toml: update outdated info by @oech3 in https://github.com/uutils/coreutils/pull/11556
- fr-FR: fix anglicisms (supportรฉโpris en charge, drapeauโoption, removedโsupprimรฉ) by @sylvestre in https://github.com/uutils/coreutils/pull/11651
- Remove useless translations by @sylvestre in https://github.com/uutils/coreutils/pull/11652
๐ฆ Code Quality & Cleanup
- use var_os in a few places by @xtqqczze in https://github.com/uutils/coreutils/pull/11242
- refactor: replace manual last()+pop() patterns with Vec::pop_if by @mattsu2020 in https://github.com/uutils/coreutils/pull/11272
- Cargo.toml: dedup feat_require_unix_hostid dep by @oech3 in https://github.com/uutils/coreutils/pull/11347
- Remove duplicated features by @oech3 in https://github.com/uutils/coreutils/pull/11510
- hostid: reduce lines by @oech3 in https://github.com/uutils/coreutils/pull/11502
- logname: reduce range of unsafe block by @oech3 in https://github.com/uutils/coreutils/pull/11506
- hostname: reduce range of unsafe by @oech3 in https://github.com/uutils/coreutils/pull/11515
- who: reduce range of unsafe by @oech3 in https://github.com/uutils/coreutils/pull/11521
- + 10 more
๐ฆ Version Management
- Revert "Cargo.toml: Avoid huge diff generation at version bump" by @sylvestre in https://github.com/uutils/coreutils/pull/11259
- prepare release 0.8.0 by @sylvestre in https://github.com/uutils/coreutils/pull/11449
๐ฆ Dependency Updates
- chore(deps): update actions/upload-artifact action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11275
- chore(deps): update dawidd6/action-download-artifact action to v16 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11277
- chore(deps): update rust crate tempfile to v3.27.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11289
- chore(deps): update reactivecircus/android-emulator-runner action to v2.36.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11293
- chore(deps): update rand and related crates to version 0.10 by @xtqqczze in https://github.com/uutils/coreutils/pull/11172
- chore(deps): update dawidd6/action-download-artifact action to v17 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11300
- chore(deps): update rust crate nix to 0.31.2 by @xtqqczze in https://github.com/uutils/coreutils/pull/11301
- chore(deps): update rust crate bitflags to 2.11.0 by @xtqqczze in https://github.com/uutils/coreutils/pull/11303
- + 33 more
โจ New Contributors
- @BAMF0 made their first contribution in https://github.com/uutils/coreutils/pull/11284
- @AldanTanneo made their first contribution in https://github.com/uutils/coreutils/pull/11320
- @danielzgtg made their first contribution in https://github.com/uutils/coreutils/pull/11342
- @venoosoo made their first contribution in https://github.com/uutils/coreutils/pull/11327
- @baa-ableton made their first contribution in https://github.com/uutils/coreutils/pull/11318
- @can1357 made their first contribution in https://github.com/uutils/coreutils/pull/11399
- @vitkyrka made their first contribution in https://github.com/uutils/coreutils/pull/11504
- @kaladron made their first contribution in https://github.com/uutils/coreutils/pull/11538
- + 6 more
๐ฆ **Rust Coreutils 0.7.0 Release:**
- ---
๐งช GNU Test Suite Compatibility:
- | Result | 0.6.0 | 0.7.0 | Change 0.6.0 to 0.7.0 | % Total 0.6.0 | % Total 0.7.0 | % Change 0.6.0 to 0.7.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 622 | 629 | +7 | 96.28% | 94.59% | -1.69% |
- | Skip | 7 | 13 | +6 | 1.08% | 1.95% | +0.87% |
- | Fail | 16 | 23 | +7 | 2.48% | 3.46% | +0.98% |
- | Error | 1 | 0 | -1 | 0.15% | 0% | -0.15% |
- | Total | 646 | 665 | +19 (new tests) | | | |
- ---
- + 2 more
๐ฆ Highlights:
- GNU Compatibility & Upstream Contributions
- 629 passing tests (+7 from 0.6.0), with 19 new tests added from the GNU 9.10 update
- Updated GNU test reference from 9.9 to 9.10
- Contributed numerous patches upstream to GNU coreutils, benefiting both projects
- New GNU compatibility fixes across `date`, `fmt`, `kill`, `ptx`, `numfmt`, `cksum`, and more
- Took over maintenance of [`num-prime`](https://github.com/uutils/num-prime), the primality testing library used by `factor`
- Performance Overhaul
- Faster hash maps: `rustc-hash` in `ls`, `du`, `tsort`, `shuf`, `mv`; `foldhash` in `sort`
- + 33 more
๐ฆ Call to Action:
- Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
๐ฆ cat
- cat: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/10885
๐ฆ cksum
- *sum: Fix locales fetching from `checksum_common` after installation by @RenjiSann in https://github.com/uutils/coreutils/pull/10575
- *sum: Fix read_byte_lines discarding read errors by @RenjiSann in https://github.com/uutils/coreutils/pull/10671
- test/cksum: implement `test_signed_checksums` by @0xMillyByte in https://github.com/uutils/coreutils/pull/10714
- cksum: Accept SHAKE algorithms by @RenjiSann in https://github.com/uutils/coreutils/pull/10772
- cksum family: Backport new errors for --binary, --text and --tag by @oech3 in https://github.com/uutils/coreutils/pull/10618
- cksum family: Fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11110
๐ฆ chroot
- chroot: fix gid being set by uid with --userspec #10307 by @cerdelen in https://github.com/uutils/coreutils/pull/10465
- chroot: use var_os by @xtqqczze in https://github.com/uutils/coreutils/pull/11070
๐ฆ comm
- comm /etc/pacman.conf /dev/null 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10746
- date, comm, tty: Fixing handling output to dev/null by @ChrisDryden in https://github.com/uutils/coreutils/pull/10888
๐ฆ coreutils
- tests/misc/coreutils.sh: Fail with invalid binary name by @oech3 in https://github.com/uutils/coreutils/pull/10258
- coreutils: output expected error for unrecognized options by @ChrisDryden in https://github.com/uutils/coreutils/pull/9869
- coreutils: Let the name *utils valid by @oech3 in https://github.com/uutils/coreutils/pull/10729
- coreutils: Fix 2>/dev/full aborts & drop a sed for GnuTests by @oech3 in https://github.com/uutils/coreutils/pull/10740
- all: --typo 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10764
- Add regression test for coreutils --list by @oech3 in https://github.com/uutils/coreutils/pull/10858
๐ฆ cp
- cp: fix recursive copy of readonly directories by @nikolalukovic in https://github.com/uutils/coreutils/pull/10529
- cp: improve code clarity and remove redundant filesystem checks by @sylvestre in https://github.com/uutils/coreutils/pull/10790
- cp: fixing cp -a functionality to match gnu implementation for -z flag handling and for folders by @ChrisDryden in https://github.com/uutils/coreutils/pull/10207
- cp: Fix panic when recursively copying a directory with a non-UTF8 name by @aweinstock314 in https://github.com/uutils/coreutils/pull/11148
- cp: handle special files by @victor-prokhorov in https://github.com/uutils/coreutils/pull/11163
๐ฆ csplit
- refactor(csplit): use &str slices for patterns by @xtqqczze in https://github.com/uutils/coreutils/pull/11013
- csplit: add benchmarks for line number and regex pattern splitting by @sylvestre in https://github.com/uutils/coreutils/pull/10927
๐ฆ cut
- cut: fix -s flag for newline delimiter and optimize memory allocation by @akervald in https://github.com/uutils/coreutils/pull/11143
- cut: two simple refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/11194
๐ฆ date
- date: fix -u flag to match GNU behavior for input parsing by @ChrisDryden in https://github.com/uutils/coreutils/pull/10715
- date: Fix format optional argument to capture all following parameters by @cerdelen in https://github.com/uutils/coreutils/pull/10914
- date: fix -s UTC conversion losing timezone offset by @yachi in https://github.com/uutils/coreutils/pull/10828
- date: fix RFC-822 format to always use English names by @sylvestre in https://github.com/uutils/coreutils/pull/10932
- date: bump parse_datetime & add test for leap-1 GNU test by @sylvestre in https://github.com/uutils/coreutils/pull/10933
- date: add tests to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/10939
- date: fix double periods in Hungarian month abbreviations by @naoNao89 in https://github.com/uutils/coreutils/pull/10945
- date: fix subfmt-up1, fill-1, pct-pct, and invalid-high-bit-set tests / implement --debug by @sylvestre in https://github.com/uutils/coreutils/pull/10940
- + 8 more
๐ฆ dd
- dd: simplify signal handling by removing Alarm timer thread by @ChrisDryden in https://github.com/uutils/coreutils/pull/10768
๐ฆ df
- df: fallback when proc masked by @ChrisDryden in https://github.com/uutils/coreutils/pull/10417
๐ฆ dircolors
- dircolors >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10948
๐ฆ du
- du: deduplicate Stat::new call by @svlv in https://github.com/uutils/coreutils/pull/10584
- du: Use rustc-hash for du -a / performance by @oech3 in https://github.com/uutils/coreutils/pull/10663
- du: Flags 'm', 'k', 'm' should be POSIX style overriden by @cerdelen in https://github.com/uutils/coreutils/pull/10664
- Du size_format flag override by @cerdelen in https://github.com/uutils/coreutils/pull/10743
- du: malloc perf +3~6% by @oech3 in https://github.com/uutils/coreutils/pull/11034
๐ฆ echo
- echo --version >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10853
๐ฆ env
- env: fix regression of `--ignore-signal=PIPE` by @Ecordonnier in https://github.com/uutils/coreutils/pull/9618
๐ฆ expand
- expand: remove read_until by @cerdelen in https://github.com/uutils/coreutils/pull/10657
- expand: remove empty after help by @cakebaker in https://github.com/uutils/coreutils/pull/10977
- expand: Fix performance drop with cgu=1 by ascii fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11104
๐ฆ expr
- expr --version >/dev/full panics & --help > /dev/full should fail by @oech3 in https://github.com/uutils/coreutils/pull/10854
๐ฆ factor
- factor: add a test for a num-prime issue by @sylvestre in https://github.com/uutils/coreutils/pull/11096
- factor: trim also null-chars by @yotam-medini in https://github.com/uutils/coreutils/pull/11182
๐ฆ false
- false: dedup set_exit_code(1) by @oech3 in https://github.com/uutils/coreutils/pull/10823
- true, false: Fix broken pipe by @oech3 in https://github.com/uutils/coreutils/pull/11204
- true, false: drop Vec for binary size and perf by @oech3 in https://github.com/uutils/coreutils/pull/11223
๐ฆ fmt
- fmt: restore GNU compatibility for tests/fmt/width by @karanabe in https://github.com/uutils/coreutils/pull/11073
๐ฆ fold
- fold: refactor compute_col_count and add character mode tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/10533
- fold: replace truncate(0) with clear() by @xtqqczze in https://github.com/uutils/coreutils/pull/11059
๐ฆ hostname
- hostname: fix panic on hostname > /dev/full by @WhateverAWS in https://github.com/uutils/coreutils/pull/10912
- feat(hostname): add benchmark with large /etc/hosts by @naoNao89 in https://github.com/uutils/coreutils/pull/10979
๐ฆ id
- Id: don't panic on write error by @FidelSch in https://github.com/uutils/coreutils/pull/10769
๐ฆ install
- Fixed permissions in install for unix by @max-amb in https://github.com/uutils/coreutils/pull/10564
- fix(install): prevent symlink race condition in install -D (fixes #10013) by @abendrothj in https://github.com/uutils/coreutils/pull/10140
๐ฆ kill
- kill: fix GNU compatibility tests for RTMIN and RTMAX by @karanabe in https://github.com/uutils/coreutils/pull/11224
๐ฆ ln
- fix: eliminate TOCTOU races in ln and tac by deferring is_dir() checks by @abendrothj in https://github.com/uutils/coreutils/pull/10991
- ln: Interactive and Force override each other instead of defaulting to Force if both are specified by @aweinstock314 in https://github.com/uutils/coreutils/pull/11129
๐ฆ ls
- ls: Replace Fnv with rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/10686
- ls: fix hyperlink functionality to use correct OSC 8 format and handle symlink targets by @sylvestre in https://github.com/uutils/coreutils/pull/10824
- ls: fix ls dired reports by @mattsu2020 in https://github.com/uutils/coreutils/pull/10527
- ls: release directory fds before recursing to avoid EMFILE by @ChrisDryden in https://github.com/uutils/coreutils/pull/10894
- ls: Update French translations by @sylvestre in https://github.com/uutils/coreutils/pull/11003
- ls: Use rustc-hash at colors by @oech3 in https://github.com/uutils/coreutils/pull/10700
- ls: Treat paths starting with a dot as hidden even if they contain invalid UTF-8. by @aweinstock314 in https://github.com/uutils/coreutils/pull/11135
๐ฆ mktemp
- mktemp: handle invalid UTF-8 in suffix gracefully by @sylvestre in https://github.com/uutils/coreutils/pull/10818
- mktemp: use env::os_var by @xtqqczze in https://github.com/uutils/coreutils/pull/11113
- mktemp: Don't panic when getrandom failed by @oech3 in https://github.com/uutils/coreutils/pull/11154
๐ฆ mknod
- mKnod: Refactor to remove unsafe code by @mattsu2020 in https://github.com/uutils/coreutils/pull/10138
๐ฆ mv
- mv: handle FIFOs inside directories during cross-partition move by @ChrisDryden in https://github.com/uutils/coreutils/pull/10857
- fix(mv): correct selinux cfg gating for non-Linux platforms by @naoNao89 in https://github.com/uutils/coreutils/pull/10989
- mv: Use rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/11010
- mv: preserve symlinks during cross-device moves instead of expanding them by @sylvestre in https://github.com/uutils/coreutils/pull/10546
๐ฆ nl
- perf(nl): optimize line numbering by using itoa and direct writing by @CrazyRoka in https://github.com/uutils/coreutils/pull/10757
๐ฆ nproc
- nproc: process space in OMP_NUM_THREADS by @cuiweixie in https://github.com/uutils/coreutils/pull/10973
- nproc: Cleanup a const by @oech3 in https://github.com/uutils/coreutils/pull/11191
- nproc: Minor cleanup by @oech3 in https://github.com/uutils/coreutils/pull/11192
๐ฆ numfmt
- numfmt: add --debug flag to print warnings about invalid input by @ChrisDryden in https://github.com/uutils/coreutils/pull/10110
- numfmt: numfmt --debug 2>/dev/full does not abort by @tuananh in https://github.com/uutils/coreutils/pull/10668
- numfmt: fix empty delimiter and whitespace handling by @ChrisDryden in https://github.com/uutils/coreutils/pull/10350
- numfmt: optimize output handling by using stdout directly by @xtqqczze in https://github.com/uutils/coreutils/pull/11051
- fix(numfmt): Read lines only up to null byte (as GNU does) by @FidelSch in https://github.com/uutils/coreutils/pull/11146
- fix(numfmt): format output on error messages by @FidelSch in https://github.com/uutils/coreutils/pull/11179
- numfmt: stop a clone by @oech3 in https://github.com/uutils/coreutils/pull/11221
๐ฆ od
- od: fix od -v /dev/zero panic by @mattsu2020 in https://github.com/uutils/coreutils/pull/10576
๐ฆ paste
- paste: support multi-byte delimiters and GNU escape sequences by @ChrisDryden in https://github.com/uutils/coreutils/pull/10840
- paste: avoid unbounded buffering for single input by @mattsu2020 in https://github.com/uutils/coreutils/pull/11060
๐ฆ pr
- pr: fix column behavior for short files by @jfinkels in https://github.com/uutils/coreutils/pull/10379
- pr missing 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10731
- pr: implement the -e flag by @cerdelen in https://github.com/uutils/coreutils/pull/10167
๐ฆ printf
- printf: fix %q shell quoting with control chars and quotes by @sylvestre in https://github.com/uutils/coreutils/pull/10816
๐ฆ ptx
- ptx: implement -t/--typeset-mode to change default width to 100 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10856
- ptx: fix panic when truncation string/keyword contain multibyte Unicode by @Xylphy in https://github.com/uutils/coreutils/pull/10836
- ptx: match GNU default behavior by skipping non-alphabetic index tokens by @Xylphy in https://github.com/uutils/coreutils/pull/10919
๐ฆ readlink
- readlink: Set silent mode as default by @denendaden in https://github.com/uutils/coreutils/pull/10711
๐ฆ rm
- rm --preserve-root should work on symlink too by @sylvestre in https://github.com/uutils/coreutils/pull/9706
- rm: report permission denied for unreadable subdirectories by @o1x3 in https://github.com/uutils/coreutils/pull/10974
๐ฆ shuf
- shuf: Use rustc-hash for performance by @oech3 in https://github.com/uutils/coreutils/pull/10648
- shuf: Drop inline after switched to fxhash by @oech3 in https://github.com/uutils/coreutils/pull/10781
- shuf: Reduce malloc by @oech3 in https://github.com/uutils/coreutils/pull/10998
- shuf: delete useless cast by @oech3 in https://github.com/uutils/coreutils/pull/11106
- shuf: try Vec first and fallback to HashMap if it cause OOM by @oech3 in https://github.com/uutils/coreutils/pull/11169
- shuf: Reduce malloc, perf +4% by @oech3 in https://github.com/uutils/coreutils/pull/11219
๐ฆ sort
- sort: remove redundant if by @oech3 in https://github.com/uutils/coreutils/pull/10716
- Sort: Use ahash by @oech3 in https://github.com/uutils/coreutils/pull/10783
- sort: making ClosedCompressedTmpFile::reopen() not panic. by @devnexen in https://github.com/uutils/coreutils/pull/10807
- sort: fix panic when collator not available in worker threads by @sylvestre in https://github.com/uutils/coreutils/pull/10915
- fix: scientific notation is incorrectly parsed in general numeric sort by @Kaua-Klassmann in https://github.com/uutils/coreutils/pull/10437
- sort: use LazyLock by @xtqqczze in https://github.com/uutils/coreutils/pull/10969
- Sort debug message by @hlsxx in https://github.com/uutils/coreutils/pull/10960
- sort: Replace malloc and 0 fill with huge reserve & min 0 fill by @oech3 in https://github.com/uutils/coreutils/pull/10975
- + 5 more
๐ฆ split
- perf(split): reuse buffer in chunked splitting loop by @CrazyRoka in https://github.com/uutils/coreutils/pull/10695
- perf(split): optimize FixedWidthNumber Display implementation by @CrazyRoka in https://github.com/uutils/coreutils/pull/10723
- split: Reduce malloc by @oech3 in https://github.com/uutils/coreutils/pull/10976
๐ฆ stat
- stat: fix mount table read when /proc is unavailable by @sylvestre in https://github.com/uutils/coreutils/pull/10300
- print_numeric: print mode in octal when the mode is too large by @Connor-GH in https://github.com/uutils/coreutils/pull/10208
๐ฆ stdbuf
- stdbuf: support libstdbuf in same directory as stdbuf by @Ecordonnier in https://github.com/uutils/coreutils/pull/10352
- stdbuf: fix warning from `uninlined_format_args` by @cakebaker in https://github.com/uutils/coreutils/pull/10784
๐ฆ stty
- stty: cleanup cfg by @oech3 in https://github.com/uutils/coreutils/pull/10879
- stty: fix compilation on PowerPC architectures by @sylvestre in https://github.com/uutils/coreutils/pull/11050
๐ฆ sync
- sync: handle fcntl errors with localized warnings by @sylvestre in https://github.com/uutils/coreutils/pull/10330
- sync: open file with nonblock by @reubenwong97 in https://github.com/uutils/coreutils/pull/10765
- sync: return after checking all inputs by @reubenwong97 in https://github.com/uutils/coreutils/pull/10742
๐ฆ tac
- tac: fix stdin piping on Windows by skipping empty mmap results by @ChrisDryden in https://github.com/uutils/coreutils/pull/10795
- tac: support non-UTF-8 separator by @victor-prokhorov in https://github.com/uutils/coreutils/pull/10934
๐ฆ tail
- tail: report PermissionDenied instead of No such file when metadata fails by @RedNhight in https://github.com/uutils/coreutils/pull/11018
- tests/tail: reduce delays in multiple tests to speed up execution by @domysu in https://github.com/uutils/coreutils/pull/11206
๐งช test
- test: make the man-page readable + sync by @matttbe in https://github.com/uutils/coreutils/pull/10737
- test: implement -r/-w/-x on Windows by @anihal in https://github.com/uutils/coreutils/pull/11120
๐ฆ tr
- tr: fix possible usage in invalid utf8 set sequence. by @devnexen in https://github.com/uutils/coreutils/pull/10791
- tr: simplify truncate logic by @xtqqczze in https://github.com/uutils/coreutils/pull/11072
๐ฆ true
- true/false: remove large clap call by @my4ng in https://github.com/uutils/coreutils/pull/10673
- true, false: Improve perf & fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11200
- feat(true/false): add benchmarks for startup performance by @naoNao89 in https://github.com/uutils/coreutils/pull/10996
๐ฆ tsort
- tsort: Use rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/10680
๐ฆ unexpand
- Unexpand use buffered reads + tests by @cerdelen in https://github.com/uutils/coreutils/pull/10831
- unexpand: codegen-units=1 by @oech3 in https://github.com/uutils/coreutils/pull/10817
- unexpand: Refactor functions to use less parameters by @cerdelen in https://github.com/uutils/coreutils/pull/10900
- unexpand: ascii fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11114
- unexpand: reuse a smaller buf, perf 14%+ by @oech3 in https://github.com/uutils/coreutils/pull/11178
๐ฆ uniq
- uniq: fix -w to count bytes in C locale by @aguimaraes in https://github.com/uutils/coreutils/pull/11061
๐ฆ uptime
- uptime: fix "unused import" warnings in test file by @cakebaker in https://github.com/uutils/coreutils/pull/10651
- uptime: Remove wincode and wincode-derive dependencies by @ChrisDryden in https://github.com/uutils/coreutils/pull/10802
- fix: uptime > /dev/full panic fix by @hlsxx in https://github.com/uutils/coreutils/pull/10827
๐ฆ vdir
- vdir: make vdir an alias of ls to resolve missing ftl by @NatsuCamellia in https://github.com/uutils/coreutils/pull/10434
๐ฆ wc
- wc: stop processing --files0-from input after stdout write failure by @mattsu2020 in https://github.com/uutils/coreutils/pull/11023
๐ฆ whoami
- whoami: fix usage line for unexpected arguments by @YuF-9468 in https://github.com/uutils/coreutils/pull/11159
๐ฆ uucore
- uucore: refactor digest_reader to use ReadingMode enum by @0xMillyByte in https://github.com/uutils/coreutils/pull/10720
- uucore: Use `nix::sys::stat::umask` in `uucore::mode::get_umask` by @mattsu2020 in https://github.com/uutils/coreutils/pull/11102
- uucore: fix correct mkdirat implementation to use nix crate's mkdirat function by @mattsu2020 in https://github.com/uutils/coreutils/pull/11126
- uucore: replace unsafe libc calls with safe nix crate wrappers by @mattsu2020 in https://github.com/uutils/coreutils/pull/11156
- uucore: use transmute instead of raw pointers by @xtqqczze in https://github.com/uutils/coreutils/pull/11077
- uucore: Disallow slashes in determine_backup_suffix by @aweinstock314 in https://github.com/uutils/coreutils/pull/11149
- uucore: disable signals at simple utils for binary size and fast startup by @oech3 in https://github.com/uutils/coreutils/pull/11186
- dedup high-cost localization setup by @oech3 in https://github.com/uutils/coreutils/pull/11147
๐ฆ CI & Build
- Catch regressions at early stage by @oech3 in https://github.com/uutils/coreutils/pull/10627
- ci: enable memory profiling again by @not-matthias in https://github.com/uutils/coreutils/pull/10659
- Revert "CICD.yml: upload binaries without version string" by @sylvestre in https://github.com/uutils/coreutils/pull/10676
- Fix tag/latest-commit & comment naming policy by @oech3 in https://github.com/uutils/coreutils/pull/10684
- fuzzing.yml: Use prebuilt for faster setup by @oech3 in https://github.com/uutils/coreutils/pull/10498
- chore: run pre-commit on all files by @aaron-ang in https://github.com/uutils/coreutils/pull/10119
- MSRV 1.88 by @oech3 in https://github.com/uutils/coreutils/pull/10771
- Drop release-fast profile for simplicity by @oech3 in https://github.com/uutils/coreutils/pull/10476
- + 27 more
๐ Documentation
- README.md: Don't recommend latest-commit for everyone by @oech3 in https://github.com/uutils/coreutils/pull/10678
- add 0.5.0 & 0.6.0 release notes by @sylvestre in https://github.com/uutils/coreutils/pull/10709
- Remove the word: hashsums by @oech3 in https://github.com/uutils/coreutils/pull/10674
- fix docs hashsumS and test by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/7936
- head: improve help grammar by @memark in https://github.com/uutils/coreutils/pull/10848
- Fix for potential typos by @lanceXwq in https://github.com/uutils/coreutils/pull/10822
- chore: use consistent copyright header in `.rs` files by @xtqqczze in https://github.com/uutils/coreutils/pull/11020
๐ฆ Code Quality & Cleanup
- clippy: fix nightly map_unwrap_or lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10625
- Re-enable unused_qualifications lint by @Xylphy in https://github.com/uutils/coreutils/pull/10571
- chore: a few more Clippy fixes by @nyurik in https://github.com/uutils/coreutils/pull/10697
- chore: minor optimizations by @nyurik in https://github.com/uutils/coreutils/pull/10707
- chore: fix `clippy::single_match_else` by @nyurik in https://github.com/uutils/coreutils/pull/10699
- chore: `clippy::unreadable_literal` by @nyurik in https://github.com/uutils/coreutils/pull/10717
- refactor: removing unnecessary references in fn signatures by @nyurik in https://github.com/uutils/coreutils/pull/10703
- chore: `clippy::wildcard_imports` by @nyurik in https://github.com/uutils/coreutils/pull/10719
- + 17 more
๐ฆ Dependency Updates
- Bump wincode crates to `0.3.1` by @cakebaker in https://github.com/uutils/coreutils/pull/10650
- chore(deps): update rust crate regex to v1.12.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10683
- chore(deps): update rust crate clap to v4.5.57 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10685
- chore(deps): update rust crate zip to v7.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10713
- chore(deps): update vmactions/freebsd-vm action to v1.3.9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9605
- chore(deps): update rust crate jiff to v0.2.19 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10760
- chore(deps): update rust crate memchr to v2.8.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10774
- chore(deps): update rust crate libc to v0.2.181 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10844
- + 30 more
๐ฆ Version Management
- prepare release 0.7.0 by @sylvestre in https://github.com/uutils/coreutils/pull/11128
โจ New Contributors
- @my4ng made their first contribution in https://github.com/uutils/coreutils/pull/10673
- @tuananh made their first contribution in https://github.com/uutils/coreutils/pull/10668
- @0xMillyByte made their first contribution in https://github.com/uutils/coreutils/pull/10714
- @NatsuCamellia made their first contribution in https://github.com/uutils/coreutils/pull/10434
- @nikolalukovic made their first contribution in https://github.com/uutils/coreutils/pull/10529
- @memark made their first contribution in https://github.com/uutils/coreutils/pull/10848
- @lanceXwq made their first contribution in https://github.com/uutils/coreutils/pull/10822
- @denendaden made their first contribution in https://github.com/uutils/coreutils/pull/10711
- + 16 more
๐ฆ **Rust Coreutils 0.6.0 Release:**
- ---
๐ฆ 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
- + 27 more
๐งช GNU Test Suite Compatibility:
- | Result | 0.5.0 | 0.6.0 | Change 0.5.0 to 0.6.0 | % Total 0.5.0 | % Total 0.6.0 | % Change 0.5.0 to 0.6.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 566 | 622 | +56 | 87.75% | 96.28% | +8.53% |
- | Skip | 23 | 7 | -16 | 3.57% | 1.08% | -2.49% |
- | Fail | 55 | 16 | -39 | 8.53% | 2.48% | -6.05% |
- | Error | 1 | 1 | 0 | 0.16% | 0.15% | ~0% |
- | Total | 645 | 646 | +1 (new test) | | | |
- ---
- + 2 more
๐ฆ Call to Action:
- Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
๐ฆ arch
- Avoid >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10516
๐ฆ base64
- base(nc|32|64): Optimize performances reduction memset by @mattsu2020 in https://github.com/uutils/coreutils/pull/9632
- Improve read error message by @dezgeg in https://github.com/uutils/coreutils/pull/10512
๐ฆ basename
- basename . >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10553
๐ฆ cat
- do not connect to unix domain socket and instead return an error by @asder8215 in https://github.com/uutils/coreutils/pull/9755
- fix write error handling to propagate errors instead of panicking by @rynewang in https://github.com/uutils/coreutils/pull/10038
- tests(cat,stdbuf): Add broken-pipe robustness tests (#4627) by @naoNao89 in https://github.com/uutils/coreutils/pull/8798
๐ฆ chgrp
- correct exit code by @cerdelen in https://github.com/uutils/coreutils/pull/10035
๐ฆ chmod
- fix error handling if multiple files are handled by @cerdelen in https://github.com/uutils/coreutils/pull/9793
- recursive hyper nested dirs by @cerdelen in https://github.com/uutils/coreutils/pull/9990
- preserve root by @cerdelen in https://github.com/uutils/coreutils/pull/10033
๐ฆ chroot
- use execvp directly instead of process::Command by @mattsu2020 in https://github.com/uutils/coreutils/pull/9013
๐ฆ cksum
- Checksum ignore binary by @RenjiSann in https://github.com/uutils/coreutils/pull/9695
- Improve check-only flags handling by @RenjiSann in https://github.com/uutils/coreutils/pull/9770
- Move --ckeck's deps to clap by @oech3 in https://github.com/uutils/coreutils/pull/9996
- Move handle_tag_text_binary_flags to clap by @oech3 in https://github.com/uutils/coreutils/pull/9999
- Simple default tag variable by @oech3 in https://github.com/uutils/coreutils/pull/10057
- cksum,hashsum: Drop a message replaced by clap by @oech3 in https://github.com/uutils/coreutils/pull/10055
- cksum/hashsum: Merge common logic under a common crate by @RenjiSann in https://github.com/uutils/coreutils/pull/10142
- Revert recent checksum CLI changes by @RenjiSann in https://github.com/uutils/coreutils/pull/10141
- + 3 more
๐ฆ comm
- fix comparison when reading from pipes by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9545
- Fixes #10192 - fix(comm): improve stdout handling and add test for lossy UTF-8 output by @Paol0B in https://github.com/uutils/coreutils/pull/10206
- Properly handle I/O errors when reading input by @dezgeg in https://github.com/uutils/coreutils/pull/10567
๐ฆ cp
- fix preserve-gid when canonicalize fails due to inaccessible parent dirs by @ChrisDryden in https://github.com/uutils/coreutils/pull/9803
- reduce memory usage for cp -al by skipping unnecessary tracking by @ChrisDryden in https://github.com/uutils/coreutils/pull/9805
- set status code when encountering circular symbolic links by @Thanhphan1147 in https://github.com/uutils/coreutils/pull/9757
- symlink flags fixing conflicting flag logic to use last flag by @Dylans123 in https://github.com/uutils/coreutils/pull/9960
- Added test for permissions copying to an existing file by @max-amb in https://github.com/uutils/coreutils/pull/10049
- use FileInformation without dereference for symlink destination check to match GNU behaviour for test/nfs-removal-race by @ChrisDryden in https://github.com/uutils/coreutils/pull/10086
- Avoid other error at cp stream /dev/full by @oech3 in https://github.com/uutils/coreutils/pull/10139
- Fixed posixly correct dangling symlink test by @max-amb in https://github.com/uutils/coreutils/pull/10247
- + 1 more
๐ฆ csplit
- detect and report write errors by @ChrisDryden in https://github.com/uutils/coreutils/pull/9855
๐ฆ date
- remove unsafe by @xtqqczze in https://github.com/uutils/coreutils/pull/9688
- fix inconsistent input parsing between -s and -d flags by @AnarchistHoneybun in https://github.com/uutils/coreutils/pull/9690
- Implement locale-aware hour formatting for date command by @naoNao89 in https://github.com/uutils/coreutils/pull/9654
- improve fuzzer and handle edge cases by @ChrisDryden in https://github.com/uutils/coreutils/pull/9661
- fix hardcoded formats with nl_langinfo(D_T_FMT) by @naoNao89 in https://github.com/uutils/coreutils/pull/9756
- Fix military date parsing not adjusting date by @cerdelen in https://github.com/uutils/coreutils/pull/9785
- add benchmark by @CrazyRoka in https://github.com/uutils/coreutils/pull/9911
- benchmark: keep only one value by @sylvestre in https://github.com/uutils/coreutils/pull/9989
- + 10 more
๐ฆ dd
- should terminate with error if skip argument is too large by @ic3man5 in https://github.com/uutils/coreutils/pull/7275
- use actual filename in nocache error messages by @ChrisDryden in https://github.com/uutils/coreutils/pull/9820
- fix nocache flag handling at EOF by @ChrisDryden in https://github.com/uutils/coreutils/pull/9818
- use ibs/obs-sized buffer for skip/seek on non-seekable files by @ChrisDryden in https://github.com/uutils/coreutils/pull/9806
- use seek for stdin skip when possible by @ChrisDryden in https://github.com/uutils/coreutils/pull/9821
- get rid of line buffered stdout by @svlv in https://github.com/uutils/coreutils/pull/10235
- feat(dd): add first benchmark suite for performance validation by @naoNao89 in https://github.com/uutils/coreutils/pull/9136
๐ฆ df
- add binfmt_misc to is_dummy_filesystem by @van-sprundel in https://github.com/uutils/coreutils/pull/9975
- add benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/10123
- improve perfs by @sylvestre in https://github.com/uutils/coreutils/pull/10122
- add rootfs to is_dummy_filesystem by @ChrisDryden in https://github.com/uutils/coreutils/pull/10159
- Sum scaled values to compute the totals by @3v1n0 in https://github.com/uutils/coreutils/pull/10438
๐ฆ dir
- add "about" and "usage" instead of being "ls" by @w007878 in https://github.com/uutils/coreutils/pull/10369
๐ฆ dirname
- refactor(dirname): implement pure string manipulation per POSIX by @naoNao89 in https://github.com/uutils/coreutils/pull/8936
- use Cow::Borrowed to avoid unnecessary heap allocations by @sylvestre in https://github.com/uutils/coreutils/pull/10294
- add fuzzer to test GNU compatibility by @sylvestre in https://github.com/uutils/coreutils/pull/10289
๐ฆ du
- fix -l/--count-links option not counting hardlinks separately by @WaterWhisperer in https://github.com/uutils/coreutils/pull/9884
- count links based on inode by @svlv in https://github.com/uutils/coreutils/pull/10313
๐ฆ echo
- Reduce memory allocation by @AnuthaDev in https://github.com/uutils/coreutils/pull/10090
๐ฆ env
- preserve non-UTF-8 environment variables and remove unwrap by @ChrisDryden in https://github.com/uutils/coreutils/pull/9726
- Improve GNU coreutils Compatibility & Fix env-signal-handler.sh Test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9465
- env/printenv: dedup the code by @sylvestre in https://github.com/uutils/coreutils/pull/9841
- dedup some code by @sylvestre in https://github.com/uutils/coreutils/pull/9874
- --debug 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10594
๐ฆ expand
- address a cognitive_complexity warnings by @sylvestre in https://github.com/uutils/coreutils/pull/9930
- expand, unexpand: Properly handle I/O errors by @dezgeg in https://github.com/uutils/coreutils/pull/10510
๐ฆ expr
- fix regex matching on inputs containing newlines by @ChrisDryden in https://github.com/uutils/coreutils/pull/10543
๐ฆ fmt
- handle invalid UTF-8 input by replacing malformed sequences by @mattsu2020 in https://github.com/uutils/coreutils/pull/9329
๐ฆ fold
- fix gnu test fold-zero-width.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9274
- Add support for -c short option and fix character mode tab handling by @mattsu2020 in https://github.com/uutils/coreutils/pull/10530
๐ฆ groups
- groups > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10523
๐ฆ hashsum
- Drop --no-names by @oech3 in https://github.com/uutils/coreutils/pull/9762
- Drop non-GNU `--bits` flag by @RenjiSann in https://github.com/uutils/coreutils/pull/9773
- Drop locales for --bits by @oech3 in https://github.com/uutils/coreutils/pull/9811
- Drop benches as covered by cksum benches by @oech3 in https://github.com/uutils/coreutils/pull/9842
- Move --ckeck's deps to clap by @oech3 in https://github.com/uutils/coreutils/pull/9998
- hashsum, cksum: Move default stdin to clap by @oech3 in https://github.com/uutils/coreutils/pull/10043
- hashsum, cksum: Move --check confliction to clap by @oech3 in https://github.com/uutils/coreutils/pull/10041
- Remove hashsum by @RenjiSann in https://github.com/uutils/coreutils/pull/10587
- + 1 more
๐ฆ head
- Consolidate legacy argument parsing for head/tail by @sylvestre in https://github.com/uutils/coreutils/pull/9727
- refactor(head): replace unsafe raw fd usage with safe AsFd API by @mattsu2020 in https://github.com/uutils/coreutils/pull/10161
๐ฆ hostid
- Avoid hostid > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10172
๐ฆ id
- -p crashes with panic when the real GID doesn't exist in /etc/group by @sylvestre in https://github.com/uutils/coreutils/pull/9670
- Fix incorrect human-readable output by @frendsick in https://github.com/uutils/coreutils/pull/7814
๐ฆ install
- add FreeBSD's -U (unprivileged) option by @alexandrefresnais in https://github.com/uutils/coreutils/pull/9526
- prevent TOCTOU race attack by @Dolphindalt in https://github.com/uutils/coreutils/pull/10067
- install -dv a >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10541
๐ฆ join
- add benchmarks by @WaterWhisperer in https://github.com/uutils/coreutils/pull/10005
- add benchmark with the French locale by @WaterWhisperer in https://github.com/uutils/coreutils/pull/10025
- consider locale collation in field comparison by @WaterWhisperer in https://github.com/uutils/coreutils/pull/9982
- Benchmark join with actual Unicode data requiring locale collation by @sylvestre in https://github.com/uutils/coreutils/pull/10391
๐ฆ kill
- kill -1 should trigger an error by @sylvestre in https://github.com/uutils/coreutils/pull/9700
๐ฆ ln
- ln -svf /dev/null /tmp/a > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10539
๐ฆ logname
- logname > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10522
๐ฆ ls
- Make ls pass the GNU ls-misc.pl suite by @karanabe in https://github.com/uutils/coreutils/pull/9262
- Add SMACK support by @ChrisDryden in https://github.com/uutils/coreutils/pull/9868
- some improvements after #9431 by @sylvestre in https://github.com/uutils/coreutils/pull/10149
- fixes for capability coloring by @bkueng in https://github.com/uutils/coreutils/pull/8615
- Proper alignment for capabilities and ACLs notifications by @kimono-koans in https://github.com/uutils/coreutils/pull/8793
- fix symlink chain target coloring by @ChrisDryden in https://github.com/uutils/coreutils/pull/10274
๐ฆ mkdir
- create directories atomically with correct permissions by @rynewang in https://github.com/uutils/coreutils/pull/10036
- Add SMACK support to id, mkdir, mkfifo, mknod utilities by @ChrisDryden in https://github.com/uutils/coreutils/pull/9910
- chore: add test for setgid bit inheritance in mkdir -p by @0xferrous in https://github.com/uutils/coreutils/pull/10412
- mkdir -pv a >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10540
๐ฆ mkfifo
- replace unsafe libc::mkfifo with nix::unistd::mkfifo by @sylvestre in https://github.com/uutils/coreutils/pull/10112
- do not change permission when failed to create by @w007878 in https://github.com/uutils/coreutils/pull/10376
- error when non-file permission mode set by @w007878 in https://github.com/uutils/coreutils/pull/10372
๐ฆ mknod
- Avoid major/minor No overflow by @oech3 in https://github.com/uutils/coreutils/pull/10196
- fix SELinux cleanup when context setting fails by @ChiamakaUI in https://github.com/uutils/coreutils/pull/10582
๐ฆ mktemp
- Fix template validation to require trailing consecutive Xs by @Xylphy in https://github.com/uutils/coreutils/pull/10224
- treat empty TMPDIR as unset and fallback to /tmp by @reubenwong97 in https://github.com/uutils/coreutils/pull/10566
๐ฆ more
- file status made more idiomatic. by @devnexen in https://github.com/uutils/coreutils/pull/10151
- test(more): Fix test_from_line_option race condition by increasing PTY delay by @naoNao89 in https://github.com/uutils/coreutils/pull/9629
๐ฆ mv
- Adding fixes for i-3 GNU tests related to tty output when file is not writeable by @ChrisDryden in https://github.com/uutils/coreutils/pull/9599
- support moving folder containing symlinks to different filesystem by @yuankunzhang in https://github.com/uutils/coreutils/pull/8605
- test_mv.rs: Remove ignore from test_mv_broken_symlink_to_another_fs by @oech3 in https://github.com/uutils/coreutils/pull/9978
- test-mv: Use temporary directory in /dev/shm by @3v1n0 in https://github.com/uutils/coreutils/pull/10439
๐ฆ nice
- use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9612
- simplify the code by @sylvestre in https://github.com/uutils/coreutils/pull/9931
- nice -n huge_num true by @oech3 in https://github.com/uutils/coreutils/pull/10213
- nice > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10524
๐ฆ nl
- preserve raw bytes in output instead of using from_utf8_lossy by @ChrisDryden in https://github.com/uutils/coreutils/pull/9673
๐ฆ nohup
- use POSIXLY_CORRECT to determine failure exit code by @ChrisDryden in https://github.com/uutils/coreutils/pull/9685
๐ฆ nproc
- Avoid nproc > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10157
๐ฆ numfmt
- add --debug flag to print warnings about invalid input (#10110)
- add --unit-separator option for output formatting by @ChrisDryden in https://github.com/uutils/coreutils/pull/10108
- support non-UTF8 delimiters for locales like GB18030 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10079
- align error messages for suffixes by @sbentmar in https://github.com/uutils/coreutils/pull/9887
๐ฆ pr
- Enable pr-tests.pl with suppressed diff output by @ChrisDryden in https://github.com/uutils/coreutils/pull/9829
- add -b flag for backwards compatibility by @ChrisDryden in https://github.com/uutils/coreutils/pull/9993
- allow character, block, and fifo devices as input by @SaathwikDasari in https://github.com/uutils/coreutils/pull/9946
- use 72 char line width for all page headers by @jfinkels in https://github.com/uutils/coreutils/pull/10059
- add default values for -s and -S separator options by @ChrisDryden in https://github.com/uutils/coreutils/pull/10073
- add -T/--omit-pagination option by @ChrisDryden in https://github.com/uutils/coreutils/pull/10107
- uniformly scan for form feed and newline chars by @jfinkels in https://github.com/uutils/coreutils/pull/10303
- refactor common code for reading from file by @jfinkels in https://github.com/uutils/coreutils/pull/10334
- + 3 more
๐ฆ printenv
- Fix printenv non-UTF8 by @RenjiSann in https://github.com/uutils/coreutils/pull/9728
๐ฆ printf
- Format String Parsing Overflow Causes Panic by @sylvestre in https://github.com/uutils/coreutils/pull/9693
- printf 1 > /dev/full is not silent by @oech3 in https://github.com/uutils/coreutils/pull/10171
๐ฆ ptx
- fix incorrect column width calculation and padding logic by @CrazyRoka in https://github.com/uutils/coreutils/pull/9681
- implement -S/--sentence-regexp by @CrazyRoka in https://github.com/uutils/coreutils/pull/9682
- fix panic when reference length exceeds line width by @CrazyRoka in https://github.com/uutils/coreutils/pull/9816
- handle invalid regex arguments gracefully instead of panicking by @CrazyRoka in https://github.com/uutils/coreutils/pull/9825
- handle duplicate input files by @CrazyRoka in https://github.com/uutils/coreutils/pull/9823
๐ฆ readlink
- readlink /etc/mtab > /dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10525
๐ฆ rm
- fix safe traversal/access by @mattsu2020 in https://github.com/uutils/coreutils/pull/9577
- fix error reporting for -r on Linux fixing #9011 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10111
- don't treat symlinks as write-protected by @GomesGoncalo in https://github.com/uutils/coreutils/pull/10232
- no abbreviation no preserve root by @cerdelen in https://github.com/uutils/coreutils/pull/10205
- fix for -rf ./ and variants silently delete current directory by @jacek-kurlit in https://github.com/uutils/coreutils/pull/9924
๐ฆ rmdir
- Remove all trailing slashes when checking for symlinks by @cerdelen in https://github.com/uutils/coreutils/pull/9983
๐ฆ runcon
- use `Command::exec()` instead of `libc::execvp()` by @Ecordonnier in https://github.com/uutils/coreutils/pull/9611
- add missing utilities to enable tests/runcon/runcon-compute and removing PATH from runcon -c by @ChrisDryden in https://github.com/uutils/coreutils/pull/10088
๐ฆ seq
- add SIGPIPE handling for GNU compatibility by @ChrisDryden in https://github.com/uutils/coreutils/pull/9657
- Change fuzz_seq_parse_number to should_pass: false by @sylvestre in https://github.com/uutils/coreutils/pull/10335
๐ฆ shred
- ensure deterministic pass sequence compatibility with reference implementation by @sylvestre in https://github.com/uutils/coreutils/pull/9317
- fix(shred): stop immediately on write errors by @naoNao89 in https://github.com/uutils/coreutils/pull/9649
๐ฆ shuf
- Add `--random-seed`, make `--random-source` GNU-compatible, report write failures, optimize by @blyxxyz in https://github.com/uutils/coreutils/pull/7585
- optimize numeric output by avoiding write!() by @CrazyRoka in https://github.com/uutils/coreutils/pull/10048
- Tune performance for -i 1-1000000 by @oech3 in https://github.com/uutils/coreutils/pull/10478
๐ฆ sort
- Add legacy +POS/-POS handling in sort to pass GNU sort-field-limit test by @karanabe in https://github.com/uutils/coreutils/pull/9501
- remove unsafe by @xtqqczze in https://github.com/uutils/coreutils/pull/9694
- fix(sort): GNU sort-continue.sh test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9107
- Align sort debug key annotations with GNU coreutils by @mattsu2020 in https://github.com/uutils/coreutils/pull/9468
- fixing locale benchmarks since locale is cached in OnceCell by @ChrisDryden in https://github.com/uutils/coreutils/pull/9914
- bench(sort): add general numeric benchmark by @mattsu2020 in https://github.com/uutils/coreutils/pull/10101
- feat(sort): add warning messages for obsolescent keys and options by @mattsu2020 in https://github.com/uutils/coreutils/pull/9900
- refine error handling and localize field parsing errors by @mattsu2020 in https://github.com/uutils/coreutils/pull/10068
- + 8 more
๐ฆ split
- Added error when attempting to create file that already exists as directory by @max-amb in https://github.com/uutils/coreutils/pull/9945
๐ฆ stat
- fix(stat): Collection of fixes for stat(1) by @Alonely0 in https://github.com/uutils/coreutils/pull/9078
๐ฆ stdbuf
- use exec instead of forking by @Ecordonnier in https://github.com/uutils/coreutils/pull/9495
๐ฆ stty
- implemented hex and octal parsing for rows and columns by @ChrisDryden in https://github.com/uutils/coreutils/pull/9516
- columns env support and integration testing by @ChrisDryden in https://github.com/uutils/coreutils/pull/9490
- Added unit tests for stty.rs to improve test coverage by @naoNao89 in https://github.com/uutils/coreutils/pull/9094
- use stdin for TTY operations instead of /dev/tty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9881
- Implemented input and output baud rate setting for stty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9517
- bump libc & tmp stop musl-i686 by @oech3 in https://github.com/uutils/coreutils/pull/10072
- Add bad-speed.sh test script to fetch-gnu.sh by @ChrisDryden in https://github.com/uutils/coreutils/pull/10077
- Add cfg_aliases by @oech3 in https://github.com/uutils/coreutils/pull/10443
- + 1 more
๐ฆ sync
- Reset O_NONBLOCK flag after file validation to match GNU behavior by @naoNao89 in https://github.com/uutils/coreutils/pull/9437
๐ฆ tac
- fix error message by @cerdelen in https://github.com/uutils/coreutils/pull/9942
- use temp file for stdin to respect TMPDIR and handle disk-full errors by @ChrisDryden in https://github.com/uutils/coreutils/pull/10094
- add regex flavor translation for compatibility and new test case by @FidelSch in https://github.com/uutils/coreutils/pull/10416
- tac, tail, dd: detect closed stdin before Rust sanitizes it to /dev/null by @ChrisDryden in https://github.com/uutils/coreutils/pull/9664
๐ฆ tail
- fix: patch inotify-dir-recreate test for notify crate's threaded inotify by @ChrisDryden in https://github.com/uutils/coreutils/pull/9666
- Removing flaky inotify-dir patch by @ChrisDryden in https://github.com/uutils/coreutils/pull/9800
- fix --pid with FIFO by using non-blocking open by @ChrisDryden in https://github.com/uutils/coreutils/pull/9663
- fix big number handling and error message quoting by @ChrisDryden in https://github.com/uutils/coreutils/pull/10155
- add --debug flag to show follow implementation mode by @ChrisDryden in https://github.com/uutils/coreutils/pull/10105
- fix pipe-f test by detecting broken stdout pipe by @ChrisDryden in https://github.com/uutils/coreutils/pull/10156
- Fix tail -c panics when requested bytes exceed file size by @dhr412 in https://github.com/uutils/coreutils/pull/10268
- tests: Add 'tests/tail/follow-name' to ignore list by @ChrisDryden in https://github.com/uutils/coreutils/pull/10297
- + 3 more
๐ฆ tee
- allow multiple -a flags by @sylvestre in https://github.com/uutils/coreutils/pull/10293
- tee miss/ing 2>/dev/full should not abort by @oech3 in https://github.com/uutils/coreutils/pull/10637
๐งช test
- fixing unary operators that are getting parsed as argument instead of string literal by @georgepaulsen in https://github.com/uutils/coreutils/pull/9951
- Trim whitespace in integer comparisons by @dezgeg in https://github.com/uutils/coreutils/pull/10489
๐ฆ timeout
- cleanup return values by @Ecordonnier in https://github.com/uutils/coreutils/pull/9576
- use nix kill/setpgid to reduce unsafe by @mattsu2020 in https://github.com/uutils/coreutils/pull/10120
- backport timeout tests from master by @ChrisDryden in https://github.com/uutils/coreutils/pull/10195
- display signal 0 as '0' instead of 'EXIT' in verbose mode by @ChrisDryden in https://github.com/uutils/coreutils/pull/10194
- Improve error handling with explicit expect messages by @naoNao89 in https://github.com/uutils/coreutils/pull/9435
- add all signal handlers, pass on signals to child, add ignored signal handling by @ChrisDryden in https://github.com/uutils/coreutils/pull/10254
๐ฆ touch
- fix: touch -r: dangling symlink reference is accepted Fixes #9703 by @dshemetov in https://github.com/uutils/coreutils/pull/9732
- Use libc::UTIME_NOW in touch when updating time to now by @iburaky2 in https://github.com/uutils/coreutils/pull/9870
- fix: use jiff time for touch tests by @aaron-ang in https://github.com/uutils/coreutils/pull/10093
- extent a test for many device files by @oech3 in https://github.com/uutils/coreutils/pull/10199
๐ฆ truncate
- eliminate duplicate stat() syscall by @Jean-Christian-Cirstea in https://github.com/uutils/coreutils/pull/9527
๐ฆ tsort
- gnu misc tsort.pl by @mattsu2020 in https://github.com/uutils/coreutils/pull/9289
- perf (tsort) : avoid reading the whole input into memory and intern strings by @anastygnome in https://github.com/uutils/coreutils/pull/9872
- Disable tsort_input_parsing_heavy for being too intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/10109
๐ฆ uname
- remove unwrap() for > /dev/full by @oech3 in https://github.com/uutils/coreutils/pull/10517
๐ฆ unexpand
- use byte count for multibyte characters for column width when using -a flag by @JaneIllario in https://github.com/uutils/coreutils/pull/9949
- add support for extended tab stop syntax (+N and /N) by @sylvestre in https://github.com/uutils/coreutils/pull/9265
- fix +0 and /0 handling, add integration tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/10406
๐ฆ uniq
- optimize memory usage for ignore-case comparison by @CrazyRoka in https://github.com/uutils/coreutils/pull/10050
- rename `keys_differ` to `keys_are_equal` by @cakebaker in https://github.com/uutils/coreutils/pull/10070
๐ฆ uptime
- Fix uptime on macOS using sysctl kern.boottime fallback by @naoNao89 in https://github.com/uutils/coreutils/pull/8908
- refactor(uptime): use FluentArgs for loadavg formatting in get_format by @mattsu2020 in https://github.com/uutils/coreutils/pull/10102
- Add -p, --pretty argument by @Ivan-Shaml in https://github.com/uutils/coreutils/pull/10143
๐ฆ users
- Avoid > /dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/10165
๐ฆ wc
- GNU wc-cpu.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9144
- Ensure the output order of stdout and stderror remains unchanged. by @mattsu2020 in https://github.com/uutils/coreutils/pull/9905
- respect POSIXLY_CORRECT for word counting by @dhr412 in https://github.com/uutils/coreutils/pull/10344
- fix word undercount with invalid byte sequences by @dhr412 in https://github.com/uutils/coreutils/pull/10348
- --debug 2>/dev/full does not fail by @oech3 in https://github.com/uutils/coreutils/pull/10590
๐ฆ yes
- Silently handle broken pipe on windows by @ChrisDryden in https://github.com/uutils/coreutils/pull/10429
๐ฆ uucore
- use --suffix to enable backup mode by @jacek-kurlit in https://github.com/uutils/coreutils/pull/9741
- parser: add binary support to determine_number_system and parse_size by @csko in https://github.com/uutils/coreutils/pull/9659
- locale.rs: move more code outside of the unsafe block by @sylvestre in https://github.com/uutils/coreutils/pull/9720
- fix clippy::pedantic warnings in build.rs and generated locale code by @skjha98 in https://github.com/uutils/coreutils/pull/9837
- Remove lossy OS string conversions by @blyxxyz in https://github.com/uutils/coreutils/pull/9337
- document that libselinux caches is_selinux_enabled by @ChrisDryden in https://github.com/uutils/coreutils/pull/9873
- switch to `BigDecimal::powi` implementation by @xtqqczze in https://github.com/uutils/coreutils/pull/9957
- uucore/uptime: remove unreachable code on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/9985
- + 7 more
๐ uudoc
- style(uudoc): update header formatting for options and examples by @hwhsu1231 in https://github.com/uutils/coreutils/pull/10004
- print tldr.zip warning only once per process by @rynewang in https://github.com/uutils/coreutils/pull/10039
๐ฆ coreutils
- Remove limitation for prefix by @oech3 in https://github.com/uutils/coreutils/pull/10261
- Drop find_prefixed_util by @oech3 in https://github.com/uutils/coreutils/pull/10306
- uu: fix typo by @antonkesy in https://github.com/uutils/coreutils/pull/10170
- fix: properly handle write errors for --version and --help output by @naoNao89 in https://github.com/uutils/coreutils/pull/10223
๐ฆ Platform Support
- Add more Cygwin support by @500-internal-server-error in https://github.com/uutils/coreutils/pull/9686
- Bump mio for cygwin by @oech3 in https://github.com/uutils/coreutils/pull/9809
- clippy: allow "cygwin" as value for "target_os" by @cakebaker in https://github.com/uutils/coreutils/pull/10054
- fix: allow selinux on android by @xtqqczze in https://github.com/uutils/coreutils/pull/10419
- runcon, chcon: Don't fetch crates at unsupported target by @oech3 in https://github.com/uutils/coreutils/pull/10360
๐ฆ CI & Build
- GnuTests: Reduce gnproc deps on BSD by @oech3 in https://github.com/uutils/coreutils/pull/9644
- GnuTests: Split online process to a script by @oech3 in https://github.com/uutils/coreutils/pull/9652
- GnuTests: Caches for faster configure and skipping make by @oech3 in https://github.com/uutils/coreutils/pull/9627
- run-gnu-test.sh: Fix nproc broken by cache by @oech3 in https://github.com/uutils/coreutils/pull/9735
- build-gnu.sh: Move {ch,run}con tests to Fedora VM and avoid wrong result by @oech3 in https://github.com/uutils/coreutils/pull/9607
- GnuTests.yml: Fix caches by @oech3 in https://github.com/uutils/coreutils/pull/9739
- build-gnu.sh: Don't hack test suite to force-enable tests by @oech3 in https://github.com/uutils/coreutils/pull/9744
- GnuTests.yml: Discard caches at each build-gnu.sh update by @oech3 in https://github.com/uutils/coreutils/pull/9753
- + 92 more
๐ฆ Code Quality & Cleanup
- clippy: fix map_unwrap_or lint by @xtqqczze in https://github.com/uutils/coreutils/pull/9678
- clippy: fix ptr lints by @xtqqczze in https://github.com/uutils/coreutils/pull/9687
- clippy: enable `needless_raw_string_hashes` lint by @cakebaker in https://github.com/uutils/coreutils/pull/9840
- clippy: fix uninlined_format_args lint by @xtqqczze in https://github.com/uutils/coreutils/pull/9962
- Enable clippy::assigning_clones on OpenBSD by @xtqqczze in https://github.com/uutils/coreutils/pull/9956
- Bump `signal-hook` & add it to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/9979
- benchmark: some minor improvements by @sylvestre in https://github.com/uutils/coreutils/pull/9928
- mac: change the delay value to avoid intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/9895
- + 16 more
๐ Documentation
- README.md: Guide people to release page or main by @oech3 in https://github.com/uutils/coreutils/pull/9709
- DEVELOPMENT.md: Remove a wrong desc by @oech3 in https://github.com/uutils/coreutils/pull/9717
- why-error.md: Cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9738
- why-error.md: Remove 2 tests by @oech3 in https://github.com/uutils/coreutils/pull/9799
- why-error.md: Remove 1 test by @oech3 in https://github.com/uutils/coreutils/pull/9826
- why-*.md: Drop as issue is enough by @oech3 in https://github.com/uutils/coreutils/pull/9835
- CONTRIBUTING.md: update crate structure by @cakebaker in https://github.com/uutils/coreutils/pull/9861
- CONTRIBUTING.md: Bug report with LANG=C by @oech3 in https://github.com/uutils/coreutils/pull/9890
- + 5 more
๐ฆ Dependency Updates
- chore(deps): update rust crate console to v0.16.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9675
- chore(deps): update rust crate clap_complete to v4.5.62 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9698
- chore(deps): update rust crate zip to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9731
- chore(deps): update rust crate crc-fast to v1.8.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9730
- chore(deps): update rust crate linux-raw-sys to v0.12.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9787
- chore(deps): update rust crate divan to v4.2.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9786
- chore(deps): update rust crate crc-fast to v1.9.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9791
- chore(deps): update rust crate jiff to v0.2.17 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9830
- + 44 more
โจ New Contributors
- @xtqqczze made their first contribution in https://github.com/uutils/coreutils/pull/9678
- @Jean-Christian-Cirstea made their first contribution in https://github.com/uutils/coreutils/pull/9527
- @jacek-kurlit made their first contribution in https://github.com/uutils/coreutils/pull/9741
- @csko made their first contribution in https://github.com/uutils/coreutils/pull/9659
- @nutthawit made their first contribution in https://github.com/uutils/coreutils/pull/9788
- @dshemetov made their first contribution in https://github.com/uutils/coreutils/pull/9732
- @500-internal-server-error made their first contribution in https://github.com/uutils/coreutils/pull/9686
- @CrazyRoka made their first contribution in https://github.com/uutils/coreutils/pull/9681
- + 34 more
commit: 7f0053075eb61c0982674dbf143537a6316f04c8
๐ฆ ๐ฆ **Rust Coreutils 0.5.0 Release:**
- ---
๐ฆ Highlights:
- Improved GNU Compatibility
- 566 passing tests (+22 from 0.4.0), achieving 87.75% compatibility
- Reduced failures from 56 to 55 (-1) and skipped tests from 33 to 23 (-10)
- Updated GNU reference from 9.8 to 9.9, adding 11 new tests
- Major improvements to `fold`, `cksum`, `install`, and `numfmt`
- Unicode & Text Processing Enhancements
- `fold`: Added combining character support for proper Unicode text wrapping
- `ptx`: Implemented GNU mode with dumb terminal format
- + 18 more
๐งช GNU Test Suite Compatibility:
- | Result | 0.4.0 | 0.5.0 | Change 0.4.0 to 0.5.0 | % Total 0.4.0 | % Total 0.5.0 | % Change 0.4.0 to 0.5.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 544 | 566 | +22 | 85.80% | 87.75% | +1.95% |
- | Skip | 33 | 23 | -10 | 5.21% | 3.57% | -1.64% |
- | Fail | 56 | 55 | -1 | 8.83% | 8.53% | -0.30% |
- | Error | 1 | 1 | 0 | 0.16% | 0.16% | 0% |
- | Total | 634 | 645 | +11 (new tests) | | | |
- ---
- + 2 more
๐ฆ Call to Action:
- ๐ Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- ๐ Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
- ๐ Download the latest release: [https://uutils.github.io](https://uutils.github.io)
๐ฆ basenc
- basenc: Fix basenc.pl GNU-compat tests pass by @karanabe in https://github.com/uutils/coreutils/pull/9203
- fix(Basenc):fix GNU coreutils test bounded-memory.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9536
- base32, base64, baseenc:Simplifying the base encoding uu_app and adding basic buffer tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9409
๐ฆ chmod
- chmod:fix safe traversal/access by @mattsu2020 in https://github.com/uutils/coreutils/pull/9554
๐ฆ cksum
- cksum/hashsum: merge digest computation & various improvements by @RenjiSann in https://github.com/uutils/coreutils/pull/9135
- cksum: Fix GNU test cksum-base64-untagged by @RenjiSann in https://github.com/uutils/coreutils/pull/9344
- Add --debug flag to cksum by @naoNao89 in https://github.com/uutils/coreutils/pull/9088
- cksum: Fix GNU test `cksum-c.sh` after bump to 9.9 by @RenjiSann in https://github.com/uutils/coreutils/pull/9511
- cksum: small improvements, l10n by @RenjiSann in https://github.com/uutils/coreutils/pull/9532
- Fix hardware capabilities detection; cksum --debug by @RenjiSann in https://github.com/uutils/coreutils/pull/9603
๐ฆ cp
- cp: allow directory merging when destination was just created by @vikram-kangotra in https://github.com/uutils/coreutils/pull/9325
- cp: Adding test to cover no dereference when copying symlinks by @ChrisDryden in https://github.com/uutils/coreutils/pull/9623
- cp: Enabling cp force flag to run on windows by @ChrisDryden in https://github.com/uutils/coreutils/pull/9624
- Add comprehensive readonly file regression tests for cp by @naoNao89 in https://github.com/uutils/coreutils/pull/9045
๐ฆ du
- du: Alias -A --apparent-size by @oech3 in https://github.com/uutils/coreutils/pull/9555
- du: handle `--files0-from=-` with piped in `-` by @cakebaker in https://github.com/uutils/coreutils/pull/8985
๐ฆ env
- Adding integration tests for the braced variable parsing in env by @ChrisDryden in https://github.com/uutils/coreutils/pull/9459
- env: remove outdated comment by @cakebaker in https://github.com/uutils/coreutils/pull/9496
- env: use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9614
๐ฆ fold
- fold:Improve fold bench data generation by @mattsu2020 in https://github.com/uutils/coreutils/pull/9210
- fix(fold): GNU fold-characters.sh test by @mattsu2020 in https://github.com/uutils/coreutils/pull/9126
- Fold: Adding combining character support by @ChrisDryden in https://github.com/uutils/coreutils/pull/9328
๐ฆ hashsum
- hashsum: Fix length processing to fix last GNU test by @RenjiSann in https://github.com/uutils/coreutils/pull/9569
๐ฆ install
- install: ignore umask by @akretz in https://github.com/uutils/coreutils/pull/9254
- Enhance mode parsing to support comma-separated mode strings in install command by @Vesal-J in https://github.com/uutils/coreutils/pull/9298
- install: do not call chown when called as root by @Ecordonnier in https://github.com/uutils/coreutils/pull/9477
๐ฆ ln
- ln: add error handling for hard link creation on directories by @FidelSch in https://github.com/uutils/coreutils/pull/9342
๐ฆ ls
- ls: prevent ReadDir from closing before entries are processed by @vikram-kangotra in https://github.com/uutils/coreutils/pull/9410
๐ฆ mkfifo
- tests/mkfifo: added a test to check mkfifo permission denied error for code coverage by @asder8215 in https://github.com/uutils/coreutils/pull/9586
๐ฆ nl
- fix(nl): allow repeated flags to match GNU nl behavior (fixes #9132) by @naoNao89 in https://github.com/uutils/coreutils/pull/9140
๐ฆ nohup
- nohup: use Command::exec() instead of libc::execvp() by @Ecordonnier in https://github.com/uutils/coreutils/pull/9613
๐ฆ numfmt
- numfmt: support quetta/ronna suffixes and fix error messages by @naoNao89 in https://github.com/uutils/coreutils/pull/9280
๐ฆ od
- od: fix GNU od.pl by @mattsu2020 in https://github.com/uutils/coreutils/pull/9334
- fix(od):fix GNU coreutils test od float.sh by @mattsu2020 in https://github.com/uutils/coreutils/pull/9534
๐ฆ pr
- pr: fix header formatting for custom date formats starting with '+' by @sylvestre in https://github.com/uutils/coreutils/pull/9252
๐ฆ ptx
- ptx: implement GNU mode with dumb terminal format by @sylvestre in https://github.com/uutils/coreutils/pull/9573
๐ฆ readlink
- readlink: test calling without args by @cakebaker in https://github.com/uutils/coreutils/pull/9230
- readlink:Correction to Symbolic Link Handling by @mattsu2020 in https://github.com/uutils/coreutils/pull/9633
๐ฆ seq
- fix(seq): handle BrokenPipe like GNU by @mattsu2020 in https://github.com/uutils/coreutils/pull/9471
- seq:fix test_broken_pipe_still_exits_success by @mattsu2020 in https://github.com/uutils/coreutils/pull/9520
- seq: adding large integers benchmarks by @ChrisDryden in https://github.com/uutils/coreutils/pull/9561
๐ฆ shuf
- shuf: add benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/9320
๐ฆ sort
- sort: make compression program failures non-fatal, warn and fallback to plain files by @sylvestre in https://github.com/uutils/coreutils/pull/9266
๐ฆ stdbuf
- Remove unsafe unwrap() calls in stdbuf error handling by @naoNao89 in https://github.com/uutils/coreutils/pull/9429
๐ฆ stty
- Adding TTY helper for unix to be able to create tests for stty and more by @ChrisDryden in https://github.com/uutils/coreutils/pull/9348
- Using the pty helper function for the more bin testing by @ChrisDryden in https://github.com/uutils/coreutils/pull/9441
- stty: baud parsing integration tests and validation by @ChrisDryden in https://github.com/uutils/coreutils/pull/9454
- stty: Implemented saved state parser for stty by @ChrisDryden in https://github.com/uutils/coreutils/pull/9480
- stty: Changing shell command to add recognizing a TTY for stty tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/9336
๐ฆ tail
- tail: batch inotify events to prevent redundant headers after SIGSTOP/SIGCONT by @sylvestre in https://github.com/uutils/coreutils/pull/9574
- tail: fix intermittent overlay-headers test by batching inotify events by @sylvestre in https://github.com/uutils/coreutils/pull/9598
๐ฆ tee
- tee: fix poll timeout causing intermittent hangs with -p flag by @sylvestre in https://github.com/uutils/coreutils/pull/9585
๐ฆ timeout
- Reducing sleep times and timeout times in test_timeout by @ChrisDryden in https://github.com/uutils/coreutils/pull/9448
- timeout: cleanup return values by @Ecordonnier in https://github.com/uutils/coreutils/pull/9576
- timeout: remove FIXME in test by @Ecordonnier in https://github.com/uutils/coreutils/pull/9580
๐ฆ dd
- dd: Handle slow transfer rates in progress display by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9529
๐ฆ uucore
- uucore: embed system locale on cargo install by @WaterWhisperer in https://github.com/uutils/coreutils/pull/8604
- feat(uucore): add shared hardware detection module by @naoNao89 in https://github.com/uutils/coreutils/pull/9279
- uucore: support cygwin by @ognevny in https://github.com/uutils/coreutils/pull/9535
- uucore: mode parsing: support comma-separated modes by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9578
๐ uudoc
- uudoc: fix manpage for individual utilities has wrong name (nit) by @shayelkin in https://github.com/uutils/coreutils/pull/9152
๐ฆ CI & Build
- CICD.yml: split PROFILE= from CARGOFLAGS by @oech3 in https://github.com/uutils/coreutils/pull/9219
- GNUmakefile: use PROFILE_CMD at make test by @oech3 in https://github.com/uutils/coreutils/pull/9214
- GNUmakefile: generalize logic for SELINUX_PROGS for many platforms by @oech3 in https://github.com/uutils/coreutils/pull/9221
- build-gnu.sh: Let SELinux optional to use it locally without libselinux by @oech3 in https://github.com/uutils/coreutils/pull/9220
- freebsd.yml: remove not working PROFILE= by @oech3 in https://github.com/uutils/coreutils/pull/9225
- GNUmakefile: Remove check for LIBSELINUX_ENABLED by @oech3 in https://github.com/uutils/coreutils/pull/9228
- Update redoxer and reenable Redox OS in CI by @jackpot51 in https://github.com/uutils/coreutils/pull/9233
- GNUmakefile: drop not used use_default:=1 by @oech3 in https://github.com/uutils/coreutils/pull/9231
- + 45 more
๐ Documentation
- README.md: profiles for binary size by @oech3 in https://github.com/uutils/coreutils/pull/9268
- installation.md: Fix wrong reference for AUR by @oech3 in https://github.com/uutils/coreutils/pull/9447
- README.md: note that separator is needed for PROG_PREFIX by @oech3 in https://github.com/uutils/coreutils/pull/9444
- installation.md: Ref MSYS2 package by @oech3 in https://github.com/uutils/coreutils/pull/9456
- installation.md: Add MSYS2 Cygwin package by @oech3 in https://github.com/uutils/coreutils/pull/9566
- why-skip.md: Remove an OOD doc by @oech3 in https://github.com/uutils/coreutils/pull/9506
- why-skip.md: Remove a passing test by @oech3 in https://github.com/uutils/coreutils/pull/9507
- why-skip.md: Remove 4 sparse-* by @oech3 in https://github.com/uutils/coreutils/pull/9508
- + 9 more
๐ฆ Code Quality & Cleanup
- test: existing file is newer than non-existing file by @cakebaker in https://github.com/uutils/coreutils/pull/9245
- move the factor divan bench into the actual directory by @sylvestre in https://github.com/uutils/coreutils/pull/9296
- Remove high variance benchmark functions by @sylvestre in https://github.com/uutils/coreutils/pull/9311
- Bump `markdownlint_cli2_action` & fix warnings by @cakebaker in https://github.com/uutils/coreutils/pull/9309
- replace number_prefix by unit-prefix by @sylvestre in https://github.com/uutils/coreutils/pull/9322
- coreutils: Print utility not found to stderr by @oech3 in https://github.com/uutils/coreutils/pull/9588
- use github URLs for fetching tldr.zip by @dgilman in https://github.com/uutils/coreutils/pull/9584
- unit test coverage: fix missing coverage by @martinkunkel2 in https://github.com/uutils/coreutils/pull/9606
- + 3 more
โก Performance & Benchmarking
- benches: Migrate factor benchmarks from Criterion to Divan by @naoNao89 in https://github.com/uutils/coreutils/pull/9247
- Add functionality to show when tests were previously skipped and now failing accurately by @ChrisDryden in https://github.com/uutils/coreutils/pull/9521
๐ฆ Version Management
- update gnu ref to 9.9 + improve the script by @sylvestre in https://github.com/uutils/coreutils/pull/9216
- prepare version 0.5.0 by @sylvestre in https://github.com/uutils/coreutils/pull/9596
๐ฆ Dependency Updates
- chore(deps): update rust crate crc-fast to v1.7.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9224
- chore(deps): update rust crate indicatif to v0.18.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9226
- chore(deps): update rust crate crc-fast to v1.8.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9282
- Update vmactions/freebsd-vm action to v1.2.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9304
- chore(deps): update rust crate clap to v4.5.52 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9316
- chore(deps): update rust crate clap_complete to v4.5.61 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9343
- chore(deps): update rust crate clap to v4.5.53 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9340
- GNUmakefile: Use libstdbuf.* instead of libstdbuf* by @oech3 in https://github.com/uutils/coreutils/pull/9345
- + 13 more
โจ New Contributors
- @WaterWhisperer made their first contribution in https://github.com/uutils/coreutils/pull/8604
- @ChrisDryden made their first contribution in https://github.com/uutils/coreutils/pull/9328
- @FidelSch made their first contribution in https://github.com/uutils/coreutils/pull/9342
- @ognevny made their first contribution in https://github.com/uutils/coreutils/pull/9535
- @shayelkin made their first contribution in https://github.com/uutils/coreutils/pull/9152
- @dgilman made their first contribution in https://github.com/uutils/coreutils/pull/9584
- Full Changelog: https://github.com/uutils/coreutils/compare/0.4.0...0.5.0
๐ฆ ๐ฆ **Rust Coreutils 0.4.0 Release:**
- ---
๐ฆ Highlights:
- Enhanced GNU Compatibility
- 544 passing tests (+12 from 0.3.0), achieving 85.80% compatibility
- Reduced failures from 68 to 56 (-12)
- Better compatibility with GNU `date` timezone handling
- Algorithm & Performance Improvements
- `factor`: Integrated num_prime crate for faster u64/u128 factorization
- `tsort`: Fixed stack overflow issues with iterative DFS implementation
- `cksum`: Added comprehensive performance benchmarks
- + 11 more
๐งช GNU Test Suite Compatibility:
- | Result | 0.3.0 | 0.4.0 | Change 0.3.0 to 0.4.0 | % Total 0.3.0 | % Total 0.4.0 | % Change 0.3.0 to 0.4.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 532 | 544 | +12 | 83.91% | 85.80% | +1.89% |
- | Skip | 33 | 33 | 0 | 5.20% | 5.20% | +0.01% |
- | Fail | 68 | 56 | -12 | 10.73% | 8.83% | -1.90% |
- | Error | 1 | 1 | 0 | 0.16% | 0.16% | 0% |
- | Total | 634 | 634 | 0 | | | |
- ---
- + 2 more
๐ฆ Call to Action:
- ๐ Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- ๐ Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
- ๐ Download the latest release: [https://uutils.github.io](https://uutils.github.io)
๐ฆ base64
- Align base64 with GNU base64.pl tests by @karanabe in https://github.com/uutils/coreutils/pull/9194
๐ฆ cat
- Fix EINTR handling in cat by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
- fix(cat): refine unsafe overwrite detection for appending files by @mattsu2020 in https://github.com/uutils/coreutils/pull/9122
๐ฆ chown
- Fix chown tests for FreeBSD and macOS by @akretz in https://github.com/uutils/coreutils/pull/9058
๐ฆ cksum
- Refactor cksum for incoming merge with hashsum, Fix behavior for `--text` and `--untagged` by @RenjiSann in https://github.com/uutils/coreutils/pull/9024
- Fix "cksum: --length 0 shouldn't fail for algorithms that don't support --length" by @RenjiSann in https://github.com/uutils/coreutils/pull/9032
- Add support for sha2, sha3 by @RenjiSann in https://github.com/uutils/coreutils/pull/9035
- Fix GNU `cksum-c.sh` and `cksum-sha3.sh` by @RenjiSann in https://github.com/uutils/coreutils/pull/9063
- add cksum performance benchmarks by @naoNao89 in https://github.com/uutils/coreutils/pull/9075
- fix(cksum): correct CRC32B implementation to match GNU cksum by @naoNao89 in https://github.com/uutils/coreutils/pull/9026
๐ฆ comm
- Fix EINTR handling in comm by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
- hold the stdin lock for the whole duration of the program by @andreacorbellini in https://github.com/uutils/coreutils/pull/9085
๐ฆ date
- fix(date): support timezone abbreviations in date --set by @naoNao89 in https://github.com/uutils/coreutils/pull/8944
- date, touch: fix parse_datetime 0.13.0 compatibility by @naoNao89 in https://github.com/uutils/coreutils/pull/8843
- improve compat with GNU by @sylvestre in https://github.com/uutils/coreutils/pull/9022
- remove `chrono` by @cakebaker in https://github.com/uutils/coreutils/pull/9048
- add --uct alias and allow multiple option aliases together by @sylvestre in https://github.com/uutils/coreutils/pull/9181
๐ฆ dd
- fix(dd): handle O_DIRECT partial block writes by @naoNao89 in https://github.com/uutils/coreutils/pull/9016
๐ฆ du
- fix dead code warnings in test on Android by @cakebaker in https://github.com/uutils/coreutils/pull/9131
- disable some benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/9167
- also disable du_human_balanced_tree as benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/9198
๐ฆ factor
- base benchmarking for single/multiple u64, u128, and >u128 by @asder8215 in https://github.com/uutils/coreutils/pull/9182
- use num_prime crate's u64 and u128 factorization methods to speed up the performance by @asder8215 in https://github.com/uutils/coreutils/pull/9171
๐ฆ hashsum
- don't fail on dirs by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8930
- Remove non-GNU binaries (fix cksum interface divergence) by @oech3 in https://github.com/uutils/coreutils/pull/9153
๐ฆ install
- fix the error message by @sylvestre in https://github.com/uutils/coreutils/pull/9188
๐ฆ ls
- use file path for ACL check by @akretz in https://github.com/uutils/coreutils/pull/9055
๐ฆ mkdir
- Fix stack overflow with deeply nested directories by @naoNao89 in https://github.com/uutils/coreutils/pull/8947
- remove `#[allow(unused_variables)]` by @cakebaker in https://github.com/uutils/coreutils/pull/9109
๐ฆ od
- Fix EINTR handling in od by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
๐ฆ printenv
- add more tests by @ya7on in https://github.com/uutils/coreutils/pull/9151
๐ฆ printf
- handle extremely large format widths gracefully to fix GNU test panic by @sylvestre in https://github.com/uutils/coreutils/pull/9133
๐ฆ readlink
- fix(readlink): emit GNU-style Invalid argument for non-symlinks by @karanabe in https://github.com/uutils/coreutils/pull/9189
๐ฆ stdbuf
- add support for OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9185
๐ฆ timeout
- add missing extra help by @matttbe in https://github.com/uutils/coreutils/pull/9160
๐ฆ truncate
- feat(truncate): allow negative size values for truncation by @mattsu2020 in https://github.com/uutils/coreutils/pull/9129
๐ฆ tsort
- use iterative dfs to prevent stack overflows by @Nekrolm in https://github.com/uutils/coreutils/pull/8737
- fix minimal cycle reporting and precise back-edge removal by @naoNao89 in https://github.com/uutils/coreutils/pull/8786
๐ฆ uptime
- Fix build and tests for uptime on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9158
- fix clippy warning manual-let-else on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9193
๐ uudoc
- respect SKIP_UTILS by @oech3 in https://github.com/uutils/coreutils/pull/8982
- Add example to manpage by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/7841
๐ Documentation
- release notes: add 0.2.2 by @sylvestre in https://github.com/uutils/coreutils/pull/8998
- README: Fix coverage badge URL by @RenjiSann in https://github.com/uutils/coreutils/pull/9046
- README.md: Fix about manpage generation by @oech3 in https://github.com/uutils/coreutils/pull/8994
- README.md: Show how to build all individual bins by cargo by @oech3 in https://github.com/uutils/coreutils/pull/9069
- extensions.md: mark hashsum as deprecated by @oech3 in https://github.com/uutils/coreutils/pull/9089
- doc: rename file by @sylvestre in https://github.com/uutils/coreutils/pull/9208
๐ฆ CI & Build
- chore(deps): update github artifact actions (major) by @renovate[bot] in https://github.com/uutils/coreutils/pull/8997
- publish script: add progress by @sylvestre in https://github.com/uutils/coreutils/pull/9008
- GNUmakefile: Add a value for cross-build by @oech3 in https://github.com/uutils/coreutils/pull/9015
- GNUmakefile: Don't install part of hashsum if we excluded hashsum by @oech3 in https://github.com/uutils/coreutils/pull/9036
- ci: remove `code_format` job from `FixPR` workflow by @cakebaker in https://github.com/uutils/coreutils/pull/9043
- Append .bash to completions by @oech3 in https://github.com/uutils/coreutils/pull/9049
- ci: remove deprecated `lima-actions/ssh` by @cakebaker in https://github.com/uutils/coreutils/pull/9054
- GNUmakefile: Do not use install -v by @oech3 in https://github.com/uutils/coreutils/pull/9051
- + 8 more
๐ฆ Code Quality & Cleanup
- fix: make visible alias by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/9041
- fix: show ignored args by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/9040
- rustdoc: fix broken intra doc links by @cakebaker in https://github.com/uutils/coreutils/pull/9097
- clippy: re-enable `unnecessary_semicolon` lint by @cakebaker in https://github.com/uutils/coreutils/pull/9143
- Remove `test_keys2` binary by @cakebaker in https://github.com/uutils/coreutils/pull/9183
- Typo by @sylvestre in https://github.com/uutils/coreutils/pull/9197
โก Performance & Benchmarking
- bench: remove 'sort_random_strings' by @sylvestre in https://github.com/uutils/coreutils/pull/9030
- bench: tsort_input_parsing_heavy reduce the input side by @sylvestre in https://github.com/uutils/coreutils/pull/9067
- Fix base64 benchmarks by @akretz in https://github.com/uutils/coreutils/pull/9082
- Revert "Fix base64 benchmarks" by @sylvestre in https://github.com/uutils/coreutils/pull/9139
- Disable variance-heavy benchmark tests by @sylvestre in https://github.com/uutils/coreutils/pull/9201
๐ฆ Version Management
- prepare version 0.4.0 by @sylvestre in https://github.com/uutils/coreutils/pull/9205
๐ฆ Dependency Updates
- be prescriptive on the codspeed-divan-compat version by @sylvestre in https://github.com/uutils/coreutils/pull/9007
- Bump `linux-raw-sys` from `0.11` to `0.12` by @cakebaker in https://github.com/uutils/coreutils/pull/9019
- chore(deps): update rust crate bstr to v1.12.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9038
- chore(deps): update rust crate indicatif to v0.18.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9053
- chore(deps): update rust crate hex-literal to v1.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9077
- chore(deps): update rust crate clap to v4.5.51 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9079
- chore(deps): update rust crate clap_complete to v4.5.60 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9087
- chore(deps): update rust crate crc-fast to v1.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9095
- + 9 more
โจ New Contributors
- @akretz made their first contribution in https://github.com/uutils/coreutils/pull/9058
- @andreacorbellini made their first contribution in https://github.com/uutils/coreutils/pull/9085
- @ya7on made their first contribution in https://github.com/uutils/coreutils/pull/9151
- @matttbe made their first contribution in https://github.com/uutils/coreutils/pull/9160
- Full Changelog: https://github.com/uutils/coreutils/compare/0.3.0...0.4.0
๐ฆ ๐ฆ **Rust Coreutils 0.3.0 Release:**
- ---
๐ฆ Highlights:
- Performance Improvements
- Compared to GNU:
- `base64` is 1.20x faster
- `expand` is 1.80x faster
- `unexpand` is 1.50x faster
- `nl` is 1.57x faster
- `sort` is 3.72x faster for regular sorting and 1.46x faster for numeric sorting
- `fold` is 1.19x faster through optimization
- + 18 more
๐งช GNU Test Suite Compatibility:
- *Note: Test result changes are primarily due to upgrading our reference from GNU coreutils 9.7 to 9.8, which introduced 16 new tests and updated existing test expectations.*
- | Result | 0.2.0 | 0.3.0 | Change 0.2.0 to 0.3.0 | % Total 0.2.0 | % Total 0.3.0 | % Change 0.2.0 to 0.3.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 538 | 532 | -6 | 87.06% | 83.91% | -3.15% |
- | Skip | 27 | 33 | +6 | 4.37% | 5.20% | +0.83% |
- | Fail | 52 | 68 | +16 | 8.42% | 10.73% | +2.31% |
- | Error | 1 | 1 | 0 | 0.16% | 0.16% | 0% |
- | Total | 618 | 634 | +16 (new tests) | | | |
- + 3 more
๐ฆ Call to Action:
- ๐ Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- ๐ Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
- ๐ Download the latest release: [https://uutils.github.io](https://uutils.github.io)
๐ฆ base64
- Input reuse on base64 by @ThePseudo in https://github.com/uutils/coreutils/pull/8587
- Add benchmark for base64 by @ThePseudo in https://github.com/uutils/coreutils/pull/8768
๐ฆ basenc
- basenc: implement --base58 encoding option by @AnarchistHoneybun in https://github.com/uutils/coreutils/pull/8751
- base58: it wasn't working properly with long input by @sylvestre in https://github.com/uutils/coreutils/pull/8818
๐ฆ chgrp
- safe traversal: adjust chmod & chgrp to use it by @sylvestre in https://github.com/uutils/coreutils/pull/8632
๐ฆ chmod
- safe traversal: adjust chmod & chgrp to use it by @sylvestre in https://github.com/uutils/coreutils/pull/8632
๐ฆ cksum
- cksum: improve performance (Closes: #8573) by @RenjiSann in https://github.com/uutils/coreutils/pull/8643
๐ฆ cp
- cp: fix Ioctl casting for ppc64 (Closes: #8161) by @maxfilov in https://github.com/uutils/coreutils/pull/8637
- Replace casting to Ioctl with a const from libc by @maxfilov in https://github.com/uutils/coreutils/pull/8641
- cp: fix recursive cp fails on files with trailing backslashes by @Anonymous-AAA in https://github.com/uutils/coreutils/pull/8747
- feat(cp): optimize directory copy by caching file checks and refactoring calls by @mattsu2020 in https://github.com/uutils/coreutils/pull/8805
- cp: fix crash on -T/--no-preserve-target by @Alonely0 in https://github.com/uutils/coreutils/pull/8864
- cp: show relative path of source file with -vr by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8887
- cp: display symlink creation with --verbose by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8899
- docs: add benchmarking guidelines for cp by @mattsu2020 in https://github.com/uutils/coreutils/pull/8807
๐ฆ csplit
- csplit: create final empty file with --suppress-matched to match GNU (fixes #7286) by @naoNao89 in https://github.com/uutils/coreutils/pull/8655
๐ฆ date
- date: use --reference=file to display the file modification time by @yuankunzhang in https://github.com/uutils/coreutils/pull/8630
- date: consolidate date parsing logic by @yuankunzhang in https://github.com/uutils/coreutils/pull/8629
- date: implement `--resolution` flag by @Banzobotic in https://github.com/uutils/coreutils/pull/8686
- date: follow GNU pure-number -d semantics by @naoNao89 in https://github.com/uutils/coreutils/pull/8907
๐ฆ df
- df: follow symlinks by @bakanovskii in https://github.com/uutils/coreutils/pull/8763
- df: add tracing zero and rounding by @bakanovskii in https://github.com/uutils/coreutils/pull/8685
- df: treat env var with zero block size same as invalid by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8932
- tests(df): Fix test_total to avoid whitespace parsing issues by @naoNao89 in https://github.com/uutils/coreutils/pull/8799
๐ฆ dirname
- Fix dirname handling of paths ending in `/.` by @naoNao89 in https://github.com/uutils/coreutils/pull/8911
๐ฆ du
- Adjust rm & du to use safe traversal (openat, unlinkat, etc) by @sylvestre in https://github.com/uutils/coreutils/pull/8517
- du: some small refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/8631
- du: add benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8774
- du: ignore env zero blocksize by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8961
๐ฆ expand
- expand: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8800
- expand: improve the performances - 1.80 faster than GNU by @sylvestre in https://github.com/uutils/coreutils/pull/8803
๐ฆ expr
- expr: fix some multibyte issues by @sylvestre in https://github.com/uutils/coreutils/pull/8606
๐ฆ fold
- fold: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8801
- fold: improve the performances - now same as GNU by @sylvestre in https://github.com/uutils/coreutils/pull/8804
๐ฆ hashsum
- hashsum: fix help text to show actual utility name by @AnarchistHoneybun in https://github.com/uutils/coreutils/pull/8650
- hashsum: remove the usage of the mut by @sylvestre in https://github.com/uutils/coreutils/pull/8692
- Patch to add hashsum symlinks with tests by @tpowa in https://github.com/uutils/coreutils/pull/8647
- hashsum: improve hashsum using 32KiB bufreader by @psvri in https://github.com/uutils/coreutils/pull/8869
๐ฆ hostname
- hostname: fix -d flag by @bakanovskii in https://github.com/uutils/coreutils/pull/8657
- Build {host,u}name on Windows by @oech3 in https://github.com/uutils/coreutils/pull/8950
๐ฆ id
- id: added '-a' argument by @erammos in https://github.com/uutils/coreutils/pull/8733
๐ฆ install
- tests/install/install-Z-selinux: fix selinux for install by @sylvestre in https://github.com/uutils/coreutils/pull/8307
๐ฆ ln
- Fix ln -f handling when source and destination are the same entry by @mattsu2020 in https://github.com/uutils/coreutils/pull/8838
- Allow to replace ln -fs and hardlink on Windows by default by @oech3 in https://github.com/uutils/coreutils/pull/8810
๐ฆ ls
- ls: Lazily obtain FileType, eagerly obtain Metadata when Metadata is available by @kimono-koans in https://github.com/uutils/coreutils/pull/8753
- ls: remove unnecessary getgrgid handling for Redox OS by @Connor-GH in https://github.com/uutils/coreutils/pull/8779
- ls: add some benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/8738
- ls: Implement -f flag to disable sorting and enable -a by @naoNao89 in https://github.com/uutils/coreutils/pull/8824
- ls: fix zero block size handling to match GNU ls by @yrakcaz in https://github.com/uutils/coreutils/pull/8928
- tests(ls): Add GNU-compat TIME_STYLE tests (#4627) by @naoNao89 in https://github.com/uutils/coreutils/pull/8796
๐ฆ mv
- mv: support moving source to a symlink directory by @yuankunzhang in https://github.com/uutils/coreutils/pull/8589
- mv: improve the verbose mode to make tests/mv/mv-special-1.sh pass by @sylvestre in https://github.com/uutils/coreutils/pull/8521
๐ฆ nl
- nl: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8808
- nl: improve the performances by @sylvestre in https://github.com/uutils/coreutils/pull/8811
๐ฆ nohup
- test(nohup): improve coverage for fd replacement and error paths by @naoNao89 in https://github.com/uutils/coreutils/pull/8920
๐ฆ numfmt
- numfmt: add benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8726
๐ฆ od
- od: fix options after filename issue by @Anonymous-AAA in https://github.com/uutils/coreutils/pull/8624
- od: add support for -S by @sylvestre in https://github.com/uutils/coreutils/pull/8849
- od: fix incomplete test & apply small refactorings to tests by @cakebaker in https://github.com/uutils/coreutils/pull/8941
๐ฆ pinky
- pinky: fix time format by @bakanovskii in https://github.com/uutils/coreutils/pull/8666
- pinky: add --lookup flag by @bakanovskii in https://github.com/uutils/coreutils/pull/8669
- pinky: move unit test away from the integration tests by @cakebaker in https://github.com/uutils/coreutils/pull/8671
๐ฆ ptx
- fix(ptx): Remove extra space before truncation marker and add a related test by @Misakait in https://github.com/uutils/coreutils/pull/8784
- fix(ptx): Correct various output formatting bugs by @Misakait in https://github.com/uutils/coreutils/pull/8787
- fix(ptx): Correct reference format for stdin by @Misakait in https://github.com/uutils/coreutils/pull/8806
- fix(ptx): Align text wrapping behavior with GNU in traditional mode by @Misakait in https://github.com/uutils/coreutils/pull/8820
๐ฆ realpath
- realpath: implement -E by @sylvestre in https://github.com/uutils/coreutils/pull/8757
๐ฆ rm
- Adjust rm & du to use safe traversal (openat, unlinkat, etc) by @sylvestre in https://github.com/uutils/coreutils/pull/8517
- rm: add the --progress option like with cp & mv by @sylvestre in https://github.com/uutils/coreutils/pull/8567
๐ฆ seq
- seq: support non-utf8 for `--separator` & `--terminator` by @cakebaker in https://github.com/uutils/coreutils/pull/8681
- clippy: move `unexpected_cfgs` to workspace lints & fix warnings in `seq` by @cakebaker in https://github.com/uutils/coreutils/pull/8859
๐ฆ sort
- sort: add benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8735
- sort: adapt error message to pass `sort-files0-from` by @cakebaker in https://github.com/uutils/coreutils/pull/8748
- sort: also declare sort_locale_bench as benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8780
- sort: add a bench for long line by @sylvestre in https://github.com/uutils/coreutils/pull/8886
- sort: fix newline handling across large and/or multiple files by @jacob-greenfield in https://github.com/uutils/coreutils/pull/8746
- Reduce variance in sort benchmarks by reusing temp file by @naoNao89 in https://github.com/uutils/coreutils/pull/8939
- feat(sort): auto-tune buffer sizing from available memory by @mattsu2020 in https://github.com/uutils/coreutils/pull/8959
- Improve sort buffer sizing heuristics and honor explicit --buffer-size (#8833)
๐ฆ stat
- stat: fix mount point handling for non-UTF8 paths by @dekuu5 in https://github.com/uutils/coreutils/pull/8538
- stat: fix %N symlink to be single quote instead of double quote by @dekuu5 in https://github.com/uutils/coreutils/pull/8791
- Include subsecond precision in stat atime/ctime by @gaul in https://github.com/uutils/coreutils/pull/8903
๐ฆ stdbuf
- stdbuf: fix a publish issue by @sylvestre in https://github.com/uutils/coreutils/pull/8566
๐ฆ stty
- move stty to UNIX_PROGS by @oech3 in https://github.com/uutils/coreutils/pull/8925
๐ฆ tail
- Add tests/tail/overlay-headers to the intermittent list by @sylvestre in https://github.com/uutils/coreutils/pull/8736
๐ฆ tee
- tests(tee): Add GNU-compat write-error and broken-pipe tests (#4627) by @naoNao89 in https://github.com/uutils/coreutils/pull/8797
๐ฆ timeout
- tests/timeout: remove unnecessary stderr check for test_kill_subprocess by @elliotwesoff in https://github.com/uutils/coreutils/pull/8845
๐ฆ touch
- touch: adapt expected error message in test by @cakebaker in https://github.com/uutils/coreutils/pull/8599
- touch: simplify some tests by using `new_ucmd!()` by @cakebaker in https://github.com/uutils/coreutils/pull/8602
- Remove additional touch when feat_common_core is required by @zdiff in https://github.com/uutils/coreutils/pull/8598
- GNUmakefile: move `du` & `touch` to `PROGS` by @cakebaker in https://github.com/uutils/coreutils/pull/8926
๐ฆ tsort
- tsort: write a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8712
- Remove extra lookups and memory allocations from tsort graph construction by @Nekrolm in https://github.com/uutils/coreutils/pull/8694
๐ฆ unexpand
- unexpand: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/8813
- unexpand: improve performances (1.50 faster than GNU) by @sylvestre in https://github.com/uutils/coreutils/pull/8815
- unexpand: remove unnecessary condition by @cakebaker in https://github.com/uutils/coreutils/pull/8822
- unexpand: add support for non-utf8 filenames by @cakebaker in https://github.com/uutils/coreutils/pull/8836
๐ฆ uniq
- uniq: add benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/8762
- Refactor uniq field skipping to avoid allocations by @mattsu2020 in https://github.com/uutils/coreutils/pull/8703
- uniq: reduce the size of the benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/8764
๐ฆ uname
- Build {host,u}name on Windows by @oech3 in https://github.com/uutils/coreutils/pull/8950
๐ฆ wc
- wc: adapt error message to pass `wc-files0-from` by @cakebaker in https://github.com/uutils/coreutils/pull/8749
๐ฆ who
- who/pinky: fix systemd local host by @bakanovskii in https://github.com/uutils/coreutils/pull/8672
๐ฆ uucore
- uucore/safe_traversal: remove unnecessary vars by @cakebaker in https://github.com/uutils/coreutils/pull/8627
- safe traversal: use the nix crate instead of unsafe calls to libc by @sylvestre in https://github.com/uutils/coreutils/pull/8626
- uucore/checksum: use `ChecksumError` variants by @cakebaker in https://github.com/uutils/coreutils/pull/8636
- uucore/selinux: add support for translations by @sylvestre in https://github.com/uutils/coreutils/pull/8628
- uucore/checksum: improve API of `create_sha3()` by @cakebaker in https://github.com/uutils/coreutils/pull/8645
- uucore: parse_time: avoid expensive `with_scale(9)` for huge inputs by @loskutov in https://github.com/uutils/coreutils/pull/8740
- uucore: fix clippy warnings by @bakanovskii in https://github.com/uutils/coreutils/pull/8769
- uucore/fsext: recognize magic number for `cgroup2fs` by @cakebaker in https://github.com/uutils/coreutils/pull/8778
- + 4 more
๐ฆ Localization & Internationalization
- l10n: replace the hash table by a long match per file to faciliate thโฆ by @sylvestre in https://github.com/uutils/coreutils/pull/8734
โก Performance & Benchmarking
- evaluate codspeed for perfs by @sylvestre in https://github.com/uutils/coreutils/pull/8680
- github: improve the codspeed configuration by @sylvestre in https://github.com/uutils/coreutils/pull/8689
- fix the divan usage for codspeed by @sylvestre in https://github.com/uutils/coreutils/pull/8710
- bench: call the function directly to improve the profiling + move the common functions in uucore by @sylvestre in https://github.com/uutils/coreutils/pull/8716
- Codspeed: reduce the number of tests and increase some values for long tests by @sylvestre in https://github.com/uutils/coreutils/pull/8758
- bench: remove some duplication by @sylvestre in https://github.com/uutils/coreutils/pull/8781
- fix some benchmark (some of them were failing) by @sylvestre in https://github.com/uutils/coreutils/pull/8773
- More bench by @sylvestre in https://github.com/uutils/coreutils/pull/8870
- + 1 more
๐ Security
- Document the security process by @sylvestre in https://github.com/uutils/coreutils/pull/8633
- add a github check for programs not using traversal by @sylvestre in https://github.com/uutils/coreutils/pull/8698
๐ฆ Code Quality & Cleanup
- Minor fix by @dev-4hmad in https://github.com/uutils/coreutils/pull/8596
- systemd_logind: replace i8 with libc::c_char by @Ecordonnier in https://github.com/uutils/coreutils/pull/8595
- clippy: add missing `[lints] workspace = true` to `uucore/Cargo.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/8771
- clippy: re-enable `semicolon_if_nothing_returned` by @cakebaker in https://github.com/uutils/coreutils/pull/8775
- clippy: re-enable three more lints by @cakebaker in https://github.com/uutils/coreutils/pull/8777
- clippy: move `use_self` lint to workspace lints by @cakebaker in https://github.com/uutils/coreutils/pull/8839
- clippy: re-enable `manual_let_else` lint by @cakebaker in https://github.com/uutils/coreutils/pull/8894
- Cargo.toml: remove `lints.clippy` section by @cakebaker in https://github.com/uutils/coreutils/pull/8897
- + 7 more
๐ฆ CI & Build
- make install: ressource files should have 644 as permissions. Closes: #8638 by @sylvestre in https://github.com/uutils/coreutils/pull/8640
- ci: fix broken CICD workflow by @cakebaker in https://github.com/uutils/coreutils/pull/8831
- ci: add `apt-get update` to `code-quality` workflow by @cakebaker in https://github.com/uutils/coreutils/pull/8865
- ci: test platform-specific utils separately, too by @cakebaker in https://github.com/uutils/coreutils/pull/8846
- github: compile & run benchmarks in parallel by @sylvestre in https://github.com/uutils/coreutils/pull/8891
- upgrade to GNU coreutils 9.8 as ref by @sylvestre in https://github.com/uutils/coreutils/pull/8720
- build-gnu.sh: improve setup instructions by @cakebaker in https://github.com/uutils/coreutils/pull/8731
- fuzz: enable debug symbols in release builds by @naoNao89 in https://github.com/uutils/coreutils/pull/8935
- + 4 more
๐ Documentation
- docs: minor grammar fix in packaging.md by @dev-4hmad in https://github.com/uutils/coreutils/pull/8620
- Fix the doc generation and remove uuhelp_parser by @sylvestre in https://github.com/uutils/coreutils/pull/8610
- Add missing manpages by @oech3 in https://github.com/uutils/coreutils/pull/8721
- Add missing completions by @oech3 in https://github.com/uutils/coreutils/pull/8723
- Document how to generate prefixed completions by @oech3 in https://github.com/uutils/coreutils/pull/8817
- doc: add `-h` & `-V` to extensions by @cakebaker in https://github.com/uutils/coreutils/pull/8888
- doc: How to build for SELinux by cargo by @oech3 in https://github.com/uutils/coreutils/pull/8964
- uudoc: move manpage and completions generation out of binary by @aaron-ang in https://github.com/uutils/coreutils/pull/8513
๐ฆ Platform Support
- fix: Add cross-platform stubs and gate SELinux to Linux-only by @naoNao89 in https://github.com/uutils/coreutils/pull/8795
- Drop redundant || exit 1 by @oech3 in https://github.com/uutils/coreutils/pull/8881
๐ฆ Version Management
- --version should just print the command name, not the path by @sylvestre in https://github.com/uutils/coreutils/pull/8921
- prepare version 0.3.0 by @sylvestre in https://github.com/uutils/coreutils/pull/8890
๐ฆ Dependency Updates
- fix(deps): update rust crate tempfile to v3.22.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8590
- chore(deps): update rust crate zip to v5.0.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8597
- chore(deps): update rust crate zip to v5.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8609
- Bump `rustix` from `1.0.7` to `1.1.2` by @cakebaker in https://github.com/uutils/coreutils/pull/8613
- Bump `fts-sys` and `selinux-sys` by @cakebaker in https://github.com/uutils/coreutils/pull/8612
- chore(deps): update rust crate zip to v5.1.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8616
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8623
- chore(deps): update rust crate serde to v1.0.221 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8635
- + 46 more
โจ New Contributors
- @dev-4hmad made their first contribution in https://github.com/uutils/coreutils/pull/8596
- @zdiff made their first contribution in https://github.com/uutils/coreutils/pull/8598
- @ThePseudo made their first contribution in https://github.com/uutils/coreutils/pull/8587
- @maxfilov made their first contribution in https://github.com/uutils/coreutils/pull/8637
- @naoNao89 made their first contribution in https://github.com/uutils/coreutils/pull/8655
- @bakanovskii made their first contribution in https://github.com/uutils/coreutils/pull/8666
- @AnarchistHoneybun made their first contribution in https://github.com/uutils/coreutils/pull/8650
- @Banzobotic made their first contribution in https://github.com/uutils/coreutils/pull/8686
- + 17 more
๐ฆ **Rust Coreutils 0.2.2 Release:**
- This is a patch release focused on critical infrastructure fixes to ensure reliable distribution and deployment across different platforms.
- We also improved the performance of base64 to be faster than the GNU implementation (1.56 times faster).
๐ฆ base64
- base64: improve perfs by using the base64-simd crate by @sylvestre in https://github.com/uutils/coreutils/pull/8578
๐ฆ cp
- cp: fix copying current directory (.) to existing directory by @Vesal-J in https://github.com/uutils/coreutils/pull/8565
๐ฆ nl
- nl: allow non-UTF8 section delimiter by @cakebaker in https://github.com/uutils/coreutils/pull/8575
๐ฆ stty
- Avoid panic in stty by @julian-klode in https://github.com/uutils/coreutils/pull/8559
๐ฆ uucore
- uucore/build.rs: rename function by @cakebaker in https://github.com/uutils/coreutils/pull/8584
๐ฆ Distribution & Build
- manage the locales when the program is coming from crates.io by @sylvestre in https://github.com/uutils/coreutils/pull/8571
- link musl libc statically by @Ecordonnier in https://github.com/uutils/coreutils/pull/8585
- Prepare version 0.2.2 by @sylvestre in https://github.com/uutils/coreutils/pull/8588
๐ Documentation
- release notes: store a copy in-tree too by @sylvestre in https://github.com/uutils/coreutils/pull/8564
๐ฆ Dependencies
- chore(deps): update rust crate winapi-util to v0.1.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8570
- fix(deps): update rust crate console to v0.16.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8577
- chore(deps): update rust crate chrono to v0.4.42 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8576
- chore(deps): update rust crate linux-raw-sys to 0.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/8580
โจ New Contributors
- @Vesal-J made their first contribution in https://github.com/uutils/coreutils/pull/8565
- Full Changelog: https://github.com/uutils/coreutils/compare/0.2.0...0.2.2
๐ฆ ๐ฆ **Rust Coreutils 0.2.0 Release:**
- We are excited to announce the release of Rust Coreutils 0.2.0 โ our first fully internationalized release!
- This milestone brings comprehensive localization support, major performance improvements, and enhanced Unicode handling.
- ---
๐ฆ Highlights:
- 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](https://hosted.weblate.org/projects/rust-coreutils/)
- or contribute directly via our [l10n repository](https://github.com/uutils/coreutils-l10n)
- Unicode & Non-UTF8 Path Support
- + 13 more
๐งช GNU Test Suite Compatibility:
- | Result | 0.1.0 | 0.2.0 | Change 0.1.0 to 0.2.0 | % Total 0.1.0 | % Total 0.2.0 | % Change 0.1.0 to 0.2.0 |
- |---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
- | Pass | 522 | 538 | +16 | 84.46% | 87.06% | +2.60% |
- | Skip | 31 | 27 | -4 | 5.02% | 4.37% | -0.65% |
- | Fail | 65 | 52 | -13 | 10.52% | 8.42% | -2.10% |
- | Error | 0 | 1 | +1 | 0% | 0.16% | +0.16% |
- | Total | 618 | 618 | 0 | | | |
- ---
- + 2 more
๐ฆ Call to Action:
- ๐ Help us translate - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
- ๐ Sponsor us on GitHub to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
- ๐ Download the latest release: [https://uutils.github.io](https://uutils.github.io)
๐ฆ basenc
- allow non-UTF8 filenames by @cakebaker in https://github.com/uutils/coreutils/pull/8558
๐ฆ basename
- Simply logic, do not trim path separators `/` by @drinkcat in https://github.com/uutils/coreutils/pull/8372
- handle a corner case with /. - Closes #8373 by @sylvestre in https://github.com/uutils/coreutils/pull/8374
- Handle non-unicode parameters by @drinkcat in https://github.com/uutils/coreutils/pull/8375
๐ฆ cat
- Fix reporting "input file is output file" error when outputting to an input file by @frendsick in https://github.com/uutils/coreutils/pull/8025
- add error handling in write_fast function by @yuankunzhang in https://github.com/uutils/coreutils/pull/8091
- handle broken pipe gracefully by @tgrez in https://github.com/uutils/coreutils/pull/8336
๐ฆ chmod
- fix recursive symlink handling for -H/-L/-P flags (Closes: #8422) by @sylvestre in https://github.com/uutils/coreutils/pull/8450
- remove Windows function & unnecessary cfgs by @cakebaker in https://github.com/uutils/coreutils/pull/8458
- make a test environment-agnostic by @sylvestre in https://github.com/uutils/coreutils/pull/8525
๐ฆ chown
- fix --reference file syntax by @Anonymous-AAA in https://github.com/uutils/coreutils/pull/8492
๐ฆ chroot
- remove unwrap calls by @jovielarue in https://github.com/uutils/coreutils/pull/7890
๐ฆ cksum
- remove duplicate unit test by @cakebaker in https://github.com/uutils/coreutils/pull/8151
- Fix file quoting on stderr by @RenjiSann in https://github.com/uutils/coreutils/pull/8272
- two small refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/8527
๐ฆ cp
- migrate from quick-error to thiserror by @vikram-kangotra in https://github.com/uutils/coreutils/pull/7989
- clean existing file when copy from stream by @Luv-Ray in https://github.com/uutils/coreutils/pull/8149
- let `clap` render help & version by @cakebaker in https://github.com/uutils/coreutils/pull/8199
- Fix --no-dereference --parents with symlink source by @julian-klode in https://github.com/uutils/coreutils/pull/8331
- Try to change gid only if changing uid+gid fails by @drinkcat in https://github.com/uutils/coreutils/pull/8385
- Properly preserves fifos and symlink attributes by @drinkcat in https://github.com/uutils/coreutils/pull/8416
- fix directory permission preservation for sibling directories with -a (Closes: #8407) by @sylvestre in https://github.com/uutils/coreutils/pull/8449
- fix recursive socket file copy by @Anonymous-AAA in https://github.com/uutils/coreutils/pull/8478
๐ฆ csplit
- fix two issues with non ASCII digits by @cakebaker in https://github.com/uutils/coreutils/pull/8020
๐ฆ date
- date/ls: Switch from chrono to jiff by @drinkcat in https://github.com/uutils/coreutils/pull/7894
- update deprecated TZ by @sylvestre in https://github.com/uutils/coreutils/pull/8405
- allow multiple `-d`, last wins by @cakebaker in https://github.com/uutils/coreutils/pull/8507
- add hidden aliases --rfc-2822/822 for GNU compat by @schopin-pro in https://github.com/uutils/coreutils/pull/8550
๐ฆ df
- Move to using `OsString` by @drinkcat in https://github.com/uutils/coreutils/pull/8371
๐ฆ du
- create the string into the main thread to avoid some translations issue by @sylvestre in https://github.com/uutils/coreutils/pull/8338
- du/ls: Merge date formatting code, and handle timestamps far in the future/past by just printing them by @drinkcat in https://github.com/uutils/coreutils/pull/8390
- `du`/`ls`: Unify file metadata time handling by @drinkcat in https://github.com/uutils/coreutils/pull/8396
- `du`/`ls`: Improve time-style handling based on GNU coreutils manual by @drinkcat in https://github.com/uutils/coreutils/pull/8415
๐ฆ echo
- fixed double hyphen as argument by @cerdelen in https://github.com/uutils/coreutils/pull/7581
- Remove clap for echo by @cerdelen in https://github.com/uutils/coreutils/pull/7603
- print help if not posixly correct and only argument is --help by @RGBCube in https://github.com/uutils/coreutils/pull/8310
- show version when `--version` is the only argument by @cakebaker in https://github.com/uutils/coreutils/pull/8341
๐ฆ env
- use execvp instead of Command::status on Unix systems by @yuankunzhang in https://github.com/uutils/coreutils/pull/8365
- invalid syntx with the french fluent file by @sylvestre in https://github.com/uutils/coreutils/pull/8530
๐ฆ expr
- Handle more special cases for regex pattern by @frendsick in https://github.com/uutils/coreutils/pull/7974
- Fix parsing range quantifiers in regex by @frendsick in https://github.com/uutils/coreutils/pull/7997
- Fix handling of regex range quantifiers by @frendsick in https://github.com/uutils/coreutils/pull/8010
- Remove `expr.pl` from `why-error.md` by @frendsick in https://github.com/uutils/coreutils/pull/8022
- fix substr parsing by @tgrez in https://github.com/uutils/coreutils/pull/8158
- fix builtin functions precedence by @tgrez in https://github.com/uutils/coreutils/pull/8162
๐ฆ factor
- fix two "unused import" warnings in test by @cakebaker in https://github.com/uutils/coreutils/pull/8526
๐ฆ fmt
- Fix the last two GNU tests for fmt by @sylvestre in https://github.com/uutils/coreutils/pull/8264
๐ฆ fold
- process streams as bytes, not strings, to handle non-utf8 data by @phinjensen in https://github.com/uutils/coreutils/pull/8241
๐ฆ hashsum
- don't exit early on io errors by @Qelxiros in https://github.com/uutils/coreutils/pull/7918
๐ฆ head
- fix bug with non-terminated files. by @karlmcdowall in https://github.com/uutils/coreutils/pull/7484
- fix meaning of ---presume-input-pipe by @bvinc in https://github.com/uutils/coreutils/pull/8315
- remove `BadEncoding` variant of `HeadError` by @cakebaker in https://github.com/uutils/coreutils/pull/8484
- refactor `uumain` by @cakebaker in https://github.com/uutils/coreutils/pull/8497
๐ฆ install
- don't error when multiple arguments of the same type are given, instead override with last one (#8033) by @jenningsfan in https://github.com/uutils/coreutils/pull/8053
- implement option -C by @sylvestre in https://github.com/uutils/coreutils/pull/8265
- use `bool` as return type of `need_copy` by @cakebaker in https://github.com/uutils/coreutils/pull/8288
- Fix --no-target-directory with existing file by @julian-klode in https://github.com/uutils/coreutils/pull/8412
- install, mkdir: Handle dir/./ like dir/. by @julian-klode in https://github.com/uutils/coreutils/pull/8366
๐ฆ ln
- fix #6350 by @RenjiSann in https://github.com/uutils/coreutils/pull/7449
- rename error variant by @cakebaker in https://github.com/uutils/coreutils/pull/8035
๐ฆ logname
- remove `unsafe extern "C"` block by @cakebaker in https://github.com/uutils/coreutils/pull/8177
๐ฆ ls
- move recent time threshold comment by @deadmeu in https://github.com/uutils/coreutils/pull/8214
- follow symlinks for xattrs, fix #8216 by @sudhackar in https://github.com/uutils/coreutils/pull/8217
- fix the GNU test tests/ls/selinux.sh by @sylvestre in https://github.com/uutils/coreutils/pull/8281
- improve the test when running selinux by @sylvestre in https://github.com/uutils/coreutils/pull/8403
- -u/-c/--time control sorting when -l is not used by @drinkcat in https://github.com/uutils/coreutils/pull/8417
๐ฆ mkdir
- Fix mkdir with non-unicode parameters by @drinkcat in https://github.com/uutils/coreutils/pull/8367
- Replaced strict restorecon compatibility check with validationโฆ by @sylvestre in https://github.com/uutils/coreutils/pull/8340
- refactor(mkdir): Simplify mode argument parsing by @amirhosseinghanipour in https://github.com/uutils/coreutils/pull/8406
๐ฆ mkfifo
- support symbolic mode by @yuankunzhang in https://github.com/uutils/coreutils/pull/8440
๐ฆ mknod
- set cli specified file mode even when it's 0o666 by @TheJJ in https://github.com/uutils/coreutils/pull/8343
๐ฆ mktemp
- allow empty string arguments for -p/--tmpdir options by @yuankunzhang in https://github.com/uutils/coreutils/pull/8447
๐ฆ more
- tests: cleanup processes in test_valid_arg by @martinkunkel2 in https://github.com/uutils/coreutils/pull/8430
๐ฆ mv
- moving dangling symlinks into directories by @albus-droid in https://github.com/uutils/coreutils/pull/8064
- improve the hardlink support by @sylvestre in https://github.com/uutils/coreutils/pull/8296
- add support for selinux and add minor refactor by @sylvestre in https://github.com/uutils/coreutils/pull/8333
- use `next()` instead of `peekable().peek()` in `is_empty_dir()` by @cakebaker in https://github.com/uutils/coreutils/pull/8413
- move a string in fluent by @sylvestre in https://github.com/uutils/coreutils/pull/8434
- treat symlinks as files by @id3v1669 in https://github.com/uutils/coreutils/pull/8528
๐ฆ nice
- remove useless translations by @sylvestre in https://github.com/uutils/coreutils/pull/8295
๐ฆ nl
- use `OsString` for `--number-separator` by @cakebaker in https://github.com/uutils/coreutils/pull/8519
- allow zero for `--join-blank-lines` by @cakebaker in https://github.com/uutils/coreutils/pull/8540
- support files with non-utf8 content by @cakebaker in https://github.com/uutils/coreutils/pull/8544
๐ฆ od
- fix handling of non-ascii chars by @tgrez in https://github.com/uutils/coreutils/pull/8268
- fix typo in help by @cakebaker in https://github.com/uutils/coreutils/pull/8344
- Fixes float formatting in scientific notation by @yonatan-linik in https://github.com/uutils/coreutils/pull/8352
- Add support for -tfH and -tfB by @karanabe in https://github.com/uutils/coreutils/pull/8354
- rename `flo16`/`flo32`/`flo64` to `f16`/`f32`/`f64` in function names by @cakebaker in https://github.com/uutils/coreutils/pull/8369
- use underscores in filenames, adapt modules by @cakebaker in https://github.com/uutils/coreutils/pull/8393
- Switch f16 print to width=15/16, precision=8 by @drinkcat in https://github.com/uutils/coreutils/pull/8433
๐ฆ pr
- Add support for -D/--date-format parameter by @drinkcat in https://github.com/uutils/coreutils/pull/8418
- reduce nesting to improve readability of `file_last_modified_time_format()` by @cakebaker in https://github.com/uutils/coreutils/pull/8420
๐ฆ printf
- Fix formatting hexadecimals with padding by @frendsick in https://github.com/uutils/coreutils/pull/8185
- accept non-UTF-8 input in FORMAT and ARGUMENT arguments by @drinkcat in https://github.com/uutils/coreutils/pull/8329
๐ฆ pwd
- style(pwd): simplify physical_path implementation by @amirhosseinghanipour in https://github.com/uutils/coreutils/pull/8409
๐ฆ realpath
- use consts for all options by @cakebaker in https://github.com/uutils/coreutils/pull/8150
๐ฆ rm
- add support for the `--interactive` arg aliases by @cakebaker in https://github.com/uutils/coreutils/pull/8419
- do "early return" earlier in `uumain` by @cakebaker in https://github.com/uutils/coreutils/pull/8045
- rename two consts for better readability by @cakebaker in https://github.com/uutils/coreutils/pull/8070
- consistent naming of test functions by @cakebaker in https://github.com/uutils/coreutils/pull/8084
- fix too long filename corner case by @tgrez in https://github.com/uutils/coreutils/pull/8299
- improve `is_dir_empty` from O(n) to O(1) by @cakebaker in https://github.com/uutils/coreutils/pull/8384
- remove duplicate test by @cakebaker in https://github.com/uutils/coreutils/pull/8494
- fix unused var warning on non-(unix & windows) by @cakebaker in https://github.com/uutils/coreutils/pull/8495
๐ฆ shred
- implement and test feature --random-source by @BenWiederhake in https://github.com/uutils/coreutils/pull/7948
๐ฆ sort
- prevent -o/--output to be specified multiple times by @RenjiSann in https://github.com/uutils/coreutils/pull/7991
- Fix sort-files0-from.log by @Charlie-Zheng in https://github.com/uutils/coreutils/pull/8011
- Make use of ExtendedBigDecimal in -g sorting, then attempt to recover some performance by @drinkcat in https://github.com/uutils/coreutils/pull/8062
- Support hexadecimal numbers/floats correctly by @yonatan-linik in https://github.com/uutils/coreutils/pull/8377
- Handle non-utf8 sorting content by @RenjiSann in https://github.com/uutils/coreutils/pull/8386
- adjust the behavior of 'sort --output --file-with-dash' to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/8482
๐ฆ stat
- stat/locales: Fix fluent_linter errors by @drinkcat in https://github.com/uutils/coreutils/pull/8404
- `stat`: Convert to use `uucore` functions by @drinkcat in https://github.com/uutils/coreutils/pull/8398
๐ฆ stdbuf
- fix cross-compilation by @Ecordonnier in https://github.com/uutils/coreutils/pull/7972
- avoid double "lib" prefix by @Ecordonnier in https://github.com/uutils/coreutils/pull/8067
- add feat_external_libstdbuf by @Ecordonnier in https://github.com/uutils/coreutils/pull/8104
- GNUMakefile: install libstdbuf by @Ecordonnier in https://github.com/uutils/coreutils/pull/8238
๐ฆ stty
- Add stty to GNUmakefile by @oech3 in https://github.com/uutils/coreutils/pull/8013
- fix output redirection by @willshuttleworth in https://github.com/uutils/coreutils/pull/8016
- set control characters by @willshuttleworth in https://github.com/uutils/coreutils/pull/7931
- fix negated options getting rejected by clap by @willshuttleworth in https://github.com/uutils/coreutils/pull/8136
- fix mappings with empty string literal args by @willshuttleworth in https://github.com/uutils/coreutils/pull/8135
- add ispeed/ospeed settings by @willshuttleworth in https://github.com/uutils/coreutils/pull/8180
- add options to set and print terminal size by @willshuttleworth in https://github.com/uutils/coreutils/pull/8221
- remove redundant `cfg` by @cakebaker in https://github.com/uutils/coreutils/pull/8262
- + 5 more
๐ฆ sync
- adjust safety comments by @jtracey in https://github.com/uutils/coreutils/pull/8024
- reduce use of unsafe and improve comments by @jtracey in https://github.com/uutils/coreutils/pull/8017
๐ฆ tail
- fix test that disables output in bash shell by @willshuttleworth in https://github.com/uutils/coreutils/pull/8157
- fix tailing /dev/zero by @bvinc in https://github.com/uutils/coreutils/pull/8314
- handle broken pipe gracefully by @tgrez in https://github.com/uutils/coreutils/pull/8327
- show end of device by @martinkunkel2 in https://github.com/uutils/coreutils/pull/8037
๐ฆ tee
- tests/tee: enable no_more_writable test by @Maximkaaa in https://github.com/uutils/coreutils/pull/8219
- remove output buffering by @Maximkaaa in https://github.com/uutils/coreutils/pull/8218
- move test to `linux_only` module by @cakebaker in https://github.com/uutils/coreutils/pull/8225
๐ฆ timeout
- catch TERM signal by @Luv-Ray in https://github.com/uutils/coreutils/pull/8197
๐ฆ touch
- fix f flag by @VenetiaFurtado in https://github.com/uutils/coreutils/pull/8274
- Bump `parse_datetime` & adapt `touch` tests by @cakebaker in https://github.com/uutils/coreutils/pull/8424
๐ฆ tr
- some small improvements by @cakebaker in https://github.com/uutils/coreutils/pull/8126
- handle broken pipe gracefully by @yuankunzhang in https://github.com/uutils/coreutils/pull/8298
- restore default action of sigpipe by @yuankunzhang in https://github.com/uutils/coreutils/pull/8312
- Fix regression causing read error with sockets by @JohnoKing in https://github.com/uutils/coreutils/pull/8083
- fix high memory use, possible heap exhaustion by @julian-klode in https://github.com/uutils/coreutils/pull/8435
- Improve tr performances (Closes: #8439) by @sylvestre in https://github.com/uutils/coreutils/pull/8442
- refactor and introduce simd to get important perf win by @sylvestre in https://github.com/uutils/coreutils/pull/8471
๐ฆ uname
- output OS last by @cakebaker in https://github.com/uutils/coreutils/pull/8094
๐ฆ unexpand
- add -f short alias for --first-only by @GTimothy in https://github.com/uutils/coreutils/pull/8229
๐ฆ uptime
- use "0 users" instead of "0 user" by @cakebaker in https://github.com/uutils/coreutils/pull/8069
- move imports into test function by @cakebaker in https://github.com/uutils/coreutils/pull/8052
- improve readability of `uptime_since` by @cakebaker in https://github.com/uutils/coreutils/pull/8164
๐ฆ users
- fix unused imports in tests on FreeBSD by @cakebaker in https://github.com/uutils/coreutils/pull/8488
๐ฆ who
- honor locale settings by @yuankunzhang in https://github.com/uutils/coreutils/pull/8535
- use `match` instead of `if`/`else` chain by @cakebaker in https://github.com/uutils/coreutils/pull/8541
- rename var, cleanup spell-checker:ignore by @cakebaker in https://github.com/uutils/coreutils/pull/8411
๐ฆ uucore
- num_parser: Update pow_with_context by @drinkcat in https://github.com/uutils/coreutils/pull/8028
- locale: Use if let instead of match by @drinkcat in https://github.com/uutils/coreutils/pull/8050
- use authors.workspace by @sylvestre in https://github.com/uutils/coreutils/pull/8057
- fix clippy warnings - the following explicit lifetimes could be elided: 'a by @sylvestre in https://github.com/uutils/coreutils/pull/8269
- uucore(quoting_style): Improve quoting style handling by @RenjiSann in https://github.com/uutils/coreutils/pull/8271
- lib/mods/locale: fix locale loading by @kevinburke in https://github.com/uutils/coreutils/pull/8234
- uucore/fs: call `to_string_lossy` only once in `dir_strip_dot_for_creation` by @cakebaker in https://github.com/uutils/coreutils/pull/8399
- locale: Fix clippy warning by @drinkcat in https://github.com/uutils/coreutils/pull/8432
- + 3 more
๐ฆ Localization & Internationalization
- Improve the locale support by @sylvestre in https://github.com/uutils/coreutils/pull/7981
- convert the md files to fluent by @sylvestre in https://github.com/uutils/coreutils/pull/8054
- Disable Unicode directional isolate characters (U+2068, U+2069) by @sylvestre in https://github.com/uutils/coreutils/pull/8066
- document a bit how it works by @sylvestre in https://github.com/uutils/coreutils/pull/8102
- i18n: Locale-aware quoting by @RenjiSann in https://github.com/uutils/coreutils/pull/8179
- i18n: further work, expr support by @RenjiSann in https://github.com/uutils/coreutils/pull/8292
- replace `\n` with a new line in ftl files by @cakebaker in https://github.com/uutils/coreutils/pull/8349
- Setup localization for utility symlinks by @julian-klode in https://github.com/uutils/coreutils/pull/8364
- + 103 more
๐งช Test Improvements
- Fix macros, rewrite tests to use idiomatic macros by @RenjiSann in https://github.com/uutils/coreutils/pull/8293
- add tests with emoji for various commands by @sylvestre in https://github.com/uutils/coreutils/pull/8545
- add more emoji tests by @sylvestre in https://github.com/uutils/coreutils/pull/8551
- fix execution on WSL2, Ubuntu 24.04 by @martinkunkel2 in https://github.com/uutils/coreutils/pull/8235
- On MacOS, ignore tests that use /dev/fd/0 by @drinkcat in https://github.com/uutils/coreutils/pull/8454
- tests/cp/preserve-gid: Partial fix by @drinkcat in https://github.com/uutils/coreutils/pull/8380
๐ฆ Code Quality & Cleanup
- cleanup workspace crates by @nyurik in https://github.com/uutils/coreutils/pull/8058
- Enable common pre-commit.ci fixes by @nyurik in https://github.com/uutils/coreutils/pull/8059
- Prepare for clippy pedantic rules by @gabelluardo in https://github.com/uutils/coreutils/pull/8201
- Enable some pedantic rules by @gabelluardo in https://github.com/uutils/coreutils/pull/8203
- a lot of documentation cleanups by @nyurik in https://github.com/uutils/coreutils/pull/8301
- remove unused dependencies by @nyurik in https://github.com/uutils/coreutils/pull/8056
- cleanup `inefficient_to_string` lint by @nyurik in https://github.com/uutils/coreutils/pull/8303
- cleanup `map_unwrap_or` lint by @nyurik in https://github.com/uutils/coreutils/pull/8302
- + 11 more
๐ฆ CI & Build
- publish.sh: also publish uutests by @sylvestre in https://github.com/uutils/coreutils/pull/7984
- Reenable windows-latest/x86_64-pc-windows-gnu (and do not update gcc) by @drinkcat in https://github.com/uutils/coreutils/pull/7985
- publish.sh: be more prescriptive on the grep by @sylvestre in https://github.com/uutils/coreutils/pull/7983
- reduce timeout of freebsd jobs by @cakebaker in https://github.com/uutils/coreutils/pull/7994
- .pre-commit-config.yaml: Do not fail cspell if all files are ignored by @drinkcat in https://github.com/uutils/coreutils/pull/8026
- clippy pre-commit/CI improvements by @drinkcat in https://github.com/uutils/coreutils/pull/8030
- GNU CI: also build selinux with --release-build by @sylvestre in https://github.com/uutils/coreutils/pull/8055
- GNUMakefile: fix compilation on Macs by @kevinburke in https://github.com/uutils/coreutils/pull/7964
- + 20 more
๐ Documentation
- extensions: Explain how printf/seq handle precision by @drinkcat in https://github.com/uutils/coreutils/pull/7641
- add `-U`/`--no-utf8` as extension of `expand`/`unexpand` by @cakebaker in https://github.com/uutils/coreutils/pull/8236
- Improvements of the docs by @sylvestre in https://github.com/uutils/coreutils/pull/8543
๐ฆ Platform Support
- flake.nix: Add cspell by @RenjiSann in https://github.com/uutils/coreutils/pull/7987
- silence musl warnings by @Ecordonnier in https://github.com/uutils/coreutils/pull/8018
- Feat/add wezterm to terms by @eldyl in https://github.com/uutils/coreutils/pull/8047
- add `--version` argument to print main binary version by @MarcusGrass in https://github.com/uutils/coreutils/pull/8127
- remove PROJECT_NAME_FOR_VERSION_STRING by @Ecordonnier in https://github.com/uutils/coreutils/pull/8360
๐ฆ Dependency Updates
- Bump `onig` from `6.4.0` to `6.5.1` by @cakebaker in https://github.com/uutils/coreutils/pull/7976
- Cargo.lock: Bump toml_edit to latest version by @drinkcat in https://github.com/uutils/coreutils/pull/7988
- Bump `type-map` by @cakebaker in https://github.com/uutils/coreutils/pull/7993
- Cargo.toml: remove unused `coz` dependency by @cakebaker in https://github.com/uutils/coreutils/pull/8021
- deny.toml: remove obsolete skips related to rustix by @alerque in https://github.com/uutils/coreutils/pull/8019
- Cargo.toml: remove `procfs` dependency & adapt `cp` test by @cakebaker in https://github.com/uutils/coreutils/pull/8027
- Bump `windows-sys` & adapt to API change by @cakebaker in https://github.com/uutils/coreutils/pull/8160
- Bump selinux crates by @cakebaker in https://github.com/uutils/coreutils/pull/8226
- + 89 more
โจ New Contributors
- @oech3 made their first contribution in https://github.com/uutils/coreutils/pull/8013
- @alerque made their first contribution in https://github.com/uutils/coreutils/pull/8019
- @willshuttleworth made their first contribution in https://github.com/uutils/coreutils/pull/8016
- @Charlie-Zheng made their first contribution in https://github.com/uutils/coreutils/pull/8011
- @eldyl made their first contribution in https://github.com/uutils/coreutils/pull/8047
- @vikram-kangotra made their first contribution in https://github.com/uutils/coreutils/pull/7989
- @albus-droid made their first contribution in https://github.com/uutils/coreutils/pull/8064
- @tgrez made their first contribution in https://github.com/uutils/coreutils/pull/8158
- + 20 more
๐ฆ ๐ฆ **Rust Coreutils 0.1.0 Release:**
- We are excited to announce the release of Rust Coreutils 0.1.0 โ our first 0.1 milestone!
- This release brings major performance gains, SELinux support, and expanded GNU compatibility.
- ---
๐ฆ Highlights:
- SELinux Support
- New SELinux integration in `cp`, `ls`, `mkdir`, `mknod`, `mkfifo`, `install`, and `stat`.
- Plus, SELinux-aware CI testing is now live!
- Performance Improvements
- Notable speedups in `cat`, `ls`, `wc`, `tail`, `seq`, and more โ many now match or exceed GNU performance.
- Ubuntu Plans to Ship uutils
- Ubuntu is beginning to integrate Rust Coreutils into its base system!
- โค [Oxidizing Ubuntu](https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995)
- + 3 more
๐งช GNU Test Suite Compatibility:
- | Result | 0.0.30 | 0.1.0 | Change 0.0.30 to 0.1.0 | % Total 0.0.30 | % Total 0.1.0 | % Change 0.0.30 to 0.1.0 |
- |---------------|--------|--------|------------------------|----------------|---------------|--------------------------|
- | Pass | 507 | 522 | +15 | 82.17% | 84.46% | +2.29% |
- | Skip | 41 | 31 | -10 | 6.65% | 5.02% | -1.63% |
- | Fail | 69 | 65 | -4 | 11.18% | 10.52% | -0.66% |
- | Total | 617 | 618 | +1 (new test) | | | |
- ---
- 
- + 1 more
๐ฆ Call to Action:
- ๐ Sponsor us on GitHub to help us grow faster: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
- ๐ Download the latest release & learn more: [https://uutils.github.io](https://uutils.github.io)
๐ฆ basenc
- base32/base64/basenc: add -D flag by @TerakomariGandesblood in https://github.com/uutils/coreutils/pull/7479
๐ฆ cat
- cat: Improve performance of formatting. by @karlmcdowall in https://github.com/uutils/coreutils/pull/7519
- cat: bugfix when running with -T option by @karlmcdowall in https://github.com/uutils/coreutils/pull/7636
- cat: Formatting performance improvement by @karlmcdowall in https://github.com/uutils/coreutils/pull/7642
- cat: Performance improvement when printing line numbers by @karlmcdowall in https://github.com/uutils/coreutils/pull/7645
๐ฆ chmod
- chmod: Correct chmod -R on dangling symlink and tests by @CSRessel in https://github.com/uutils/coreutils/pull/7618
๐ฆ chroot
- Fix chroot trying to change into non-existent directory by @jplatte in https://github.com/uutils/coreutils/pull/7803
๐ฆ cksum
- cksum: take out regex pattern matching by @GTimothy in https://github.com/uutils/coreutils/pull/7580
๐ฆ cp
- cp: Use FICLONE ioctl constant from linux-raw-sys by @dezgeg in https://github.com/uutils/coreutils/pull/7439
- cp: fix update prompting by @hz2 in https://github.com/uutils/coreutils/pull/7668
- cp -P hardlink-to-symlink hardlink-to-same-symlink should no-op by @dan-hipschman in https://github.com/uutils/coreutils/pull/7753
- cp: refuse to copy symlink over itself by @dan-hipschman in https://github.com/uutils/coreutils/pull/7729
- cp: use `authors.workspace` in `Cargo.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/7882
- cp: improve the selinux support by @sylvestre in https://github.com/uutils/coreutils/pull/7878
- cp: context Disable a check in tests/cp/no-ctx.sh by @sylvestre in https://github.com/uutils/coreutils/pull/7938
- cp: copy dir if source path ends with dot by @cakebaker in https://github.com/uutils/coreutils/pull/7874
๐ฆ csplit
- csplit: removed unnecesary implementation of From<io::Error> by @lukasx999 in https://github.com/uutils/coreutils/pull/7778
- csplit: don't add a newline if the file doesn't end with one by @Qelxiros in https://github.com/uutils/coreutils/pull/7901
๐ฆ date
- date: allow negative date offsets by @lewisboon in https://github.com/uutils/coreutils/pull/7548
- date: add tests for relative weekdays by @dan-hipschman in https://github.com/uutils/coreutils/pull/7843
- date: move file header to top & merge some imports by @cakebaker in https://github.com/uutils/coreutils/pull/7857
- refactor(tests): use absolute difference of dates to check if they are within a window by @lavafroth in https://github.com/uutils/coreutils/pull/7755
๐ฆ dd
- feat: optimize `dd` parsing, bugfix by @nyurik in https://github.com/uutils/coreutils/pull/7704
๐ฆ df
- refactor: Add thiserror to df by @kiran-4444 in https://github.com/uutils/coreutils/pull/7545
- df: migrate OptionsError to thiserror by @lewisboon in https://github.com/uutils/coreutils/pull/7673
- fix: df: filter filesystem types after mount point resolution by @SergeiPatiakin in https://github.com/uutils/coreutils/pull/7452
๐ฆ du
- du: don't panic on block-size 0 by @BenWiederhake in https://github.com/uutils/coreutils/pull/7742
- du: fix "function never used" warning in test by @cakebaker in https://github.com/uutils/coreutils/pull/7943
๐ฆ echo
- echo: fixed double hyphen as argument by @cerdelen in https://github.com/uutils/coreutils/pull/7581
- Remove clap for echo by @cerdelen in https://github.com/uutils/coreutils/pull/7603
๐ฆ env
- env: ignore flags after the command or -- argument by @dan-hipschman in https://github.com/uutils/coreutils/pull/7781
- docs: env doesn't handle the empty string as a variable name by @Qelxiros in https://github.com/uutils/coreutils/pull/7956
๐ฆ expr
- expr: Refactor AST evaluation to avoid stack overflow by @LouisDISPA in https://github.com/uutils/coreutils/pull/7388
- expr: Escape anchor characters within pattern by @frendsick in https://github.com/uutils/coreutils/pull/7842
- expr: Fix regex anchor matching behavior with `REGEX_OPTION_SINGLELINE` by @frendsick in https://github.com/uutils/coreutils/pull/7846
- expr: Fix parsing negated character classes "[^a]" by @frendsick in https://github.com/uutils/coreutils/pull/7884
- expr: Fix parsing regex anchors '^' and '$' by @frendsick in https://github.com/uutils/coreutils/pull/7953
๐ฆ false
- true,false: remove unnecessary newline from version string by @cakebaker in https://github.com/uutils/coreutils/pull/7446
๐ฆ fmt
- chore: minor fmt match cleanup by @nyurik in https://github.com/uutils/coreutils/pull/7722
- Run cargo fmt on missed files by @BenWiederhake in https://github.com/uutils/coreutils/pull/7949
- ci: run `cargo fmt --check` in `fuzz` folder by @cakebaker in https://github.com/uutils/coreutils/pull/7958
๐ฆ head
- head: rework handling of non-seekable files by @karlmcdowall in https://github.com/uutils/coreutils/pull/7438
- head: fix overflow errors by @Qelxiros in https://github.com/uutils/coreutils/pull/7721
๐ฆ hostid
- hostid: use `gethostid` from Rust `libc` by @cakebaker in https://github.com/uutils/coreutils/pull/7571
๐ฆ hostname
- Bump `hostname` & remove `windows-core` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/7713
๐ฆ id
- bug: fix id printing of egid by @nyurik in https://github.com/uutils/coreutils/pull/7696
- id: Handle NULL pointer gracefully within `cstr2cow` macro by @frendsick in https://github.com/uutils/coreutils/pull/7810
- id: adapt error message to match the one from GNU `id` by @cakebaker in https://github.com/uutils/coreutils/pull/7836
- id: The `--real` flag should only affect `-u`, `-g`, and `-G` by @frendsick in https://github.com/uutils/coreutils/pull/7796
- id: remove unnecessary `to_string` calls by @cakebaker in https://github.com/uutils/coreutils/pull/7914
๐ฆ install
- install: friendly message install file to directory by @zhw2101024 in https://github.com/uutils/coreutils/pull/7794
- install: fixes issue #7795 by @zcg00 in https://github.com/uutils/coreutils/pull/7838
- Install implement the --no-target-directory option by @zhw2101024 in https://github.com/uutils/coreutils/pull/7867
- install: remove todos by @cakebaker in https://github.com/uutils/coreutils/pull/7872
- ci: install `libselinux1-dev` for coverage job by @cakebaker in https://github.com/uutils/coreutils/pull/7959
- selinux: start the support of install by @sylvestre in https://github.com/uutils/coreutils/pull/7908
๐ฆ ls
- ls: More performance optimizations by @drinkcat in https://github.com/uutils/coreutils/pull/7813
- ls: add -T support and fix --classify output by @emar-kar in https://github.com/uutils/coreutils/pull/7616
- ls: add selinux support by @sylvestre in https://github.com/uutils/coreutils/pull/7768
- ls: Print optimizations by @drinkcat in https://github.com/uutils/coreutils/pull/7801
- ls: update chrono crate version and switch to `new_lenient` use by @emar-kar in https://github.com/uutils/coreutils/pull/7858
- ls: remove duplicate code by @cakebaker in https://github.com/uutils/coreutils/pull/7932
- test_ls: Improve test_ls_perm_io_errors by @drinkcat in https://github.com/uutils/coreutils/pull/7811
๐ฆ mkdir
- mkdir: add the selinux support by @sylvestre in https://github.com/uutils/coreutils/pull/7635
๐ฆ mkfifo
- mkfifo: implement selinux support by @sylvestre in https://github.com/uutils/coreutils/pull/7831
๐ฆ mknod
- mknod: remove windows-related code & flags by @cakebaker in https://github.com/uutils/coreutils/pull/7821
- mknod: implement selinux support by @sylvestre in https://github.com/uutils/coreutils/pull/7818
- mknod: rename function `_mknod` to `mknod` by @cakebaker in https://github.com/uutils/coreutils/pull/7824
- mknod: refactor `uumain` by @cakebaker in https://github.com/uutils/coreutils/pull/7825
- mknod: remove duplicate test by @cakebaker in https://github.com/uutils/coreutils/pull/7828
๐ฆ mktemp
- mktemp: Prevent race condition when setting permissions for tempdir by @MidnightRocket in https://github.com/uutils/coreutils/pull/7617
๐ฆ more
- more: keep only screen lines in mem by @aaron-ang in https://github.com/uutils/coreutils/pull/7680
- more: constant memory initialization overhead by @aaron-ang in https://github.com/uutils/coreutils/pull/7765
๐ฆ mv
- Implement `Default` for `Options` of `mv` and `cp` by @jmjoy in https://github.com/uutils/coreutils/pull/7506
- mv: fix moving FIFO to a different filesystem by @jfinkels in https://github.com/uutils/coreutils/pull/7241
- mv: use `bool` instead of `Result` as return type by @cakebaker in https://github.com/uutils/coreutils/pull/7962
- mv: factor rename_with_fallback function into helpers by @jfinkels in https://github.com/uutils/coreutils/pull/7774
๐ฆ numfmt
- numfmt: add --zero-terminated option by @dan-hipschman in https://github.com/uutils/coreutils/pull/7686
๐ฆ od
- od: fix for issue #7666 by @karlmcdowall in https://github.com/uutils/coreutils/pull/7776
๐ฆ pr
- pr: migrate from quick-error to thiserror by @Qelxiros in https://github.com/uutils/coreutils/pull/7919
๐ฆ printf
- printf: fix octal escape parsing by @RenjiSann in https://github.com/uutils/coreutils/pull/7431
- printf: trim leading whitespace when parsing numeric values by @dlrobertson in https://github.com/uutils/coreutils/pull/7512
- printf: Consistently handle negative widths/precision by @sargas in https://github.com/uutils/coreutils/pull/7620
- printf: make negative values wrap around with unsigned/hex format by @eduardorittner in https://github.com/uutils/coreutils/pull/7656
- printf: Error handling with unicode parsing by @sargas in https://github.com/uutils/coreutils/pull/7681
- fuzzing: add a summary and enable printf by @sylvestre in https://github.com/uutils/coreutils/pull/7747
- printf: improve support of printing multi-byte values of characters by @jtracey in https://github.com/uutils/coreutils/pull/7208
- printf: Add indexing to format strings by @sargas in https://github.com/uutils/coreutils/pull/7837
- + 3 more
๐ฆ ptx
- ptx: fixes by @usamoi in https://github.com/uutils/coreutils/pull/7521
- ptx: use char count instead of byte index to handle utf-8 characters by @aaron-ang in https://github.com/uutils/coreutils/pull/7897
๐ฆ rm
- rm: skip prompt when stdin is not interactive; Fix #7326 by @bitspill in https://github.com/uutils/coreutils/pull/7492
๐ฆ seq
- seq: fix default float precision (`%f`); fix 0 scientific printing by @drinkcat in https://github.com/uutils/coreutils/pull/7384
- seq: Buffer writes to stdout by @drinkcat in https://github.com/uutils/coreutils/pull/7485
- seq: Directly write separator string, instead of using format by @drinkcat in https://github.com/uutils/coreutils/pull/7562
- seq: Do not allow -w and -f to be specified at the same time by @drinkcat in https://github.com/uutils/coreutils/pull/7646
- seq: Trim whitespaces, then try to remove + by @drinkcat in https://github.com/uutils/coreutils/pull/7650
- test_seq: Add a few more tests for corner cases by @drinkcat in https://github.com/uutils/coreutils/pull/7527
๐ฆ shred
- shred: remove unwanted padding in verbose messages by @BenWiederhake in https://github.com/uutils/coreutils/pull/7799
- shred: correctly print zero-byte pass in verbose mode by @BenWiederhake in https://github.com/uutils/coreutils/pull/7800
- shred: fix random passes* by @Qelxiros in https://github.com/uutils/coreutils/pull/7830
- shred: remove obsolete test by @cakebaker in https://github.com/uutils/coreutils/pull/7833
- shred: document simplified (better?) number of random passes by @BenWiederhake in https://github.com/uutils/coreutils/pull/7847
- shred: add 4K data alignment by @alexs-sh in https://github.com/uutils/coreutils/pull/7915
- shred: minor improvements and tests by @alexs-sh in https://github.com/uutils/coreutils/pull/7925
๐ฆ shuf
- Make `shuf` OsStr-compliant and bring newline handling in line with GNU by @blyxxyz in https://github.com/uutils/coreutils/pull/7463
๐ฆ sleep
- sleep: remove unused `fundu` from `Cargo.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/7758
- util/build-gnu.sh: Accept hex float as sleep parameter by @drinkcat in https://github.com/uutils/coreutils/pull/7761
๐ฆ sort
- sort: immediately compare whole lines if they parse as numbers by @MoSal in https://github.com/uutils/coreutils/pull/7567
๐ฆ split
- split: fix a racing condition that causes issue #7869 by @yuankunzhang in https://github.com/uutils/coreutils/pull/7877
- split: use delegation to avoid code duplication in test by @cakebaker in https://github.com/uutils/coreutils/pull/7924
๐ฆ stat
- stat: Print what kind of "weird" mode it is, if it's "weird" by @drinkcat in https://github.com/uutils/coreutils/pull/7587
- stat: add support for selinux by @sylvestre in https://github.com/uutils/coreutils/pull/7752
- test_stat: Disable test_stdin_pipe_fifo1/2 on Mac OS X by @drinkcat in https://github.com/uutils/coreutils/pull/7611
๐ฆ sum
- sum: Rework some error handling by @karlmcdowall in https://github.com/uutils/coreutils/pull/7605
๐ฆ sync
- sync: move call to unsafe fn to unsafe block by @cakebaker in https://github.com/uutils/coreutils/pull/7942
๐ฆ tail
- tail: Performance improvements by @karlmcdowall in https://github.com/uutils/coreutils/pull/7643
- tail: Ignore a few tests on selinux by @sylvestre in https://github.com/uutils/coreutils/pull/7756
- tail: fix issue with -v flag and stdin by @karlmcdowall in https://github.com/uutils/coreutils/pull/7792
- tail hex parsing, remove fundu dependency by @Qelxiros in https://github.com/uutils/coreutils/pull/7760
- Tail macos stdin ran from script fix by @hz2 in https://github.com/uutils/coreutils/pull/7844
๐ฆ tee
- add tests/misc/tee.sh to the list of intermittent issues by @sylvestre in https://github.com/uutils/coreutils/pull/7820
๐งช test
- CI: add a new job to test with Selinux by @sylvestre in https://github.com/uutils/coreutils/pull/7440
- cp: create failing test for #7455 by @Carreau in https://github.com/uutils/coreutils/pull/7457
- selinux: run the GNU test too by @sylvestre in https://github.com/uutils/coreutils/pull/7448
- Add test to ensure arch output is not empty by @valerioedu in https://github.com/uutils/coreutils/pull/7523
- ci: Enable cspell on test on dotfiles too by @drinkcat in https://github.com/uutils/coreutils/pull/7582
- Test workspace CI on macos by @drinkcat in https://github.com/uutils/coreutils/pull/7576
- env: Removed parse_errors to follow other commands standard with "thiserror" + added errors test case by @ValentinBoudevin in https://github.com/uutils/coreutils/pull/7584
- Bump `bigdecimal` & fix failing test by @cakebaker in https://github.com/uutils/coreutils/pull/7630
- + 7 more
๐ฆ timeout
- timeout: Use common parser to parse time duration by @drinkcat in https://github.com/uutils/coreutils/pull/7648
- add tests against '0 in sleep/timeout durations by @Qelxiros in https://github.com/uutils/coreutils/pull/7777
- timeout: add hex parsing test by @Qelxiros in https://github.com/uutils/coreutils/pull/7940
๐ฆ touch
- Fix touch -t with 2 digit years when YY > 68 by @Carreau in https://github.com/uutils/coreutils/pull/7378
๐ฆ tsort
- tsort: remove duplicate sorting step by @anastygnome in https://github.com/uutils/coreutils/pull/7965
๐ฆ uptime
- fix uptime on windows by @Bluemangoo in https://github.com/uutils/coreutils/pull/7430
- uptime: fix "unused import" warning in test by @cakebaker in https://github.com/uutils/coreutils/pull/7629
- uptime: fix "unused import" warnings with `musl` by @cakebaker in https://github.com/uutils/coreutils/pull/7866
- uptime: fix typo (formated -> formatted) by @cakebaker in https://github.com/uutils/coreutils/pull/7887
- uptime: some small refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/7891
- uptime: fix typo (Gnu -> GNU) by @fran-tor in https://github.com/uutils/coreutils/pull/7896
- uptime: refactor `uumain` by @cakebaker in https://github.com/uutils/coreutils/pull/7892
๐ฆ uucore
- Move ExtendedBigDecimal to uucore/format, make use of it in formatting functions by @drinkcat in https://github.com/uutils/coreutils/pull/7458
- uucore: format: num_format: add `fmt` function tests, and workaround 0e10 printing. by @drinkcat in https://github.com/uutils/coreutils/pull/7514
- uucore: format: num_parser: Use ExtendedBigDecimal by @drinkcat in https://github.com/uutils/coreutils/pull/7556
- uucore: format: Collection of small parser fixes by @drinkcat in https://github.com/uutils/coreutils/pull/7623
- seq: Move to uucore/format common number parsing code by @drinkcat in https://github.com/uutils/coreutils/pull/7624
- uucore: Move extendedbigdecimal and parsers to 2 separate features by @drinkcat in https://github.com/uutils/coreutils/pull/7647
- uucore: Minor fix to optional dependences by @RenjiSann in https://github.com/uutils/coreutils/pull/7654
- uucore: format: Fix hexadecimal default format print by @drinkcat in https://github.com/uutils/coreutils/pull/7631
- + 12 more
๐ฆ wc
- wc: Perf gains with the bytecount crate. by @karlmcdowall in https://github.com/uutils/coreutils/pull/7495
- wc: Speed optimization by @drinkcat in https://github.com/uutils/coreutils/pull/7934
๐ฆ whoami
- whoami: remove unused libc dependency by @siddharthteli12 in https://github.com/uutils/coreutils/pull/7786
๐ฆ yes
- yes: Remove usage of vmsplice by @karlmcdowall in https://github.com/uutils/coreutils/pull/7770
๐ฆ Selinux
- selinux: get closer to the GNU error msgs by @sylvestre in https://github.com/uutils/coreutils/pull/7898
- selinux: rename `check_selinux_enabled()` by @cakebaker in https://github.com/uutils/coreutils/pull/7771
- set_selinux_security_context should return an Error, not String by @sylvestre in https://github.com/uutils/coreutils/pull/7845
- Cargo.toml: remove exact version requirements for `selinux` by @cakebaker in https://github.com/uutils/coreutils/pull/7883
๐ฆ Code quality
- all: add `(uutils coreutils)` to version string by @cakebaker in https://github.com/uutils/coreutils/pull/7441
- Cargo.toml: use `authors.workspace = true` by @cakebaker in https://github.com/uutils/coreutils/pull/7723
- utmpx.rs: use correct constant names for musl libc by @Ecordonnier in https://github.com/uutils/coreutils/pull/7459
- fsext.rs: use type inference fsid_t / __fsid_t by @Ecordonnier in https://github.com/uutils/coreutils/pull/7469
- .pre-commit-config.yaml: Also run cspell by @drinkcat in https://github.com/uutils/coreutils/pull/7577
- Move our tests infra into a dedicated crate by @sylvestre in https://github.com/uutils/coreutils/pull/7598
- Flush `BufWriter`s, clean up error reporting by @blyxxyz in https://github.com/uutils/coreutils/pull/7622
- Consolidate crate config in workspace by @nyurik in https://github.com/uutils/coreutils/pull/7710
- + 29 more
๐ฆ CI
- bump to Rust edition 2024 & min = 1.85 by @sylvestre in https://github.com/uutils/coreutils/pull/7423
- CI: improve the intermittent ignore by @sylvestre in https://github.com/uutils/coreutils/pull/7411
- Python: add ruff check and fix the code by @sylvestre in https://github.com/uutils/coreutils/pull/7486
- python: fix formatting in `compare_test_results.py` by @cakebaker in https://github.com/uutils/coreutils/pull/7493
- flake: drop flake-utils, refactor by @bloxx12 in https://github.com/uutils/coreutils/pull/7368
- GNU CI: fix the intermittement management by @sylvestre in https://github.com/uutils/coreutils/pull/7517
- remaining-gnu-error.py: Adjust to the new URL by @sylvestre in https://github.com/uutils/coreutils/pull/7634
- github/action: on fork, run the CI for all the branches (currently: only main) by @sylvestre in https://github.com/uutils/coreutils/pull/7604
- + 22 more
๐ Documentation
- CONTRIBUTING: fix broken link to Apple's file_cmds by @ohno418 in https://github.com/uutils/coreutils/pull/7460
- fixed link to repo on uutests docs by @hz2 in https://github.com/uutils/coreutils/pull/7848
- README.md: Refer to macOS when talking about the OS, not Mac (hardware) by @C0rn3j in https://github.com/uutils/coreutils/pull/7462
- uutests: add a doc by @sylvestre in https://github.com/uutils/coreutils/pull/7607
- uudoc: Fix for edition 2024 by @drinkcat in https://github.com/uutils/coreutils/pull/7573
- ci: Enable uudoc feature on x86-64 native builder by @drinkcat in https://github.com/uutils/coreutils/pull/7574
- Document the release process by @sylvestre in https://github.com/uutils/coreutils/pull/7419
- add fedora and RHEL installation docs by @benyaminl in https://github.com/uutils/coreutils/pull/7453
- + 8 more
๐ฆ Dependency Updates
- Bump `iana-time-zone` & add `windows-core` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/7628
- deny.toml: remove `zerocopy` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/7773
- Bump `libc` & remove unnecessary `unsafe` blocks by @cakebaker in https://github.com/uutils/coreutils/pull/7434
- Bump `tempfile` & fix deprecation warning by @cakebaker in https://github.com/uutils/coreutils/pull/7922
- Bump `markdownlint` action & fix warnings by @cakebaker in https://github.com/uutils/coreutils/pull/7939
- Bump `nix` & `ctrlc`, adapt code to API changes in `nix` by @cakebaker in https://github.com/uutils/coreutils/pull/7971
- Bump `fluent` and `fluent-bundle` by @cakebaker in https://github.com/uutils/coreutils/pull/7980
- chore(deps): update rust crate terminal_size to v0.4.2 by @renovate in https://github.com/uutils/coreutils/pull/7425
- + 60 more
โจ New Contributors
- @LouisDISPA made their first contribution in https://github.com/uutils/coreutils/pull/7388
- @Carreau made their first contribution in https://github.com/uutils/coreutils/pull/7378
- @ohno418 made their first contribution in https://github.com/uutils/coreutils/pull/7460
- @benyaminl made their first contribution in https://github.com/uutils/coreutils/pull/7453
- @C0rn3j made their first contribution in https://github.com/uutils/coreutils/pull/7462
- @TerakomariGandesblood made their first contribution in https://github.com/uutils/coreutils/pull/7479
- @bloxx12 made their first contribution in https://github.com/uutils/coreutils/pull/7368
- @jmjoy made their first contribution in https://github.com/uutils/coreutils/pull/7506
- + 34 more
๐ฆ ๐ฆ **Rust Coreutils 0.0.30 Release:**
- We are excited to announce the release of Rust Coreutils 0.0.30!
- ---
๐ฆ Highlights:
- Improved Compatibility:
- This release focused on compatibility with the upstream GNU Coreutils 9.6 release. This is why the number of passing tests didn't change much - our effort was directed at adapting to the new upstream version rather than fixing existing test failures.
- Passing GNU tests increased to 507 (+1 compared to 0.0.29).
- Contributions: This release was made possible by the dedication of 22 contributors, including 8 newcomers.
- We also announced at FOSDEM the extension of this project to cover other key Linux tools through our uutils initiative. This will extend the Rust rewrite effort to additional common Unix tools. See the presentation on [YouTube](https://www.youtube.com/watch?v=cXf31nFPo0U) ([slides](https://sylvestre.ledru.info/coreutils-fosdem-2025/)) or read the [LWN article](https://lwn.net/Articles/1007907/) for more details about our vision.
- ---
๐งช GNU Test Suite Compatibility:
- Here's how version 0.0.30 compares to the previous release:
- | Result | 0.0.29 | 0.0.30 | Change 0.0.29 to 0.0.30 | % Total 0.0.29 | % Total 0.0.30 | % Change 0.0.29 to 0.0.30 |
- |---------------|--------|--------|-------------------------|----------------|----------------|--------------------------|
- | Pass | 506 | 507 | +1 | 82.38% | 82.17% | -0.21% |
- | Skip | 41 | 41 | 0 | 6.68% | 6.65% | -0.03% |
- | Fail | 67 | 69 | +2 | 10.92% | 11.18% | +0.26% |
- | Total | 614 | 617 | +3 (new tests) | | | |
- ---
- + 2 more
๐ฆ Call to Action:
- Support our work by sponsoring us on GitHub! Your contributions directly help maintain our infrastructure and enable faster development. [Sponsor us here](https://github.com/sponsors/uutils).
- For more details and to download the latest release, visit our website: [https://uutils.github.io](https://uutils.github.io).
๐ฆ cat
- error when output is input and appending by @jfinkels in https://github.com/uutils/coreutils/pull/7260
๐ฆ chgrp
- add option --from by @sylvestre in https://github.com/uutils/coreutils/pull/7129
- gnu/tests/chgrp/from.sh is now fixed by @sylvestre in https://github.com/uutils/coreutils/pull/7205
๐ฆ cksum
- Fix #6375 and un-ignore now passing tests by @RenjiSann in https://github.com/uutils/coreutils/pull/7261
- Update error and flags handling to improver GNU's match by @RenjiSann in https://github.com/uutils/coreutils/pull/7192
- add CRC32B algorithm added in GNU 9.6 by @RenjiSann in https://github.com/uutils/coreutils/pull/7169
- replace `is_some_and` with `is_none_or` by @cakebaker in https://github.com/uutils/coreutils/pull/7403
๐ฆ cp
- disabled verbose output if file has been skipped by @BigPapa314 in https://github.com/uutils/coreutils/pull/7347
- fix verbose output order after prompt by @aimerlief in https://github.com/uutils/coreutils/pull/7287
๐ฆ csplit
- don't panic on missing suppressed file by @jfinkels in https://github.com/uutils/coreutils/pull/7292
๐ฆ echo
- use uucore::format::parse_escape_only() by @jfinkels in https://github.com/uutils/coreutils/pull/7316
๐ฆ expr
- Add tests by @RenjiSann in https://github.com/uutils/coreutils/pull/7356
- Evaluate parenthesis content before checking for closing parenthesis by @RenjiSann in https://github.com/uutils/coreutils/pull/7332
- Fix assorted test errors in tests/expr/expr.pl by @sargas in https://github.com/uutils/coreutils/pull/6134
- Get rid of clap for performance reasons by @RenjiSann in https://github.com/uutils/coreutils/pull/7352
๐ฆ install
- Document install-C test failure by @sylvestre in https://github.com/uutils/coreutils/pull/7223
๐ฆ head
- ensure stdin input stream is correct on exit by @karlmcdowall in https://github.com/uutils/coreutils/pull/7253
- Fix bug printing large non-seekable files by @karlmcdowall in https://github.com/uutils/coreutils/pull/7294
- fix bug reading back through files by @karlmcdowall in https://github.com/uutils/coreutils/pull/7248
- improve error mgmt. by @sylvestre in https://github.com/uutils/coreutils/pull/7408
- Remove a head test from the list of failure by @sylvestre in https://github.com/uutils/coreutils/pull/7414
๐ฆ kill
- don't allow lowercase signal names with '-' by @cakebaker in https://github.com/uutils/coreutils/pull/7206
- fix the fail to use only least significant bits to identify signal with -l by @Felle33 in https://github.com/uutils/coreutils/pull/7225
- list signal `0` with `-l` and `-t` by @cakebaker in https://github.com/uutils/coreutils/pull/7193
- test "-l <number>" & adapt error messages by @cakebaker in https://github.com/uutils/coreutils/pull/7213
๐ฆ ls
- display %Z alphabetic time zone abbreviation by @jfinkels in https://github.com/uutils/coreutils/pull/7154
- Refactoring ls and date by @Felle33 in https://github.com/uutils/coreutils/pull/7194
- gnu patches: adapt `tests_ls_no_cap.patch` to GNU `coreutils 9.6` by @cakebaker in https://github.com/uutils/coreutils/pull/7163
๐ฆ mv
- show prompt for `-u --interactive` by @cakebaker in https://github.com/uutils/coreutils/pull/7178
- Make mv command fallback to copy only if the src and dst are on different device by @hamflx in https://github.com/uutils/coreutils/pull/6040
๐ฆ numfmt
- extract test from other test & expand it by @cakebaker in https://github.com/uutils/coreutils/pull/7155
- fix Unit::SI uses lowercase `k` suffix for kilos by @alexsnaps in https://github.com/uutils/coreutils/pull/7322
- fix from iec-i without suffix are bytes by @alexsnaps in https://github.com/uutils/coreutils/pull/7323
๐ฆ od
- remove custom implementations of PartialEq and Eq by @alexs-sh in https://github.com/uutils/coreutils/pull/7211
๐ฆ printf
- (partially) fix hex format: exponent is decimal, correctly print negative numbers by @drinkcat in https://github.com/uutils/coreutils/pull/7365
- Show warning message in case of excess arguments by @RenjiSann in https://github.com/uutils/coreutils/pull/7239
- error on missing hexadecial escape value by @jfinkels in https://github.com/uutils/coreutils/pull/7259
- negative asterisk param changes alignment by @RenjiSann in https://github.com/uutils/coreutils/pull/7246
- Re-enable integer overflow test case for printf by @jfinkels in https://github.com/uutils/coreutils/pull/7168
๐ฆ rm
- add two passing tests for -i option by @jfinkels in https://github.com/uutils/coreutils/pull/7306
- correct prompt for removing inaccessible dir by @jfinkels in https://github.com/uutils/coreutils/pull/7325
- simplify remove_dir() helper function by @jfinkels in https://github.com/uutils/coreutils/pull/7308
- use recursive directory traversal with --recursive by @jfinkels in https://github.com/uutils/coreutils/pull/7304
๐ฆ seq
- remove timeout from seq test cases by @jfinkels in https://github.com/uutils/coreutils/pull/7171
๐ฆ sort
- errors on overflowing -k argument but shouldn't by @ic3man5 in https://github.com/uutils/coreutils/pull/7188
- needs support for human-readable block size suffixes R and Q by @ic3man5 in https://github.com/uutils/coreutils/pull/7198
- options -C and -c should be mutually exclusive but aren't by @ic3man5 in https://github.com/uutils/coreutils/pull/7191
- support percent arguments to -S option by @jfinkels in https://github.com/uutils/coreutils/pull/7181
๐ฆ split
- avoid extremely long format width in test by @jfinkels in https://github.com/uutils/coreutils/pull/7301
๐ฆ tee
- fix -p behavior upon broken pipe stdout by @RenjiSann in https://github.com/uutils/coreutils/pull/7273
- fix usage of deprecated function in tests by @cakebaker in https://github.com/uutils/coreutils/pull/7341
๐งช test
- add < and > operators for string comparison by @jfinkels in https://github.com/uutils/coreutils/pull/7315
- remove `sleep` from tests by @cakebaker in https://github.com/uutils/coreutils/pull/7327
๐ฆ timeout
- add support for `-f` and `-p` short options by @cakebaker in https://github.com/uutils/coreutils/pull/7200
๐ฆ touch
- support obsolete POSIX timestamp argument by @jfinkels in https://github.com/uutils/coreutils/pull/7274
๐ฆ tr
- Fix GNU behavior deviation by @RenjiSann in https://github.com/uutils/coreutils/pull/7320
๐ฆ uptime
- refactor, move some codes to uucore by @Bluemangoo in https://github.com/uutils/coreutils/pull/7289
- remove duplicate test by @cakebaker in https://github.com/uutils/coreutils/pull/7265
๐ฆ yes
- fix use of deprecated function in test by @cakebaker in https://github.com/uutils/coreutils/pull/7348
๐ฆ uucore
- Add missing dependencies by @sylvestre in https://github.com/uutils/coreutils/pull/7157
- Fix proc_info compilation by @dezgeg in https://github.com/uutils/coreutils/pull/7385
- Sync proc_info methods from procps by @dezgeg in https://github.com/uutils/coreutils/pull/7351
- remove `lazy_static` and use `LazyLock` instead by @cakebaker in https://github.com/uutils/coreutils/pull/7404
- replace `PanicInfo` with `PanicHookInfo` by @cakebaker in https://github.com/uutils/coreutils/pull/7395
- uucore/docs.rs: generate the doc for all features by @sylvestre in https://github.com/uutils/coreutils/pull/7220
๐ Documentation
- Fix usage strings for #5692 by @rwdj in https://github.com/uutils/coreutils/pull/7303
- why-error.md: document more errors by @sylvestre in https://github.com/uutils/coreutils/pull/7224
๐ฆ Build & CI
- add words to `spell-checker:ignore` in two files by @cakebaker in https://github.com/uutils/coreutils/pull/7300
- build: restore uutils in GNU test files by @jfinkels in https://github.com/uutils/coreutils/pull/7170
- try upstream 9.6 by @sylvestre in https://github.com/uutils/coreutils/pull/7149
- .github: CICD: add workspace test to build matrix by @drinkcat in https://github.com/uutils/coreutils/pull/7386
- GNUmakefile: fix install error "argument list too long" by @blmaier in https://github.com/uutils/coreutils/pull/7321
- GNUmakefile: support skipping manpages and completions by @blmaier in https://github.com/uutils/coreutils/pull/7331
- gnu patches: move to use quilt by @sylvestre in https://github.com/uutils/coreutils/pull/7127
- Decrease more sleep by @sylvestre in https://github.com/uutils/coreutils/pull/7244
- + 18 more
๐ฆ fuzzing
- fuzz: update dependencies by @cakebaker in https://github.com/uutils/coreutils/pull/7245
- fuzz: use new `<`/`>` operators in `fuzz_test.rs` by @cakebaker in https://github.com/uutils/coreutils/pull/7330
- Improve fuzzer logging by @RenjiSann in https://github.com/uutils/coreutils/pull/7281
๐ฆ Code quality
- clippy: fix warnings from `unnecessary_map_or` lint by @cakebaker in https://github.com/uutils/coreutils/pull/7398
- clippy: fix/disable warnings introduced with Rust `1.85` by @cakebaker in https://github.com/uutils/coreutils/pull/7329
- Cargo.toml: fix incorrect lint name by @cakebaker in https://github.com/uutils/coreutils/pull/7267
- Remove `once_cell` dependency and use `LazyLock` by @cakebaker in https://github.com/uutils/coreutils/pull/7405
- Remove `rand_pcg` by @cakebaker in https://github.com/uutils/coreutils/pull/7233
- Style fixes from cargo +nightly clippy by @jfinkels in https://github.com/uutils/coreutils/pull/7339
- Move other programs to thiserror by @sylvestre in https://github.com/uutils/coreutils/pull/7207
- Move some programs to thiserror by @sylvestre in https://github.com/uutils/coreutils/pull/7175
- + 3 more
๐ฆ Dependency Updates
- Bump MSRV to 1.82.0 by @drinkcat in https://github.com/uutils/coreutils/pull/7394
- Bump `fts-sys` from `0.2.13` to `0.2.14` by @cakebaker in https://github.com/uutils/coreutils/pull/7279
- Bump `nom` and adapt `tr` to API changes by @cakebaker in https://github.com/uutils/coreutils/pull/7227
- Bump `rand` & `rand_core` to `0.9.0`, adapt code to API changes by @cakebaker in https://github.com/uutils/coreutils/pull/7242
- Bump `tempfile` & add two crates to the skip list in `deny.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/7238
- fix(deps): update rust crate similar to v2.7.0 by @renovate in https://github.com/uutils/coreutils/pull/7164
- chore(deps): update rust crate parse_datetime to 0.7.0 by @renovate in https://github.com/uutils/coreutils/pull/7172
- chore(deps): update rust crate clap to v4.5.27 by @renovate in https://github.com/uutils/coreutils/pull/7189
- + 43 more
โจ New Contributors
- @ic3man5 made their first contribution in https://github.com/uutils/coreutils/pull/7188
- @rwdj made their first contribution in https://github.com/uutils/coreutils/pull/7303
- @alexsnaps made their first contribution in https://github.com/uutils/coreutils/pull/7323
- @blmaier made their first contribution in https://github.com/uutils/coreutils/pull/7321
- @Bluemangoo made their first contribution in https://github.com/uutils/coreutils/pull/7289
- @BigPapa314 made their first contribution in https://github.com/uutils/coreutils/pull/7347
- @drinkcat made their first contribution in https://github.com/uutils/coreutils/pull/7365
- @zcg00 made their first contribution in https://github.com/uutils/coreutils/pull/7266
- + 1 more
๐ฆ ๐ฆ **Rust Coreutils 0.0.29 Release:**
- We are excited to announce the release of Rust Coreutils 0.0.29!
- ---
๐ฆ Highlights:
- Improved Compatibility:
- Passing GNU tests increased to 506 (+30 compared to 0.0.28).
- Failing tests reduced to 67 (-27 compared to 0.0.28).
- Contributions: This release was made possible by the dedication of 32 contributors, including 18 newcomers.
- Compared with 0.0.28, several commands now achieve 100% compatibility with GNU tests, including `df`, `dircolors`, `chmod`, `chroot`, `comm`, `seq`, `split`, `uniq`, and more.
- Performance Boost: Optimizations in tools like `du`, `echo`, and `seq`.
- ---
๐งช GNU Test Suite Compatibility:
- Hereโs how version 0.0.29 compares to the previous release:
- | Result | 0.0.28 | 0.0.29 | Change 0.0.28 to 0.0.29 | % Total 0.0.28 | % Total 0.0.29 | % Change 0.0.28 to 0.0.29 |
- |---------------|--------|--------|-------------------------|----------------|----------------|--------------------------|
- | Pass | 476 | 506 | +30 | 77.65% | 82.38% | +4.73% |
- | Skip | 43 | 41 | -2 | 7.01% | 6.68% | -0.33% |
- | Fail | 94 | 67 | -27 | 15.34% | 10.92% | -4.42% |
- | Error | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
- ---
- + 2 more
๐ฆ Call to Action:
- Support our work by sponsoring us on GitHub! Your contributions directly help maintain our infrastructure and enable faster development. [Sponsor us here](https://github.com/sponsors/uutils).
- For more details and to download the latest release, visit our website: [https://uutils.github.io](https://uutils.github.io).
๐ฆ basenc
- basenc: ignore Interrupted errors by @andrewliebenow in https://github.com/uutils/coreutils/pull/6778
- basenc: ignore case with "--base16 --decode" by @cakebaker in https://github.com/uutils/coreutils/pull/6963
- build-gnu.sh: adapt `basenc` message to clap changes by @cakebaker in https://github.com/uutils/coreutils/pull/6966
๐ฆ base32/base64
- handle two corner cases by @sylvestre in https://github.com/uutils/coreutils/pull/6906
๐ฆ checksum
- prepare further behavior fix with a rework by @RenjiSann in https://github.com/uutils/coreutils/pull/6822
- Further rework by @RenjiSann in https://github.com/uutils/coreutils/pull/6868
- cksum: even more fixes by @RenjiSann in https://github.com/uutils/coreutils/pull/6929
- fuzzing: add a new fuzzer for cksum by @sylvestre in https://github.com/uutils/coreutils/pull/6585
- fix error message when the flags length and an algorithm different from blake2b are present by @Felle33 in https://github.com/uutils/coreutils/pull/7071
- the --tag is meaningless with --check by @Felle33 in https://github.com/uutils/coreutils/pull/7079
- remove some unnecessary type info by @cakebaker in https://github.com/uutils/coreutils/pull/7080
๐ฆ chmod
- Remove duplicate declarations + start to plug it to chmod too by @sylvestre in https://github.com/uutils/coreutils/pull/7017
- add uucore's `perms` feature to `Cargo.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/7037
- add support for the deref and links options by @sylvestre in https://github.com/uutils/coreutils/pull/7025
- remove test tests/chmod/symlinks from the list by @sylvestre in https://github.com/uutils/coreutils/pull/7125
๐ฆ chroot
- fix parsing of --userspec argument by @jfinkels in https://github.com/uutils/coreutils/pull/7043
- remove `-G` short option by @cakebaker in https://github.com/uutils/coreutils/pull/7051
- fix many issues with chroot by @jfinkels in https://github.com/uutils/coreutils/pull/7057
- handle the error when invalid user by @sylvestre in https://github.com/uutils/coreutils/pull/7015
- make group option self overwriting by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/7123
- tests/chroot/chroot-credentials has been fixed by @sylvestre in https://github.com/uutils/coreutils/pull/7124
๐ฆ comm
- generate an error if the input is a directory by @sylvestre in https://github.com/uutils/coreutils/pull/6853
- adapt GNU error messages by @cakebaker in https://github.com/uutils/coreutils/pull/6998
- don't use files for test by @sylvestre in https://github.com/uutils/coreutils/pull/7140
- implement the ordering check by @sylvestre in https://github.com/uutils/coreutils/pull/7144
๐ฆ cp
- remove some `sleep()` calls in tests by @cakebaker in https://github.com/uutils/coreutils/pull/6890
- use the function from uucore by @sylvestre in https://github.com/uutils/coreutils/pull/7003
- when copying a read only file, make sure that the xattrs can be set properly by @sylvestre in https://github.com/uutils/coreutils/pull/7009
- copy attributes after making subdir by @rm-dr in https://github.com/uutils/coreutils/pull/6884
- make --backup and --no-clobber are mutually exclusive by @sylvestre in https://github.com/uutils/coreutils/pull/7082
- implement copying from streams by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/7061
๐ฆ csplit
- fix bug when --suppress-matched flag is active and positive/negative offset is present by @Felle33 in https://github.com/uutils/coreutils/pull/7088
- support reading from pipe by @fuad1502 in https://github.com/uutils/coreutils/pull/6951
- simplify test by @cakebaker in https://github.com/uutils/coreutils/pull/7106
- add support for `-q` by @cakebaker in https://github.com/uutils/coreutils/pull/7000
- allow offset without sign in pattern by @cakebaker in https://github.com/uutils/coreutils/pull/7006
๐ฆ cut
- Fix cut when lines don't end with specified delim by @andreistan26 in https://github.com/uutils/coreutils/pull/5844
- adjust to our messages as they are better by @sylvestre in https://github.com/uutils/coreutils/pull/6921
- some test refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/6970
- fix overriding of `-d=` by @cakebaker in https://github.com/uutils/coreutils/pull/6984
- don't merge adjacent ranges by @cakebaker in https://github.com/uutils/coreutils/pull/6990
- fix handling of newline as delimiter by @cakebaker in https://github.com/uutils/coreutils/pull/6996
๐ฆ date
- display %Z alphabetic time zone abbreviation by @jfinkels in https://github.com/uutils/coreutils/pull/7134
๐ฆ dd
- error if iflag=directory and input is stdin by @jfinkels in https://github.com/uutils/coreutils/pull/7122
๐ฆ df
- fix display of special characters by @jfinkels in https://github.com/uutils/coreutils/pull/7151
- error on over-mounted device by @jfinkels in https://github.com/uutils/coreutils/pull/7116
- df test now passes by @sylvestre in https://github.com/uutils/coreutils/pull/7130
๐ฆ dircolors
- fix empty COLORTERM matching with ?* pattern by @sylvestre in https://github.com/uutils/coreutils/pull/7089
- move `use` declaration to top by @cakebaker in https://github.com/uutils/coreutils/pull/7143
- dircolors is fixed by @sylvestre in https://github.com/uutils/coreutils/pull/7141
๐ฆ du
- Reuse metadata from DirEntry where possible by @jesseschalken in https://github.com/uutils/coreutils/pull/6839
- fix the display with --inodes by @sylvestre in https://github.com/uutils/coreutils/pull/6878
- deduplicate the input by @sylvestre in https://github.com/uutils/coreutils/pull/6885
- Reuse existing metadata instead of calling path.is_dir() again by @jesseschalken in https://github.com/uutils/coreutils/pull/6840
๐ฆ echo
- remove code made obsolete by MSRV 1.79 by @cakebaker in https://github.com/uutils/coreutils/pull/6989
- handle double hyphens by @cakebaker in https://github.com/uutils/coreutils/pull/6997
- add support for `POSIXLY_CORRECT` by @cakebaker in https://github.com/uutils/coreutils/pull/7059
๐ฆ env
- add missing `cfg` attributes to tests by @cakebaker in https://github.com/uutils/coreutils/pull/6896
- better handling of the errors by @sylvestre in https://github.com/uutils/coreutils/pull/7090
- fix only long options are allowed to contain '=' by @jovielarue in https://github.com/uutils/coreutils/pull/7008
๐ฆ fmt
- generate an error if the input is a directory by @sylvestre in https://github.com/uutils/coreutils/pull/6854
๐ฆ head
- fix subtraction underflow with --bytes=-N by @jfinkels in https://github.com/uutils/coreutils/pull/7036
- make head fail when writing to /dev/full by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/7068
๐ฆ install
- create destination file with safer modes before copy by @nerdroychan in https://github.com/uutils/coreutils/pull/6595
- Revert "create destination file with safer modes before copy" by @sylvestre in https://github.com/uutils/coreutils/pull/6922
- implement copying from streams by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/6965
๐ฆ kill
- add `-n` hidden option for compatibility with bash by @samueltardieu in https://github.com/uutils/coreutils/pull/7069
- make `-s` conflict with `-l` and `-t` by @samueltardieu in https://github.com/uutils/coreutils/pull/7070
๐ฆ ls
- when a file has capabilities (setcap), change the color by @sylvestre in https://github.com/uutils/coreutils/pull/6987
- finish the plug of mtime by @sylvestre in https://github.com/uutils/coreutils/pull/7016
- add better support for non-UTF-8 bytes by @jtracey in https://github.com/uutils/coreutils/pull/7020
๐ฆ mkfifo
- better handle the mode + umask by @sylvestre in https://github.com/uutils/coreutils/pull/6971
- add missing "mode" feature for uucore dep by @jfinkels in https://github.com/uutils/coreutils/pull/7075
๐ฆ more
- reduce memory usage a bit by @tertsdiepraam in https://github.com/uutils/coreutils/pull/6399
๐ฆ mv
- fix the output of an error message by @sylvestre in https://github.com/uutils/coreutils/pull/6861
- remove `sleep` in tests by @cakebaker in https://github.com/uutils/coreutils/pull/6880
- show "same file" error for `mv d/f d` by @cakebaker in https://github.com/uutils/coreutils/pull/5788
- Revert "show 'same file' error for `mv d/f d`" by @sylvestre in https://github.com/uutils/coreutils/pull/6905
- fix invalid numbered backup path by @hamflx in https://github.com/uutils/coreutils/pull/6119
- don't panic if apply_xattrs fails by @alexs-sh in https://github.com/uutils/coreutils/pull/6936
- improve move-to-self error handling by @sgvictorino in https://github.com/uutils/coreutils/pull/6995
๐ฆ numfmt
- use `succeeds()`/`fails()` instead of `run()` in tests by @cakebaker in https://github.com/uutils/coreutils/pull/7135
- adapt GNU `numfmt` error message by @cakebaker in https://github.com/uutils/coreutils/pull/7086
๐ฆ printf
- remove allow(dead_code) directive by @jfinkels in https://github.com/uutils/coreutils/pull/7110
๐ฆ rm
- fix r4_gnu_test by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6621
- remove outdated comment by @cakebaker in https://github.com/uutils/coreutils/pull/7022
- remove open call from uu-rm by @elde-n in https://github.com/uutils/coreutils/pull/7010
๐ฆ seq
- add overflow checks when parsing exponents by @steinwand6 in https://github.com/uutils/coreutils/pull/6858
- handle scientific notation with uppercase 'E' by @artP2 in https://github.com/uutils/coreutils/pull/6928
- reduce memory allocation during prefix search by @alexs-sh in https://github.com/uutils/coreutils/pull/6949
- handle 0e... scientific notation without padding by @aimerlief in https://github.com/uutils/coreutils/pull/6934
- use `stdout_only()` to remove `no_stderr()` by @cakebaker in https://github.com/uutils/coreutils/pull/6937
- improve error handling for invalid -f values by @jfinkels in https://github.com/uutils/coreutils/pull/7032
- re-enable GNU test file precision.sh by @jfinkels in https://github.com/uutils/coreutils/pull/7095
- add floating point support by @alexs-sh in https://github.com/uutils/coreutils/pull/6959
- + 2 more
๐ฆ sort
- Rework merge batching logic by @karlmcdowall in https://github.com/uutils/coreutils/pull/6957
๐ฆ split
- fix bug with large arguments to -C by @jfinkels in https://github.com/uutils/coreutils/pull/7128
๐ฆ stat
- Improve "stat" compatibility by @sylvestre in https://github.com/uutils/coreutils/pull/6933
- fix precision when rendering mtime (%Y) by @jfinkels in https://github.com/uutils/coreutils/pull/7115
๐ฆ tail
- fix issue #6543 (--pid when reading from stdin) by @just-an-engineer in https://github.com/uutils/coreutils/pull/6582
๐ฆ tr
- Add ambiguous octal escape warning by @OshinoShinobu-Chan in https://github.com/uutils/coreutils/pull/6886
- generate an error if the input is a directory by @sylvestre in https://github.com/uutils/coreutils/pull/6855
- generate an error for real if the input is a directory by @sylvestre in https://github.com/uutils/coreutils/pull/6907
๐ฆ tsort
- split edge data on any whitespace chars by @jfinkels in https://github.com/uutils/coreutils/pull/7078
- print nodes and cycles as they are visited by @jfinkels in https://github.com/uutils/coreutils/pull/7093
๐ฆ uniq
- fix multibyte input by @sylvestre in https://github.com/uutils/coreutils/pull/7046
๐ฆ wc
- fix escaping by @jtracey in https://github.com/uutils/coreutils/pull/6993
๐ฆ uucore
- Make EscapedChar and friends pub by @LegNeato in https://github.com/uutils/coreutils/pull/6903
- Make `Spec` public by @LegNeato in https://github.com/uutils/coreutils/pull/6946
- uucore/buf_copy: bug fixes for compatibility with uutils core utilities by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/6983
- uucore: add common splice-write functionality by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/6964
- uucore: correctly truncate response if getgroups shrinks by @santtu in https://github.com/uutils/coreutils/pull/6978
- uucore: add alacritty to the list of terminals that support colors by @sylvestre in https://github.com/uutils/coreutils/pull/6923
- uucore/buf-copy: delete redundant functions by @DaringCuteSeal in https://github.com/uutils/coreutils/pull/7060
- quoting_style: Add support for non-UTF-8 bytes by @jtracey in https://github.com/uutils/coreutils/pull/6882
- + 3 more
๐ฆ Build & CI
- GNUmakefile: remove `sleep` from `UNIX_PROGS` to avoid warning by @cakebaker in https://github.com/uutils/coreutils/pull/6960
- publish: by default, put it as draft by @sylvestre in https://github.com/uutils/coreutils/pull/6860
- Bump MSRV to `1.77` by @cakebaker in https://github.com/uutils/coreutils/pull/6870
- Improve gnu build script by @sylvestre in https://github.com/uutils/coreutils/pull/7136
- GnuComment: zizmor: ignore[dangerous-triggers] by @dcampbell24 in https://github.com/uutils/coreutils/pull/6974
- Android CICD: use posix style test by @jtracey in https://github.com/uutils/coreutils/pull/6982
- GNU: try to remove the fail-2eperm.sh workaround by @sylvestre in https://github.com/uutils/coreutils/pull/7013
- ci: install `libselinux1-dev` by @cakebaker in https://github.com/uutils/coreutils/pull/7132
- + 10 more
๐ฆ Code quality
- Fix new clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/6898
- Use `div_ceil()` from `std` by @cakebaker in https://github.com/uutils/coreutils/pull/6877
- uudoc,chcon: fix `needless_lifetimes` warnings by @cakebaker in https://github.com/uutils/coreutils/pull/6899
- uucore/perms: use ORs instead of `match` (fix todo) by @cakebaker in https://github.com/uutils/coreutils/pull/6891
- clippy: fix clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/6910
- Fix clippy warnings by @RenjiSann in https://github.com/uutils/coreutils/pull/6932
- Improve the GNU compat doc by @sylvestre in https://github.com/uutils/coreutils/pull/7012
- clippy: fix errors introduced with Rust `1.84` by @cakebaker in https://github.com/uutils/coreutils/pull/7111
๐ Documentation
- doc: remove fixed tests from `why-error.md` by @cakebaker in https://github.com/uutils/coreutils/pull/7101
- doc: improve why-error doc by @sylvestre in https://github.com/uutils/coreutils/pull/7091
- document two more failures by @sylvestre in https://github.com/uutils/coreutils/pull/7041
- Fix: broken doc links by @jovielarue in https://github.com/uutils/coreutils/pull/7024
๐ฆ Dependencies
- Bump `crossterm` from `0.27.0` to `0.28.1` by @cakebaker in https://github.com/uutils/coreutils/pull/6874
- Bump `thiserror` from `1.0.69` to `2.0.3` by @cakebaker in https://github.com/uutils/coreutils/pull/6888
- Bump `cpp` and `cpp_build` from `0.5.9` to `0.5.10` by @cakebaker in https://github.com/uutils/coreutils/pull/6887
- fuzz: bump `bigdecimal` from `0.4.3` to `0.4.7` by @cakebaker in https://github.com/uutils/coreutils/pull/7148
- Bump `chrono-tz` to `0.10.0` by @cakebaker in https://github.com/uutils/coreutils/pull/7146
- Bump `itertools` from `0.13.0` to `0.14.0` by @cakebaker in https://github.com/uutils/coreutils/pull/7045
- Bump `tempfile` from `3.14.0` to `3.15.0` by @cakebaker in https://github.com/uutils/coreutils/pull/7062
- Bump `unicode-width`, adapt test and fixtures by @cakebaker in https://github.com/uutils/coreutils/pull/6904
- + 65 more
โจ New Contributors
- @Banyc made their first contribution in https://github.com/uutils/coreutils/pull/6869
- @jesseschalken made their first contribution in https://github.com/uutils/coreutils/pull/6839
- @steinwand6 made their first contribution in https://github.com/uutils/coreutils/pull/6858
- @LegNeato made their first contribution in https://github.com/uutils/coreutils/pull/6903
- @hamflx made their first contribution in https://github.com/uutils/coreutils/pull/6119
- @andreistan26 made their first contribution in https://github.com/uutils/coreutils/pull/5844
- @nerdroychan made their first contribution in https://github.com/uutils/coreutils/pull/6595
- @artP2 made their first contribution in https://github.com/uutils/coreutils/pull/6928
- + 11 more
๐ฆ 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% |
- 
๐ฆ Call to Action:
- Support our work by sponsoring us on GitHub! Your contributions help maintain our infrastructure and enable faster iterations. [Sponsor us here](https://github.com/sponsors/uutils).
- For more details and to download the latest release, visit our website: [https://uutils.github.io](https://uutils.github.io).
๐ฆ `basenc`
- Perform faster, streaming encoding by @andrewliebenow in [#6719](https://github.com/uutils/coreutils/pull/6719)
๐ฆ `cat`
- Fix issue #6248 by @OshinoShinobu-Chan in [#6763](https://github.com/uutils/coreutils/pull/6763)
- Use `write_end_of_line()` to avoid duplicate code by @cakebaker in [#6764](https://github.com/uutils/coreutils/pull/6764)
- Fix issue #5186 by adding explicit flush by @gim913 in [#5256](https://github.com/uutils/coreutils/pull/5256)
๐ฆ `cksum` / `hashsum`
- Add support for `--check` with base64 and other improvements by @sylvestre in [#6452](https://github.com/uutils/coreutils/pull/6452)
- Accept non-UTF-8 filenames by @BenWiederhake in [#6575](https://github.com/uutils/coreutils/pull/6575)
- Support commented lines in checksum files by @RenjiSann in [#6782](https://github.com/uutils/coreutils/pull/6782)
- Fix error handling by @Luv-Ray in [#6801](https://github.com/uutils/coreutils/pull/6801)
- Implement `-z` / `--zero` by @RenjiSann in [#6815](https://github.com/uutils/coreutils/pull/6815)
- Read the next file when the first is missing or invalid by @sylvestre in [#6524](https://github.com/uutils/coreutils/pull/6524)
- Support non-UTF-8 input in checksum files by @RenjiSann in [#6793](https://github.com/uutils/coreutils/pull/6793)
๐ฆ `cp`
- Fix preserved hardlinks not being reported in `--verbose` mode by @djedi23 in [#6496](https://github.com/uutils/coreutils/pull/6496)
- Improve GNU test case compatibility for `part-symlink` by @matrixhead in [#6588](https://github.com/uutils/coreutils/pull/6588)
- Treat an empty file name as a non-existing file by @samueltardieu in [#6683](https://github.com/uutils/coreutils/pull/6683)
- Show mode if the target does not have `S_IWUSR` by @andrewliebenow in [#6700](https://github.com/uutils/coreutils/pull/6700)
- Fix possible OOM and partial writes with large files by @neyo8826 in [#6694](https://github.com/uutils/coreutils/pull/6694)
- Fix symlink-overwrite error priority by @Luv-Ray in [#6586](https://github.com/uutils/coreutils/pull/6586)
- Normalize path when checking for duplicate source by @matrixhead in [#6825](https://github.com/uutils/coreutils/pull/6825)
- Add argument count validation for `cp` by @LoricAndre in [#6690](https://github.com/uutils/coreutils/pull/6690)
๐ฆ `date`
- Fix timezone error when setting UTC time by @CausingBrick in [#6503](https://github.com/uutils/coreutils/pull/6503)
- Add test for `date` by @Its-Just-Nans in [#6526](https://github.com/uutils/coreutils/pull/6526)
- Add tests for issue #6392 by @RenjiSann in [#6471](https://github.com/uutils/coreutils/pull/6471)
๐ฆ `dd`
- Fix issue #5905 (different error message from GNU) by @just-an-engineer in [#6622](https://github.com/uutils/coreutils/pull/6622)
๐ฆ `dircolors`
- Optimize integer and string operations required by clippy nightly by @BenWiederhake in [#6636](https://github.com/uutils/coreutils/pull/6636)
๐ฆ `echo`
- Handle multibyte escape sequences by @andrewliebenow in [#6803](https://github.com/uutils/coreutils/pull/6803)
- Remove double negation by @cakebaker in [#6810](https://github.com/uutils/coreutils/pull/6810)
๐ฆ `hashsum`
- When checksum file is untagged, detect the size by @sylvestre in [#6499](https://github.com/uutils/coreutils/pull/6499)
- On Windows, check in binary mode by default and allow `--binary` / `--text` by @Pistonight in [#6808](https://github.com/uutils/coreutils/pull/6808)
- Return error when only `--strict` or `--quiet` is given by @howjmay in [#6584](https://github.com/uutils/coreutils/pull/6584)
๐ฆ `hostname`
- Use `dns-lookup` crate to get network address(es) of the host by @lcheylus in [#6550](https://github.com/uutils/coreutils/pull/6550)
๐ฆ `join`
- Add support for multibyte separators by @jtracey in [#6736](https://github.com/uutils/coreutils/pull/6736)
- Avoid extra allocations when using `-i` by @jtracey in [#6774](https://github.com/uutils/coreutils/pull/6774)
๐ฆ `ls`
- Adjust code for `--dired` after GNU v9.5 changes by @sylvestre in [#6144](https://github.com/uutils/coreutils/pull/6144)
- Fix GNU test case `color-norm` by @matrixhead in [#6481](https://github.com/uutils/coreutils/pull/6481)
- Fix error in subdirectory output by @CausingBrick in [#6521](https://github.com/uutils/coreutils/pull/6521)
- Fix `dired` option (`-D`) not outputting datetime and parent directory byte offsets by @pyoky in [#6538](https://github.com/uutils/coreutils/pull/6538)
- Use tab when `-CF` is passed (closes #5396) by @sylvestre in [#6528](https://github.com/uutils/coreutils/pull/6528)
- Fix GNU test case `color-clear-to-eol` by @matrixhead in [#6507](https://github.com/uutils/coreutils/pull/6507)
- Refactor `parse_width` function by @matrixhead in [#6510](https://github.com/uutils/coreutils/pull/6510)
- Add test for `ls` by @Its-Just-Nans in [#6527](https://github.com/uutils/coreutils/pull/6527)
- + 3 more
๐ฆ `ln`
- Allow final destination directory when using `-nf` by @jansheikkinen in [#5975](https://github.com/uutils/coreutils/pull/5975)
๐ฆ `mkdir`
- Add `acl` permissions inheritance for subdirectories by @AnirbanHalder654322 in [#6676](https://github.com/uutils/coreutils/pull/6676)
- Prevent mode change of existing directories by @samueltardieu in [#6682](https://github.com/uutils/coreutils/pull/6682)
- Require arguments for `mkdir` and `rmdir` by @sgvictorino in [#6790](https://github.com/uutils/coreutils/pull/6790)
- Emit error when path is empty by @andrewliebenow in [#6802](https://github.com/uutils/coreutils/pull/6802)
- Allow `--parent` to be provided more than once by @DaringCuteSeal in [#6831](https://github.com/uutils/coreutils/pull/6831)
๐ฆ `mv`
- Fix GNU test case `to-symlink` by @matrixhead in [#6578](https://github.com/uutils/coreutils/pull/6578)
- Clean up inter-partition copying test code by @matrixhead in [#6583](https://github.com/uutils/coreutils/pull/6583)
- Adjust error message to pass `tests/mv/mv-exchange.sh` by @sylvestre in [#6641](https://github.com/uutils/coreutils/pull/6641)
- Fix GNU test case `mv-n` compatibility by @matrixhead in [#6599](https://github.com/uutils/coreutils/pull/6599)
- Fix GNU test case `dup-src` compatibility by @matrixhead in [#6837](https://github.com/uutils/coreutils/pull/6837)
๐ฆ `od`
- Allow trailing characters in address radix by @andrewliebenow in [#6674](https://github.com/uutils/coreutils/pull/6674)
- Prevent panic on empty address radix by @andrewliebenow in [#6675](https://github.com/uutils/coreutils/pull/6675)
๐ฆ `paste`
- Permit the delimiter list to be empty by @andrewliebenow in [#6714](https://github.com/uutils/coreutils/pull/6714)
๐ฆ `printf`
- Check precision before writing to stdout (fix #1879) by @Kev1n8 in [#6511](https://github.com/uutils/coreutils/pull/6511)
- Remove unused argument name from help by @andrewliebenow in [#6807](https://github.com/uutils/coreutils/pull/6807)
- Fix extra padding by @Kev1n8 in [#6548](https://github.com/uutils/coreutils/pull/6548)
- Delete unused file by @BenWiederhake in [#6758](https://github.com/uutils/coreutils/pull/6758)
๐ฆ `runcon`
- Adjust error message for `runcon` and `stdbuf` to pass `tests/misc/invalid-opt.pl` by @sylvestre in [#6657](https://github.com/uutils/coreutils/pull/6657)
- Improve help message for `runcon` by @cakebaker in [#6680](https://github.com/uutils/coreutils/pull/6680)
๐ฆ `sort`
- Improve error management with `--batch-size` by @sylvestre in [#6535](https://github.com/uutils/coreutils/pull/6535)
๐ฆ `sync`
- Replace `crash!` with `USimpleError` by @Kev1n8 in [#6547](https://github.com/uutils/coreutils/pull/6547)
๐งช `test`
- Ensure `-o` argument triggers an error by @sylvestre in [#6642](https://github.com/uutils/coreutils/pull/6642)
- Avoid eliding named lifetimes in tests by @samueltardieu in [#6678](https://github.com/uutils/coreutils/pull/6678)
- Fix "unused imports" warning on Redox by @cakebaker in [#5930](https://github.com/uutils/coreutils/pull/5930)
๐ฆ `touch`
- Change message when touching a directory by @Its-Just-Nans in [#6506](https://github.com/uutils/coreutils/pull/6506)
- Expose `touch` for Nushell by @ysthakur in [#5946](https://github.com/uutils/coreutils/pull/5946)
๐ฆ `uptime`
- Add support for OpenBSD using `utmp` by @lcheylus in [#6514](https://github.com/uutils/coreutils/pull/6514)
- Relax error message due to differing `errno` values on macOS by @BenWiederhake in [#6571](https://github.com/uutils/coreutils/pull/6571)
๐ฆ `users`
- Support OpenBSD using `utmp` by @jadijadi in [#6406](https://github.com/uutils/coreutils/pull/6406)
- Fix lint error `needless_borrows_for_generic_args` on OpenBSD by @lcheylus in [#6509](https://github.com/uutils/coreutils/pull/6509)
- Use `Option` instead of `Vec` for file argument by @cakebaker in [#6761](https://github.com/uutils/coreutils/pull/6761)
- Fix lint error `manual_unwrap_or_default` on OpenBSD by @lcheylus in [#6772](https://github.com/uutils/coreutils/pull/6772)
๐ฆ `tr`
- Properly determine trailing backslash by @BenWiederhake in [#6731](https://github.com/uutils/coreutils/pull/6731)
- Enable ignored test on Unix by @cakebaker in [#6737](https://github.com/uutils/coreutils/pull/6737)
- Raise error if `set2` is too big on complemented class by @RenjiSann in [#6564](https://github.com/uutils/coreutils/pull/6564)
- Accept non-UTF-8 arguments for sets by @RenjiSann in [#6563](https://github.com/uutils/coreutils/pull/6563)
- Fix unescaped trailing backslash warning by @andrewliebenow in [#6713](https://github.com/uutils/coreutils/pull/6713)
- Correctly handle multibyte octal sequences by @andrewliebenow in [#6779](https://github.com/uutils/coreutils/pull/6779)
- Correctly detect matched `[:upper:]` by @cvonelm in [#6513](https://github.com/uutils/coreutils/pull/6513)
- Enable ignored tests that have already been fixed by @BenWiederhake in [#6756](https://github.com/uutils/coreutils/pull/6756)
๐ฆ `tsort`
- Propose refactoring for `tsort` by @anastygnome in [#5968](https://github.com/uutils/coreutils/pull/5968)
- Adjust error message in `tsort.pl` by @sylvestre in [#6785](https://github.com/uutils/coreutils/pull/6785)
๐ฆ uucore
- uucore: Split `tty` from `proc_info` by @Krysztal112233 in https://github.com/uutils/coreutils/pull/6593
- uucore: Fix return value of `ProcessInfomation::tty` by @Krysztal112233 in https://github.com/uutils/coreutils/pull/6597
- uucore: Add `getsid` for `process.rs` by @Krysztal112233 in https://github.com/uutils/coreutils/pull/6600
- fsext: remove crash! by @Kev1n8 in https://github.com/uutils/coreutils/pull/6549
- uucore+timeout: accept signals of any casing by @BenWiederhake in https://github.com/uutils/coreutils/pull/6382
- uucore: Move `pgrep/process.rs` to `uucore` by @Krysztal112233 in https://github.com/uutils/coreutils/pull/6483
- uucore/proc_info: ignore spelling of some words by @cakebaker in https://github.com/uutils/coreutils/pull/6561
- uucore: fix "unused import" warning on Redox by @cakebaker in https://github.com/uutils/coreutils/pull/6695
- + 3 more
๐ฆ Misc
- bin/coreutils: add `--list` to help output by @cakebaker in https://github.com/uutils/coreutils/pull/6692
- prepare version 0.0.28 by @sylvestre in https://github.com/uutils/coreutils/pull/6844
- Use `workspace = true` for some dependencies by @cakebaker in https://github.com/uutils/coreutils/pull/6601
- sort: enable clippy::suspicious_open_options on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/6851
- Fix clippy errors by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/6505
- Fix nightly clippy by @BenWiederhake in https://github.com/uutils/coreutils/pull/6581
- fuzz: run GNU Core Utilities with LC_ALL=C by @andrewliebenow in https://github.com/uutils/coreutils/pull/6795
- Disable failed tests on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/6545
- + 17 more
๐ฆ CI
- ci: remove temporary code coverage jobs by @cakebaker in https://github.com/uutils/coreutils/pull/6856
- ci: remove unused var from "Code Coverage" job by @cakebaker in https://github.com/uutils/coreutils/pull/6605
- Fix Android CI by @jtracey in https://github.com/uutils/coreutils/pull/6580
- Add windows arm64 to the CI by @sylvestre in https://github.com/uutils/coreutils/pull/6624
- ci: disable broken code coverage on windows by @BenWiederhake in https://github.com/uutils/coreutils/pull/6687
- Android CI: enable emulator metrics by @jtracey in https://github.com/uutils/coreutils/pull/6752
- ci: use ubuntu v24 for GNU tests workflow by @cakebaker in https://github.com/uutils/coreutils/pull/6765
- GNU tests: install attr by @sylvestre in https://github.com/uutils/coreutils/pull/6784
- + 2 more
๐ Documentation
- coreutils: Add a default readme for the packages by @lu-zero in https://github.com/uutils/coreutils/pull/6512
- CONTRIBUTE.md: Update broken link and formatting of link by @vikiminki in https://github.com/uutils/coreutils/pull/6776
- add docs - fix #5066 by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/6523
- doc: add and change documentation of uucore by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/6551
- document uucore::Args #5068 by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/6515
- documents functions - #5069 by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/6516
- documentation: fix crate name in README by @andrewliebenow in https://github.com/uutils/coreutils/pull/6800
๐ฆ Dependencies
- chore(deps): update rust crate num-bigint to v0.4.6 by @renovate in https://github.com/uutils/coreutils/pull/6501
- chore(deps): update vmactions/freebsd-vm action to v1.0.8 by @renovate in https://github.com/uutils/coreutils/pull/6525
- chore(deps): update rust crate serde to v1.0.204 by @renovate in https://github.com/uutils/coreutils/pull/6544
- chore(deps): update rust crate thiserror to v1.0.62 by @renovate in https://github.com/uutils/coreutils/pull/6562
- chore(deps): update reactivecircus/android-emulator-runner action to v2.32.0 by @renovate in https://github.com/uutils/coreutils/pull/6553
- chore(deps): update rust crate blake3 to v1.5.2 by @renovate in https://github.com/uutils/coreutils/pull/6565
- chore(deps): update rust crate blake3 to v1.5.3 by @renovate in https://github.com/uutils/coreutils/pull/6567
- chore(deps): update rust crate redox_syscall to v0.5.3 by @renovate in https://github.com/uutils/coreutils/pull/6568
- + 75 more
โจ New Contributors
- @Its-Just-Nans made their first contribution in https://github.com/uutils/coreutils/pull/6502
- @CausingBrick made their first contribution in https://github.com/uutils/coreutils/pull/6503
- @lu-zero made their first contribution in https://github.com/uutils/coreutils/pull/6512
- @Kev1n8 made their first contribution in https://github.com/uutils/coreutils/pull/6511
- @andrewliebenow made their first contribution in https://github.com/uutils/coreutils/pull/6674
- @just-an-engineer made their first contribution in https://github.com/uutils/coreutils/pull/6622
- @LoricAndre made their first contribution in https://github.com/uutils/coreutils/pull/6690
- @jansheikkinen made their first contribution in https://github.com/uutils/coreutils/pull/5975
- + 9 more
๐งช 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% |
- 
- + 1 more
๐ฆ cksum
- Improve the GNU compat by @sylvestre in https://github.com/uutils/coreutils/pull/6256
๐ฆ cksum/hashsum
- refactor the common code. by @sylvestre in https://github.com/uutils/coreutils/pull/6431
- enable `sum` feature for `checksum` feature by @cakebaker in https://github.com/uutils/coreutils/pull/6450
- Implement check (Closes: #5705) by @sylvestre in https://github.com/uutils/coreutils/pull/6390
- Improve the blake2 --tag export by @sylvestre in https://github.com/uutils/coreutils/pull/6412
๐ฆ cp
- Added overwrite detection for existing symlinks by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6380
- Changed ``/sys/kernel/address_bits`` to ``/sys/kernel/profiling`` in test_cp by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6294
- use `#[ignore]` to disable tests by @cakebaker in https://github.com/uutils/coreutils/pull/6395
- remove `target_os = "macos-12"` by @cakebaker in https://github.com/uutils/coreutils/pull/6405
- link-deref gnu test fix by @matrixhead in https://github.com/uutils/coreutils/pull/6378
- parent-perm-race gnu fix by @matrixhead in https://github.com/uutils/coreutils/pull/6403
- gnu test case preserve-mode fix by @matrixhead in https://github.com/uutils/coreutils/pull/6432
- `cp-parents` test case by @matrixhead in https://github.com/uutils/coreutils/pull/6446
- + 1 more
๐ฆ df
- fix size column padding by @Qelxiros in https://github.com/uutils/coreutils/pull/6433
- fix incorrect test & add another test by @cakebaker in https://github.com/uutils/coreutils/pull/6437
๐ฆ env
- adds --ignore-signal by @Walid-Kh in https://github.com/uutils/coreutils/pull/6377
๐ฆ fmt
- accept repeated arguments by @BenWiederhake in https://github.com/uutils/coreutils/pull/6355
- value of minlength should not be negative by @ahmadabd in https://github.com/uutils/coreutils/pull/6359
- fix error priority, make goal-errors more helpful by @BenWiederhake in https://github.com/uutils/coreutils/pull/6362
- use `get_matches_from()` instead of `try_get_matches_from()` in tests by @cakebaker in https://github.com/uutils/coreutils/pull/6374
๐ฆ id
- Handle repeated flags, recognize conflict between pretty-print and passwd file-entry by @BenWiederhake in https://github.com/uutils/coreutils/pull/6288
๐ฆ kill
- adding support for handling SIGEXIT by @dcarrier in https://github.com/uutils/coreutils/pull/6269
๐ฆ ls
- fix quoting alignment, add tests for default quoting style in TTY and quoting alignment by @RenjiSann in https://github.com/uutils/coreutils/pull/6402
- Fix ls: panicking on dangling symlink with ``--color=auto -l`` by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6346
๐ฆ od
- use `u64::MAX` instead of `max_value()` by @cakebaker in https://github.com/uutils/coreutils/pull/6477
- use TestScenario, avoid spamming /tmp on failure by @BenWiederhake in https://github.com/uutils/coreutils/pull/6287
๐ฆ pinky
- use UTC if offset can't be determined by @cakebaker in https://github.com/uutils/coreutils/pull/6414
๐ฆ seq
- fix typo in benchmarking documentation file by @TO19 in https://github.com/uutils/coreutils/pull/6454
๐ฆ shuf
- use usize::MAX instead of std::usize::MAX by @lcheylus in https://github.com/uutils/coreutils/pull/6482
๐ฆ sort
- disable clippy::suspicious_open_options on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/6292
๐ฆ tail
- use `#[ignore]` to disable tests by @cakebaker in https://github.com/uutils/coreutils/pull/6388
๐ฆ tr
- calculate complement set early by @jalil-salame in https://github.com/uutils/coreutils/pull/6340
- Refuse to translate if set2 contains more than one unique characters and set1 contains a character class by @cvonelm in https://github.com/uutils/coreutils/pull/6472
- A [:lower:]/[:upper:] in set2 must be matched in set1 by @cvonelm in https://github.com/uutils/coreutils/pull/6445
- disallow classes besides [:upper:]/[:lower:] in set2 when translating by @cvonelm in https://github.com/uutils/coreutils/pull/6424
- Refuse to translate if set1 is longer than set2 and set2 ends in a character class by @cvonelm in https://github.com/uutils/coreutils/pull/6470
๐ฆ uptime
- add `-s`/`--since` of `uptime` to extensions by @cakebaker in https://github.com/uutils/coreutils/pull/6391
- Support files in uptime by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6400
๐ฆ utmpx
- use UTC if offset can't be resolved by @cakebaker in https://github.com/uutils/coreutils/pull/6413
๐ฆ Misc
- clippy: fix warnings introduced with Rust 1.78 by @cakebaker in https://github.com/uutils/coreutils/pull/6330
- Disable clippy::assigning_clones on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/6356
- clippy: fix warnings introduced by Rust 1.79 by @cakebaker in https://github.com/uutils/coreutils/pull/6468
- tests: fix some clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/6430
- Disabling compare_xattrs cp and mv related tests on OpenBSD by @jadijadi in https://github.com/uutils/coreutils/pull/6368
- src/uucore/src/lib/features/fsext.rs: Add magic for bcachefs by @phedders in https://github.com/uutils/coreutils/pull/6438
- tests: remove all `#[cfg(not(target_pointer_width = "128"))]` by @cakebaker in https://github.com/uutils/coreutils/pull/6418
- Cargo.toml: enable uucore's `mode` feature by @cakebaker in https://github.com/uutils/coreutils/pull/6421
- + 5 more
๐ฆ CI
- macos-latest is now arm64 by @thesayyn in https://github.com/uutils/coreutils/pull/6425
- stdbuf: rename `dragonflybsd` to `dragonfly` by @cakebaker in https://github.com/uutils/coreutils/pull/6384
- deny.toml: remove hashbrown, update comment by @cakebaker in https://github.com/uutils/coreutils/pull/6373
- show-utils.sh: fix jq query to get coreutils deps by @lcheylus in https://github.com/uutils/coreutils/pull/6485
- deny.toml: allow BSL-1.0 as license by @cakebaker in https://github.com/uutils/coreutils/pull/6427
๐ Documentation
- docs: describe extensions of id by @cakebaker in https://github.com/uutils/coreutils/pull/6289
๐งช Testing
- tests: fix multi-call test precondition by @BenWiederhake in https://github.com/uutils/coreutils/pull/6279
- Disabling xattrs tests on OpenBSD by @jadijadi in https://github.com/uutils/coreutils/pull/6349
- util: added umask manipulation by @matrixhead in https://github.com/uutils/coreutils/pull/6404
- show-utils.sh: fix jq query to get coreutils deps by @lcheylus in https://github.com/uutils/coreutils/pull/6300
๐ฆ Dependencies
- Bump `itertools` and fix use of deprecated function by @cakebaker in https://github.com/uutils/coreutils/pull/6455
- Bump `fts-sys` and `selinux-sys` by @cakebaker in https://github.com/uutils/coreutils/pull/6339
- Bump bigdecimal from 0.4.0 to 0.4.2 by @cakebaker in https://github.com/uutils/coreutils/pull/6285
- `ls`: upgrade uutils-term-grid to 0.5 by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5485
- Downgrade `libc` to `0.2.153` by @cakebaker in https://github.com/uutils/coreutils/pull/6408
- fix(deps): update rust crate data-encoding to 2.6 by @renovate in https://github.com/uutils/coreutils/pull/6283
- fix(deps): update rust crate data-encoding-macro to 0.1.15 by @renovate in https://github.com/uutils/coreutils/pull/6282
- fix(deps): update rust crate cpp to 0.5.9 by @renovate in https://github.com/uutils/coreutils/pull/6325
- + 58 more
โจ New Contributors
- @dcarrier made their first contribution in https://github.com/uutils/coreutils/pull/6269
- @jalil-salame made their first contribution in https://github.com/uutils/coreutils/pull/6340
- @ahmadabd made their first contribution in https://github.com/uutils/coreutils/pull/6359
- @Walid-Kh made their first contribution in https://github.com/uutils/coreutils/pull/6377
- @cvonelm made their first contribution in https://github.com/uutils/coreutils/pull/6424
- @thesayyn made their first contribution in https://github.com/uutils/coreutils/pull/6425
- @Qelxiros made their first contribution in https://github.com/uutils/coreutils/pull/6433
- @phedders made their first contribution in https://github.com/uutils/coreutils/pull/6438
- + 2 more
โจ 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.
- For more details and to download the latest release, visit our website at [https://uutils.github.io](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% |
- 
- + 2 more
๐ฆ cksum
- Adding -b as the short form of --base64 by @jadijadi in https://github.com/uutils/coreutils/pull/6187
- Fix code formatting by @cakebaker in https://github.com/uutils/coreutils/pull/6192
๐ฆ comm
- Handle duplicated flags and output-delimiter correctly by @BenWiederhake in https://github.com/uutils/coreutils/pull/6112
๐ฆ cp
- remove unnecessary calls of `touch()` in tests by @cakebaker in https://github.com/uutils/coreutils/pull/6263
- gnu "same-file" test case compatibility by @matrixhead in https://github.com/uutils/coreutils/pull/6190
- handle update prompt with and without interactive mode enabled by @BenWiederhake in https://github.com/uutils/coreutils/pull/6207
- Swap `cp`โs short `-r` and alias `-R` recursive options by @LucasLarson in https://github.com/uutils/coreutils/pull/6231
- Fix the debug results in `cp --debug` by @AnirbanHalder654322 in https://github.com/uutils/coreutils/pull/6220
๐ฆ csplit
- Handle repeated args, fix remainder after error by @BenWiederhake in https://github.com/uutils/coreutils/pull/6114
๐ฆ cut
- Two new tests; -d conflict & no arg by @jadijadi in https://github.com/uutils/coreutils/pull/6191
๐ฆ date
- Fix `date -f dates.txt is failing` by @mvo5 in https://github.com/uutils/coreutils/pull/6148
- Support `-f -` to read from stdin by @mvo5 in https://github.com/uutils/coreutils/pull/6160
- Remove unimplemented example by @LucasLarson in https://github.com/uutils/coreutils/pull/6135
๐ฆ dd
- Handle SIGUSR1 directly. not just every 1sec by @cre4ture in https://github.com/uutils/coreutils/pull/6025
- Fix flaky test_null_stats by @BenWiederhake in https://github.com/uutils/coreutils/pull/6204
๐ฆ dirname
- Accept repeated flag by @BenWiederhake in https://github.com/uutils/coreutils/pull/6151
๐ฆ dircolors
- Accept repeated flags by @BenWiederhake in https://github.com/uutils/coreutils/pull/6150
๐ฆ du
- Give `-h` output the same precision as GNU coreutils by @mvo5 in https://github.com/uutils/coreutils/pull/6226
๐ฆ env
- argv0 overwrite possibility (unix only) - fixes new gnu test version by @cre4ture in https://github.com/uutils/coreutils/pull/6154
- Remove dependency on GNU env in tests by @cakebaker in https://github.com/uutils/coreutils/pull/6259
- Add missing space to help output by @cakebaker in https://github.com/uutils/coreutils/pull/6260
๐ฆ hashsum
- Implement the ignore-missing option by @sylvestre in https://github.com/uutils/coreutils/pull/6230
- Improve the error management to match GNU by @sylvestre in https://github.com/uutils/coreutils/pull/6252
๐ฆ head
- Two new tests. Improves function coverage from 38 to 75 by @jadijadi in https://github.com/uutils/coreutils/pull/6195
๐ฆ kill
- Support multiple signals for --list by @m-haisham in https://github.com/uutils/coreutils/pull/6210
- Don't show `EXIT` with `--list` by @cakebaker in https://github.com/uutils/coreutils/pull/6222
- Return 1 and gnu style stderr in case of no pid by @jadijadi in https://github.com/uutils/coreutils/pull/6225
- Print --table as vertical by @m-haisham in https://github.com/uutils/coreutils/pull/6216
- Accept all cases for signal names by @m-haisham in https://github.com/uutils/coreutils/pull/6229
- Print signals vertically when using --list flag by @m-haisham in https://github.com/uutils/coreutils/pull/6201
๐ฆ ls
- Compute the correct exit code by @BenWiederhake in https://github.com/uutils/coreutils/pull/6173
๐ฆ mktemp
- Adjust the error message to match 9.5 by @sylvestre in https://github.com/uutils/coreutils/pull/6146
๐ฆ more
- Use dev tty instead of mio to avoid panics by @apatrushev in https://github.com/uutils/coreutils/pull/6262
๐ฆ mv
- Fix bug on Redox OS introduced by xattr handling by @dahc in https://github.com/uutils/coreutils/pull/6215
๐ฆ od
- Remove `print_width_block` field of `OutputInfo` by @cakebaker in https://github.com/uutils/coreutils/pull/6239
๐ฆ seq
- Removed zero-padding of string when parsing with parse_exponent_no_decimal by @maxer137 in https://github.com/uutils/coreutils/pull/6185
- Add the unit test even if they are failing for now by @sylvestre in https://github.com/uutils/coreutils/pull/6236
๐ฆ tail
- Allow multiple usage of --pid to match upstream (regression of โฆ by @sylvestre in https://github.com/uutils/coreutils/pull/6147
๐ฆ tee
- Correctly handle read-only files, avoid unnecessary wrapping by @BenWiederhake in https://github.com/uutils/coreutils/pull/6157
๐ฆ tr
- Fix "space" class, test "blank" class for order by @BenWiederhake in https://github.com/uutils/coreutils/pull/6141
๐ฆ uniq
- Print version and help on stdout again by @tertsdiepraam in https://github.com/uutils/coreutils/pull/6123
๐ฆ wc
- Count ASCII control characters as word characters by @BenWiederhake in https://github.com/uutils/coreutils/pull/6199
๐ฆ Misc
- Initial AIX support by @ecnelises in https://github.com/uutils/coreutils/pull/6209
- Fix warning when executing Clippy by @bin-ly in https://github.com/uutils/coreutils/pull/6246
- tests: fix deprecation warning `timestamp_subsec_nanos()` by @mvo5 in https://github.com/uutils/coreutils/pull/6149
- tests: test multi-call logic by @BenWiederhake in https://github.com/uutils/coreutils/pull/6198
- all: Undo custom exit codes by @BenWiederhake in https://github.com/uutils/coreutils/pull/6162
- Cargo.toml: remove unnecessary caret by @cakebaker in https://github.com/uutils/coreutils/pull/6128
- Fixing the build issue on NetBSD by @jadijadi in https://github.com/uutils/coreutils/pull/6268
- Try to release 0.0.26 to see if the artifacts are generated by @sylvestre in https://github.com/uutils/coreutils/pull/6131
- + 5 more
๐ Documentation
- Doc: Explain that it is allowed to look at OpenBSD or Apple sources by @sylvestre in https://github.com/uutils/coreutils/pull/6140
- Readme: fix links to docs by @cakebaker in https://github.com/uutils/coreutils/pull/6189
๐ฆ CI
- upgrade to GNU coreutils 9.5 as ref by @sylvestre in https://github.com/uutils/coreutils/pull/6139
- don't upgrade packages - msys2-runtime upgrade fails in CI by @cre4ture in https://github.com/uutils/coreutils/pull/6153
- fix macos ci instability on clippy with retry by @cre4ture in https://github.com/uutils/coreutils/pull/6156
- CI: change publish step condition by @tertsdiepraam in https://github.com/uutils/coreutils/pull/6181
- CI fix: use features arg for stable and nightly build by @cre4ture in https://github.com/uutils/coreutils/pull/6224
- feat(github): add CICD job build_programs_individually by @gierens in https://github.com/uutils/coreutils/pull/6212
- show-utils.sh: fix jq query by @tertsdiepraam in https://github.com/uutils/coreutils/pull/6120
- ci: use `-pcoreutils` when running clippy by @cakebaker in https://github.com/uutils/coreutils/pull/6247
- + 2 more
๐ฆ Dependencies
- chore(deps): update rust crate rayon to 1.10 by @renovate in https://github.com/uutils/coreutils/pull/6118
- chore(deps): drop conv dev-dependency by @paolobarbolini in https://github.com/uutils/coreutils/pull/6161
- chore(deps): update rust crate chrono to 0.4.37 by @renovate in https://github.com/uutils/coreutils/pull/6136
- chore(deps): update rust crate winapi-util to 0.1.7 by @renovate in https://github.com/uutils/coreutils/pull/6264
- chore(deps): update rust crate zip to 1.1.1 by @renovate in https://github.com/uutils/coreutils/pull/6257
- chore(deps): update rust crate zip to v1 by @renovate in https://github.com/uutils/coreutils/pull/6255
- chore(deps): update rust crate chrono to 0.4.38 by @renovate in https://github.com/uutils/coreutils/pull/6238
- chore(deps): update vmactions/freebsd-vm action to v1.0.7 by @renovate in https://github.com/uutils/coreutils/pull/6196
- + 6 more
โจ New Contributors
- @LucasLarson made their first contribution in https://github.com/uutils/coreutils/pull/6135
- @mvo5 made their first contribution in https://github.com/uutils/coreutils/pull/6149
- @paolobarbolini made their first contribution in https://github.com/uutils/coreutils/pull/6161
- @jadijadi made their first contribution in https://github.com/uutils/coreutils/pull/6187
- @m-haisham made their first contribution in https://github.com/uutils/coreutils/pull/6201
- @maxer137 made their first contribution in https://github.com/uutils/coreutils/pull/6185
- @ecnelises made their first contribution in https://github.com/uutils/coreutils/pull/6209
- @dahc made their first contribution in https://github.com/uutils/coreutils/pull/6215
- + 5 more
๐งช 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% |
- 
- + 1 more
๐ฆ base32/base64/basenc
- implement and test proper flag parsing by @BenWiederhake in https://github.com/uutils/coreutils/pull/6007
๐ฆ basename
- Fix handling of repeated flags/arguments by @BenWiederhake in https://github.com/uutils/coreutils/pull/6018
๐ฆ cat
- Handle all flags correctly by @BenWiederhake in https://github.com/uutils/coreutils/pull/6034
๐ฆ chcon
- Handle repeated flags and overrides between --no-XXX and --XXX by @BenWiederhake in https://github.com/uutils/coreutils/pull/6039
๐ฆ chmod
- Fix chmod -c --reference reporting when no change is made by @mtimaN in https://github.com/uutils/coreutils/pull/6016
- Fix handling of preserve root flag and error messages by @BenWiederhake in https://github.com/uutils/coreutils/pull/6042
๐ฆ cksum
- permit repeated flags, handle overrides correctly, implement base64 output by @BenWiederhake in https://github.com/uutils/coreutils/pull/6041
- enable encoding feature by @cakebaker in https://github.com/uutils/coreutils/pull/6095
๐ฆ cp
- remove lint exceptions by @kralo in https://github.com/uutils/coreutils/pull/5891
- improve the support of --attributes-only by @sylvestre in https://github.com/uutils/coreutils/pull/6051
- Split the copy_file function a bit by @sylvestre in https://github.com/uutils/coreutils/pull/6056
- fix flaky test test_cp_arg_interactive_update, document adjacent bug by @BenWiederhake in https://github.com/uutils/coreutils/pull/6020
๐ฆ csplit
- use `printf` functionality from `uucore` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5958
- adjust the error message to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/6090
- remove `crate_name` attribute by @cakebaker in https://github.com/uutils/coreutils/pull/6091
๐ฆ cut
- set exit code to 1 if directory is specified by @cakebaker in https://github.com/uutils/coreutils/pull/5886
- refactor delimiters OsString handling by @zhitkoff in https://github.com/uutils/coreutils/pull/6072
- allow non utf8 characters for delimiters by @zhitkoff in https://github.com/uutils/coreutils/pull/6037
- show error for multiple mode args (`-b`, `-c`, `-f`) by @wolimst in https://github.com/uutils/coreutils/pull/5962
๐ฆ dd
- parse big numbers and return u64::MAX by @jfinkels in https://github.com/uutils/coreutils/pull/5901
- fail on missing number in count, fix #5904 by @sudhackar in https://github.com/uutils/coreutils/pull/5920
- misc gnu test by @matrixhead in https://github.com/uutils/coreutils/pull/6084
- fix flaky test_final_stats_unspec by @BenWiederhake in https://github.com/uutils/coreutils/pull/6001
- treat arg as bytes if it contains a 'B' by @matrixhead in https://github.com/uutils/coreutils/pull/6050
- fix gnu test `not-rewound.sh` by @cre4ture in https://github.com/uutils/coreutils/pull/6088
๐ฆ df
- switch from u64 to u128 to handle fs with large inodes nr by @cre4ture in https://github.com/uutils/coreutils/pull/6071
๐ฆ du
- adapt error message to match GNU's by @cakebaker in https://github.com/uutils/coreutils/pull/5916
- adjust one of the GNU error message as ours is better by @sylvestre in https://github.com/uutils/coreutils/pull/6085
๐ฆ echo
- do not infer long args by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5911
๐ฆ env
- support string args by "-S", "-vS" or "--split-strings" by @cre4ture in https://github.com/uutils/coreutils/pull/5801
- Fix/findings for env string args by @cre4ture in https://github.com/uutils/coreutils/pull/6105
๐ฆ expand
- Continue work when one of given files doesn't exist by @D9nni in https://github.com/uutils/coreutils/pull/5873
- make tab explicit in test by @cakebaker in https://github.com/uutils/coreutils/pull/5875
- do not ignore invalid UTF-8 by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5987
๐ฆ factor
- remove clippy exceptions by reformatting "unreadable literals" by @kralo in https://github.com/uutils/coreutils/pull/5890
- rename input parameter by @kralo in https://github.com/uutils/coreutils/pull/5892
- enable a debug_assert! statement by @cakebaker in https://github.com/uutils/coreutils/pull/5995
๐ฆ fmt
- Make sure the goal is always positive when given a positive width by @sargas in https://github.com/uutils/coreutils/pull/6094
- fail if goal is bigger than default width by @cakebaker in https://github.com/uutils/coreutils/pull/6096
๐ฆ hashsum
- also escape/unescape files with checks by @sylvestre in https://github.com/uutils/coreutils/pull/5868
๐ฆ install
- invalid link at destination by @cre4ture in https://github.com/uutils/coreutils/pull/5851
๐ฆ ln
- fix help text by @cakebaker in https://github.com/uutils/coreutils/pull/5977
๐ฆ ls
- fix "unused variable" warning on Redox by @cakebaker in https://github.com/uutils/coreutils/pull/5931
- test_ls_allocation_size fails on filesystem `f2fs` (android) by @cre4ture in https://github.com/uutils/coreutils/pull/6076
- rename `chrono::Duration` to `chrono::TimeDelta` by @cakebaker in https://github.com/uutils/coreutils/pull/5970
๐ฆ more
- Disable raw mode before exiting if a panic occurs by @Ideflop in https://github.com/uutils/coreutils/pull/5914
- Implement argument pattern by @Ideflop in https://github.com/uutils/coreutils/pull/5966
- handle errors with multiple files by @Ludmuterol in https://github.com/uutils/coreutils/pull/4997
- fix two incorrect tests by @cakebaker in https://github.com/uutils/coreutils/pull/6104
๐ฆ numfmt
- remove clap workaround by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5986
๐ฆ od
- disable failing test_od::test_f16() for android CI by @cre4ture in https://github.com/uutils/coreutils/pull/5984
- re-enable f16 test with newer AVD system image by @cre4ture in https://github.com/uutils/coreutils/pull/6099
๐ฆ printf
- pad unsigned numbers properly by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5955
- Make operate on bytes instead of strings by @RenjiSann in https://github.com/uutils/coreutils/pull/6028
- '%0c' and '%0s' should fail by @RenjiSann in https://github.com/uutils/coreutils/pull/6032
๐ฆ pr
- use chrono instead of time in tests #5972 by @biplab5464 in https://github.com/uutils/coreutils/pull/5973
- Check the correct timestamp in test_with_pr_core_utils_tests by @BenWiederhake in https://github.com/uutils/coreutils/pull/6010
- relax some error messages by @sylvestre in https://github.com/uutils/coreutils/pull/6087
๐ฆ seq
- fix about text not found by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5949
๐ฆ shuf
- Treat empty file as zero elements instead of one empty string by @BenWiederhake in https://github.com/uutils/coreutils/pull/5979
- Refuse repeating zero lines by @BenWiederhake in https://github.com/uutils/coreutils/pull/6011
- include all echo args, not just the last by @BenWiederhake in https://github.com/uutils/coreutils/pull/5978
- Fix OOM crash for huge number ranges by @BenWiederhake in https://github.com/uutils/coreutils/pull/5980
- add missing word to BENCHMARKING.md by @cakebaker in https://github.com/uutils/coreutils/pull/5996
- Fix off-by-one errors in range handling by @BenWiederhake in https://github.com/uutils/coreutils/pull/6014
- treat -e as a flag, not as a multi-value arg by @BenWiederhake in https://github.com/uutils/coreutils/pull/5989
- Do not read input when -n0 is given by @BenWiederhake in https://github.com/uutils/coreutils/pull/5990
๐ฆ sort
- fix incorrectly placed "}" in test by @cakebaker in https://github.com/uutils/coreutils/pull/6064
๐ฆ split
- fix android memory kill in split by @cre4ture in https://github.com/uutils/coreutils/pull/5940
- fix error message shown if file doesn't exist by @cakebaker in https://github.com/uutils/coreutils/pull/5909
๐ฆ stat
- Refactor to remove #[allow(clippy::cognitive_complexity)] #5881 by @biplab5464 in https://github.com/uutils/coreutils/pull/5924
- should fail without arguments #5928 by @biplab5464 in https://github.com/uutils/coreutils/pull/5935
- use chrono instead of time in fsext by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5934
- add 0xDE flag to support zfs file system by @hanbings in https://github.com/uutils/coreutils/pull/6101
๐ฆ tsort
- drastically reduce memory copies by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5969
๐ฆ tty
- fix for Ctrl-D when stdin is a terminal by @zhitkoff in https://github.com/uutils/coreutils/pull/6059
๐ฆ truncate
- correctly handle file (non-)creation by @BenWiederhake in https://github.com/uutils/coreutils/pull/6108
๐ฆ uname
- Refactor into public fns for Nushell by @dmatos2012 in https://github.com/uutils/coreutils/pull/5921
๐ฆ uniq
- pass remaining GNU tests by @zhitkoff in https://github.com/uutils/coreutils/pull/5994
- Fix flaky test gnu_tests by @BenWiederhake in https://github.com/uutils/coreutils/pull/6017
- use `concat!` in tests for better readability by @cakebaker in https://github.com/uutils/coreutils/pull/6022
๐ฆ CI
- Android disable mirror selection by @kralo in https://github.com/uutils/coreutils/pull/5894
- Android delete AVD lockfile when running from cached image by @kralo in https://github.com/uutils/coreutils/pull/5917
- Add Android x86_64 by @cakebaker in https://github.com/uutils/coreutils/pull/5843
- github action: run on native m1 - and execute the tests by @sylvestre in https://github.com/uutils/coreutils/pull/5923
- CI Android: set environmental variable for BACKTRACE to right value by @cre4ture in https://github.com/uutils/coreutils/pull/5965
- run CICD workflow on tag creation by @malt3 in https://github.com/uutils/coreutils/pull/5971
- `ci:android` stabilize and improve android github actions by @cre4ture in https://github.com/uutils/coreutils/pull/5939
- use latest version of `cspell` by @cakebaker in https://github.com/uutils/coreutils/pull/5947
- + 7 more
๐ Documentation
- Adjust the link to the doc by @sylvestre in https://github.com/uutils/coreutils/pull/6093
- docs: add paragraph about yocto recipe by @Ecordonnier in https://github.com/uutils/coreutils/pull/5918/pull/5919
- doc: fixed benchmark table by @SamuelLarkin in https://github.com/uutils/coreutils/pull/5936
๐ Security
- fuzzing: use LC_ALL instead of LC_COLLATE by @cakebaker in https://github.com/uutils/coreutils/pull/5889
- fuzzing: set LC_ALL=C when running GNU printf by @cakebaker in https://github.com/uutils/coreutils/pull/5983
- parser: if closing square bracket not found, stop looking for it again by @cj-zoltan-kiss in https://github.com/uutils/coreutils/pull/6036
๐ฆ Various improvements
- Clippy suggestions by @kralo in https://github.com/uutils/coreutils/pull/5895
- uucore: fix "X is never used" warnings on Redox by @cakebaker in https://github.com/uutils/coreutils/pull/5932
- lint: fix lints of new Rust version by @Krysztal112233 in https://github.com/uutils/coreutils/pull/6102
- cargo: rename `config` to `config.toml` by @cakebaker in https://github.com/uutils/coreutils/pull/5954
- added shebang to run python scripts by @thesayfulla in https://github.com/uutils/coreutils/pull/6098
- clippy: fix warnings introduced by Rust 1.76 by @cakebaker in https://github.com/uutils/coreutils/pull/5959
- Fix clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/6052
- tests: Harden two tests, prevent 4 flaky tests (cat, numfmt, sort, split, tee) by @BenWiederhake in https://github.com/uutils/coreutils/pull/6000
- + 7 more
๐ฆ dependency updates
- Bump wild from 2.2.0 to 2.2.1 by @cakebaker in https://github.com/uutils/coreutils/pull/5899
- chore(deps): update rust crate chrono to ^0.4.33 by @renovate in https://github.com/uutils/coreutils/pull/5880
- chore(deps): update vmactions/freebsd-vm action to v1.0.6 by @renovate in https://github.com/uutils/coreutils/pull/5887
- chore(deps): update rust crate itertools to 0.12.1 by @renovate in https://github.com/uutils/coreutils/pull/5913
- chore(deps): update mozilla-actions/sccache-action action to v0.0.4 by @renovate in https://github.com/uutils/coreutils
- chore(deps): update codecov/codecov-action action to v4 by @renovate in https://github.com/uutils/coreutils/pull/5926
- chore(deps): update rust crate libc to 0.2.153 by @renovate in https://github.com/uutils/coreutils/pull/5927
- chore(deps): update rust crate exacl to 0.12.0 by @renovate in https://github.com/uutils/coreutils/pull/5937
- + 18 more
โจ New Contributors
- @kralo made their first contribution in https://github.com/uutils/coreutils/pull/5890
- @harshRn made their first contribution in https://github.com/uutils/coreutils/pull/5897
- @Ecordonnier made their first contribution in https://github.com/uutils/coreutils/pull/5918
- @SamuelLarkin made their first contribution in https://github.com/uutils/coreutils/pull/5936
- @BaherSalama made their first contribution in https://github.com/uutils/coreutils/pull/5945
- @wolimst made their first contribution in https://github.com/uutils/coreutils/pull/5962
- @BenWiederhake made their first contribution in https://github.com/uutils/coreutils/pull/5979
- @rex4539 made their first contribution in https://github.com/uutils/coreutils/pull/6027
- + 7 more
๐งช 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% |
- 
- + 1 more
๐ฆ cat
- Address cognitive complexity by @jetlime in https://github.com/uutils/coreutils/pull/5726
๐ฆ cksum
- Stops when one of given files doesn't exist #5809 by @biplab5464 in https://github.com/uutils/coreutils/pull/5820
- Made return an error if the algorithm blake2b is used on a directory. by @Ato2207 in https://github.com/uutils/coreutils/pull/5804
- Add --raw argument by @D9nni in https://github.com/uutils/coreutils/pull/5803
- Made return an error if used on a directory. by @Ato2207 in https://github.com/uutils/coreutils/pull/5822
- Add --length argument for the blake2b algorithm by @DitherWither in https://github.com/uutils/coreutils/pull/5749
๐ฆ cp
- Improve error msg if -r is not specified by @cakebaker in https://github.com/uutils/coreutils/pull/5555
- Debug with --update=none should show 'skipped' by @sylvestre in https://github.com/uutils/coreutils/pull/5701
- --remove-destination: don't fail if destination is hardlink to source by @cakebaker in https://github.com/uutils/coreutils/pull/5431
- cp/mv/ln: add support for the "will not overwrite just-created" by @sylvestre in https://github.com/uutils/coreutils/pull/5699
- --link: don't fail if destination is hardlink to source by @cakebaker in https://github.com/uutils/coreutils/pull/5484
- Fix backup of destination symlink by @cakebaker in https://github.com/uutils/coreutils/pull/5731
- Update a GNU test error check - tests/fail-perm.sh by @sylvestre in https://github.com/uutils/coreutils/pull/5784
- cp/mv: manage with trailing slash in target by @sylvestre in https://github.com/uutils/coreutils/pull/5780
- + 8 more
๐ฆ dd
- Buffer partial blocks in the output writer by @jfinkels in https://github.com/uutils/coreutils/pull/4545
- Skip two tests without "printf" feature by @cakebaker in https://github.com/uutils/coreutils/pull/5607
- /chroot: improve the skip message (not root) by @sylvestre in https://github.com/uutils/coreutils/pull/5734
๐ฆ df
- Fix rounding issue in test by @cakebaker in https://github.com/uutils/coreutils/pull/5532
๐ฆ dircolors
- Move the static long string into structures. by @sylvestre in https://github.com/uutils/coreutils/pull/5611
๐ฆ du
- Start printing output immediately by @ceteece in https://github.com/uutils/coreutils/pull/5552
- Disable test on Android by @cakebaker in https://github.com/uutils/coreutils/pull/5615
- Cleanup by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5623
- Fix issue with dereference in test by @cakebaker in https://github.com/uutils/coreutils/pull/5625
- Test behavior with POSIXLY_CORRECT set by @cakebaker in https://github.com/uutils/coreutils/pull/5530
- Call unused _du_basics() in test_du_basics() by @cakebaker in https://github.com/uutils/coreutils/pull/5503
- Implement files0-from by @sylvestre in https://github.com/uutils/coreutils/pull/5721
- Simplify file creation in tests by @cakebaker in https://github.com/uutils/coreutils/pull/5727
- + 2 more
๐ฆ echo
- Make `-e` and `-E` override each other by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5635
๐ฆ expand
- Fix duplicate flags by @allaboutevemirolive in https://github.com/uutils/coreutils/pull/5684
๐ฆ expr
- Check prefix operation by @Luv-Ray in https://github.com/uutils/coreutils/pull/5566
- Different stderr with `"56" "substr"` by @pawelngei in https://github.com/uutils/coreutils/pull/5559
- Adapt error messages, revert most of #5559 by @cakebaker in https://github.com/uutils/coreutils/pull/5578
- Refactor AST and parsing by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5586
- Fix issue 5576 (regex matching bug) by @cobaweel in https://github.com/uutils/coreutils/pull/5577
- Optimizing for integer values by @Arp-1 in https://github.com/uutils/coreutils/pull/5614
- Coerce to string before comparing values by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5673
๐ฆ fmt
- A collection of small refactors by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5592
- Rename `pfxind_end` -> `prefix_indent_end` by @cakebaker in https://github.com/uutils/coreutils/pull/5593
- Remove crash! macro by @Arp-1 in https://github.com/uutils/coreutils/pull/5589
๐ฆ hashsum
- Remove usage of crash! macro by @GDYendell in https://github.com/uutils/coreutils/pull/5581
- When the filename contains some special chars, escape them by @sylvestre in https://github.com/uutils/coreutils/pull/5865
๐ฆ head
- -c allocate memory as needed by @sylvestre in https://github.com/uutils/coreutils/pull/5704
- head_backwards for non-seekable files like /proc/* or fifos (named pipes) by @cre4ture in https://github.com/uutils/coreutils/pull/5732
- Disable some tests on Android by @cakebaker in https://github.com/uutils/coreutils/pull/5813
- Fix clippy warnings in tests by @cakebaker in https://github.com/uutils/coreutils/pull/5838
๐ฆ hostname
- tests/hostname: disable failing test_hostname::test_hostname_ip on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/5639
๐ฆ install
- Fix strip program stdout and destination hyphen handling #5718 by @cre4ture in https://github.com/uutils/coreutils/pull/5848
- Support when a hyphen is passed by @sylvestre in https://github.com/uutils/coreutils/pull/5697
- With -t, check if we aren't passed a file by @sylvestre in https://github.com/uutils/coreutils/pull/5686
- Manages permissions when run as root by @sylvestre in https://github.com/uutils/coreutils/pull/5735
- Remove / from end of path if it exists so as not to mess with .exists() by @mtimaN in https://github.com/uutils/coreutils/pull/5730
- Remove a debug artifact by @sylvestre in https://github.com/uutils/coreutils/pull/5719
๐ฆ join
- Remove crash! macro by @cswn in https://github.com/uutils/coreutils/pull/5540
๐ฆ ls
- Remove "#[allow(unused_variables)]" by @cakebaker in https://github.com/uutils/coreutils/pull/5617
- Ignore value of `POSIXLY_CORRECT` by @cakebaker in https://github.com/uutils/coreutils/pull/5609
- Implement --hyperlink by @cakebaker in https://github.com/uutils/coreutils/pull/5622
- Improve the access to metadata of the files by @sylvestre in https://github.com/uutils/coreutils/pull/5660
- Set correct block size when -k is provided by @cakebaker in https://github.com/uutils/coreutils/pull/5700
- Fix padding of size column when using `-l` by @cakebaker in https://github.com/uutils/coreutils/pull/5604
- Match the gnu behavior for colors by @sylvestre in https://github.com/uutils/coreutils/pull/5603
- Set default quoting style to literal when not TTY by @RenjiSann in https://github.com/uutils/coreutils/pull/5553
- + 15 more
๐ฆ mknod
- Remove `parsemode.rs` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5651
- `mknod`: remove `parsemode.rs` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5651
๐ฆ mv
- Preserve the xattr by @sylvestre in https://github.com/uutils/coreutils/pull/5835
- Allow destination with slash when using --update by @cakebaker in https://github.com/uutils/coreutils/pull/5695
- Fix issue with -T and destination ending with "/" by @cakebaker in https://github.com/uutils/coreutils/pull/5554
- Rename two tests by @cakebaker in https://github.com/uutils/coreutils/pull/5645
- Simplify condition by @cakebaker in https://github.com/uutils/coreutils/pull/5764
- Fix subdir detection by @cakebaker in https://github.com/uutils/coreutils/pull/5483
- Dir2dir: adjust GNU tests - our error message is better by @sylvestre in https://github.com/uutils/coreutils/pull/5685
๐ฆ nl
- Don't exit if input is directory by @cakebaker in https://github.com/uutils/coreutils/pull/5806
๐ฆ pathchk
- Simplify and rename test by @cakebaker in https://github.com/uutils/coreutils/pull/5818
๐ฆ printf
- Rewrite (with a lot of `seq` changes) by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5128
- Fix hex alternate zero by @spineki in https://github.com/uutils/coreutils/pull/5811
- Use 0 instead of 0o as octal prefix by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5808
- Compatibility by @samueltardieu in https://github.com/uutils/coreutils/pull/5783
- Output of double-quote should not be escaped by @samueltardieu in https://github.com/uutils/coreutils/pull/5828
- %c prints the first byte of its argument by @samueltardieu in https://github.com/uutils/coreutils/pull/5827
- No infinite loop by @sudhackar in https://github.com/uutils/coreutils/pull/5830
- Fixing incorrect exit code when passing invalid value to %x by @pawelngei in https://github.com/uutils/coreutils/pull/5543
๐ฆ rm
- Improve the code a tiny bit by @sylvestre in https://github.com/uutils/coreutils/pull/5755
๐ฆ runcon
- Remove trailing '.' by @sylvestre in https://github.com/uutils/coreutils/pull/5702
๐ฆ seq
- Adjust some error messages. GNU's are better by @sylvestre in https://github.com/uutils/coreutils/pull/5798
- Fix output by @samueltardieu in https://github.com/uutils/coreutils/pull/5789
- Workaround https://github.com/uutils/coreutils/issues/5766 by @sylvestre in https://github.com/uutils/coreutils/pull/5770
- Handle the error when stdout is full by @sylvestre in https://github.com/uutils/coreutils/pull/5765
๐ฆ shred
- Improve some output to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/5712
- Implemented "--remove" arg by @Statheres in https://github.com/uutils/coreutils/pull/5790
๐ฆ sort
- Allow `-f` to be pass multiple time by @just1602 in https://github.com/uutils/coreutils/pull/5681
- `test/sort`: run cargo fmt by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5689
๐ฆ split
- Pass GNU test l-chunk by @zhitkoff in https://github.com/uutils/coreutils/pull/5567
- Pass GNU tests/b-chunk.sh by @zhitkoff in https://github.com/uutils/coreutils/pull/5475
- Passing GNU test r-chunk.sh by @zhitkoff in https://github.com/uutils/coreutils/pull/5580
- Remove crash macro by @cswn in https://github.com/uutils/coreutils/pull/5533
๐ฆ stdbuf
- Remove crash macro by @cswn in https://github.com/uutils/coreutils/pull/5549
- libstdbuf: remove crash macro by @cswn in https://github.com/uutils/coreutils/pull/5565
๐ฆ tail
- Transform FAIL into ERROR for tests/tail/inotify-rotate-resources.sh by @sylvestre in https://github.com/uutils/coreutils/pull/5771
๐ฆ tee
- Test: fix a warning on not(linux) by @sylvestre in https://github.com/uutils/coreutils/pull/5723
๐งช test
- tests/test: Ensure the test fixture files have the expected gid by @n1000 in https://github.com/uutils/coreutils/pull/5455
- Use clearer expression for CI testing by @samueltardieu in https://github.com/uutils/coreutils/pull/5769
๐ฆ tr
- Operate on bytes instead of chars by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5640
- uucore: remove useless conversion for features/fs on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/5676
๐ฆ tsort
- Returns error when input is dir - same as GNU tsort by @SaHHiiLL in https://github.com/uutils/coreutils/pull/5860
๐ฆ unexpand
- Remove crash! macro by @allaboutevemirolive in https://github.com/uutils/coreutils/pull/5588
- Should allow multiple files #5852 and show error message if a directory is specified #5845 by @biplab5464 in https://github.com/uutils/coreutils/pull/5864
๐ฆ wc
- Pass GNU test wc-files0-from.pl by @zhitkoff in https://github.com/uutils/coreutils/pull/5582
- Fix arguments not overriding by @Yykz in https://github.com/uutils/coreutils/pull/5671
- Disable part of test on Android by @cakebaker in https://github.com/uutils/coreutils/pull/5717
- Pass GNU test wc-proc and Windows optimization by @zhitkoff in https://github.com/uutils/coreutils/pull/5612
๐ Other OS & arch changes
- tests: disable tests for tools unsupported on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/5863
- uucore: add support for sparc64 by @ffontaine in https://github.com/uutils/coreutils/pull/5799
- Fix build on Redox, and add `stat` to Redox feature by @ids1024 in https://github.com/uutils/coreutils/pull/5502
- Add support in uucore for OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/5599
- Fix util shell scripts to be compatible with BSD by @lcheylus in https://github.com/uutils/coreutils/pull/5774
- Support unix feature on OpenBSD (utmpx not supported) by @lcheylus in https://github.com/uutils/coreutils/pull/5620
๐ฆ CI
- ci: set -no-window in Android workflow by @cakebaker in https://github.com/uutils/coreutils/pull/5814
- CI: test `uucore` with `coreutils` in codecov to run it with the proper features by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5825
- ignore-intermittent.txt: adjust the renamed test name by @sylvestre in https://github.com/uutils/coreutils/pull/5654
- publishing: check if the current version is already there or not by @sylvestre in https://github.com/uutils/coreutils/pull/5535
- Improve the GNU ci analysis: display the root test changes too by @sylvestre in https://github.com/uutils/coreutils/pull/5728
- ci: add aarch64-unknown-linux-musl release artifact by @malt3 in https://github.com/uutils/coreutils/pull/5694
- ci: fix warnings from "cargo tree" by @cakebaker in https://github.com/uutils/coreutils/pull/5670
- ci: rename test summary names for busybox & toybox by @cakebaker in https://github.com/uutils/coreutils/pull/5652
- + 9 more
๐ Documentation
- docs: fix URL for FreeBSD port by @lcheylus in https://github.com/uutils/coreutils/pull/5763
- doc: Fix a broken link by @YDX-2147483647 in https://github.com/uutils/coreutils/pull/5547
- docs: add winget installer by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5648
- docs: remove scoop badge, adapt links to repos by @cakebaker in https://github.com/uutils/coreutils/pull/5650
- uuhelp_parser: add links to homepage and repo by @michel-slm in https://github.com/uutils/coreutils/pull/5796
- src: Fixing typos in signatures for the argument parser by @dvalere in https://github.com/uutils/coreutils/pull/5696
- Fix typo in signals.rs by @eltociear in https://github.com/uutils/coreutils/pull/5781
- Fix docs issues. by @Ato2207 in https://github.com/uutils/coreutils/pull/5747
- + 2 more
๐ Security
- fuzzing: print the diff in case of issue by @sylvestre in https://github.com/uutils/coreutils/pull/5866
- fuzz printf by @sylvestre in https://github.com/uutils/coreutils/pull/5556
- fuzzing: add a variable to state if we know it fails or not by @sylvestre in https://github.com/uutils/coreutils/pull/5563
- fuzz: Simplify the compare_result function by @sylvestre in https://github.com/uutils/coreutils/pull/5662
- fuzzing: quick timeout because seq is freezing by @sylvestre in https://github.com/uutils/coreutils/pull/5636
- Fuzz the echo command by @sylvestre in https://github.com/uutils/coreutils/pull/5600
- fuzz seq by @sylvestre in https://github.com/uutils/coreutils/pull/5621
- expr fuzz: add missing ops. found thanks to oss fuzz coverage by @sylvestre in https://github.com/uutils/coreutils/pull/5557
- + 7 more
๐ฆ Various improvements
- 0.0.23 => 0.0.24 by @sylvestre in https://github.com/uutils/coreutils/pull/5752
- uuhelp_parser: include missing LICENSE by @daissi in https://github.com/uutils/coreutils/pull/5594
- clippy: fix warnings introduced by Rust 1.75 by @cakebaker in https://github.com/uutils/coreutils/pull/5742
- uucore: fix style in tests by @samueltardieu in https://github.com/uutils/coreutils/pull/5786
- uucore: fix clippy warning from if_not_else lint by @cakebaker in https://github.com/uutils/coreutils/pull/5842
- Handle better some errors by @sylvestre in https://github.com/uutils/coreutils/pull/5791
- Cargo.toml: fix typo by @cakebaker in https://github.com/uutils/coreutils/pull/5564
- META bug: moved to project mgmt by @tdelmas in https://github.com/uutils/coreutils/pull/5776
- + 6 more
๐ฆ dependency updates
- chore(deps): update rust crate itertools to 0.12.0 by @renovate in https://github.com/uutils/coreutils/pull/5534
- fix(deps): update rust crate data-encoding to 2.5 by @renovate in https://github.com/uutils/coreutils/pull/5569
- fix(deps): update rust crate data-encoding-macro to 0.1.14 by @renovate in https://github.com/uutils/coreutils/pull/5568
- chore(deps): update rust crate chrono to ^0.4.32 by @renovate in https://github.com/uutils/coreutils/pull/5870
- chore(deps): update actions/cache action to v4 by @renovate in https://github.com/uutils/coreutils/pull/5856
- chore(deps): update rust crate smallvec to 1.13 by @renovate in https://github.com/uutils/coreutils/pull/5862
- chore(deps): update davidanson/markdownlint-cli2-action action to v15 by @renovate in https://github.com/uutils/coreutils/pull/5859
- chore(deps): update rust crate xattr to 1.3.1 by @renovate in https://github.com/uutils/coreutils/pull/5841
- + 23 more
โจ New Contributors
- @cswn made their first contribution in https://github.com/uutils/coreutils/pull/5533
- @YDX-2147483647 made their first contribution in https://github.com/uutils/coreutils/pull/5539
- @pawelngei made their first contribution in https://github.com/uutils/coreutils/pull/5543
- @zoze0 made their first contribution in https://github.com/uutils/coreutils/pull/5574
- @cobaweel made their first contribution in https://github.com/uutils/coreutils/pull/5577
- @GDYendell made their first contribution in https://github.com/uutils/coreutils/pull/5581
- @lcheylus made their first contribution in https://github.com/uutils/coreutils/pull/5599
- @RenjiSann made their first contribution in https://github.com/uutils/coreutils/pull/5553
- + 20 more
๐งช 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%) |
- 
- + 1 more
๐ฆ global
- Implement SI prefixes R and Q by @zhitkoff in https://github.com/uutils/coreutils/pull/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 https://github.com/uutils/coreutils/pull/5477
- cat: return the same error message as GNU with loop symlink by @sylvestre in https://github.com/uutils/coreutils/pull/5466
๐ฆ cp
- cp: make test_closes_file_descriptors Linux-only by @cakebaker in https://github.com/uutils/coreutils/pull/5508
- cp: fix cp -rT dir dir2 leads to different result than with GNU cp by @tommady in https://github.com/uutils/coreutils/pull/5467
- cp: restrict two test functions to linux/mac/win by @cakebaker in https://github.com/uutils/coreutils/pull/5471
- cp: remove `crash!` call by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5486
- cp --remove-destination: don't fail if destination is symlink to source by @cakebaker in https://github.com/uutils/coreutils/pull/5430
- cp: add test for --attributes-only by @cakebaker in https://github.com/uutils/coreutils/pull/5458
- cp: fix cp -a --no-preserve=mode doesn't keep fully the mode by @tommady in https://github.com/uutils/coreutils/pull/5353
- cp,tail: fix warnings in tests on Android by @cakebaker in https://github.com/uutils/coreutils/pull/5496
๐ฆ dd
- dd: Do not use the OS provided dd utility on FIFOs by @n1000 in https://github.com/uutils/coreutils/pull/5453
๐ฆ df
- freebsd: fix the 'df' command by @kostikbel in https://github.com/uutils/coreutils/pull/5462
- df: Replace the error message by the one generated by clap by @sylvestre in https://github.com/uutils/coreutils/pull/5452
๐ฆ du
- du: make -l/--count-links work by @cakebaker in https://github.com/uutils/coreutils/pull/5493
- du: remove crash! macro by @alexhausen in https://github.com/uutils/coreutils/pull/5501
- du: add --no-dereference by @cakebaker in https://github.com/uutils/coreutils/pull/5491
- du: ignore test under Android & FreeBSD by @cakebaker in https://github.com/uutils/coreutils/pull/5497
- du: use blocks to remove some cfgs by @cakebaker in https://github.com/uutils/coreutils/pull/5504
- du: add -H (alias for --dereference-args) by @cakebaker in https://github.com/uutils/coreutils/pull/5506
๐ฆ expand
- expand: remove crash! macro by @ceteece in https://github.com/uutils/coreutils/pull/5510
๐ฆ expr
- expr: return 0 for `"" \| ""` by @Luv-Ray in https://github.com/uutils/coreutils/pull/5416
๐ฆ join
- join: remove a clippy::cognitive_complexity by moving some content in functions by @sylvestre in https://github.com/uutils/coreutils/pull/5367
๐ฆ ls
- ls --dired -R: fix the positions by @sylvestre in https://github.com/uutils/coreutils/pull/5341
- ls --dired: document the whole thing by @sylvestre in https://github.com/uutils/coreutils/pull/5432
- ls: update of the GNU test error output by @sylvestre in https://github.com/uutils/coreutils/pull/5438
- ls: return exit code 2 for invalid time-style by @cakebaker in https://github.com/uutils/coreutils/pull/5447
- ls: use try_get_matches_from instead of get_matches_from by @cakebaker in https://github.com/uutils/coreutils/pull/5446
๐ฆ mktemp
- mktemp: add func to expose functionality (for use in nushell) by @tskinn in https://github.com/uutils/coreutils/pull/5479
๐ฆ mv
- mv: make UpdateMode public by @dmatos2012 in https://github.com/uutils/coreutils/pull/5428
- mv: Fix stderr output mv file into dir and dir into file where both are files by @mickvangelderen in https://github.com/uutils/coreutils/pull/5464
- mv: rename canonized_* -> canonicalized_* by @cakebaker in https://github.com/uutils/coreutils/pull/5454
- mv: moving directory itself should fail by @dmatos2012 in https://github.com/uutils/coreutils/pull/5429
๐ฆ pathchk
- pathchk: check empty path by default by @Luv-Ray in https://github.com/uutils/coreutils/pull/5423
๐ฆ pr
- pr: skip a test for now for way too long log by @sylvestre in https://github.com/uutils/coreutils/pull/5440
๐ฆ printf
- printf: support %q by @Luv-Ray in https://github.com/uutils/coreutils/pull/5514
๐ฆ rm
- rm: In some cases, remove_dir is doing a better job than remove_dir_all by @sylvestre in https://github.com/uutils/coreutils/pull/5403
- rm: refactor `prompt_file`, issue #5345 by @terade in https://github.com/uutils/coreutils/pull/5356
- rm: adjust fail-2eperm.sh - gnu test by @sylvestre in https://github.com/uutils/coreutils/pull/5435
๐ฆ runcon
- runcon: generate the same error as GNUs by @sylvestre in https://github.com/uutils/coreutils/pull/5439
๐ฆ split
- split: suffix auto length by @zhitkoff in https://github.com/uutils/coreutils/pull/5433
- split : `--filter` and stdin updates by @zhitkoff in https://github.com/uutils/coreutils/pull/5418
- split: suffix length refactor by @zhitkoff in https://github.com/uutils/coreutils/pull/5449
๐งช test
- test: use mtime for -ot and fix direction of comparison by @n1000 in https://github.com/uutils/coreutils/pull/5441
- Add darwin arm64 builds by @dzbarsky in https://github.com/uutils/coreutils/pull/5523
- Add support in uucore for illumos and solaris by @bbarker in https://github.com/uutils/coreutils/pull/5489
- ci: remove outdated comment by @cakebaker in https://github.com/uutils/coreutils/pull/5525
- deny.toml: remove two entries from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/5478
๐ Documentation
- doc: add a missing "a" by @cakebaker in https://github.com/uutils/coreutils/pull/5413
- Expand CONTRIBUTING.md (WIP) by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5488
- CONTRIBUTING.md: spell-checker:ignore "rustdoc's" by @cakebaker in https://github.com/uutils/coreutils/pull/5512
- doc: mention "-v/--verbose" as extension of du by @cakebaker in https://github.com/uutils/coreutils/pull/5436
- uucore: remove incorrect comment by @cakebaker in https://github.com/uutils/coreutils/pull/5422
- Remove "last synced with" comments by @cakebaker in https://github.com/uutils/coreutils/pull/5469
๐ Security
- fuzzing: Refactor the error management by @sylvestre in https://github.com/uutils/coreutils/pull/5517
- fuzz: Move a duplicate function into fuzz_common by @sylvestre in https://github.com/uutils/coreutils/pull/5524
- github action: split the run of the fuzzers by @tommady in https://github.com/uutils/coreutils/pull/5444
- fuzz: use parse_size_u64 by @Luv-Ray in https://github.com/uutils/coreutils/pull/5470
- fuzz: set LC_COLLATE=C for expr by @cakebaker in https://github.com/uutils/coreutils/pull/5419
๐ฆ Various improvements
- Prepare version 0.0.23 by @sylvestre in https://github.com/uutils/coreutils/pull/5529
- Fix clippy::implicit_clone by @Statheres in https://github.com/uutils/coreutils/pull/5494
๐ฆ Dependencies
- Bump const-random from 0.1.15 to 0.1.16 by @cakebaker in https://github.com/uutils/coreutils/pull/5445
- fix(deps): update rust crate dns-lookup to 2.0.4 by @renovate in https://github.com/uutils/coreutils/pull/5412
- chore(deps): update rust crate regex to 1.10.2 by @renovate in https://github.com/uutils/coreutils/pull/5415
- Bump rustix crates by @cakebaker in https://github.com/uutils/coreutils/pull/5425
- chore(deps): update rust crate bytecount to 0.6.5 by @renovate in https://github.com/uutils/coreutils/pull/5442
- chore(deps): update rust crate bytecount to 0.6.7 by @renovate in https://github.com/uutils/coreutils/pull/5450
- chore(deps): update rust crate tempfile to 3.8.1 by @renovate in https://github.com/uutils/coreutils/pull/5461
- chore(deps): update actions/github-script action to v7 by @renovate in https://github.com/uutils/coreutils/pull/5528
- + 4 more
โจ New Contributors
- @terade made their first contribution in https://github.com/uutils/coreutils/pull/5356
- @n1000 made their first contribution in https://github.com/uutils/coreutils/pull/5441
- @mickvangelderen made their first contribution in https://github.com/uutils/coreutils/pull/5464
- @kostikbel made their first contribution in https://github.com/uutils/coreutils/pull/5462
- @bbarker made their first contribution in https://github.com/uutils/coreutils/pull/5489
- @tskinn made their first contribution in https://github.com/uutils/coreutils/pull/5479
- @alexhausen made their first contribution in https://github.com/uutils/coreutils/pull/5501
- @ceteece made their first contribution in https://github.com/uutils/coreutils/pull/5510
- + 2 more
๐งช 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 |
- 
- + 1 more
๐ What's Changed
- Bump MSRV to 1.70 by @cakebaker in https://github.com/uutils/coreutils/pull/5239
๐ฆ chown
- chown: move uid & gid detections into their own functions by @sylvestre in https://github.com/uutils/coreutils/pull/5359
๐ฆ cp
- cp: Error out if cp only contains source by @dmatos2012 in https://github.com/uutils/coreutils/pull/5253
- cp: fix the result of inodes are not the same when preserve links is flagged by @tommady in https://github.com/uutils/coreutils/pull/5064
- cp: fix cp -dR --no-preserve=links d c should have different inodes by @tommady in https://github.com/uutils/coreutils/pull/5320
- cp: fail when trying to copy to read only file on mac by @PGIII in https://github.com/uutils/coreutils/pull/5261
- cp: show no "skipped" msg with -vi/-vin by @cakebaker in https://github.com/uutils/coreutils/pull/5348
๐ฆ cut
- cut-huge-range.sh: make cut fails on usize::MAX by @sylvestre in https://github.com/uutils/coreutils/pull/4988
๐ฆ dd
- dd: fix GNU test 'dd/skip-seek-past-dev' by @bbara in https://github.com/uutils/coreutils/pull/4527
๐ฆ df
- df: Fix overflow error on WSL. Default to 0 when the values are non-sense. by @howard0su in https://github.com/uutils/coreutils/pull/5381
๐ฆ echo
- echo's doc doesn't show correctly by @sylvestre in https://github.com/uutils/coreutils/pull/5260
- echo: fix wrapping behavior of octal sequences by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5218
- echo: don't output "\n" if "\c" is encountered by @cakebaker in https://github.com/uutils/coreutils/pull/5350
๐ฆ expr
- expr: short-circuit evaluation for `|` by @Luv-Ray in https://github.com/uutils/coreutils/pull/5365
- expr: add some empty lines by @cakebaker in https://github.com/uutils/coreutils/pull/5376
- expr: short-circuit evaluation for `&` by @Luv-Ray in https://github.com/uutils/coreutils/pull/5402
- expr: test some invalid syntaxes by @cakebaker in https://github.com/uutils/coreutils/pull/5405
- expr: interpret numbers != 0 as true for | and & by @cakebaker in https://github.com/uutils/coreutils/pull/5324
๐ฆ fmt
- fmt: use clap's value parser for goal & width by @cakebaker in https://github.com/uutils/coreutils/pull/5333
๐ฆ head
- head: remove a clippy::cognitive_complexity by moving some content in a function by @sylvestre in https://github.com/uutils/coreutils/pull/5366
- head: add some empty lines by @cakebaker in https://github.com/uutils/coreutils/pull/5373
๐ฆ ls
- ls.rs: changed variable name dfn to display_file_content responding to #5282 by @rojin254 in https://github.com/uutils/coreutils/pull/5283
- Support ls --dired by @sylvestre in https://github.com/uutils/coreutils/pull/5280
- ls -R1: add a test to replicate GNU's recursive.sh by @sylvestre in https://github.com/uutils/coreutils/pull/5342
- ls --dired - some minor cleanup by @sylvestre in https://github.com/uutils/coreutils/pull/5299
- ls: fix test which fails if /tmp uses tmpfs by @cakebaker in https://github.com/uutils/coreutils/pull/5301
- ls --dired: replace the previous "total: xx" padding method by @sylvestre in https://github.com/uutils/coreutils/pull/5305
- ls: move to `uutils-term-grid` by @miles170 in https://github.com/uutils/coreutils/pull/5391
- ls: use OnceCell from std instead of once_cell by @cakebaker in https://github.com/uutils/coreutils/pull/5268
- + 3 more
๐ฆ mkdir
- mkdir: make `mkdir` public and document it by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5329
๐ฆ mv
- mv: expose main functionality for nushell by @PThorpe92 in https://github.com/uutils/coreutils/pull/5335
- ls: fix panic when file removed too quickly by @sanpii in https://github.com/uutils/coreutils/pull/5372
- mv: show no "skipped" msg with -vi/-vin by @cakebaker in https://github.com/uutils/coreutils/pull/5347
- mv: fix typo in test function name by @cakebaker in https://github.com/uutils/coreutils/pull/5351
๐ฆ nl
- nl: make line number and --join-blank-lines work over multiple files by @cakebaker in https://github.com/uutils/coreutils/pull/5285
- nl: fix output order if stdin and files are mixed by @cakebaker in https://github.com/uutils/coreutils/pull/5306
- nl: implement -d/--section-delimiter by @cakebaker in https://github.com/uutils/coreutils/pull/5158
- nl: defer showing "line number overflow" error by @cakebaker in https://github.com/uutils/coreutils/pull/5340
๐ฆ relpath
- relpath: remove by @boxdot in https://github.com/uutils/coreutils/pull/5355
- relpath: show error if no argument provided by @cakebaker in https://github.com/uutils/coreutils/pull/5302
๐ฆ rm
- rm: make the utility public by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5304
๐ฆ seq
- seq: parse "infinity" and "-infinity" by @shinhs0506 in https://github.com/uutils/coreutils/pull/5124
๐ฆ split
- split: implement remaining -n variants and pass GNU tests/split/fail.sh by @zhitkoff in https://github.com/uutils/coreutils/pull/5252
- split: catch broken pipe error for round robin strategy by @granquet in https://github.com/uutils/coreutils/pull/5338
๐ฆ touch
- touch: make main public by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5318
๐ฆ tr
- tr: work with Windows newline (CRLF) by @muhajirdev in https://github.com/uutils/coreutils/pull/5344
- tr: rename to_u*_str to map_buffer in set1 and set2 by @cakebaker in https://github.com/uutils/coreutils/pull/5325
- tr: make the utility public by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5322
- tr: support character class [:blank:] by @takanki in https://github.com/uutils/coreutils/pull/5317
- tr: Add test for character class [:blank:] by @cakebaker in https://github.com/uutils/coreutils/pull/5328
๐ฆ wc
- wc: add --count-mbs option by @mbuf in https://github.com/uutils/coreutils/pull/5336
๐ฆ whoami
- whoami: add support for -g/-m options by @muhajirdev in https://github.com/uutils/coreutils/pull/5352
- whoami: make main public by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5321
๐ฆ yes
- yes: make main public by @KAAtheWiseGit in https://github.com/uutils/coreutils/pull/5349
๐ฆ Build system & CI
- ci: code-quality workflow doesn't fail on clippy errors by @miles170 in https://github.com/uutils/coreutils/pull/5399
- build-gnu.sh: fix for /usr/bin/timeout on MacOS by @zhitkoff in https://github.com/uutils/coreutils/pull/5194
- build-gnu.sh: fix formatting issues by @cakebaker in https://github.com/uutils/coreutils/pull/5248
- run-gnu-test.sh: show if we can't find the file by @sylvestre in https://github.com/uutils/coreutils/pull/5318
- run-gnu-test.sh: accept "run-root" as first param by @cakebaker in https://github.com/uutils/coreutils/pull/5323
- ci: remove committing from CheckScripts.yml by @cakebaker in https://github.com/uutils/coreutils/pull/5291
- ci: replace deprecated "command" with "fix" by @cakebaker in https://github.com/uutils/coreutils/pull/5271
- Binary sizes: handle when 0 (relpath removal) by @sylvestre in https://github.com/uutils/coreutils/pull/5369
- + 3 more
๐ Documentation
- DEVELOPMENT.md: improve doc on how to run some tests by @sylvestre in https://github.com/uutils/coreutils/pull/5393
- update of the release doc by @sylvestre in https://github.com/uutils/coreutils/pull/5410
- Introducing DEVELOPMENT.md by @zhitkoff in https://github.com/uutils/coreutils/pull/5209
- doc: recommend the rust-gdb helper by @sylvestre in https://github.com/uutils/coreutils/pull/5404
- Document how to run the pure Rust tests by @sylvestre in https://github.com/uutils/coreutils/pull/5279
๐ Security
- fuzz: move the common duplicated code into a function by @sylvestre in https://github.com/uutils/coreutils/pull/5332
- fuzzing: remove some duplicated code + clippy fixes by @sylvestre in https://github.com/uutils/coreutils/pull/5337
- Fuzz the expr command by @sylvestre in https://github.com/uutils/coreutils/pull/4642
- fuzz: store the corpus by @tommady in https://github.com/uutils/coreutils/pull/5363
- github action: move the fuzzing action into it own file/task by @sylvestre in https://github.com/uutils/coreutils/pull/5380
๐ฆ Various improvements
- uucore: turn version_cmp into a feature by @cakebaker in https://github.com/uutils/coreutils/pull/5254
- clippy: suppress cognitive_complexity lint in some tests by @cakebaker in https://github.com/uutils/coreutils/pull/5401
- uucore: remove commented out import by @cakebaker in https://github.com/uutils/coreutils/pull/5384
- uucore: remove commented out enum FChar by @cakebaker in https://github.com/uutils/coreutils/pull/5385
- Make clippy::cognitive_complexity as an error by @sylvestre in https://github.com/uutils/coreutils/pull/5379
- clippy: suppress cognitive_complexity lint for two functions by @cakebaker in https://github.com/uutils/coreutils/pull/5374
- truncate clippy fix. by @devnexen in https://github.com/uutils/coreutils/pull/5259
- uu clippy fix proposal. by @devnexen in https://github.com/uutils/coreutils/pull/5264
- + 4 more
๐ฆ Dependencies
- Bump blake3 & add constant_time_eq to skip list in deny.toml by @cakebaker in https://github.com/uutils/coreutils/pull/5249
- chore(deps): update rust crate clap_complete to 4.4 by @renovate in https://github.com/uutils/coreutils/pull/5201
- chore(deps): update actions/checkout action to v4 by @renovate in https://github.com/uutils/coreutils/pull/5241
- chore(deps): update rust crate clap to 4.4 by @renovate in https://github.com/uutils/coreutils/pull/5200
- chore(deps): update rust crate half to 2.3 by @renovate in https://github.com/uutils/coreutils/pull/5005
- chore(deps): update rust crate regex to 1.10.1 by @renovate in https://github.com/uutils/coreutils/pull/5387
- chore(deps): update rust crate memmap2 to 0.9 by @renovate in https://github.com/uutils/coreutils/pull/5352
- chore(deps): update rust crate byteorder to 1.5.0 by @renovate in https://github.com/uutils/coreutils/pull/5361
- + 35 more
โจ New Contributors
- @rojin254 made their first contribution in https://github.com/uutils/coreutils/pull/5283
- @0323pin made their first contribution in https://github.com/uutils/coreutils/pull/5289
- @KAAtheWiseGit made their first contribution in https://github.com/uutils/coreutils/pull/5304
- @Leviticoh made their first contribution in https://github.com/uutils/coreutils/pull/4228
- @u8sand made their first contribution in https://github.com/uutils/coreutils/pull/5313
- @PGIII made their first contribution in https://github.com/uutils/coreutils/pull/5261
- @boxdot made their first contribution in https://github.com/uutils/coreutils/pull/5355
- @PThorpe92 made their first contribution in https://github.com/uutils/coreutils/pull/5335
- + 4 more
๐งช GNU test suite compatibility
- 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 |
- + 1 more
๐ฆ cat
- cat: remove --t by @cakebaker in https://github.com/uutils/coreutils/pull/5089
๐ฆ chown
- chown: remove some duplication in tests by @cakebaker in https://github.com/uutils/coreutils/pull/5168
๐ฆ cp
- `cp`: re-export `uucore::{BackupMode, UpdateMode}` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5211
- `cp`: finish progress bar to make it always show up by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5235
- `cp`: make more types public and add more documentation (for nushell) by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5152
๐ฆ csplit
- csplit: remove explicit "into_iter()" by @cakebaker in https://github.com/uutils/coreutils/pull/5109
๐ฆ date
- date: fix panic when input will cause overflow by @tommady in https://github.com/uutils/coreutils/pull/5160
๐ฆ dd
- parse_size,dd: turn instance fns to associated fns by @cakebaker in https://github.com/uutils/coreutils/pull/5207
๐ฆ factor
- `factor`: short circuit on write error, but not on parse error by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5225
- factor: simplify loop in test by @cakebaker in https://github.com/uutils/coreutils/pull/5192
๐ฆ fmt
- fmt: fix panic on width argument by @bluelief in https://github.com/uutils/coreutils/pull/5159
- fmt: implement Default for FmtOptions by @cakebaker in https://github.com/uutils/coreutils/pull/4747
๐ฆ hashsum
- `hashsum`: change debug to display format with --tag by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5219
๐ฆ mktemp
- Require = for --tmpdir in mktemp by @tmccombs in https://github.com/uutils/coreutils/pull/4342
๐ฆ mknod
- mknod: remove unnecessary "not" in test by @cakebaker in https://github.com/uutils/coreutils/pull/5233
๐ฆ mv
- mv: remove unnecessary OR in condition by @cakebaker in https://github.com/uutils/coreutils/pull/5143
๐ฆ nl
- nl: allow negative values for --line-increment and --starting-line-number by @cakebaker in https://github.com/uutils/coreutils/pull/5078
- nl: fix calculation of line number lengths by @cakebaker in https://github.com/uutils/coreutils/pull/5091
- nl: fix zero padding of negative line numbers by @cakebaker in https://github.com/uutils/coreutils/pull/5098
- nl: show error if --join-blank-lines is zero by @cakebaker in https://github.com/uutils/coreutils/pull/5103
- nl: shorten variants of NumberingStyle enum by @cakebaker in https://github.com/uutils/coreutils/pull/5100
- nl: fix output of numbering styles by @cakebaker in https://github.com/uutils/coreutils/pull/5131
- nl: re-add handling for -p/--no-renumber by @cakebaker in https://github.com/uutils/coreutils/pull/5155
- nl: implement TryFrom<&str> for NumberingStyle by @cakebaker in https://github.com/uutils/coreutils/pull/5156
- + 1 more
๐ฆ rm
- rm: refactor prompt_file() by @cakebaker in https://github.com/uutils/coreutils/pull/5147
- Add benchmarking for `rm` by @Benjscho in https://github.com/uutils/coreutils/pull/5187
๐ฆ seq
- seq: display -0 by @shinhs0506 in https://github.com/uutils/coreutils/pull/5136
- seq: remove unused param from write_value_float() by @cakebaker in https://github.com/uutils/coreutils/pull/5137
๐ฆ sum
- Use `rotate_right` rather than an explicit expansion in `sum` by @resistor in https://github.com/uutils/coreutils/pull/5115
- *
๐ฆ split
- split: loop over chars and remove char_from_digit function by @shinhs0506 in https://github.com/uutils/coreutils/pull/5153
- split: better handle numeric and hex suffixes, short and long, with and without values by @zhitkoff in https://github.com/uutils/coreutils/pull/5198
๐ฆ stat
- stat: Output error when - and -f are used together. by @Skryptonyte in https://github.com/uutils/coreutils/pull/5144
๐ฆ stty
- stty: Implement printing assignment of control chars by @dezgeg in https://github.com/uutils/coreutils/pull/5060
๐งช test
- Fuzz the test command by @sylvestre in https://github.com/uutils/coreutils/pull/4641
๐ฆ touch
- `touch`: move from `time` to `chrono` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4600
๐ฆ tsort
- tsort: use Iterator.all by @simon04 in https://github.com/uutils/coreutils/pull/5116
๐ website & documentation
- docs: fix broken Arch package link by @theoludwig in https://github.com/uutils/coreutils/pull/5084
- website: fix `path_prefix` in oranda by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5175
- docs: add missing "not" by @cakebaker in https://github.com/uutils/coreutils/pull/5178
- Docs platform support page by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5172
- docs: github repo link related to uutils/coreutils by @theoludwig in https://github.com/uutils/coreutils/pull/5085
- website: fix changelog config by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5215
- docs: add conda installer by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5185
- README: update links to docs by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5190
- + 2 more
๐ฆ Build system & CI
- uucore: make deps of "sum" feature optional by @cakebaker in https://github.com/uutils/coreutils/pull/5227
- uucore: make "dunce" optional by @cakebaker in https://github.com/uutils/coreutils/pull/5229
- uucore: turn backup_control into a feature by @cakebaker in https://github.com/uutils/coreutils/pull/5231
- uucore: turn ranges into a feature by @cakebaker in https://github.com/uutils/coreutils/pull/5238
- uucore: turn update_control into a feature by @cakebaker in https://github.com/uutils/coreutils/pull/5232
- upgrade to GNU/coreutils 9.4 by @sylvestre in https://github.com/uutils/coreutils/pull/5221
- make: split the manpage / completions generation into their target by @sylvestre in https://github.com/uutils/coreutils/pull/5092
- make: uninstall man pages by @miles170 in https://github.com/uutils/coreutils/pull/5101
- + 9 more
๐ฆ Various improvements
- uucore: remove unnecessary heap allocation by @thechampagne in https://github.com/uutils/coreutils/pull/5228
- Fix clippy warnings with Rust 1.72.0 by @cakebaker in https://github.com/uutils/coreutils/pull/5204
- Fix some of the recent clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/5182
- uucore: don't show error for ambiguous value by @cakebaker in https://github.com/uutils/coreutils/pull/5127
- uucore: provide capacity for vectors by @shinhs0506 in https://github.com/uutils/coreutils/pull/5086
- use is_empty() in mv & rmdir by @shinhs0506 in https://github.com/uutils/coreutils/pull/5117
- Extract uucore::line_ending::LineEnding by @simon04 in https://github.com/uutils/coreutils/pull/5120
- uucore,comm: fix warnings from bool_to_int_with_if by @cakebaker in https://github.com/uutils/coreutils/pull/5206
๐ฆ Dependencies
- chore(deps): update rust crate chrono to ^0.4.28 by @renovate in https://github.com/uutils/coreutils/pull/5226
- chore(deps): update rust crate regex to 1.9.5 by @renovate in https://github.com/uutils/coreutils/pull/5234
- Bump windows-targets from 0.48.0 to 0.48.2 by @cakebaker in https://github.com/uutils/coreutils/pull/5161
- Downgrade windows-targets from 0.48.2 to 0.48.0 by @cakebaker in https://github.com/uutils/coreutils/pull/5167
- Bump js-sys from 0.3.60 to 0.3.64 by @cakebaker in https://github.com/uutils/coreutils/pull/5154
- chore(deps): update rust crate rstest to 0.18.2 by @renovate in https://github.com/uutils/coreutils/pull/5157
- Bump cpp to remove aho-corasick from skip list in deny.toml by @cakebaker in https://github.com/uutils/coreutils/pull/5165
- chore(deps): update rust crate signal-hook to 0.3.17 by @renovate in https://github.com/uutils/coreutils/pull/5097
- + 22 more
๐ฆ code header
- Add license headers on all files by @sylvestre in https://github.com/uutils/coreutils/pull/5183
- Remove the author copyright notices by @sylvestre in https://github.com/uutils/coreutils/pull/5184
- Remove the author copyright notices by @cakebaker in https://github.com/uutils/coreutils/pull/5197
- All: normalize license notice in all `*.rs` files by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5199
- Remove the author copyright notices by @cakebaker in https://github.com/uutils/coreutils/pull/5205
โจ New Contributors
- @theoludwig made their first contribution in https://github.com/uutils/coreutils/pull/5085
- @starccy made their first contribution in https://github.com/uutils/coreutils/pull/5077
- @simon04 made their first contribution in https://github.com/uutils/coreutils/pull/5116
- @nouritsu made their first contribution in https://github.com/uutils/coreutils/pull/5129
- @bluelief made their first contribution in https://github.com/uutils/coreutils/pull/5159
- @tommady made their first contribution in https://github.com/uutils/coreutils/pull/5160
- @Benjscho made their first contribution in https://github.com/uutils/coreutils/pull/5187
- @zhitkoff made their first contribution in https://github.com/uutils/coreutils/pull/5198
- + 2 more
๐งช 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 |
- + 1 more
๐ What's Changed
- Create a FUNDING.yml file by @sylvestre in https://github.com/uutils/coreutils/pull/4969
๐ฆ cp
- cp: use mkdir_all() instead of mkdir() in test by @cakebaker in https://github.com/uutils/coreutils/pull/5029
- cp: allow multiple usages of -R - Closes: #5027 by @sylvestre in https://github.com/uutils/coreutils/pull/5028
- cp,du: fix warnings in tests on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/5014
- cp: fix "unused variable" warning on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/5016
๐ฆ date
- date: use custom value parser by @cakebaker in https://github.com/uutils/coreutils/pull/4977
- Remove time dependency from date by @wanderinglethe in https://github.com/uutils/coreutils/pull/4952
- date: switch to parse_datetime by @cakebaker in https://github.com/uutils/coreutils/pull/4968
๐ฆ dd
- dd: fix typos by @crapStone in https://github.com/uutils/coreutils/pull/5022
- dd: use an alarm thread instead of elapsed() calls by @Freaky in https://github.com/uutils/coreutils/pull/4447
๐ฆ df
- df: disable failing tests on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/5017
- Find MountInfo properly when symlink is used by @kropacf in https://github.com/uutils/coreutils/pull/4929
๐ฆ du
- docs: add "du" to extensions by @cakebaker in https://github.com/uutils/coreutils/pull/5050
- du: directories have apparent size of 0 by @shinhs0506 in https://github.com/uutils/coreutils/pull/4991
๐ฆ hashsum
- hashsum: use file_stem() instead of file_name() by @indygreg in https://github.com/uutils/coreutils/pull/5020
๐ฆ install
- install: remove time crate by @miles170 in https://github.com/uutils/coreutils/pull/4948
๐ฆ ls
- ls: Implement new sort option --sort=width by @Skryptonyte in https://github.com/uutils/coreutils/pull/4954
- docs: add "ls --long" to extensions by @cakebaker in https://github.com/uutils/coreutils/pull/5024
- ls: force fetching metadata when called with -L -Z by @granquet in https://github.com/uutils/coreutils/pull/4960
- ls: Limit value of --width to maximum value if overflowing by @Skryptonyte in https://github.com/uutils/coreutils/pull/5074
- ls: --l should output the same as --literal by @yt2b in https://github.com/uutils/coreutils/pull/5055
- ls: fix version cmp by @shinhs0506 in https://github.com/uutils/coreutils/pull/5038
๐ฆ mkdir
- mkdir: remove TEST_DIR<x> consts in tests by @cakebaker in https://github.com/uutils/coreutils/pull/4957
๐ฆ more
- More implement arguments plain and from line by @Ideflop in https://github.com/uutils/coreutils/pull/4950
๐ฆ mv
- mv: fix into-self-2.sh test by @Skryptonyte in https://github.com/uutils/coreutils/pull/4966
- mv: Fix for tests/mv/symlink-onto-hardlink-to-self.sh by @Skryptonyte in https://github.com/uutils/coreutils/pull/4976
- mv: add the check with --b=simple and when the source is a backup by @sylvestre in https://github.com/uutils/coreutils/pull/4999
๐ฆ nl
- nl: change value name to match help text by @cakebaker in https://github.com/uutils/coreutils/pull/5062
- nl: add "after help" by @cakebaker in https://github.com/uutils/coreutils/pull/5070
- nl: use value parser for "--number-format" by @cakebaker in https://github.com/uutils/coreutils/pull/5063
- nl: show error if --number-width is zero by @cakebaker in https://github.com/uutils/coreutils/pull/5065
- nl: add test for "--number-separator" by @cakebaker in https://github.com/uutils/coreutils/pull/5073
- nl: fix typo in nl.md by @cakebaker in https://github.com/uutils/coreutils/pull/4994
- nl: implement Default for Settings by @cakebaker in https://github.com/uutils/coreutils/pull/4995
- nl: make -p/--no-renumber a flag by @cakebaker in https://github.com/uutils/coreutils/pull/5036
๐ฆ numfmt
- numfmt: add --invalid option by @sbentmar in https://github.com/uutils/coreutils/pull/4249
- numfmt: remove duplicate info from help output by @cakebaker in https://github.com/uutils/coreutils/pull/5034
๐ฆ od
- od: fix parsing of hex input ending with `E` by @TheDcoder in https://github.com/uutils/coreutils/pull/4983
๐ฆ pr
- `pr` use chrono instead of time by @x-dune in https://github.com/uutils/coreutils/pull/4942
๐ฆ seq
- seq: rename "--widths" to "--equal-width" by @cakebaker in https://github.com/uutils/coreutils/pull/5012
- seq: remove two chars in seq.md by @cakebaker in https://github.com/uutils/coreutils/pull/5000
- fix: seq panic on no arguments #4749 by @NikolaiSch in https://github.com/uutils/coreutils/pull/4750
- docs: add seq to extensions; add some backticks by @cakebaker in https://github.com/uutils/coreutils/pull/5007
๐ฆ shred
- fixed shred -u for windows by @Statheres in https://github.com/uutils/coreutils/pull/4986
- leading zeros are ignored in version compare by @shinhs0506 in https://github.com/uutils/coreutils/pull/5013
- sort: migrate from ouroboros to self_cell by @cakebaker in https://github.com/uutils/coreutils/pull/4972
๐ฆ split
- split: reject some invalid values by @sylvestre in https://github.com/uutils/coreutils/pull/5032
๐ฆ stty
- stty: Finish '--save' support by @dezgeg in https://github.com/uutils/coreutils/pull/5054
- stty: Support setting baud rate by @dezgeg in https://github.com/uutils/coreutils/pull/5053
๐ฆ sync
- sync: fix error msg by @shinhs0506 in https://github.com/uutils/coreutils/pull/4984
๐ฆ tail
- `tail`: Refactor `paths::Input::from` and `Settings::inputs` by @Joining7943 in https://github.com/uutils/coreutils/pull/4756
๐ฆ tsort
- tsort: Switch to BTreeMap and BTreeSet by @cazou in https://github.com/uutils/coreutils/pull/4931
๐ฆ touch
- touch: accept "modify" & "mtime" for --time arg by @cakebaker in https://github.com/uutils/coreutils/pull/5058
- touch: rename CURRENT to TIMESTAMP by @cakebaker in https://github.com/uutils/coreutils/pull/4989
- touch: use parse_datetime instead of humantime_to_duration by @cakebaker in https://github.com/uutils/coreutils/pull/5030
๐ฆ yes
- yes: add --version option by @yt2b in https://github.com/uutils/coreutils/pull/4990
๐ฆ Code quality
- Reformat toml and add it to the CI by @sylvestre in https://github.com/uutils/coreutils/pull/4958
- clippy: fix warnings introduced by Rust 1.71.0 by @cakebaker in https://github.com/uutils/coreutils/pull/5079
๐ Documentation
- Initial oranda setup by @tertsdiepraam in https://github.com/uutils/coreutils/pull/5044
- cspell: ignore oranda.json by @cakebaker in https://github.com/uutils/coreutils/pull/5056
๐ฆ CI
- fix: fixpr.yml unrecognized named-value: 'steps' by @piotrkwiecinski in https://github.com/uutils/coreutils/pull/5057
- deny.toml: add comments by @cakebaker in https://github.com/uutils/coreutils/pull/4959
- deny.toml: add hashbrown to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/4985
- deny.toml: remove MPL license from allow list by @cakebaker in https://github.com/uutils/coreutils/pull/5076
๐ฆ misc
- Make tests/help/help-version-getopt.sh pass by @sylvestre in https://github.com/uutils/coreutils/pull/4987
- util/build-gnu.sh: Improve error message when missing GNU Coreutils repository by @sargas in https://github.com/uutils/coreutils/pull/5019
- try to fix ignore intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/4992
- Remove the auto capitalization of error message by @sylvestre in https://github.com/uutils/coreutils/pull/5004
- Update the version to 0.0.20 by @sylvestre in https://github.com/uutils/coreutils/pull/5082
๐ฆ Dependencies
- Remove users crate by @cakebaker in https://github.com/uutils/coreutils/pull/4943
- chore(deps): update rust crate once_cell to 1.18.0 by @renovate in https://github.com/uutils/coreutils/pull/4944
- chore(deps): update rust crate regex to 1.8.4 by @renovate in https://github.com/uutils/coreutils/pull/4951
- fix(deps): update rust crate libc to 0.2.146 by @renovate in https://github.com/uutils/coreutils/pull/4945
- chore(deps): update rust crate tempfile to 3.6.0 by @renovate in https://github.com/uutils/coreutils/pull/4955
- fix(deps): update rust crate memmap2 to 0.7 by @renovate in https://github.com/uutils/coreutils/pull/4961
- chore(deps): update rust crate blake3 to 1.4.0 by @renovate in https://github.com/uutils/coreutils/pull/4962
- Bump getrandom from 0.2.8 to 0.2.9 by @cakebaker in https://github.com/uutils/coreutils/pull/4947
- + 27 more
โจ New Contributors
- @x-dune made their first contribution in https://github.com/uutils/coreutils/pull/4942
- @cazou made their first contribution in https://github.com/uutils/coreutils/pull/4931
- @Skryptonyte made their first contribution in https://github.com/uutils/coreutils/pull/4954
- @wanderinglethe made their first contribution in https://github.com/uutils/coreutils/pull/4952
- @kropacf made their first contribution in https://github.com/uutils/coreutils/pull/4929
- @Statheres made their first contribution in https://github.com/uutils/coreutils/pull/4986
- @Freaky made their first contribution in https://github.com/uutils/coreutils/pull/4447
- @yt2b made their first contribution in https://github.com/uutils/coreutils/pull/4990
- + 6 more
๐งช 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 |
- 
๐ฆ global
- GNU/coreutils: update reference to 9.3 by @cakebaker in https://github.com/uutils/coreutils/pull/4754
- New release by @sylvestre in https://github.com/uutils/coreutils/pull/4926
- be more consistent in the help. use follow for deference options by @sylvestre in https://github.com/uutils/coreutils/pull/4739
- Remove some unnecessary "extern crate" statements by @cakebaker in https://github.com/uutils/coreutils/pull/4721
- tests: remove all "extern crate" statements by @cakebaker in https://github.com/uutils/coreutils/pull/4722
- coreutils: fixed panic when multi-call binary has funny name by @BartMassey in https://github.com/uutils/coreutils/pull/4366
๐ฆ b2sum
- B2sum: add -l/--length option by @spineki in https://github.com/uutils/coreutils/pull/4729
๐ฆ basenc
- basenc: add help texts for options by @cakebaker in https://github.com/uutils/coreutils/pull/4850
๐ฆ chgrp
- fix help message in chgrp by @m11o in https://github.com/uutils/coreutils/pull/4824
๐ฆ chown
- fix #4767: `chown -v 0 nf` isn't showing a message by @djedi23 in https://github.com/uutils/coreutils/pull/4768
- fix #4615: chown isnt showing a message by @djedi23 in https://github.com/uutils/coreutils/pull/4758
๐ฆ cksum
- cksum: remove "-a="s from markdown file by @cakebaker in https://github.com/uutils/coreutils/pull/4814
- cksum: split test function into two by @cakebaker in https://github.com/uutils/coreutils/pull/4854
- cksum: fix output of --algorithm by @cakebaker in https://github.com/uutils/coreutils/pull/4856
- cksum: implement --untagged by @cakebaker in https://github.com/uutils/coreutils/pull/4860
๐ฆ cp
- cp: add support POSIXLY_CORRECT=1 when dealing with dangling links by @sylvestre in https://github.com/uutils/coreutils/pull/4812
- cp: fix cp -f f loop when loop is a symlink loop by @sylvestre in https://github.com/uutils/coreutils/pull/4820
- cp: fix "after help" output by @cakebaker in https://github.com/uutils/coreutils/pull/4828
- cp: preserve permission on -p --parents by @shinhs0506 in https://github.com/uutils/coreutils/pull/4853
- cp: preserve permissions on -r -p --parents by @shinhs0506 in https://github.com/uutils/coreutils/pull/4859
- cp: Accept --preserve=link by @sylvestre in https://github.com/uutils/coreutils/pull/4910
- cp: -i prompts in the right place and other improv by @sylvestre in https://github.com/uutils/coreutils/pull/4925
- cp: replace assert!(false) with panic!() by @cakebaker in https://github.com/uutils/coreutils/pull/4930
- + 2 more
๐ฆ date
- date -d supports - 1 year ago, 2 second, etc by @sylvestre in https://github.com/uutils/coreutils/pull/4790
- Improve the date md page by @sylvestre in https://github.com/uutils/coreutils/pull/4789
- date: fix error message when opening file by @leon3s in https://github.com/uutils/coreutils/pull/4544
- date: bring back the test by @sylvestre in https://github.com/uutils/coreutils/pull/4889
- date: Catch format string that is not supported by chrono by @jaggededgedjustice in https://github.com/uutils/coreutils/pull/4244
๐ฆ dd
- dd: fix some clippy warnings 'variable does not need to be mutable' by @sylvestre in https://github.com/uutils/coreutils/pull/4842
- dd: fix "unused imports" warning in tests by @cakebaker in https://github.com/uutils/coreutils/pull/4843
- dd: support the [io]flag=nocache option by @jfinkels in https://github.com/uutils/coreutils/pull/4432
๐ฆ dircolors
- dircolors: trigger an error when used on / by @sylvestre in https://github.com/uutils/coreutils/pull/4672
๐ฆ du
- du: add support of --dereference-args & minor changes by @sylvestre in https://github.com/uutils/coreutils/pull/4723
- du: fix clippy warning in test by @cakebaker in https://github.com/uutils/coreutils/pull/4765
๐ฆ factor
- factor: fix unused import in test by @cakebaker in https://github.com/uutils/coreutils/pull/4711
- factor: remove unnecessary "extern crate" in test by @cakebaker in https://github.com/uutils/coreutils/pull/4712
- Add flush after calculating factor by @vikiminki in https://github.com/uutils/coreutils/pull/4776
- factor: add -h/--exponents option by @Ideflop in https://github.com/uutils/coreutils/pull/4710
๐ฆ fmt
- fmt: cleanup tests by @cakebaker in https://github.com/uutils/coreutils/pull/4753
๐ฆ hashsum
- fix: Correctly detect format when using md5sum with check flag by @kamilogorek in https://github.com/uutils/coreutils/pull/4645
๐ฆ head
- `head`: use `OsStringExt::from_vec` instead of `std::from_utf8_unchecked` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4923
๐ฆ ls
- Improve the readibility of ls code by @sylvestre in https://github.com/uutils/coreutils/pull/4733
- Use `expected_result` in test_ls to avoid spurious failures by @sunfishcode in https://github.com/uutils/coreutils/pull/4784
- ls: device number for BSDs and solarishOS by @SteveLauC in https://github.com/uutils/coreutils/pull/4841
- ls: when facing an invalid utf-8, don't panic by @sylvestre in https://github.com/uutils/coreutils/pull/4861
- [tests/ls] Support user names containing dots by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/4798
๐ฆ mkdir
- mkdir: set correct permissions on dirs created by -p by @shinhs0506 in https://github.com/uutils/coreutils/pull/4876
- Mkdir: explicit umask and sequential tests by @shinhs0506 in https://github.com/uutils/coreutils/pull/4896
๐ฆ mktemp
- mktemp: fix PrefixContainsDirSeparator verification by @ZauJulio in https://github.com/uutils/coreutils/pull/4379
- mktemp -t foo.XXXX should create in TMPDIR by @sylvestre in https://github.com/uutils/coreutils/pull/4832
- mktemp: two small test refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/4877
- mktemp: prioritize TMPDIR over -p when using -t by @cakebaker in https://github.com/uutils/coreutils/pull/4878
๐ฆ more
- more: support PageDown/PageUp keys by @cakebaker in https://github.com/uutils/coreutils/pull/4873
- more: add arguments print over and clean print by @Ideflop in https://github.com/uutils/coreutils/pull/4872
- more: remove empty "else"-branches in tests by @cakebaker in https://github.com/uutils/coreutils/pull/4880
- fix(#4886) more: panics if file is not readable by @Ludmuterol in https://github.com/uutils/coreutils/pull/4888
- more: implement argument -s / --squeeze by @Ideflop in https://github.com/uutils/coreutils/pull/4903
- more: implement arguments -n/--lines and --number by @Ideflop in https://github.com/uutils/coreutils/pull/4914
๐ฆ mv
- mv: adapt -n behavior to GNU mv 9.3 by @cakebaker in https://github.com/uutils/coreutils/pull/4782
- mv: show no error if overwriting is declined in interactive mode by @cakebaker in https://github.com/uutils/coreutils/pull/4773
- mv: add 'renamed " in the beginning of the message when verbose flag is set by @shinhs0506 in https://github.com/uutils/coreutils/pull/4787
- mv: check if --target is a directory by @shinhs0506 in https://github.com/uutils/coreutils/pull/4794
- mv: validate --target arg by @cakebaker in https://github.com/uutils/coreutils/pull/4802
- mv, cp: add support for --update=none,all,older by @shinhs0506 in https://github.com/uutils/coreutils/pull/4796
- fix tests/mv/i-5.sh by @shinhs0506 in https://github.com/uutils/coreutils/pull/4823
- mv: if more than one of -i, -f, -n is specified, only the final one takes effect by @cakebaker in https://github.com/uutils/coreutils/pull/4826
- + 3 more
๐ฆ nice
- Avoid spurious failures in the presence of non-zero default nice by @sunfishcode in https://github.com/uutils/coreutils/pull/4783
๐ฆ paste
- paste: handle list ending with unescaped backslash by @cakebaker in https://github.com/uutils/coreutils/pull/3661
๐ฆ pwd
- pwd: Allow -P flag precedence over POSIXLY_CORRECT by @tracym in https://github.com/uutils/coreutils/pull/4937
๐ฆ rm
- gnu: adjust tests/rm/inaccessible.sh error message by @sylvestre in https://github.com/uutils/coreutils/pull/4809
- rm: support non-UTF-8 paths by @jeddenlea in https://github.com/uutils/coreutils/pull/4871
- fix rm/interactive-always.sh by @shinhs0506 in https://github.com/uutils/coreutils/pull/4890
๐ฆ shred
- shred: add support for octal and hex size by @shinhs0506 in https://github.com/uutils/coreutils/pull/4918
๐ฆ tail
- tail/args: Fix parsing when -F is used together with --retry or --follow by @Joining7943 in https://github.com/uutils/coreutils/pull/4734
- 'tail': Change static global variables to const by @Joining7943 in https://github.com/uutils/coreutils/pull/4777
๐ฆ touch
- To provide dates like "yesterday, tomorrow, etc", Use the humantime_to_duration crate by @sylvestre in https://github.com/uutils/coreutils/pull/4778
- touch: add support for --ref and --date together by @Xalfer in https://github.com/uutils/coreutils/pull/4717
- touch: remove unnecessary "extern crate"s by @cakebaker in https://github.com/uutils/coreutils/pull/4718
- touch: improve support for dangling link by @sylvestre in https://github.com/uutils/coreutils/pull/4769
๐ฆ uniq
- uniq: non-UTF-8 file names and fewer copies by @jeddenlea in https://github.com/uutils/coreutils/pull/4911
๐ฆ wc
- wc: use concat! to improve readability of tests by @cakebaker in https://github.com/uutils/coreutils/pull/4707
- test,wc: use vars directly in format! strings by @cakebaker in https://github.com/uutils/coreutils/pull/4760
- wc: streaming --files0-from and other improvements by @jeddenlea in https://github.com/uutils/coreutils/pull/4696
๐ฆ whoami
- tests/whoami: add windows test for issue #4614 by @garydev10 in https://github.com/uutils/coreutils/pull/4901
๐ฆ yes
- yes: support non-UTF-8 args by @jeddenlea in https://github.com/uutils/coreutils/pull/4862
๐ฆ uucore
- uucore: remove commented out imports by @cakebaker in https://github.com/uutils/coreutils/pull/4720
- Fix a warning in upstream code on Rust nightly. by @sunfishcode in https://github.com/uutils/coreutils/pull/4781
๐ฆ Code quality
- Fix incorrect comment & remove irrelevant comment by @cakebaker in https://github.com/uutils/coreutils/pull/4738
- fix some clippy warnings in tests by @sylvestre in https://github.com/uutils/coreutils/pull/4759
- Reduce cognitive complexity: just move some of the contents in functions by @sylvestre in https://github.com/uutils/coreutils/pull/4743
- Lower the clippy cognitive complexity & fix lines_filter_map_ok by @sylvestre in https://github.com/uutils/coreutils/pull/4834
- Fix some semicolon_if_nothing_returned by @sylvestre in https://github.com/uutils/coreutils/pull/4839
๐ฆ CI/CD improvements
- `ci`: Run tests with nextest by @Joining7943 in https://github.com/uutils/coreutils/pull/4740
- Use the full path for the ignore list by @sylvestre in https://github.com/uutils/coreutils/pull/4728
- CICD: fix full path for the ignore list by @cakebaker in https://github.com/uutils/coreutils/pull/4730
- CI: compute individual binary sizes by @miles170 in https://github.com/uutils/coreutils/pull/4694
- ci: Fix usages of rust-cache to produce more cache hits by @Joining7943 in https://github.com/uutils/coreutils/pull/4742
- ci/android: speed up build and test by @Joining7943 in https://github.com/uutils/coreutils/pull/4745
- build-gnu.sh: always update PATH in Makefile by @cakebaker in https://github.com/uutils/coreutils/pull/4791
- android: use cargo test instead of nextest by @sylvestre in https://github.com/uutils/coreutils/pull/4801
- + 6 more
๐ Doc improvements
- docs: add extension (short options with args) by @cakebaker in https://github.com/uutils/coreutils/pull/4851
- doc: show a warning when no tldr example by @sylvestre in https://github.com/uutils/coreutils/pull/4847
- uudoc: fix clippy warnings by @cakebaker in https://github.com/uutils/coreutils/pull/4761
- docs: document fmt in GNU extensions by @cakebaker in https://github.com/uutils/coreutils/pull/4748
- pinky: move help strings to markdown file by @m11o in https://github.com/uutils/coreutils/pull/4701
- true: move help strings to markdown file by @piotrkwiecinski in https://github.com/uutils/coreutils/pull/4703
- unexpand: move help strings to markdown file by @piotrkwiecinski in https://github.com/uutils/coreutils/pull/4704
- printf: move help strings to markdown file by @m11o in https://github.com/uutils/coreutils/pull/4705
- + 15 more
โจ New Contributors
- @m11o made their first contribution in https://github.com/uutils/coreutils/pull/4701
- @Xalfer made their first contribution in https://github.com/uutils/coreutils/pull/4717
- @spineki made their first contribution in https://github.com/uutils/coreutils/pull/4729
- @Ideflop made their first contribution in https://github.com/uutils/coreutils/pull/4710
- @publicmatt made their first contribution in https://github.com/uutils/coreutils/pull/4460
- @vikiminki made their first contribution in https://github.com/uutils/coreutils/pull/4776
- @sunfishcode made their first contribution in https://github.com/uutils/coreutils/pull/4781
- @shinhs0506 made their first contribution in https://github.com/uutils/coreutils/pull/4787
- + 8 more
๐ฆ Dependencies
- remove utf8 dependency. by @publicmatt in https://github.com/uutils/coreutils/pull/4460
- Bump fundu to 0.5.1 and fix tests by @cakebaker in https://github.com/uutils/coreutils/pull/4813
- Remove unused "num_cpus" dependency by @cakebaker in https://github.com/uutils/coreutils/pull/4898
- Bump crates to phase out windows-sys 0.42.0 by @cakebaker in https://github.com/uutils/coreutils/pull/4908
- Bump windows-targets to 0.42.2 and add it with its dependencies to deny.toml by @cakebaker in https://github.com/uutils/coreutils/pull/4915
- update to platform-info 2.0.1 by @sylvestre in https://github.com/uutils/coreutils/pull/4897
- Bump crossbeam(-channel, -epoch, -utils) crates by @cakebaker in https://github.com/uutils/coreutils/pull/4894
- Bump rustix crates by @cakebaker in https://github.com/uutils/coreutils/pull/4899
- + 41 more
๐ General changes
- GNU/coreutils: update reference to 9.2 by @cakebaker in https://github.com/uutils/coreutils/pull/4601
- MSRV 1.64 & Workspace inheritance for dependencies by @tertsdiepraam in https://github.com/uutils/coreutils/pull/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 https://github.com/uutils/coreutils/pull/4630
- Refactor signal handling in yes, tee, and timeout by @anastygnome in https://github.com/uutils/coreutils/pull/4588
- Migrate from `atty` to `is-terminal` by @souzaguilhermea in https://github.com/uutils/coreutils/pull/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 |
๐ฆ cksum
- Implement -a by @howjmay in https://github.com/uutils/coreutils/pull/4356
๐ฆ chmod
- change permissions for files present even when there is a missing file by @dmatos2012 in https://github.com/uutils/coreutils/pull/4359
- suppress verbose output when not verbose by @dmatos2012 in https://github.com/uutils/coreutils/pull/4402
- allow verbose and quiet flags to be used more than once by @dmatos2012 in https://github.com/uutils/coreutils/pull/4410
- Fix GNU test 'chmod/usage' by @bbara in https://github.com/uutils/coreutils/pull/4442
๐ฆ chroot
- Fix unused import on Android by @miles170 in https://github.com/uutils/coreutils/pull/4571
๐ฆ comm
- Implement --total by @cakebaker in https://github.com/uutils/coreutils/pull/4300
- Enable "no_arguments" & "one_argument" tests by @cakebaker in https://github.com/uutils/coreutils/pull/4330
- Use delimiter on "total" line by @cakebaker in https://github.com/uutils/coreutils/pull/4314
- Implement --zero-terminated by @cakebaker in https://github.com/uutils/coreutils/pull/4449
- Allow multiple occurrence of --zero-terminated by @cakebaker in https://github.com/uutils/coreutils/pull/4452
๐ฆ cp
- Modify archive flag to copy dir contents rather than dir by @dmatos2012 in https://github.com/uutils/coreutils/pull/3954
- Use PathBuf instead of String for paths by @tmccombs in https://github.com/uutils/coreutils/pull/4348
- Stop saying --sparse is not implemented for cp by @tmccombs in https://github.com/uutils/coreutils/pull/4349
๐ฆ cut
- Refactor by @TechHara in https://github.com/uutils/coreutils/pull/4255
๐ฆ date
- Show error when reading dirs for -f arg by @shanmukhateja in https://github.com/uutils/coreutils/pull/4572
- Added default value for `date --i`. by @kidrigger in https://github.com/uutils/coreutils/pull/4522
- fix: match date -I error messages with GNU date by @shanmukhateja in https://github.com/uutils/coreutils/pull/4499
- Added tests for date ISO8601 formats. by @kidrigger in https://github.com/uutils/coreutils/pull/4520
- Make sure 'invalid date' message also returns exit code 1 by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4526
- Fix invalid argument error for RFC 3339 by @shanmukhateja in https://github.com/uutils/coreutils/pull/4535
- A better handler for `./coreutils date -f aze` by @AbhinavMir in https://github.com/uutils/coreutils/pull/4482
๐ฆ dd
- Move dd_out() function up to module level by @jfinkels in https://github.com/uutils/coreutils/pull/4428
- Allow skipping and seeking in FIFOs by @jfinkels in https://github.com/uutils/coreutils/pull/4164
- Fix precision for display of total time spent by @jfinkels in https://github.com/uutils/coreutils/pull/4498
- Fix unused imports on FreeBSD by @miles170 in https://github.com/uutils/coreutils/pull/4512
- Open stdin from file descriptor when possible by @jfinkels in https://github.com/uutils/coreutils/pull/4189
๐ฆ du
- threshold error message fix by @haciek in https://github.com/uutils/coreutils/pull/4637
- Update the GNU error message to our for tests/du/threshold.sh by @sylvestre in https://github.com/uutils/coreutils/pull/4656
- Run test_du_time with TZ=UTC. by @eggpi in https://github.com/uutils/coreutils/pull/4446
- Fix unnecessary boolean operation by @papparapa in https://github.com/uutils/coreutils/pull/4548
๐ฆ env
- start about text with uppercase char by @cakebaker in https://github.com/uutils/coreutils/pull/4324
- docs: document env -f/--file in GNU extensions by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4331
๐ฆ expand
- Improve plus specifier handling by @sbentmar in https://github.com/uutils/coreutils/pull/4260
๐ฆ factor
- Remove `paste` dev dependency by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4631
๐ฆ hashsum
- Add `--zero` option (#4612) by @0xMRTT in https://github.com/uutils/coreutils/pull/4632
๐ฆ install
- Fix bad target directory permissions by @kylemanna in https://github.com/uutils/coreutils/pull/4364
- Add missing directory chown by @kylemanna in https://github.com/uutils/coreutils/pull/4365
๐ฆ ln
- Fix format of help text by @cakebaker in https://github.com/uutils/coreutils/pull/4327
๐ฆ ls
- Cannot find function `expected_result` in this scope by @piotrkwiecinski in https://github.com/uutils/coreutils/pull/4580
- Handling case sensitive ls output by @jparag in https://github.com/uutils/coreutils/pull/4524
๐ฆ mktemp
- uncomment fixed test case by @jfinkels in https://github.com/uutils/coreutils/pull/4297
๐ฆ mv
- Update of fs_extra - address the new warnings by @sylvestre in https://github.com/uutils/coreutils/pull/4320
๐ฆ nice
- Support legacy argument syntax for nice by @eds-collabora in https://github.com/uutils/coreutils/pull/4271
๐ฆ nproc
- Replace num_cpus crate with thread::available_parallelism by @souzaguilhermea in https://github.com/uutils/coreutils/pull/4352
๐ฆ od
- Remove "width = width" from format strings by @cakebaker in https://github.com/uutils/coreutils/pull/4263
- Fix some minor details suggested by clippy::pedantic by @cakebaker in https://github.com/uutils/coreutils/pull/4492
๐ฆ ptx
- Fix warning from unnecessary_join lint by @cakebaker in https://github.com/uutils/coreutils/pull/4313
๐ฆ pwd
- Small refactor of some match expressions by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4508
๐ฆ rm
- Remove remove_dir_all dependency by @howjmay in https://github.com/uutils/coreutils/pull/4340
๐ฆ shred
- Refactor to clean up code and reduce syscalls by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4493
- Enable `test_shred_force` on FreeBSD by @miles170 in https://github.com/uutils/coreutils/pull/4523
- Fix `permissions_set_readonly_false` clippy error by @miles170 in https://github.com/uutils/coreutils/pull/4488
๐ฆ sleep
- Fix parsing of multiple inputs panics on overflow, some whitespace issues ... by @Joining7943 in https://github.com/uutils/coreutils/pull/4439
- Replace uucore::parse_time::from_str with fundu by @Joining7943 in https://github.com/uutils/coreutils/pull/4448
๐ฆ stdbuf
- Get profile from the end of the path by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4638
๐ฆ stty
- Basic support for --file/-F by @VorpalBlade in https://github.com/uutils/coreutils/pull/4401
๐ฆ tail
- Fix GNU test 'misc/tail' by @bbara in https://github.com/uutils/coreutils/pull/4347
- Fix argument parsing of sleep interval by @Joining7943 in https://github.com/uutils/coreutils/pull/4239
- `tests/tail`: Disable `test_follow_with_pid` on freebsd by @Joining7943 in https://github.com/uutils/coreutils/pull/4307
- `tail`: Cargo.toml: Remove unneeded features of uucore and the nix dependency by @Joining7943 in https://github.com/uutils/coreutils/pull/4376
๐ฆ touch
- Add underscores to long number in test by @cakebaker in https://github.com/uutils/coreutils/pull/4577
๐ฆ timeout
- Add a test to verify that it fails as expected by @sylvestre in https://github.com/uutils/coreutils/pull/4419
- Fix subprocess is never terminated by @miles170 in https://github.com/uutils/coreutils/pull/4315
๐ฆ tr
- Remove the extra newline in stderr by @howjmay in https://github.com/uutils/coreutils/pull/4339
๐ฆ uname
- Use the same version of platform-info as arch by @sylvestre in https://github.com/uutils/coreutils/pull/4290
๐ฆ uniq
- Remove suppression of use_self lint by @cakebaker in https://github.com/uutils/coreutils/pull/4354
- Remove `strum` dependency by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4629
๐ฆ uptime
- correctly calculate boot-time by @zanbaldwin in https://github.com/uutils/coreutils/pull/4440
๐ฆ utmpx
- arch/os-independent timeval handling by @bbara in https://github.com/uutils/coreutils/pull/4405
๐ฆ wc
- Implement --total by @cakebaker in https://github.com/uutils/coreutils/pull/4695
๐ฆ uucore
- util: fix publish order of uucore_procs and uucore by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4287
- `uucore`: Fix #4298: Fails to build on s390x (and riscv64) by @Joining7943 in https://github.com/uutils/coreutils/pull/4299
- parser: fix index out of bounds error by @papparapa in https://github.com/uutils/coreutils/pull/4484
- uucore: fix help section doesn't render 3+ level headers by @piotrkwiecinski in https://github.com/uutils/coreutils/pull/4569
- Fix panic in multi-byte characters by @howjmay in https://github.com/uutils/coreutils/pull/4388
- uucore_procs: extract "about" and "usage" info from new help structure by @cakebaker in https://github.com/uutils/coreutils/pull/4385
- uucore: indent multiline usage info by @cakebaker in https://github.com/uutils/coreutils/pull/4393
- replace VERSION string with clap::crate_version by @akhilerm in https://github.com/uutils/coreutils/pull/4462
๐ฆ CI
- CICD maintainence by @rivy in https://github.com/uutils/coreutils/pull/4292
- Use sccache to cache build results by @sylvestre in https://github.com/uutils/coreutils/pull/4486
- use sccache action 0.0.3 - automatically uses the most recent version of sccache by @sylvestre in https://github.com/uutils/coreutils/pull/4582
- Extend the stale bot to 3 years by @sylvestre in https://github.com/uutils/coreutils/pull/4312
- End the current execution if there is a new changeset in the PR by @sylvestre in https://github.com/uutils/coreutils/pull/4386
- GNU: Ignore some intermittent by @sylvestre in https://github.com/uutils/coreutils/pull/4296
- `cicd`: Fix #4322 toolchain overrides must begin with + by @Joining7943 in https://github.com/uutils/coreutils/pull/4323
- Linting and formatting checks for FreeBSD by @miles170 in https://github.com/uutils/coreutils/pull/4668
- + 10 more
๐งช Test
- test: add a test matching what busybox is doing by @sylvestre in https://github.com/uutils/coreutils/pull/4265
- Remove `keep_env` from the test framework by @miles170 in https://github.com/uutils/coreutils/pull/4594
- Implement enhancements of `CmdResult` #4259 by @Joining7943 in https://github.com/uutils/coreutils/pull/4261
- Small Refactor/Fixes of `UCommand` and add method to run a `UCommand` in a shell platform independently by @Joining7943 in https://github.com/uutils/coreutils/pull/4293
- Fix tr.pl and stat-printf.pl don't show up in gnu-full-result by @miles170 in https://github.com/uutils/coreutils/pull/4503
- Fix path resolution of test executable by @Joining7943 in https://github.com/uutils/coreutils/pull/4256
- Don't trim output in `CmdResult::stdout_matches` and `stdout_does_not_match` by @Joining7943 in https://github.com/uutils/coreutils/pull/4304
- Replace panic in favor of ParseError by @leon3s in https://github.com/uutils/coreutils/pull/4558
- + 3 more
๐ฆ Code quality
- clippy: fix warnings introduced with Rust 1.67.0 by @cakebaker in https://github.com/uutils/coreutils/pull/4303
- clippy: fix unnecessary return warnings by @ctsk in https://github.com/uutils/coreutils/pull/4308
- Fixes from nightly version of clippy by @jfinkels in https://github.com/uutils/coreutils/pull/4363
- fix unnecessary boolean not operations by @daviddwk in https://github.com/uutils/coreutils/pull/4578
- remove dependabot configuration. we are using renovatebot by @sylvestre in https://github.com/uutils/coreutils/pull/4599
- Fix some simple clippy warnings by @sylvestre in https://github.com/uutils/coreutils/pull/4532
- build.rs: ignore a clippy warning: match_same_arms by @sylvestre in https://github.com/uutils/coreutils/pull/4536
- fix: clippy long literal lacking separators by @leon3s in https://github.com/uutils/coreutils/pull/4546
- + 1 more
๐ Documentation
- docs: fix invalid test status in gnu-full-result by @miles170 in https://github.com/uutils/coreutils/pull/4317
- Start about texts with uppercase char by @cakebaker in https://github.com/uutils/coreutils/pull/4326
- fix typo by @howjmay in https://github.com/uutils/coreutils/pull/4328
- Document how to build in release mode by @sylvestre in https://github.com/uutils/coreutils/pull/4467
- Freebsd pkg has been remamed to rust-coreutils by @sylvestre in https://github.com/uutils/coreutils/pull/4420
- refresh the installation doc with new distros by @sylvestre in https://github.com/uutils/coreutils/pull/4374
- Add OpenMandriva Lx to the documentation by @tpgxyz in https://github.com/uutils/coreutils/pull/4431
- gentoo has renamed the package by @sylvestre in https://github.com/uutils/coreutils/pull/4418
- + 9 more
๐ฆ Dependency update
- build(deps): bump gcd from 2.1.0 to 2.2.0 by @dependabot in https://github.com/uutils/coreutils/pull/4180
- build(deps): bump blake3 from 1.3.1 to 1.3.2 by @dependabot in https://github.com/uutils/coreutils/pull/4171
- chore(deps): update rust crate hex-literal to 0.4.0 by @renovate in https://github.com/uutils/coreutils/pull/4699
- fix(deps): update rust crate data-encoding to 2.3 by @renovate in https://github.com/uutils/coreutils/pull/4689
- chore(deps): update rust crate rstest to 0.17.0 by @renovate in https://github.com/uutils/coreutils/pull/4677
- fix(deps): update rust crate windows-sys to 0.45.0 by @renovate in https://github.com/uutils/coreutils/pull/4691
- build(deps): bump regex from 1.7.0 to 1.7.1 by @dependabot in https://github.com/uutils/coreutils/pull/4311
- chore(deps): update rust crate crossterm to >=0.26.1 by @renovate in https://github.com/uutils/coreutils/pull/4660
- + 48 more
โจ New Contributors
- @howjmay made their first contribution in https://github.com/uutils/coreutils/pull/4328
- @tmccombs made their first contribution in https://github.com/uutils/coreutils/pull/4349
- @souzaguilhermea made their first contribution in https://github.com/uutils/coreutils/pull/4352
- @papparapa made their first contribution in https://github.com/uutils/coreutils/pull/4372
- @kylemanna made their first contribution in https://github.com/uutils/coreutils/pull/4364
- @pkubaj made their first contribution in https://github.com/uutils/coreutils/pull/4397
- @jhowww made their first contribution in https://github.com/uutils/coreutils/pull/4403
- @chenchiii made their first contribution in https://github.com/uutils/coreutils/pull/4411
- + 27 more
๐ฆ 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`](https://github.com/jarun/advcpmv).
- + 1 more
๐งช 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 https://github.com/uutils/coreutils/pull/3994
- Clap 4 by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3991
- Migrate from `winapi` to `windows-sys` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/4065
- Run the toybox testsuite by @sylvestre in https://github.com/uutils/coreutils/pull/4222
- Use normal use declarations to import macros by @miles170 in https://github.com/uutils/coreutils/pull/4151
- Add installation page to docs with package managers by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4048
- Test utilities
- Add `UChild`, an abstraction for `std::process::Child` by @Joining7943 in https://github.com/uutils/coreutils/pull/4136
- + 7 more
๐ฆ `chown`
- Fails when `XXXX.` or `XXXX:` is provided (when XXXX is numeric value) by @sylvestre in https://github.com/uutils/coreutils/pull/4081
๐ฆ `cp`
- Move `copy_directory()` to its own module by @jfinkels in https://github.com/uutils/coreutils/pull/3901
- Correctly copy ancestor dirs in `--parents` mode by @jfinkels in https://github.com/uutils/coreutils/pull/4071
- `cp -i --update source existing` should not do anything and exit 0 by @sylvestre in https://github.com/uutils/coreutils/pull/4078
- Implement `--copy-contents` option for fifos by @jfinkels in https://github.com/uutils/coreutils/pull/3978
- Remove interactive mode message on 'no' by @sssemil in https://github.com/uutils/coreutils/pull/4069
- Use sparse copy on `--sparse=always` by @jfinkels in https://github.com/uutils/coreutils/pull/4030
- Add progress bar by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3903 and improved by @djedi23 in https://github.com/uutils/coreutils/pull/4179 and @ctsk in https://github.com/uutils/coreutils/pull/4221
- Restrict copy through dangling symlink with `-f` by @jfinkels in https://github.com/uutils/coreutils/pull/4074
- + 9 more
๐ฆ `csplit`
- Rename var to simplify format strings by @cakebaker in https://github.com/uutils/coreutils/pull/4266
๐ฆ `cut`
- Add whitespace option for separating fields by @TechHara in https://github.com/uutils/coreutils/pull/4232
๐ฆ `date`
- Catch panic from invalid format string by @jaggededgedjustice in https://github.com/uutils/coreutils/pull/4240
๐ฆ `dd`
- Allow B as a suffix for count, seek, and skip by @jfinkels in https://github.com/uutils/coreutils/pull/4137
- Create Dest enum and simpler Output struct by @jfinkels in https://github.com/uutils/coreutils/pull/4134
- Don't allocate buffer if count=0 by @jfinkels in https://github.com/uutils/coreutils/pull/4130
- Correctly set file size when conv=sparse by @jfinkels in https://github.com/uutils/coreutils/pull/4191
- Fix rendering of SI and IEC byte counts by @jfinkels in https://github.com/uutils/coreutils/pull/3653
- Fix progress line if 1 byte written by @jfinkels in https://github.com/uutils/coreutils/pull/4194
๐ฆ `env`
- Reraise signal from child process by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4011
๐ฆ `expr`
- Multiple fixes and tests added by @rivy in https://github.com/uutils/coreutils/pull/4248
๐ฆ `factor`
- Trim the input to fix some busybox results by @sylvestre in https://github.com/uutils/coreutils/pull/4215
๐ฆ `hashsum`
- Warn on file not found rather than fail by @dmatos2012 in https://github.com/uutils/coreutils/pull/4064
- Enable testing `--no-names` by @tertsdiepraam and @huijeong-kim in https://github.com/uutils/coreutils/pull/4088
๐ฆ `install`
- No longer fails when target directory does not exist by @bruecke in https://github.com/uutils/coreutils/pull/3950
๐ฆ `ls`
- Show more info in long format on Windows by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4014
- Use `libc::{major, minor}` to calculate device number by @SteveLauC in https://github.com/uutils/coreutils/pull/4120
๐ฆ `mktemp`
- Allow default missing value by @dmatos2012 in https://github.com/uutils/coreutils/pull/4091
๐ฆ `mv`
- `mv -i --update source existing` should not do anything and exit 0 by @sylvestre in https://github.com/uutils/coreutils/pull/4078
- Add progress bar by @ctsk in https://github.com/uutils/coreutils/pull/4220
๐ฆ `numfmt`
- Handle negative zero values by @cakebaker in https://github.com/uutils/coreutils/pull/4076
- Allow hyphen values for `--field` option by @cakebaker in https://github.com/uutils/coreutils/pull/4090
- Round values if precision is 0 by @cakebaker in https://github.com/uutils/coreutils/pull/4089
- Allow `-` in field list by @cakebaker in https://github.com/uutils/coreutils/pull/4094
- Allow ` ` as field separator by @cakebaker in https://github.com/uutils/coreutils/pull/4096
- Add test for `--field -` (all fields) by @cakebaker in https://github.com/uutils/coreutils/pull/4093
๐ฆ `pr`
- Simplify format strings by @cakebaker in https://github.com/uutils/coreutils/pull/4264
- Add missing `\` before line breaks by @cakebaker in https://github.com/uutils/coreutils/pull/4273
๐ฆ `printenv`
- Weird env variable names should trigger an error. by @sylvestre in https://github.com/uutils/coreutils/pull/4113
๐ฆ `pwd`
- Support the env variable `POSIXLY_CORRECT` by @sylvestre in https://github.com/uutils/coreutils/pull/4085
๐ฆ `rm`
- GNU test `rm3` now passes by @palaster in https://github.com/uutils/coreutils/pull/4013
๐ฆ `seq`
- Simplify format strings by @cakebaker in https://github.com/uutils/coreutils/pull/4264
๐ฆ `sleep`
- Fix argument parsing and errors by @rivy in https://github.com/uutils/coreutils/pull/4268
๐ฆ `sort`
- Allow a sort mode to appear multiple times by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4132
๐ฆ `split`
- Implement round-robin arg to `--number` by @jfinkels in https://github.com/uutils/coreutils/pull/3281
- Match GNU semantics for missing EOF by @andrewbaptist in https://github.com/uutils/coreutils/pull/4009
- Fix "backticks are unbalanced" warnings by @cakebaker in https://github.com/uutils/coreutils/pull/4181
๐ฆ `stat`
- Show more info in long format on Windows by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4014
- Refactor by @tertsdiepraam in https://github.com/uutils/coreutils/pull/4150
๐ฆ `sum`
- Fix output of about string by @cakebaker in https://github.com/uutils/coreutils/pull/4274
- Fix output when using BSD sum algo (-r) by @cakebaker in https://github.com/uutils/coreutils/pull/4278
๐ฆ `tail`
- Refactor handling of warnings and early exits by @Joining7943 in https://github.com/uutils/coreutils/pull/4135
๐ฆ `touch`
- Add support for some relative times by @jfinkels in https://github.com/uutils/coreutils/pull/4193
๐ฆ `uname`
- build: `uname` is WinOS-compatible; move to 'Tier1' feature by @rivy in https://github.com/uutils/coreutils/pull/4245
- change/uname ~ update and revise by @rivy in https://github.com/uutils/coreutils/pull/4279
โจ New Contributors
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.16...0.0.17
๐ฆ Highlights
- The minimum supported Rust version is now 1.59.
- Many utils now return exit code `1` on usage errors instead of `2` 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` to `1` for GNU compat by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3922
- Create new adaptive svg logo by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3892
๐ฆ `cat`
- Remove deprecated `unix_socket` dependency by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3854
๐ฆ `chcon`
- Fix GNU `tests/misc/chcon-fail.sh` test by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3857
๐ฆ `chroot`
- Improve support of `--skip-chdir` by @sylvestre in https://github.com/uutils/coreutils/pull/4004
- Set exit codes to `125`, `126` or `127` for errors from `chroot` itself by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3908
- Set trailing var arg by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3907
- Various improvements to chroot by @sylvestre in https://github.com/uutils/coreutils/pull/3960
๐ฆ `cp`
- Fix `cp-i` GNU test by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3949
- Add `-H` option by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3971
- Assume `--reflink=always` on no value by @sssemil in https://github.com/uutils/coreutils/pull/3992
- Correct error message on copying dir to itself by @jfinkels in https://github.com/uutils/coreutils/pull/3981
- Allow removing symbolic link loop destination by @jfinkels in https://github.com/uutils/coreutils/pull/3972
- Preserve permissions when copying directory and don't terminate early on inaccessible file by @jfinkels in https://github.com/uutils/coreutils/pull/3973
๐ฆ `dd`
- Handle stdout redirected to seekable file by @jfinkels in https://github.com/uutils/coreutils/pull/3880
- Parse operands manually via positional args by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3938
๐ฆ `df`
- Remove trailing spaces in rightmost column by @jfinkels in https://github.com/uutils/coreutils/pull/3882
๐ฆ `factor`
- Enable `union` feature for `smallvec` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3928
๐ฆ `ls`
- Exit code 2 when `IOError` happened for argument by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3921
- Add support for `+FORMAT` in timestyle by @dmatos2012 in https://github.com/uutils/coreutils/pull/3988
- Align `--ignore` behavior with that of GNU ls by @ackerleytng in https://github.com/uutils/coreutils/pull/3803
๐ฆ `mktemp`
- Respect `TMPDIR` environment variable by @jfinkels in https://github.com/uutils/coreutils/pull/3552
- Match GNU error message on too many args by @jfinkels in https://github.com/uutils/coreutils/pull/3951
- Add message for directory not found by @jfinkels in https://github.com/uutils/coreutils/pull/3940
๐ฆ `pr`
- Migrate from `chrono` to `time` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3918
- Use clap to handle help & version by @cakebaker in https://github.com/uutils/coreutils/pull/3904
๐ฆ `rm`
- Added write-protected check for files by @stefins in https://github.com/uutils/coreutils/pull/3853
- Added descend messages for interactive mode Fixes #3817 by @palaster in https://github.com/uutils/coreutils/pull/3931
๐ฆ `split`
- Add support for starting suffix numbers by @andrewbaptist in https://github.com/uutils/coreutils/pull/3976
๐ฆ `sync`
- Various compatibility improvement by @sylvestre in https://github.com/uutils/coreutils/pull/4003
๐ฆ `tail`
- Fix stdin redirect (#3842) by @jhscheer in https://github.com/uutils/coreutils/pull/3845
- Fix tail panicking when seeking backwards by @kilpkonn in https://github.com/uutils/coreutils/pull/3873
- Refactor tail by @Joining7943 in https://github.com/uutils/coreutils/pull/3905
- Fix random errors for piped input on macos by @Joining7943 in https://github.com/uutils/coreutils/pull/3953
๐งช `test`
- Add a bunch of operations by @sylvestre in https://github.com/uutils/coreutils/pull/4002
โจ New Contributors
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.15...0.0.16
๐ฆ Highlights
- `stty` is now partially implemented (https://github.com/uutils/coreutils/pull/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` and `sum` 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 https://github.com/uutils/coreutils/pull/3736
๐ฆ `basenc`
- Fix error code on wrong usage by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3743
๐ฆ `comm`
- Use `NUL` if delimiter is empty by @cakebaker in https://github.com/uutils/coreutils/pull/3701
๐ฆ `cp`
- Correctly copy attributes of a dangling symbolic link by @jfinkels in https://github.com/uutils/coreutils/pull/3692
- Implement `--sparse` flag by @pimzero in https://github.com/uutils/coreutils/pull/3766
- Make `--b=simple` protective of source by @philgebhardt in https://github.com/uutils/coreutils/pull/3647
- Truncate destination when `--reflink` is set by @pimzero in https://github.com/uutils/coreutils/pull/3759
- Fix `test_copy_through_dangling_symlink_no_dereference_permissions` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3789
๐ฆ `cut`
- Fix argument parsing for the delimiter by @jhscheer in https://github.com/uutils/coreutils/pull/3607
๐ฆ `dd`
- Error message of invalid args is matched with GNU by @Fuchczyk in https://github.com/uutils/coreutils/pull/3831
- Fix output issues by @patricksjackson in https://github.com/uutils/coreutils/pull/3610
- Only print concise byte counts if count is sufficiently large by @jfinkels in https://github.com/uutils/coreutils/pull/3617
- Reuse buffer for the most common cases by @patricksjackson in https://github.com/uutils/coreutils/pull/3600
- Fix broken pipe in `test_bytes_oseek_bytes_trunc_oflag` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3797
๐ฆ `df`
- Better error message when executed in a chroot without `/proc` by @lendandgit in https://github.com/uutils/coreutils/pull/3602
- Fix output if input path is device name by @cakebaker in https://github.com/uutils/coreutils/pull/3682
- Fix rounding behavior in humanreadable mode by @cakebaker in https://github.com/uutils/coreutils/pull/3554
- Read block size from env vars by @cakebaker in https://github.com/uutils/coreutils/pull/3504
- Show "total" label in correct column by @jfinkels in https://github.com/uutils/coreutils/pull/3579
- Trim size header in tests by @cakebaker in https://github.com/uutils/coreutils/pull/3582
- Implement the `--sync` flag for df by @anastygnome in https://github.com/uutils/coreutils/pull/3592
๐ฆ `dircolors`
- Add support for stdin by @jhscheer in https://github.com/uutils/coreutils/pull/3591
- Escape `'` and `:` by @cakebaker in https://github.com/uutils/coreutils/pull/3639
- Implement `--print-ls-colors` by @cakebaker in https://github.com/uutils/coreutils/pull/3566
- Make `-b` & `-c` args overridable by @cakebaker in https://github.com/uutils/coreutils/pull/3569
- Update error message by @cakebaker in https://github.com/uutils/coreutils/pull/3596
๐ฆ `dirname`
- Add missing `"\n\"` to usage message by @cakebaker in https://github.com/uutils/coreutils/pull/3570
๐ฆ `du`
- Remove unnecessary spaces from help by @cakebaker in https://github.com/uutils/coreutils/pull/3622
- Add `parse_glob` module and update `du` to use `parse_glob` by @ackerleytng in https://github.com/uutils/coreutils/pull/3754
๐ฆ `expand`
- Add support for `--tabs` shortcuts by @cakebaker in https://github.com/uutils/coreutils/pull/3612
- Allow multiple `tabs` args by @cakebaker in https://github.com/uutils/coreutils/pull/3585
- Show error if `--tabs` arg has invalid chars by @cakebaker in https://github.com/uutils/coreutils/pull/3583
- Allow specifier only with last value by @cakebaker in https://github.com/uutils/coreutils/pull/3595
- Handle too large tab size by @cakebaker in https://github.com/uutils/coreutils/pull/3594
- Remove empty line from error message by @cakebaker in https://github.com/uutils/coreutils/pull/3577
- Simplify signature of `expand_shortcuts()` by @cakebaker in https://github.com/uutils/coreutils/pull/3644
๐ฆ `hashsum`
- Isolate non-"GNU Coreutils" options by @str4d in https://github.com/uutils/coreutils/pull/3593
- Fix the `-c` usage by @sylvestre in https://github.com/uutils/coreutils/pull/3816
๐ฆ `install`
- Verbose messages shows ginstall as command by @sylvestre in https://github.com/uutils/coreutils/pull/3651
- Fix install `-C` test by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3663
- Make `install -V` show the filename by @ElijahSink in https://github.com/uutils/coreutils/pull/3657
๐ฆ `ln`
- Improve error messages compatibility by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3730
- Implement `-L` `-P` to make tests/ln/hard-to-sym.sh work by @sylvestre in https://github.com/uutils/coreutils/pull/3563
- Symlink --force, src and dst are same file by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3724
๐ฆ `ls`, `dir` & `vdir`
- Add already listed message by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3707
- Fix double quoting when color is enabled by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3590
- Implement `--zero` by @pimzero in https://github.com/uutils/coreutils/pull/3746
- Remove trailing space when using the comma format (`-m`) by @anastygnome in https://github.com/uutils/coreutils/pull/3615
- Silently ignore `-T` option by @Stonks3141 in https://github.com/uutils/coreutils/pull/3718
- Forbid octal numbers for width parameter by @Ganneff in https://github.com/uutils/coreutils/pull/3613
๐ฆ `mktemp`
- Change directory permission after creation by @353fc443 in https://github.com/uutils/coreutils/pull/3471
- Combine `--tmpdir` and subdirectory info by @jfinkels in https://github.com/uutils/coreutils/pull/3568
- Error on empty `--suffix` in some situations by @jfinkels in https://github.com/uutils/coreutils/pull/3599
- Exit with status `1` on usage errors by @jfinkels in https://github.com/uutils/coreutils/pull/3578
- Include suffix in error message by @jfinkels in https://github.com/uutils/coreutils/pull/3551
- Only replace last contiguous block of Xs by @jfinkels in https://github.com/uutils/coreutils/pull/3586
- Respect `POSIXLY_CORRECT` env var when parsing args by @weijunji in https://github.com/uutils/coreutils/pull/3604
- Simplify file path parameter logic by @jfinkels in https://github.com/uutils/coreutils/pull/3573
๐ฆ `mv`
- Fix error when moving directory to itself by @Fuchczyk in https://github.com/uutils/coreutils/pull/3809
๐ฆ `numfmt`
- Implement `--format` by @cakebaker in https://github.com/uutils/coreutils/pull/3751
- Implement `--to-unit` & `--from-unit` by @cakebaker in https://github.com/uutils/coreutils/pull/3705
- Preserve trailing zeros by @cakebaker in https://github.com/uutils/coreutils/pull/3764
- Don't round floats if `--from` is `none` by @cakebaker in https://github.com/uutils/coreutils/pull/3742
- Reject suffix if unit is `none` by @cakebaker in https://github.com/uutils/coreutils/pull/3716
- Remove duplicate default hints from help by @cakebaker in https://github.com/uutils/coreutils/pull/3696
- Show `invalid suffix` error for `i` suffix by @cakebaker in https://github.com/uutils/coreutils/pull/3732
- Show error if `--padding` is zero by @cakebaker in https://github.com/uutils/coreutils/pull/3686
- + 1 more
๐ฆ `paste`
- Implement `-z` flag by @cakebaker in https://github.com/uutils/coreutils/pull/3659
๐ฆ `readlink`
- Improve GNU compatibility by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3826
- Symlink loop handling by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3717
๐ฆ `realpath`
- Relative options by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3710
- Improve symlink handling by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3703
- Add `--no-symlinks` alias by @cakebaker in https://github.com/uutils/coreutils/pull/3681
๐ฆ `rm`
- Fix help text mistakenly being used as the long option by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3670
๐ฆ `shuf`
- Add missing spaces to about text by @cakebaker in https://github.com/uutils/coreutils/pull/3677
- Improve performance by @Garfield96 in https://github.com/uutils/coreutils/pull/3642
๐ฆ `sort`
- Wait when SIGINT was raised for the program to finish properly by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3801
๐ฆ `sum`
- Speed up sum by using reasonable read buffer sizes. by @resistor in https://github.com/uutils/coreutils/pull/3741
๐ฆ `split`
- Don't overwrite files by @andrewbaptist in https://github.com/uutils/coreutils/pull/3719
- Set names for arg values by @cakebaker in https://github.com/uutils/coreutils/pull/3541
- Don't skip chucking when the chunk size is a divisor of the buffer size by @resistor in https://github.com/uutils/coreutils/pull/3800
๐ฆ `stty`
- Initial implementation by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3672
๐ฆ `tail`
- Implement `--follow` and much more by @jhscheer in https://github.com/uutils/coreutils/pull/2695
- Rework platform module by @anastygnome in https://github.com/uutils/coreutils/pull/3706
- Fix race condition by @jhscheer in https://github.com/uutils/coreutils/pull/3798
- Reduce CPU load for polling by @jhscheer in https://github.com/uutils/coreutils/pull/3618
- Reuse opened file `--follow=descriptor` by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3830
๐ฆ `tee`
- Implement `-p` by @eds-collabora in https://github.com/uutils/coreutils/pull/3656
๐ฆ `touch`
- Fix trailing slashes handling by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3788
๐ฆ `true` & `false`
- Use `clap::ArgAction` for `--help` and `--version` by @jarkonik in https://github.com/uutils/coreutils/pull/3784
๐ฆ `tty`
- Move from `libc` to `nix` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3838
๐ฆ `unexpand`
- Handle too large `tabs` arguments by @cakebaker in https://github.com/uutils/coreutils/pull/3655
- Implement `tabs` shortcuts by @cakebaker in https://github.com/uutils/coreutils/pull/3646
- Set value name of arg by @cakebaker in https://github.com/uutils/coreutils/pull/3605
๐ฆ `uniq`
- Set default missing value for `group` and `all-repeated` args by @cakebaker in https://github.com/uutils/coreutils/pull/3667
๐ฆ `wc`
- Specialize scanning loop on settings. by @resistor in https://github.com/uutils/coreutils/pull/3708
- Implement a fast path for character counting in wc. by @resistor in https://github.com/uutils/coreutils/pull/3735
- Implement wc fast paths that skip Unicode decoding. by @resistor in https://github.com/uutils/coreutils/pull/3740
- Fix wc gnu test suite compatibility by @anastygnome in https://github.com/uutils/coreutils/pull/3688
๐ฆ `uucore`
- Create `help_section` macro by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3180
- Refactor, document and test `ranges` module by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3844
- Remove `show_error_custom_description` macros `show_usage_error` by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3837
- Add backport for `Path::is_symlink()` by @jfinkels in https://github.com/uutils/coreutils/pull/3697
- Fix invalid enum variant in docstring by @cakebaker in https://github.com/uutils/coreutils/pull/3643
- Simplify invalid encoding handling by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3832
- canonicalize: Loop looking in windows by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3714
๐ฆ General
- Netbsd / OpenBSD build fix by @devnexen in https://github.com/uutils/coreutils/pull/3807
- Add more consistency in the `--help` output and declarations by @sylvestre in https://github.com/uutils/coreutils/pull/3774
- dependencies: make `winapi` dependency only for Windows by @niyaznigmatullin in https://github.com/uutils/coreutils/pull/3846
- tests: fix Freebsd test failures by @jhscheer in https://github.com/uutils/coreutils/pull/3777
- tests: ignore failing tests for FreeBSD by @jhscheer in https://github.com/uutils/coreutils/pull/3806
- Replace lazy_static with once_cell by @Sciencentistguy in https://github.com/uutils/coreutils/pull/3704
- README: add badge for MSRV by @jhscheer in https://github.com/uutils/coreutils/pull/3799
- Remove use of `mem::uninitialized` by @5225225 in https://github.com/uutils/coreutils/pull/3808
- + 1 more
โจ New Contributors
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.14...0.0.15
๐ฆ 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` and `fish`) now work properly.
- The `dir` and `vdir` utilities where added as aliases for `ls` and `ls -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 https://github.com/uutils/coreutils/pull/3350
- Rust Edition 2021 by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3368
- Fix Android support by @jtracey in https://github.com/uutils/coreutils/pull/3396
- docs: Show supported platforms for each util by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3374, https://github.com/uutils/coreutils/pull/3385
- docs: Don't download the tldr archive automatically by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3415
- docs: Require a feature to build by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3444
- Clap value hints by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3524
๐ฆ `chown`
- Allow setting arbitrary numeric user ID by @jfinkels in https://github.com/uutils/coreutils/pull/3438
๐ฆ `cp`
- Do not dereference symlink even when dangling - fix issue #3364 by @anastygnome in https://github.com/uutils/coreutils/pull/3459
๐ฆ `date`
- Set names for arg values by @cakebaker in https://github.com/uutils/coreutils/pull/3545
๐ฆ `df`
- Show error if same type is included & excluded by @cakebaker in https://github.com/uutils/coreutils/pull/3369
- Show error when file argument does not exist by @jfinkels in https://github.com/uutils/coreutils/pull/3376
- Fix too low values in `I*` columns by @cakebaker in https://github.com/uutils/coreutils/pull/3365
- Fix calculation of `IUse%` by @cakebaker in https://github.com/uutils/coreutils/pull/3387
- Fix incorrect whitespace between columns by @cakebaker in https://github.com/uutils/coreutils/pull/3386
- `-h -H` shouldn't cause an error #3366 by @gmnsii in https://github.com/uutils/coreutils/pull/3414
- Fix broken "test_df_output_overridden" test by @cakebaker in https://github.com/uutils/coreutils/pull/3428
- Fix `File` column width for unicode filenames by @cakebaker in https://github.com/uutils/coreutils/pull/3429
- + 13 more
๐ฆ `du`
- Return non zero error code when dealing with permissions errors by @sylvestre in https://github.com/uutils/coreutils/pull/3382
- Add support for `--exclude` and `--exclude-from` by @sylvestre in https://github.com/uutils/coreutils/pull/3381
๐ฆ `env`
- Add program signal messages by @ndd7xv in https://github.com/uutils/coreutils/pull/3290
๐ฆ `hashsum`
- Add `--no-names` option from official b3sum tool by @pothos in https://github.com/uutils/coreutils/pull/3361
๐ฆ `install`
- Support of `-d dir/.` to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/3353
- When install `--strip-program=foor` fails, remove the target file by @sylvestre in https://github.com/uutils/coreutils/pull/3419
- Verbose - list all created directories by @sylvestre in https://github.com/uutils/coreutils/pull/3420
๐ฆ `kill`
- Accept process group with negative id by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3501
๐ฆ `ls`, `dir` & `vdir`
- Implement `--group-directories-first` by @thomasqueirozb in https://github.com/uutils/coreutils/pull/3550
- Add `dir` and `vdir` utils by @gmnsii in https://github.com/uutils/coreutils/pull/3405
๐ฆ `mkdir`
- Fix a clippy warning on clippy::ptr-arg by @sylvestre in https://github.com/uutils/coreutils/pull/3393
- Fixed not respecting set umask by @pyoky in https://github.com/uutils/coreutils/pull/3150
๐ฆ `mktemp`
- Respect path given in template argument by @jfinkels in https://github.com/uutils/coreutils/pull/3465
- Error on path separator in template prefix by @jfinkels in https://github.com/uutils/coreutils/pull/3512
- Fix error msg when suffix has path sep. by @jfinkels in https://github.com/uutils/coreutils/pull/3543
- Correct error message on absolute path by @jfinkels in https://github.com/uutils/coreutils/pull/3521
๐ฆ `mv`
- Add OverwriteMode match in specific case by @sudosmile in https://github.com/uutils/coreutils/pull/3383
- Move the tests in a separate function by @sylvestre in https://github.com/uutils/coreutils/pull/3390
- Trigger an error when doing `mv dir1 dir2 dir2` by @sylvestre in https://github.com/uutils/coreutils/pull/3392
- Allow a single source with `--target-directory` by @ilkecan in https://github.com/uutils/coreutils/pull/3529
๐ฆ `printf`
- Default left-justify integer conversion to 1 width by @hbina in https://github.com/uutils/coreutils/pull/3061
๐ฆ `ptx`
- Implement `breakfile` option by @mike-kfed in https://github.com/uutils/coreutils/pull/3455
๐ฆ `rm`
- Rename `none` by `--interactive=never` to fix ../gnu/tests/rm/i-never.sh by @sylvestre in https://github.com/uutils/coreutils/pull/3356
๐ฆ `seq`
- Use usage error where appropriate by @jfinkels in https://github.com/uutils/coreutils/pull/3539
๐ฆ `stat`
- Add support to read a filename redirected to stdin by @crazystylus in https://github.com/uutils/coreutils/pull/3280
- Improve handling of stdin/fifo (fix #3485) by @jhscheer in https://github.com/uutils/coreutils/pull/3498
๐ฆ `tty`
- Should not return 2 when `--help` is used by @sylvestre in https://github.com/uutils/coreutils/pull/3367
๐ฆ `uname`
- Hide processor and hwplatform options by @LevitatingBusinessMan in https://github.com/uutils/coreutils/pull/3537
๐ฆ `uniq`
- Fix almost all GNU tests by @tertsdiepraam in https://github.com/uutils/coreutils/pull/3417
โจ New Contributors
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.13...0.0.14
๐ Changes
- Mininum supported Rust version is now 1.54.
- Many improvements and fixes in many utils. In particular, `cp`, `dd`, `df`, `split` and `tr` have gotten very large improvements and are much more compatible with GNU.
- [Online user documentation](https://uutils.github.io/coreutils-docs/user/) 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:
๐ 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 https://github.com/uutils/coreutils/pull/2863
- Infer unambiguous long arguments in clap by @tertsdiepraam in https://github.com/uutils/coreutils/pull/2936
- User documentation by @tertsdiepraam in https://github.com/uutils/coreutils/pull/2897, https://github.com/uutils/coreutils/pull/3152, https://github.com/uutils/coreutils/pull/3134
- Include license text in all published crates by @davide125 in https://github.com/uutils/coreutils/pull/3131
- `uucore`
- Allow backup suffix with hyphen value by @tertsdiepraam in https://github.com/uutils/coreutils/pull/2997
- + 153 more
โจ New Contributors
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.12...0.0.13
๐ 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` and `uucore_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 https://github.com/uutils/coreutils/pull/2769
- Handle edge cases when dest is a symlink by @miDeb in https://github.com/uutils/coreutils/pull/2610
๐ฆ `env`
- Don't panic when name is empty by @thomasqueirozb in https://github.com/uutils/coreutils/pull/2731
๐ฆ `join`
- Add `-z` option by @jtracey in https://github.com/uutils/coreutils/pull/2880
- Operate on bytes instead of Strings by @jtracey in https://github.com/uutils/coreutils/pull/2851
๐ฆ `ls`
- Add possible value for `--color=` by @equal-l2 in https://github.com/uutils/coreutils/pull/2738
- Reduce binary size by removing regex crate by @kimono-koans in https://github.com/uutils/coreutils/pull/2781
- Fix newline when only dirs in base directory by @kimono-koans in https://github.com/uutils/coreutils/pull/2853
- Fix padding for dangling links in non-Long formats by @kimono-koans in https://github.com/uutils/coreutils/pull/2856
- Fix device display by @kimono-koans in https://github.com/uutils/coreutils/pull/2855
๐ฆ `more`
- Add next-line and prev-line command by @E3uka in https://github.com/uutils/coreutils/pull/2771
๐ฆ `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 https://github.com/uutils/coreutils/pull/2763
๐ฆ `numfmt`
- Implement `--suffix` option by @sbentmar in https://github.com/uutils/coreutils/pull/2841
๐ฆ `rm`
- Allow `-r` flag to be specified multiple times by @kevinburke in https://github.com/uutils/coreutils/pull/2732
- Silently accepts ---presume-input-tty by @hbina in https://github.com/uutils/coreutils/pull/2532
๐ฆ `seq`
- Use `BigDecimal` to represent floats by @jfinkels in https://github.com/uutils/coreutils/pull/2698
- Correct fixed-width spacing for inf sequences by @jfinkels in https://github.com/uutils/coreutils/pull/2740
๐ฆ `split`
- Add `--verbose` option by @jfinkels in https://github.com/uutils/coreutils/pull/2872
- Correct filename creation algorithm by @jfinkels in https://github.com/uutils/coreutils/pull/2859
๐ฆ `tail`
- Improve error handling when file not found by @jfinkels in https://github.com/uutils/coreutils/pull/2886
- Implement `-<number>` flag by @Smicry in https://github.com/uutils/coreutils/pull/2747
โจ New Contributors
- @kevinburke made their first contribution in https://github.com/uutils/coreutils/pull/2732
- @palfrey made their first contribution in https://github.com/uutils/coreutils/pull/2734
- @ybc37 made their first contribution in https://github.com/uutils/coreutils/pull/2766
- @E3uka made their first contribution in https://github.com/uutils/coreutils/pull/2771
- @refi64 made their first contribution in https://github.com/uutils/coreutils/pull/2778
- @sbentmar made their first contribution in https://github.com/uutils/coreutils/pull/2841
- @moko256 made their first contribution in https://github.com/uutils/coreutils/pull/2858
- Full Changelog: https://github.com/uutils/coreutils/compare/0.0.8...0.0.12