# 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: ```console $ . /bin/activate # Windows: source \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: - [Linux](project:#upgrade-linux) - [macOS (not nix-darwin)](project:#upgrade-macos) - [Windows](project:#upgrade-windows) - 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/riptide` or whereever you installed Riptide. If this directory did not exist, you can find the correct directory under Linux and macOS with `which 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 `python3` version. - Follow the steps of the "Installing Riptide" section up to and including `pip3 install riptide-all`, after this you are done, do not follow any additional steps: : - [Linux](project:#install-linux) : - [macOS](project:#install-macos) : - [Windows](project:#install-windows) ## Changelog ### New Features - [Hooks](/user_docs/hooks): Riptide can now automatically run commands when certain Riptide or Git events occur. - New command: [`riptide log`](/user_docs/log_files): 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 minimal `su` implementation, which means that Docker images no longer need to contain `su` to be usable with Riptide. Additionally this `su` implementation treats signals more transparently than some other `su` implementations, causing signals like `SIGINT` to be directly sent to the command running. This is supported for `amd64` and `aarch64` images. - 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..host_system`). - Riptide now supports the `DOCKER_DEFAULT_PLATFORM` environment 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 `riptide` on macOS and Linux, to have Terminals that support it show `riptide` instead of a generic `python3.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.sock` is now mounted for SSH agents on macOS. - The `pre_start` error messages were improved. - Added additional validation for additional volumes handling. - `riptide_upgrade` will now prompt you to restart the Proxy server. - Riptide's CLI follows the conventions of the environment variables [`NO_COLOR`](https://no-color.org/) and [`FORCE_COLOR`](https://force-color.org/). ### Bugfixes - Fix infinite exception loop when starting containers in the foreground. - Fix handling of invalid env files. - The `parent()` variable helper now correctly returns `None` if you use it on a configuration object with no parent. - `null` values can now be properly used in configuration objects where supported. - Better error message when trying to use binary files with `config`. - Prevent `volume_name` for additional mounts from being used for volumes that use file paths, as this doesn't work.