0.10.0¶
Riptide 0.10 is released and brings new features, such as Hooks, a riptide log command and
a facelifted CLI and Proxy server.
Compatibility and Upgrading¶
Please note that this release now requires Python 3.11 or above. We recommend using Python 3.13 (3.14 is also supported, but some dependencies may not support it yet).
This means some LTS Linux distributions are no longer supported out of the box, requiring third-party package repositories if you want to continue using Riptide without upgrading your distribution. Most notably Ubuntu 22.04 is not supported.
You can check your Python version using this script:
$ . <riptide virtualenv dir>/bin/activate # Windows: source <riptide installation dir>\Scripts\activate.ps1
$ python3 --version
Python 3.13.9
If you were using Python 3.11 or above or were using NixOS/nix-darwin, follow the usual upgrade procedure:
NixOS and macOS with nix-darwin: update the Flake input to
github:theCapypara/riptide-all/0.10.
If you were using a Python version lower than 3.11:
Delete
~/virtualenvs/riptideor whereever you installed Riptide. If this directory did not exist, you can find the correct directory under Linux and macOS withwhich riptide(this may output the path to a symlink, you may need to check where it is pointing).Install Python 3.11 or above. Make sure it is set as the default
python3version.
Changelog¶
New Features¶
Hooks: Riptide can now automatically run commands when certain Riptide or Git events occur.
New command:
riptide log: This command displays service log files.
Major Improvements & Changes¶
The CLI and Proxy Server pages were redesigned, including a new Riptide logo.
When using Docker, all containers now get a special static binary mounted:
ripsu. This binary is a minimalsuimplementation, which means that Docker images no longer need to containsuto be usable with Riptide. Additionally thissuimplementation treats signals more transparently than some othersuimplementations, causing signals likeSIGINTto be directly sent to the command running. This is supported foramd64andaarch64images.Running commands has been vastly improved. Commands now truly behave as if they were running natively in the shell on Linux and macOS, with all signals getting propagated properly and proper TTY handling. This also means that piping and other kinds of stdin, stdout or stderr redirection is now fully supported.
Riptide now supports platform-specific additional volumes (
Command/Service.additional_volumes.<key>.host_system).Riptide now supports the
DOCKER_DEFAULT_PLATFORMenvironment variable. It will be used to tell Docker which image architecture to pull images for, instead of the system’s architecture.
Improvements¶
Services and commands are now sorted in most CLI and Proxy Server output listings.
Riptide now sets the process title to
riptideon macOS and Linux, to have Terminals that support it showriptideinstead of a genericpython3.x. Additionally when running Commands Riptide will set the process title to the command key for a seamless experience.The Riptide configuration directory can now be specified with the environment variable
RIPTIDE_CONFIG_DIR.Add special handling for SSH agents on macOS (thanks to @jeliebig):
/run/host-services/ssh-auth.sockis now mounted for SSH agents on macOS.The
pre_starterror messages were improved.Added additional validation for additional volumes handling.
riptide_upgradewill now prompt you to restart the Proxy server.Riptide’s CLI follows the conventions of the environment variables
NO_COLORandFORCE_COLOR.
Bugfixes¶
Fix infinite exception loop when starting containers in the foreground.
Fix handling of invalid env files.
The
parent()variable helper now correctly returnsNoneif you use it on a configuration object with no parent.nullvalues can now be properly used in configuration objects where supported.Better error message when trying to use binary files with
config.Prevent
volume_namefor additional mounts from being used for volumes that use file paths, as this doesn’t work.