Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the litestream-ruby gem from Litestream 0.3.13 to 0.5.9, introducing several breaking changes aligned with the upstream Litestream project. The update replaces CLI output parsing with IPC socket-based communication for better reliability and introduces new terminology (LTX instead of WAL) while removing deprecated commands.
Changes:
- Bumped to Litestream 0.5.9 with updated binary distribution formats and architecture naming
- Replaced generations/snapshots/wal commands with single ltx command
- Implemented IPC socket-based dashboard using
/infoand/listendpoints instead of parsing CLI output - Updated configuration template to use Litestream 0.5.x format with global defaults and singular replica format
Reviewed changes
Copilot reviewed 15 out of 17 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/litestream/version.rb | Updated gem version to 0.15.0 |
| lib/litestream/upstream.rb | Updated Litestream version to 0.5.9, changed binary filenames (v prefix removed, zip→tar.gz, amd64→x86_64) |
| lib/litestream/ipc.rb | New IPC client for communicating with Litestream daemon via Unix socket |
| lib/litestream.rb | Replaced systemctl/ps parsing with IPC calls, added socket configuration reading |
| lib/litestream/commands.rb | Removed generations/snapshots/wal commands, kept only ltx command |
| lib/litestream/generators/litestream/templates/config.yml.erb | Updated to Litestream 0.5.x config format with globals and singular replica |
| lib/tasks/litestream_tasks.rake | Replaced generations/snapshots/wal tasks with ltx task |
| app/views/litestream/processes/show.html.erb | Updated dashboard to display LTX files instead of generations/snapshots |
| test/test_litestream.rb | Updated tests for IPC-based process info and databases listing |
| test/tasks/test_litestream_tasks.rb | Updated task tests to use ltx instead of generations/snapshots/wal |
| test/litestream/test_commands.rb | Updated command tests to use ltx instead of generations/snapshots/wal |
| test/controllers/test_processes_controller.rb | Updated controller test data for new dashboard format |
| README.md | Updated documentation to reflect ltx command and new warning about breaking changes |
| CHANGELOG.md | Added release notes for 0.15.0 |
| Gemfile.lock | Updated gem version to 0.15.0 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Is there anything I can do to help thing along? I'm more than happy to test it out if that helps. |
I use it in an internal production environment with a restore verification once a day. So far so good. You can test it If you have a suitable environment. |
The current Litestream-ruby gem uses Litestream 0.3.13 but there is a newer Litestream 0.5.x available which introduces several changes, mainly in the way the replicate process is handled via ltx files, a new IPC endpoint that enables to easily query the Litestream process and some configuration changes. Some more info...
This PR implement Litestream v 0.5.9 keeping the same functions as the previous gem with the following changes:
walcommand withltxcommand (Litestream 0.5.x changed WAL terminology to LTX)globalsandunique replicaformat/infoand/listendpoints) instead of parsing CLI outputgenerationscommand: Deprecated in Litestream 0.5.x, now removedsnapshotscommand: Deprecated in Litestream 0.5.x,xnow removedI will put this new version in a test environment (linux) in the next few days.
@fractaledmind I did set a 0.15.0 version for this gem, do you want another version number (0.20.0 ?) as this is a breaking change ?