Releases: ouch-org/ouch
Release list
0.8.1
Starting on this release, we'll stop updating the CHANGELOG.md and use the GitHub releases page instead.
Highlighted changes:
- security improvements by @curious-rabbit in #951
- fix exit code in non-interactive mode by @valoq in #1011
- fix: ignore invalid unix permissions and setuid bits from zip by @tommady in #1007
Other Changes
- tweak extract logic in preparation for sandboxing @valoq in #996
- ci: bump actions/checkout from 6 to 6.0.2 in the github-actions group by @dependabot[bot] in #1002
- ci: bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions group by @dependabot[bot] in #1009
- deps: bump tar from 0.4.45 to 0.4.46 in the cargo-patch-and-minor group by @dependabot[bot] in #997
- deps: bump the cargo-patch-and-minor group with 11 updates by @dependabot[bot] in #1003, #1010 and #1013
Full Changelog: 0.8.0...0.8.1
0.8.0
Updating to 0.8.0 is mandatory, it fixes a serious bug where ouch would think there is a conflict with the current folder and ask the user to overwrite it (possibly deleting user files in the process).
Next up you should expect some security improvements, like Landlock sandboxing and safeguards against reading malicious archives.
Packaging
- Reproducible builds (#973).
New Features
- Releases: add Apple Silicon macOS (
aarch64-apple-darwin) to assets. - Unpack into new folder by default (#962).
- Add
--hereflag to unpack into current directory (#962). - List: show symlink targets (for tar and zip) (#934)
- Add aliases for ebooks (
.epub) (#981)
Improvements
- Improve options for solving conflicts (#964)
- Report mtime-set errors for
.7zas warnings (#950) list: also display symlink targets (#934)- Improve man pages for subcommands (#980)
Bug Fixes
- Fix Ouch trying to overwrite current directory (#962)
- Fix various panics not handled gracefully (#950)
- Handle GNUSparse archive entries during tar decompression (#975)
- Fix
.rarbeing slow (#968)
New Contributors
- @pavelzw made their first contribution in #957
- @curious-rabbit made their first contribution in #950
- @venoosoo made their first contribution in #937
- @kilianbartz made their first contribution in #975
And a big shoutout to @valoq and @tommady for the huge help.
Full Changelog: 0.7.1...0.8.0
0.7.1
0.7.0
0.7.0
Removals
- Remove archive auto-flattening on decompression (formerly known as "smart unpack") (#907)
New Features
- Support merging folders in decompression (#798)
- Support
.lzcompression (#867) - Support
.lzdecompression (#838) - Support
.lzmacompression (#867) - Support
.lzmadecompression (#838) - Support decompression of concatenated
.gz,.bz2, and.lz4(#898) - Provide Nushell completions (packages still need to install them) (#827)
Improvements
- Improve misleading error message (#818)
- Avoid loading entire 7z archive into memory when listing (#860)
- Add aliases for
--passwordflag (--passand--pw) (#847) - Print input and output file sizes (#914)
- Add aliases for comic book archives (#835)
- Multiple minor improvements to error messages.
Bug Fixes
- Fix
.lzmabeing a wrong alias for.xz(#838) - Fix 7z BadSignature error when compressing and then listing (#819)
- Fix tar extraction count when --quiet (#824)
- Fix unpacking with merge flag failing without --dir flag (#826)
- Handle broken symlinks in zip archives and normalize path separators (#841)
- Fix folder softlink is not preserved after packing (#850)
- Handle read-only directories in tar extraction (#873)
- Fix tar hardlink is not preserved after decompressing or compressing (#879)
- Fix enable gitignore flag should work without git (#881)
- Fix .7z always being fully loaded to memory (#905)
- Fix reporting wrong path when file is renamed (#913)
- Fix renaming broken when multi extension paths (#919)
- Fix incorrectly overwriting input file when file signature is sniffed (#920)
- Add safeguards before deleting directories (#930)
Tweaks
Full Changelog: 0.6.1...0.7.0
0.6.1
The 0.6.0 release introduced 2 problems for packages (my bad), see #806 for more details.
0.6.1 addresses both problems, allowing packages to be updated.
This version also fixes a common .zip crash (#804) that slid into 0.6.0.
Full Changelog: 0.6.0...0.6.1
0.6.0
What's Different?
Here is a summary of the most impactful user-facing changes out of 52 PRs:
- Support bzip3 (
.bz3) (by @freijon in #522) - Support Brotli (
.br) (by @killercup in #765) - Support decompressing from stdin (by @rcorre in #692)
- Add
renameoption when files conflict (by @talis-fb in #779) - Refactor logging into a separate thread (speedup + bugfix!) (by @AntoniosBarotsis in #642)
- Disable smart unpack when
-d/--diris provided (by @talis-fb in #782) - Support passwords in
decompressandlist(by @ttys3 in #646) - Store symlinks by default, use
--follow-symlinksto ignore (by @tommady in #789) - Multithreaded
.zstdcompression (by @nalabrie in #689) - Add option to delete source file after decompression (by @ttys3 in #757)
- Add
--threadsflag to tweak concurrency (by @ttys3 in #760) - Feature-gate
.rarsupport (by @cyqsimon in #566) - Use buffered I/O in
listoutput (by @killercup in #764) - Ignore
.git/when-g/--gitignoreis set (by @talis-fb in #795) - Fix handling of CJK filenames when decompressing
.rararchives (by @ttys3 in #759) - Fix warnings not being shown before stdin interaction (by @marcospb19 in #745)
Full Changelog: 0.5.1...0.6.0
New Contributors (thank you!)
- @AntoniosBarotsis made their first contribution in #611
- @rcorre made their first contribution in #690
- @nalabrie made their first contribution in #689
- @ttys3 made their first contribution in #646
- @valoq made their first contribution in #725
- @freijon made their first contribution in #522
- @killercup made their first contribution in #764
- @talis-fb made their first contribution in #779
- @MisileLab made their first contribution in #790
- @qm3ster made their first contribution in #791
- @tommady made their first contribution in #789
0.5.1
0.5.1 is a small release to fix a couple of problems found in 0.5.0.
- Misleading help message.
- Misleading CHANGELOG and README for packages.
For those who want to build Ouch with different flags, there is one enhancement:
New Contributors
Full Changelog: 0.5.0...0.5.1
0.5.0
What's new in 0.5.0?
New Features
- Add
.rarsupport (decompression and listing, see clarification below) (#529 by @lmkra) - Add
.7zsupport (#555 by @Flat)
Improvements
- Switch to the faster
lz4implementation,lz4_flex(#445 by @PSeitz) - Improve error message when decompressing with missing extensions (#518 by @marcospb19)
- Strip binary when building with cargo (#535 by @marcospb19)
- Completions: hint generator to expand to file paths (#508 by @marcospb19)
Bug Fixes
- Fix size unit inconsistency (#502 by @marcospb19)
- Fix unaligned output when using parallelism (#509 by @marcospb19)
Clarifications about .rar support
The added .rar support includes unpacking (decompressing and listing) but not packing (compressing a new archive), that's due to RAR's license restrictions, as it only allows their proprietary software (WinRAR) to pack new archives.
With that in mind, we advice you not to use .rar if possible, instead, use .zip, .tar.gz, .tar.zst, .tar.xz or .tar with other supported format.
New Contributors
Thanks to everyone who helped with this release! 🎉🎉
- @PSeitz made their first contribution in #445
- @lmkra made their first contribution in #529
- @Flat made their first contribution in #555
And a special thank you to @Flat for fixing our releases. ❤️
Full Changelog: 0.4.2...0.5.0
0.4.2
ouch 0.4.2
Changelog
New Features
Improvements
- Multi-threaded compression for gzip and snappy using gzp #348 (@figsoda)
- Add
lsas an alternative alias for listing #360 (@orhun)
Bug Fixes
- Fix decompression of zip archives with files larger than 4GB #354 (@figsoda)
- Fix handling of unknown extensions during decompression #355 (@figsoda)
- Remove remaining mentions of
.lzthat refers to the LZMA format #344 (@marcospb19) - Handle Zip when modification times are missing #433 (@marcospb19)
New Contributors
Full Changelog: 0.4.1...0.4.2
0.4.1
ouch 0.4.1
Changelog
New Features
Improvements
- Allow ouch to decompress archive into existing folder #321 (a-moreira)
- Accept inserting subcommand-independent flags in any position #329 (marcospb19)
- Improve extension parsing logic #330 (figsoda)
- Slight refactor when ensuring archive-only inputs #331 (vrmiguel)
- Use BStr to display possibly non-UTF8 byte sequences#332 (vrmiguel)
- Use ubyte instead of humansize #333 #333 (vrmiguel)
- Stop keeping track of the names of unpacked files #334 (vrmiguel)
- Clean up #335 (figsoda)
Bug fixes
- Stop incorrectly asking to remove the parent dir #321 (a-moreira)
- Fixed overwriting archive file when decompressing archive detected with MIME types.
Tweaks
Acknowledgements
Big thanks for the contributors of this version, @a-moreira, @figsoda and @rasa !