Skip to content

Releases: ifd3f/caligula

v0.5.0

Choose a tag to compare

@ifd3f ifd3f released this 21 May 23:30

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.)
image

Bug fixes

  • #213: Fixed issue where running it in nix-shell broke. 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 Result anymore, 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 anyhow for 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

v0.5.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@ifd3f ifd3f released this 12 May 17:52
1113df1

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.)
image

Bug fixes

  • #213: Fixed issue where running it in nix-shell broke. 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 Result anymore, 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 anyhow for 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

Choose a tag to compare

@ifd3f ifd3f released this 11 Apr 23:22
dc67e58

What's Changed

Features

Fixes

  • Silent failure when passing a directory as input by @LuBashQ in #211

Documentation

  • fix typo by @ada4a in #215
  • Clarifications on platform support in #218

Other

New Contributors

Full Changelog: v0.4.10...v0.4.11

As always, please report any bugs you encounter!

v0.4.10

Choose a tag to compare

@ifd3f ifd3f released this 20 Oct 00:34
2ea18ae

What's Changed

  • Help dialog is no longer as bad #200 #205
% ./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

Choose a tag to compare

@ifd3f ifd3f released this 14 Oct 06:20
fd428bb

What's Changed

Features

Fixes

Documentation

  • Add homebrew tap install instructions by @ifd3f in #179

Other

New Contributors

Full Changelog: v0.4.8...v0.4.9

v0.4.8 - A Thanksgiving Miracle

Choose a tag to compare

@ifd3f ifd3f released this 27 Nov 22:17
7039418

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

Documentation

Internal changes

  • increment writer IDs on each new writer by @ifd3f in #138

CI

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

Thank you so much to our new contributors!

Full Changelog: v0.4.7...v0.4.8

v0.4.7 - achieve bugfix through rewriting

Choose a tag to compare

@ifd3f ifd3f released this 24 May 06:20
9be30fd

What's Changed

  • Features
  • 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!
  • Other stuff

New Contributors

Full Changelog: v0.4.6...v0.4.7

v0.4.6

Choose a tag to compare

@ifd3f ifd3f released this 20 May 00:08
620c3d1

What's Changed

Only one thing - fixing the post-program TUI output when we delegate to sudo. (#122 #123)

Full Changelog: v0.4.5...v0.4.6

v0.4.5

Choose a tag to compare

@ifd3f ifd3f released this 07 May 08:22
edd8b15

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.

image

Multi-disk burning (#64) is still WIP. I've successfully implemented several refactors to support it, though.

Merged PR's

  • Features
    • Add lz4 decompression support by @ifd3f in #112
    • Add confirmation prompt for closing by @ifd3f in #114
  • Documentation
    • Update README.md by @ifd3f in #96
    • Update installation instructions for Arch Linux by @orhun in #98
    • Update CONTRIBUTING.md by @ifd3f in #102
    • make issue templates look less threateningly big by @ifd3f in #104
    • Update bug report template with terminal emulator field by @ifd3f in #113
  • Refactors
    • Escalated daemon, redux! by @ifd3f in #97
    • Refactor filesystem directory management to not use globals by @ifd3f in #99
    • Refactor the scattered "simple UI" components into a single module by @ifd3f in #103
    • Remove feature flags for disabling specific compression algorithms by @ifd3f in #111
  • 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

  • @orhun made their first contribution in #98

Full Changelog: v0.4.4...v0.4.5

v0.4.4

Choose a tag to compare

@ifd3f ifd3f released this 05 May 00:55
93f83c3

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
    • Throw logging and spans everywhere by @ifd3f in #70
  • Updates
  • Refactors
    • Terminology change: rename "child" to "writer process" by @ifd3f in #71
    • Refactor TUI components to implement Widget trait by @ifd3f in #81
    • Bring named sockets back by @ifd3f in #82
  • 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