Skip to content

0.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 21:15

πŸ“¦ Findutils 0.11.0 Release

Findutils 0.11.0 is the largest GNU-compatibility release in a while: 20 more GNU tests pass (437, up from 417) and 13 more bfs tests (280, up from 267). Most of the work went into find -printf (precision and flags, \c, %m, octal escapes, unknown directives) and find -ls (file type, special bits, block counts, symlink targets, local time), -newerXt date parsing, and xargs input splitting (blank handling, -I lines, quotes spanning lines). find now also points at the offending argument in expression errors, with a "did you mean" suggestion for mistyped predicates, and more write errors and malformed arguments are reported instead of panicking.

New errors:
image
Example:s 1 2

Nine people made their first contribution to findutils in this cycle: @MsfPablo, @AlejandroCoronadoN, @amoghsingh130, @AbhinavMir, @Jorge-Polanco-Roque, @SichenLiang, @youdie006, @zhangpan2001 and @jayhemnani9910.

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

GNU Test Suite Compatibility:

Result 0.10.0 0.11.0 Change 0.10.0 to 0.11.0 % Total 0.10.0 % Total 0.11.0 % Change 0.10.0 to 0.11.0
Pass 417 437 +20 84.24% 88.28% +4.04%
Skip 1 1 0 0.20% 0.20% 0%
Fail 77 57 -20 15.56% 11.52% -4.04%
Error 0 0 0 0% 0% 0%
Total 495 495 0

bfs Test Suite Compatibility:

Result 0.10.0 0.11.0 Change 0.10.0 to 0.11.0 % Total 0.10.0 % Total 0.11.0 % Change 0.10.0 to 0.11.0
Pass 267 280 +13 85.03% 88.33% +3.30%
Skip 6 6 0 1.91% 1.89% -0.02%
Fail 41 31 -10 13.06% 9.78% -3.28%
Total 314 317 +3

The bfs suite gained three tests upstream (317 vs 314).

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

Highlights

find: -printf

  • support precision and the +, space, # and 0 flags; count width and precision in bytes; keep unrecognized directives whole; fail on a precision above INT_MAX, by @jayhemnani9910 in #918
  • stop the format at \c, by @jayhemnani9910 in #910 (test: #919)
  • warn on unrecognized directives and escapes and print them literally, instead of dropping or erroring, by @MsfPablo in #818
  • print special bits and no padding in %m by @youdie006 in #891
  • pad the day with a space in %t, %a and %c by @jayhemnani9910 in #917
  • write octal escapes as raw bytes by @zhangpan2001 in #912
  • print a trailing backslash by @SichenLiang in #881

find: -ls

find: other GNU compatibility fixes

xargs

  • only blanks and newlines separate arguments β€” CR, VT and FF are now kept inside an argument, as in GNU, by @jayhemnani9910 in #920
  • read -I input lines like GNU (leading blanks stripped, quoting applied, blank lines skipped, -E honored) by @jayhemnani9910 in #921
  • reject quotes spanning input lines by @wtcpython in #797
  • don't emit an empty argument for a trailing blank by @kevinburke in #829
  • retry reading on BrokenPipe and use a larger input buffer, so input such as /dev/kmsg can be read, by Alessio Attilio (c9ae506, c1aeb11)

locate / updatedb

  • use a platform-dependent default database path and the platform path delimiter by Alessio Attilio (015dc1f)
  • only use std::env::split_paths on Windows β€” it panics on other non-Unix targets such as wasm32-wasip1, which broke locate and find -execdir there, by @sylvestre (4357fc7)

Error messages and diagnostics

  • find: point at the offending argument in expression errors β€” when stderr is a terminal (or UUTILS_DIAG=always), the argument is underlined and a mistyped predicate gets a "did you mean" suggestion; piped output stays byte-for-byte GNU's single line. By @sylvestre in #874
  • find: name the program as invoked in every message by @sylvestre in #876
  • find: do not double the find: prefix on an invalid -type list by @AlejandroCoronadoN in #849
  • xargs: strip (os error N) from an --arg-file open failure by @MsfPablo in #822
  • make --version output consistent across utilities by @Xylphy in #838

Robustness β€” errors instead of panics

Documentation

Project & CI

Dependencies

Dependency and GitHub Action bumps via Dependabot and manual refreshes by @xtqqczze (#806) and @sylvestre (uucore 0.12.0, #875): uucore (0.9.0 β†’ 0.12.0, #826/#875), uutests (0.9.0 β†’ 0.12.0, #827/#859/#868), clap (4.6.4 β†’ 4.6.7, #807/#825/#863), thiserror (2.0.19 β†’ 2.0.21, #830/#883), ctor (1.0.12 β†’ 1.0.13, #836), rustix (1.1.4 β†’ 1.1.5, #882), rstest (0.26.1 β†’ 0.28.0, #860/#913), CodSpeedHQ/action (5.0.1 β†’ 5.6.1, #810/#824/#856/#895/#901/#909/#924/#940) and dawidd6/action-download-artifact (21 β†’ 27, #843/#852/#884/#887/#893).

New Contributors

Full Changelog: 0.10.0...0.11.0

Install findutils 0.11.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/uutils/findutils/releases/download/0.11.0/findutils-installer.sh | sh

Install prebuilt binaries via cargo-binstall

cargo binstall findutils@0.11.0

Download findutils 0.11.0

File Platform Checksum
findutils-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
findutils-x86_64-apple-darwin.tar.xz Intel macOS checksum
findutils-x86_64-pc-windows-msvc.zip x64 Windows checksum
findutils-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
findutils-aarch64-unknown-linux-musl.tar.xz ARM64 MUSL Linux checksum
findutils-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum