chore(deps): update rust crate uutests to 0.12 - #119
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.11→0.12Release Notes
uutils/coreutils (uutests)
v0.12.0Compare Source
Rust Coreutils 0.12.0 Release:
We are happy to announce the release of Rust Coreutils 0.12.0 - a release focused on compatibility fixes for our Ubuntu friends.
Ubuntu ships uutils coreutils as its default coreutils implementation, and this cycle was driven by what their users and maintainers reported: the bugs they asked us to prioritize are all fixed here, along with a long tail of smaller divergences from GNU. Few of these are glamorous, but they are exactly what breaks a script that has worked for twenty years.
Alongside that, we removed the last C dependency of
expr(onigis replaced by the pure-Rust fancy-regex), continued the Windows port (nice,nohupandhostidnow build there, anduucore's filesystem layer was rewritten with safe Win32 wrappers) and landed another round of security hardening onls,sortandinstall.Also, some contributions had carried comments and code over from GNU coreutils, against our own rule
that uutils is an original implementation. We reviewed the tree and rewrote what we found, in comments and in the few functions that followed the C too closely; no behaviour change. The GNU coreutils maintainers have been notified.
GNU coreutils 9.12 was released during our cycle (kudos to the team!), and some of the work went that way too. Chasing compatibility tends to turn up things worth fixing or improving on both sides.
We also made it official: a utility being significantly slower than GNU is now treated as a bug, not a wishlist item. If you hit one, please report it as a bug.
We are now at 653 passing, 21 failing, 0 errors on the GNU test suite.
GNU Test Suite Compatibility:
Highlights:
Ubuntu Compatibility
install -D(#12355),duon 32-bit architectures (#11848),lsACL dereferencing (#13234),cp -Rname collisions (LP#2167118) andchmod -Rthrough symlinks (LP#2167122)csplit --suffix-format,paste -d,join -t,stat --format/--printf/-cand all ofnumfmt's options. A-in a delimiter or a format string is data, not a flagrmno longer segfaults on very deeply nested directoriessort -napplies to the key instead of the whole line, echoes a disorder line verbatim instead of reformatting it as a number, and no longer keeps every input file open while sortingbasenametrailing-separator handling for dot components,realpathexit status in quiet mode,lnkeeping the destination when a forced link fails,csplitalways creating the final split even when empty,fmt -x/-X,printftreating a--past the format as an argument,testrejecting an-a/-othat ends the expression,echo -eno longer expanding\u,\Uand\"ls:diredfixes, a tie in the time sort broken by the name, name sort for-u/-cin long format, capability markers that respect the dereference config;dirandvdirmatch the GNU default quotingcp:--no-preserveis retained over a later--preserve, and--attributes-onlygives the destination the source's typeuniq,chgrp,factor,date,expr,od,tty,tsortandpathchktruncatefinally implements--io-blocks, anddateaccepts multiple--referenceSecurity Hardening
ls: reportstat()failures on directory entries instead of silently showing wrong metadatasort: temporary files are created with mode 0600 instead of the umask, the-ooutput copy is kept private too, and a failure to truncate the output file is now reportedinstall: the fd-based destination is created exclusively and at 0600rm,chmod,chown,chgrp:--preserve-rootcompares(st_dev, st_ino)rather than the pathchconwalks directories withDirFdinstead offtsSECURITY.mdnow requires a boundary crossing, not just a GNU divergence, for a report to be treated as a vulnerabilityRobustness
stat(out-of-range octal escape),ls(a color style with no attributes),split(a huge-n l/K/Nchunk count),truncate(a size abovei64::MAXno longer creates the file),cksum(an over-length BLAKE2b digest in a check file) anduucore(invalid input lines)tsorthandles invalid UTF-8 input and flushes stdout properly;datereports invalid UTF-8 lines in-finput;truncatesupports non-UTF-8 paths for--referenceDependency Diet
exprreplacesonigwith fancy-regex, removing a C dependency and the CI hacks that came with it. As a side effect,exprswitched to leftmost-longest regex matching, matching GNUmvreplacesfs_extrawith std directory sizing;fts-sysis gone;cksumuses aws-lc instead of vendored OpenSSL on MSVC, so a Perl install is no longer needed to build on Windowsbstrdefault features disabled,uucore's hand-rolled process functions dropped in favor ofrustixCross-platform Reach
nice(with a Priority Class mapping),nohupandhostidnow build,dirnamehandles backslashes, user locale detection landed, checksum paths use forward slashes, andmv,sync,hostname,touchandrmmoved to safe std APIsuucoreon Windows:fsextrewritten with safe Win32 wrappers, real free space and mount paths;dfresolves paths by mount prefixaarch64-unknown-linux-ohos, AIX (fsext), Haiku (fs), Hurd (signals), NetBSD (safe-traversal), plus widerprocess,utmpxandentriessupportcpattribute preservation and reflink handling,mktemptemporary directories,tailintegration coveragetailstdin-redirect, pid and follow-name tests re-enabledPerformance
sortgained benchmarks for spilling, checking and shared prefixes;dubenchmarks now warm the OS page cache before timingcpavoids resolving the cwd for absolute recursive copies;tsortgives the OS a sequential access hintContributions: This release landed 191 pull requests from 16 new contributors
Call to Action:
Try it in your browser - Online Playground powered by WebAssembly
Help us translate - Contribute to Rust Coreutils on Weblate
Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
What's Changed
basename
chcon
chgrp
chmod
chown
cksum
cp
csplit
date
thread::sleepby @cakebaker in #14535--referenceby @cakebaker in #14546dd
dir
dirname
du
echo
env
expr
factor
fmt
head
hostid
hostname
install
join
link
ln
logname
ls
mknod
mktemp
mv
nice
nohup
numfmt
od
paste
pathchk
#![allow(unused_must_use)]by @cakebaker in #14507pinky
pr
printf
--past the format as an argument by @Socialpranker in #14394ptx
realpath
rm
sort
split
stat
stty
sync
tail
test
-a/-othat ends the expression by @Socialpranker in #14395touch
truncate
--referenceby @cakebaker in #14386tsort
tty
uniq
uptime
vdir
who
uucore
major,minor, andmakedevby @xtqqczze in #14471Testing
Code Quality & Cleanup
CI & Build
fts-sysby @cakebaker in #14425style_empty_assertionsjob by @cakebaker in #14451windows-sys 0.59and related crates from skip list by @cakebaker in #14611Documentation
Platform Support
Dependency Updates
bstrby @cakebaker in #14605Version Management
New Contributors
Full Changelog: uutils/coreutils@0.11.0...0.12.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.