Release channels¶
OVOS is released in three channels. Each is one constraints file in OpenVoiceOS/ovos-releases, used by the OVOS installer, raspOVOS and ovos-docker alike:
| Channel | What it is |
|---|---|
| testing | What the OVOS installer installs by default: versions picked for testing, with upper bounds. What most users run. |
| alpha | The newest releases, pre-releases included. raspOVOS images and ovos-docker's default tag use it, and so do Mark II/DevKit and macOS installs. |
| stable | The last stable release. Changes rarely. The installer doesn't offer it. |
Which one am I running?¶
The startup lines say it, e.g. OVOS: testing · ovos-core 2.1.1 (from the
installed versions), and so does the header (OVOS testing). When the
installed versions are not what any channel installs today, a hand-made
mix or an older install, it says not an official channel instead of
guessing. Ctrl+P → OVOS: Release channel shows the details.
Not every install is made by the OVOS installer, and the installer's own state file is often not readable by the user OVOS runs as, so ovos-tui-client works the channel out in two ways:
- Declared: what the install says it follows: the OVOS installer's
state file (
~/.local/state/ovos/installer.json) or raspOVOS's/opt/ovos/tag. - From the versions: which channel's constraints file, as it is today, allows the installed ovos-core, ovos-workshop, ovos-padatious, ovos-bus-client and ovos-plugin-manager. The files change over time, so they are fetched live, never kept in ovos-tui-client. alpha only sets lower bounds, so for alpha the installed major version must also be the newest one on PyPI.
A declared channel must agree with the versions; if it doesn't, the window shows both instead of guessing. Without network, a declared channel is used as it is.
The window lists the core versions, and for each other channel why the install isn't on it.
Changing channel¶
Back up ~/.config/mycroft first. Moving to an older channel downgrades
packages.
OVOS installer. The channel is fixed once installed: running the installer again upgrades within it. To switch, uninstall and install again, and pick the channel in the installer (testing or alpha):
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/OpenVoiceOS/ovos-installer/main/installer.sh)" installer.sh --uninstall
Uninstalling removes configuration too. Unattended installs set channel:
in ~/.config/ovos-installer/scenario.yaml.
raspOVOS. The channel is in /opt/ovos/tag, and ovos-update updates
from it:
echo testing | sudo tee /opt/ovos/tag
ovos-update
ovos-update testing updates from testing once, without changing the tag.
ovos-docker, and Buildroot images (which run ovos-docker's
containers). The image tag is the channel: set VERSION=testing (or
alpha, stable) in the compose .env, then
docker compose pull && docker compose up -d.
Your own venv. Upgrade the installed OVOS packages against the
channel's constraints file (add --pre for alpha):
pip install -U -c https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/main/constraints-testing.txt \
$(pip list --format=freeze | grep -E '^ovos-' | cut -d= -f1)