Releases: ifd3f/caligula
Release list
v0.5.0
What's Changed
This v0.5.0 version bump release constitutes a very large refactor of 3000 or so lines. We've improved reliability and error handling significantly, and the refactors lay the groundwork for more features in upcoming release versions.
This release has been thoroughly tested, and we recommend upgrading for the improved error handling and bug fixes.
Features
- The biggest one: Error messages and logging are now much better! It's easier to yell at me when stuff breaks! In fact, the program now gives you much more explicit instructions on how you can do that!
- Logs now record information about your OS, computer, and terminal. Now, all you need to add when submitting a bug report is the logs, and what distribution channel you got Caligula from! (Feel free to omit some of this data from your logs if you worry about your privacy.)
Bug fixes
- #213: Fixed issue where running it in
nix-shellbroke. In fact, it's now completely impossible for this entire class of "socket path too long" issue to occur, because we've stopped using sockets entirely!
Internal improvements
These are nitty-gritty technical things that you probably won't care about or won't see, but they're at least worth a mention if you're curious about these things. Don't worry, this is all building up to something cool.
- Significantly improved error handling in the fancy TUI! It doesn't even return a
Resultanymore, because it handles everything* gracefully! How cool is that? - Returned to stdin/stdout-based IPC for the child process! (see rationale in #222). That's how the nix-shell issue got fixed, and this should hopefully make the program more stable on weird system configurations.
- Made the UI code fully synchronous, and made our async code only run on a single thread! This will improve resource utilization ever so slightly.
- Got rid of
anyhowfor everything that happens after the wizard. And yes, I will get rid of it from the wizard as well. (For non-Rust devs, this basically means we're becoming much more rigorous about error handling.) - Cleaned up our dependency graph! (#228, #229). Thanks @sermuns!
*Okay, it doesn't actually handle everything. It does panic when your terminal stops accepting writes. But at that point, that's a you problem, not a me problem.
New Contributors
Full Changelog: v0.4.11...v0.5.0
v0.5.0-rc.2
What's Changed
Note for v0.5.0-rc.1 users: I realized that coredumps may expose environment variables so I removed the guidance to upload them entirely! You should switch to this version so that you don't see that guidance. For more details, see #260
This release candidate constitutes a very large refactor of 3000 or so lines, improving reliability significantly. It's been thoroughly tested on my machine and in CI, and I am very confident that it works, but I'd like to validate it in the wild. If no major issues come up, I'll promote it to stable in 1 or 2 weeks.
I'll be pushing this release to Nixpkgs Unstable soon. If you use Caligula regularly, I would really appreciate it if you could test this version and report any issues or unexpected behavior to https://github.com/ifd3f/caligula/issues!
Features
- The biggest one: Error messages and logging are now much better! It's easier to yell at me when stuff breaks! In fact, the program now gives you much more explicit instructions on how you can do that!
- Logs now record information about your OS, computer, and terminal. Now, all you need to add when submitting a bug report is the logs, and what distribution channel you got Caligula from! (Feel free to omit some of this data from your logs if you worry about your privacy.)
Bug fixes
- #213: Fixed issue where running it in
nix-shellbroke. In fact, it's now completely impossible for this entire class of "socket path too long" issue to occur!
Internal improvements
These are nitty-gritty technical things that you probably won't care about or won't see, but they're at least worth a mention if you're curious about these things. Don't worry, this is all building up to something cool.
- Significantly improved error handling in the fancy TUI! It doesn't even return a
Resultanymore, because it handles everything* gracefully! How cool is that? - Returned to stdin/stdout-based IPC for the child process! (see rationale in #222). That's how the nix-shell issue got fixed, and this should hopefully make the program more stable on weird system configurations.
- Made the UI code fully synchronous, and made our async code only run on a single thread! This will improve resource utilization ever so slightly.
- Got rid of
anyhowfor everything that happens after the wizard. And yes, I will get rid of it from the wizard as well. This will ensure a much more rigorous error handling discipline in the future. - Cleaned up our dependency graph! (#228, #229). Thanks @sermuns!
*Okay, it doesn't actually handle everything. It does panic when your terminal stops accepting writes. But at that point, that's a you problem, not a me problem.
New Contributors
Full Changelog: v0.4.11...v0.5.0-rc.2
v0.4.11
What's Changed
Features
Fixes
Documentation
Other
- Bump bytes from 1.10.1 to 1.11.1 by @dependabot[bot] in #212
- Bump lz4_flex from 0.11.5 to 0.11.6 by @dependabot[bot] in #214
- Add Debian packaging metadata by @defigli in #209
- CI/Nix/DevX improvements and fixes in #216, #217, and #218
New Contributors
- @LuBashQ made their first contribution in #206
- @defigli made their first contribution in #209
- @ada4a made their first contribution in #215
Full Changelog: v0.4.10...v0.4.11
As always, please report any bugs you encounter!
v0.4.10
What's Changed
% ./caligula-x86_64-linux
A lightweight, user-friendly disk imaging tool
Usage: caligula-x86_64-linux burn [OPTIONS] <IMAGE>
caligula-x86_64-linux help [COMMAND]...
Options:
-h, --help Print help
-V, --version Print version
caligula-x86_64-linux burn:
A lightweight, user-friendly disk imaging tool
<IMAGE> Input image to burn
-o <OUT> Where to write the output. If not supplied, we will search for possible disks and ask you for where you want to burn
-z, --compression <COMPRESSION> What compression format the input file is in [default: ask] [possible values: ask, auto, none, gz, bz2, xz, lz4, zst]
-s, --hash <HASH> The hash of the input file. For more information, see long help (--help) [default: ask]
--hash-file <HASH_FILE> Where to look for the hash of the input file
--hash-of <HASH_OF> Is the hash calculated from the raw file, or the compressed file? [possible values: raw, compressed]
--show-all-disks If provided, we will show all disks, removable or not
--interactive <INTERACTIVE> If we should run in interactive mode or not [default: auto] [possible values: auto, always, never]
-f, --force If supplied, we will not ask for confirmation before destroying your disk
--root <ROOT> If we don't have permissions on the output file, should we try to become root? [default: ask] [possible values: ask, always, never]
-h, --help Print help (see more with '--help')
-V, --version Print version
caligula-x86_64-linux help:
Print this message or the help of the given subcommand(s)
[COMMAND]... Print help for the subcommand(s)
That's it. That's the entire release.
Full Changelog: v0.4.9...v0.4.10
v0.4.9
What's Changed
Features
- Quit immediately when done by @dbohdan in #185
- Add flag
--hash-fileby @dbohdan in #184 - feat: detect checksum files based on file extensions by @Integral-Tech in #186
Fixes
Documentation
Other
- Ensure lockfiles are up-to-date in CI scripts by @ifd3f in #167
- refactor: apply clippy lints by @Integral-Tech in #168
- Replace PathBuf with Path when ownership or mutability is not needed by @Integral-Tech in #173
- Add end-to-end UI tests using Pexpect by @dbohdan in #188
New Contributors
- @kianmeng made their first contribution in #178
- @dbohdan made their first contribution in #185
- @dependabot[bot] made their first contribution in #177
Full Changelog: v0.4.8...v0.4.9
v0.4.8 - A Thanksgiving Miracle
At the Thanksgiving table this year, make sure to be thankful to your Caligula devs for their service! Or else.
What's Changed
User-facing changes
- Unmount disks on MacOS before writing by @ifd3f in #140
- Add default values for prompts by @Integral-Tech in #145
- feat: show percentage during burning and verification by @Integral-Tech in #149
- feat: auto detect some common filenames of hash file by @Integral-Tech in #146
- Only show "Removable" properties on disks by @Integral-Tech in #153
- Drop dependency on tracing-valuable by @ifd3f in #157
- Add run0 support by @jschpp in #150
Documentation
- Update README.md with cargo install instructions by @ifd3f in #136
- Add caligula-git from AUR & archlinuxcn by @Integral-Tech in #148
Internal changes
CI
- Update nixpkgs to partially fix #151 by @ifd3f in #152
- Fixed ci tests for run0 by @jschpp in #154
- Unpin rust flake input versions by @ifd3f in #155
Other
- create script for running update tasks by @ifd3f in #147
- Add version bumping script and bump version to v0.4.8 by @ifd3f in #159
New Contributors
- @Integral-Tech made their first contribution in #145
- @jschpp made their first contribution in #150
Thank you so much to our new contributors!
Full Changelog: v0.4.7...v0.4.8
v0.4.7 - achieve bugfix through rewriting
What's Changed
- Features
- Add zstd decompression support by @felixonmars in #119 and @ifd3f in #130
- Bug fix/refactor
- Big one: Total rewrite of the writer subprocess by @ifd3f in #126. This closes #10, #115, and #124. That's right, it now works on MacOS again!
- Reads and writes are now aligned to disk block sizes, which may provide performance benefits. Maybe. In any case, it certainly unbreaks writing files to MacOS.
- We're now using O_DIRECT to read and write to disks. Performance benefit appears to be dubious, but it may provide some amount of benefit during writing (no kernel caches necessary) and it does improve the guarantee that the verification process is reading data off the disk, and not a kernel buffer.
- Please file an issue if you find that anything breaks with this!
- Big one: Total rewrite of the writer subprocess by @ifd3f in #126. This closes #10, #115, and #124. That's right, it now works on MacOS again!
- Other stuff
New Contributors
- @felixonmars made their first contribution in #119
Full Changelog: v0.4.6...v0.4.7
v0.4.6
v0.4.5
What's Changed
A couple actually-user-facing things have changed this time! You can now decompress lz4's, and the exit prompt is more informative and asks for confirmation.
Multi-disk burning (#64) is still WIP. I've successfully implemented several refactors to support it, though.
Merged PR's
- Features
- Documentation
- Refactors
- Infrastructure
Known issues
- #105 Burning to USB on macOS Sonoma may yield
Failed to write block to disk: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }. This might be a block alignment/sizing issue. In any case, I know it has worked before on a previous version of MacOS. - #107 Caligula may make the cursor disappear on some terminals.
New Contributors
Full Changelog: v0.4.4...v0.4.5
v0.4.4
Insert quippy line here.
What's Changed
Largely just dependency updates, refactors, and other things largely hidden from the user.
- Bump version to v0.4.4 by @ifd3f in #95
- Logging
- Updates
- Refactors
- Project infrastructure
- Create issue templates by @ifd3f in #73
- Automate AUR publishing by @ifd3f in #76
- Fix publish workflow by @ifd3f in #77
- Create CONTRIBUTING.md by @ifd3f in #80
- Relax the size SLA by @ifd3f in #85
- Update the github actions by @ifd3f in #90
- ci: make make-release-group depend on ci-aarch64-darwin by @ifd3f in #92
- Update README.md to reflect the new CI by @ifd3f in #94
Full Changelog: v0.4.3...v0.4.4
