Skip to content

Commit 64203e3

Browse files
authored
add the 0.4.0 release notes (uutils#9651)
1 parent 8a40908 commit 64203e3

File tree

1 file changed

+216
-0
lines changed

1 file changed

+216
-0
lines changed

docs/src/release-notes/0.4.0.md

Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
### 📦 **Rust Coreutils 0.4.0 Release:**
2+
3+
We are pleased to announce the release of **Rust Coreutils 0.4.0** — continuing our journey toward full GNU compatibility with **improved test coverage**, **enhanced functionality**, and **robust implementations**!
4+
5+
---
6+
7+
### Highlights:
8+
9+
- **Enhanced GNU Compatibility**
10+
- **544 passing tests** (+12 from 0.3.0), achieving **85.80%** compatibility
11+
- Reduced failures from 68 to 56 (-12)
12+
- Major improvements to `cksum` with SHA2/SHA3 support and CRC32B fix
13+
- Better compatibility with GNU `date` timezone handling
14+
15+
- **Algorithm & Performance Improvements**
16+
- `factor`: Integrated num_prime crate for 15x faster u64/u128 factorization
17+
- `tsort`: Fixed stack overflow issues with iterative DFS implementation
18+
- `cksum`: Added comprehensive performance benchmarks
19+
- `mkdir`: Fixed stack overflow with deeply nested directories
20+
21+
- **Platform Support Enhancements**
22+
- OpenBSD support for `stdbuf` and `uptime`
23+
- FreeBSD build and test improvements
24+
- Better cross-platform compatibility
25+
26+
- **hashsum Reorganization**
27+
- Removed non-GNU binaries to fix interface divergence
28+
- Merged functionality into `cksum` for better GNU compatibility
29+
- Marked hashsum as deprecated in favor of cksum
30+
31+
- **Contributions**: This release was made possible by **4 new contributors** joining our community
32+
33+
---
34+
35+
### GNU Test Suite Compatibility:
36+
37+
| 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 |
38+
|---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
39+
| Pass | 532 | 544 | +12 | 83.91% | 85.80% | +1.89% |
40+
| Skip | 33 | 33 | 0 | 5.20% | 5.21% | +0.01% |
41+
| Fail | 68 | 56 | -12 | 10.73% | 8.83% | -1.90% |
42+
| Error | 1 | 1 | 0 | 0.16% | 0.16% | 0% |
43+
| Total | 634 | 634 | 0 | | | |
44+
45+
---
46+
47+
![GNU testsuite evolution](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true)
48+
49+
---
50+
51+
### Call to Action:
52+
53+
🌍 **Help us translate** - Contribute translations at [Weblate](https://hosted.weblate.org/projects/rust-coreutils/)
54+
🚀 **Sponsor us on GitHub** to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
55+
🔗 Download the latest release: [https://uutils.github.io](https://uutils.github.io)
56+
57+
## What's Changed
58+
59+
## base64
60+
* Align base64 with GNU base64.pl tests by @karanabe in https://github.com/uutils/coreutils/pull/9194
61+
62+
## cat
63+
* Fix EINTR handling in cat by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
64+
* fix(cat): refine unsafe overwrite detection for appending files by @mattsu2020 in https://github.com/uutils/coreutils/pull/9122
65+
66+
## chown
67+
* Fix chown tests for FreeBSD and macOS by @akretz in https://github.com/uutils/coreutils/pull/9058
68+
69+
## cksum
70+
* Refactor cksum for incoming merge with hashsum, Fix behavior for `--text` and `--untagged` by @RenjiSann in https://github.com/uutils/coreutils/pull/9024
71+
* Fix "cksum: --length 0 shouldn't fail for algorithms that don't support --length" by @RenjiSann in https://github.com/uutils/coreutils/pull/9032
72+
* Add support for sha2, sha3 by @RenjiSann in https://github.com/uutils/coreutils/pull/9035
73+
* Fix GNU `cksum-c.sh` and `cksum-sha3.sh` by @RenjiSann in https://github.com/uutils/coreutils/pull/9063
74+
* add cksum performance benchmarks by @naoNao89 in https://github.com/uutils/coreutils/pull/9075
75+
* fix(cksum): correct CRC32B implementation to match GNU cksum by @naoNao89 in https://github.com/uutils/coreutils/pull/9026
76+
77+
## comm
78+
* Fix EINTR handling in comm by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
79+
* hold the stdin lock for the whole duration of the program by @andreacorbellini in https://github.com/uutils/coreutils/pull/9085
80+
81+
## date
82+
* fix(date): support timezone abbreviations in date --set by @naoNao89 in https://github.com/uutils/coreutils/pull/8944
83+
* date, touch: fix parse_datetime 0.13.0 compatibility by @naoNao89 in https://github.com/uutils/coreutils/pull/8843
84+
* improve compat with GNU by @sylvestre in https://github.com/uutils/coreutils/pull/9022
85+
* remove `chrono` by @cakebaker in https://github.com/uutils/coreutils/pull/9048
86+
* add --uct alias and allow multiple option aliases together by @sylvestre in https://github.com/uutils/coreutils/pull/9181
87+
88+
## dd
89+
* fix(dd): handle O_DIRECT partial block writes by @naoNao89 in https://github.com/uutils/coreutils/pull/9016
90+
91+
## du
92+
* fix dead code warnings in test on Android by @cakebaker in https://github.com/uutils/coreutils/pull/9131
93+
* disable some benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/9167
94+
* also disable du_human_balanced_tree as benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/9198
95+
96+
## factor
97+
* base benchmarking for single/multiple u64, u128, and >u128 by @asder8215 in https://github.com/uutils/coreutils/pull/9182
98+
* 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
99+
100+
## hashsum
101+
* don't fail on dirs by @Ada-Armstrong in https://github.com/uutils/coreutils/pull/8930
102+
* Remove non-GNU binaries (fix cksum interface divergence) by @oech3 in https://github.com/uutils/coreutils/pull/9153
103+
104+
## install
105+
* fix the error message by @sylvestre in https://github.com/uutils/coreutils/pull/9188
106+
107+
## ls
108+
* use file path for ACL check by @akretz in https://github.com/uutils/coreutils/pull/9055
109+
110+
## mkdir
111+
* Fix stack overflow with deeply nested directories by @naoNao89 in https://github.com/uutils/coreutils/pull/8947
112+
* remove `#[allow(unused_variables)]` by @cakebaker in https://github.com/uutils/coreutils/pull/9109
113+
114+
## od
115+
* Fix EINTR handling in od by @naoNao89 in https://github.com/uutils/coreutils/pull/8946
116+
117+
## printenv
118+
* add more tests by @ya7on in https://github.com/uutils/coreutils/pull/9151
119+
120+
## printf
121+
* handle extremely large format widths gracefully to fix GNU test panic by @sylvestre in https://github.com/uutils/coreutils/pull/9133
122+
123+
## readlink
124+
* fix(readlink): emit GNU-style Invalid argument for non-symlinks by @karanabe in https://github.com/uutils/coreutils/pull/9189
125+
126+
## stdbuf
127+
* add support for OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9185
128+
129+
## timeout
130+
* add missing extra help by @matttbe in https://github.com/uutils/coreutils/pull/9160
131+
132+
## truncate
133+
* feat(truncate): allow negative size values for truncation by @mattsu2020 in https://github.com/uutils/coreutils/pull/9129
134+
135+
## tsort
136+
* use iterative dfs to prevent stack overflows by @Nekrolm in https://github.com/uutils/coreutils/pull/8737
137+
* fix minimal cycle reporting and precise back-edge removal by @naoNao89 in https://github.com/uutils/coreutils/pull/8786
138+
139+
## uptime
140+
* Fix build and tests for uptime on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9158
141+
* fix clippy warning manual-let-else on OpenBSD by @lcheylus in https://github.com/uutils/coreutils/pull/9193
142+
143+
## uudoc
144+
* respect SKIP_UTILS by @oech3 in https://github.com/uutils/coreutils/pull/8982
145+
* Add example to manpage by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/7841
146+
147+
## Documentation
148+
* release notes: add 0.2.2 by @sylvestre in https://github.com/uutils/coreutils/pull/8998
149+
* README: Fix coverage badge URL by @RenjiSann in https://github.com/uutils/coreutils/pull/9046
150+
* README.md: Fix about manpage generation by @oech3 in https://github.com/uutils/coreutils/pull/8994
151+
* README.md: Show how to build all individual bins by cargo by @oech3 in https://github.com/uutils/coreutils/pull/9069
152+
* extensions.md: mark hashsum as deprecated by @oech3 in https://github.com/uutils/coreutils/pull/9089
153+
* doc: rename file by @sylvestre in https://github.com/uutils/coreutils/pull/9208
154+
155+
## CI & Build
156+
* chore(deps): update github artifact actions (major) by @renovate[bot] in https://github.com/uutils/coreutils/pull/8997
157+
* publish script: add progress by @sylvestre in https://github.com/uutils/coreutils/pull/9008
158+
* GNUmakefile: Add a value for cross-build by @oech3 in https://github.com/uutils/coreutils/pull/9015
159+
* GNUmakefile: Don't install part of hashsum if we excluded hashsum by @oech3 in https://github.com/uutils/coreutils/pull/9036
160+
* ci: remove `code_format` job from `FixPR` workflow by @cakebaker in https://github.com/uutils/coreutils/pull/9043
161+
* Append .bash to completions by @oech3 in https://github.com/uutils/coreutils/pull/9049
162+
* ci: remove deprecated `lima-actions/ssh` by @cakebaker in https://github.com/uutils/coreutils/pull/9054
163+
* GNUmakefile: Do not use install -v by @oech3 in https://github.com/uutils/coreutils/pull/9051
164+
* GNUmakefile: Reduce deps & minor cleanup by @oech3 in https://github.com/uutils/coreutils/pull/9065
165+
* CICD.yml: stop ci for redox by @oech3 in https://github.com/uutils/coreutils/pull/9112
166+
* ci: adapt template name for Lima v2.0 by @cakebaker in https://github.com/uutils/coreutils/pull/9159
167+
* FreeBSD workflow: disable stats report for sccache action by @lcheylus in https://github.com/uutils/coreutils/pull/9156
168+
* Fix test job in FreeBSD workflow by @lcheylus in https://github.com/uutils/coreutils/pull/9155
169+
* GNUmakefile: Better comment for cross build by @oech3 in https://github.com/uutils/coreutils/pull/9186
170+
* GNUmakefile: fix LOCALES=n by @oech3 in https://github.com/uutils/coreutils/pull/9034
171+
* Fix tests on OpenBSD for unix feature by @lcheylus in https://github.com/uutils/coreutils/pull/9200
172+
173+
## Code Quality & Cleanup
174+
* fix: make visible alias by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/9041
175+
* fix: show ignored args by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/9040
176+
* rustdoc: fix broken intra doc links by @cakebaker in https://github.com/uutils/coreutils/pull/9097
177+
* clippy: re-enable `unnecessary_semicolon` lint by @cakebaker in https://github.com/uutils/coreutils/pull/9143
178+
* Remove `test_keys2` binary by @cakebaker in https://github.com/uutils/coreutils/pull/9183
179+
* Typo by @sylvestre in https://github.com/uutils/coreutils/pull/9197
180+
181+
## Performance & Benchmarking
182+
* bench: remove 'sort_random_strings' by @sylvestre in https://github.com/uutils/coreutils/pull/9030
183+
* bench: tsort_input_parsing_heavy reduce the input side by @sylvestre in https://github.com/uutils/coreutils/pull/9067
184+
* Fix base64 benchmarks by @akretz in https://github.com/uutils/coreutils/pull/9082
185+
* Revert "Fix base64 benchmarks" by @sylvestre in https://github.com/uutils/coreutils/pull/9139
186+
* Disable variance-heavy benchmark tests by @sylvestre in https://github.com/uutils/coreutils/pull/9201
187+
188+
## Version Management
189+
* prepare version 0.4.0 by @sylvestre in https://github.com/uutils/coreutils/pull/9205
190+
191+
## Dependency Updates
192+
* be prescriptive on the codspeed-divan-compat version by @sylvestre in https://github.com/uutils/coreutils/pull/9007
193+
* Bump `linux-raw-sys` from `0.11` to `0.12` by @cakebaker in https://github.com/uutils/coreutils/pull/9019
194+
* chore(deps): update rust crate bstr to v1.12.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9038
195+
* chore(deps): update rust crate indicatif to v0.18.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9053
196+
* chore(deps): update rust crate hex-literal to v1.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9077
197+
* chore(deps): update rust crate clap to v4.5.51 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9079
198+
* chore(deps): update rust crate clap_complete to v4.5.60 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9087
199+
* chore(deps): update rust crate crc-fast to v1.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9095
200+
* chore(deps): update vmactions/freebsd-vm action to v1.2.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9121
201+
* chore(deps): update rust crate ctor to v0.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9130
202+
* chore(deps): update rust crate quote to v1.0.42 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9165
203+
* chore(deps): update reactivecircus/android-emulator-runner action to v2.35.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9169
204+
* chore(deps): update rust crate jiff to v0.2.16 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9175
205+
* chore(deps): update rust crate divan to v4.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9179
206+
* chore(deps): update rust crate crc-fast to v1.7.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9180
207+
* chore(deps): update vmactions/freebsd-vm action to v1.2.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9192
208+
* chore(deps): update rust crate parse_datetime to v0.13.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9207
209+
210+
## New Contributors
211+
* @akretz made their first contribution in https://github.com/uutils/coreutils/pull/9058
212+
* @andreacorbellini made their first contribution in https://github.com/uutils/coreutils/pull/9085
213+
* @ya7on made their first contribution in https://github.com/uutils/coreutils/pull/9151
214+
* @matttbe made their first contribution in https://github.com/uutils/coreutils/pull/9160
215+
216+
**Full Changelog**: https://github.com/uutils/coreutils/compare/0.3.0...0.4.0

0 commit comments

Comments
 (0)