Skip to content

Update to Litestream 0.5.17 (#78, updated to main) - #81

Merged
fractaledmind merged 3 commits into
mainfrom
litestream-0.5-main
Oct 13, 2026
Merged

fractaledmind merged 3 commits into
mainfrom
litestream-0.5-main

Conversation

@fractaledmind

Copy link
Copy Markdown
Owner

Carries @cole-robertson's #78 unchanged, merged with main, plus one review commit.

Checked against the real 0.5.17 binary (Linux container, file replica): replicate through the gem, process detection, databases/status/ltx with json: true and as tables, status with a relative path, restore -o, Litestream.verify!, and the dashboard's Litestream.databases. A backup written by 0.3.13 restores with 0.5.17. The pinned checksums match upstream's checksums.txt, and rake package replaces cached 0.3.13 binaries with 0.5.17.

Review commit:

  • Table parsing. rake litestream:status printed misaligned columns: 0.5's status table has headers like local txid and values like 231 kB and no database, and the table parser split on any whitespace. Litestream pads columns with at least two spaces, so the parser now splits on that. The new test fails without the fix.
  • README upgrade notes. A replicas: list with one entry still works under 0.5. With more than one, replicate refuses to start, and the Puma plugin then stops Puma, so the notes now say to cut down to one replica before upgrading. Rollback now points to 0.15.x, and the status examples match real output.

This is a breaking release (removed commands, config shape, no age encryption in 0.5), so it should ship as a new minor version at least.

🤖 Generated with Claude Code

cole-robertson and others added 3 commits September 14, 2026 18:58
The bundled binary moves from 0.3.13 to 0.5.17. Release tarballs are
pinned by sha256 in Upstream::CHECKSUMS and verified in memory before
extraction; a sidecar exe/<platform>/litestream.sha256 records what was
packaged so a cached binary from an earlier version is re-downloaded
instead of shipped. The darwin zip assets are gone upstream, so rubyzip
goes too.

Litestream 0.5 replaced generations, snapshots and wal with TXID-numbered
LTX files. Commands gains ltx and status; the three removed methods and
rake tasks stay for one release as tombstones that explain the change.
The dashboard reads status (local, no daemon) and ltx (replica) through
the same commands, isolates a command failure to the one database, and
lets anything else raise. Generator template, dummy config and README
use the 0.5 shape: one replica: per database, root snapshot: block.
# Conflicts:
#	CHANGELOG.md
#	test/test_litestream.rb
Litestream pads columns with at least two spaces, while status has
headers such as "local txid" and values such as "231 kB" and "no
database", so splitting on any whitespace misaligned every column of
`rake litestream:status`.

The README now says which 0.3 configs survive the upgrade (a one-entry
replicas: list does; several replicas stop replicate from starting, and
the Puma plugin then stops Puma), that 0.15.x is the release to roll back
to, and shows status output as the 0.5.17 binary prints it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@fractaledmind
fractaledmind merged commit 261e21d into main Oct 13, 2026
10 of 11 checks passed
@fractaledmind
fractaledmind deleted the litestream-0.5-main branch October 13, 2026 12:47
@cole-robertson

Copy link
Copy Markdown
Contributor

Follow-up from running 0.5.17 in production: three caveats (deploy overlap, stalled compaction, a connection leak fixed upstream but not yet released) and suggested next steps are in #84.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants