Onyx Developer Script
ods is onyx.app's devtools utility script.
It is packaged as a python wheel and available from PyPI.
Installation
A stable version of ods is provided in the default python venv
which is synced automatically if you have pre-commit
hooks installed.
While inside the Onyx repository, activate the root project's venv,
source .venv/bin/activate
If you prefer to use the latest version of ods and not the stable version in the pyproject.toml,
uvx --from onyx-devtools ods
Autocomplete
ods provides autocomplete for bash, fish, powershell and zsh shells.
For more information, see ods completion <shell> --help for your respective <shell>.
zsh
Linux
ods completion zsh | sudo tee "${fpath[1]}/_ods" > /dev/null
macOS
ods completion zsh > $(brew --prefix)/share/zsh/site-functions/_ods
bash
ods completion bash | sudo tee /etc/bash_completion.d/ods > /dev/null
Note: bash completion requires the bash-completion package be installed.
Upgrading
To upgrade the stable version in the pyproject.toml,
uv add --dev onyx-devtools --upgrade-package onyx-devtools
Building from source
Generally, go build . or go install . are sufficient.
To build the wheel,
uv build --wheel
To build and install the wheel,
uv pip install .
Deploy
Releases are deployed automatically when git tags prefaced with ods/ are pushed to GitHub.
The release-tag package can be used to calculate and push the next tag automatically,
tag --prefix ods
See also, .github/workflows/release-devtools.yml.