Command Line Interface (CLI)

Report a Bug or Request a Feature

Go to the CLI Repository and create a new Issue.

CLI Repository

Explore the source code

CLI Foundations

The oak-cli is built via Poetry and Typer. Typer is primarily powered by Click and Rich. We highly recommend using and looking into Rich to ensure a user-friendly and appealing look and feel for the CLI. Additionally, Typer heavily relies on the proper and consistent use of Python Type Hints. Always stick to this convention to ensure smooth CLI and Typer workflows and behavior.

Linting & Formatting

The CLI repository uses the same Python linting and formatting as the Oakestra repository.

Philosophy

The oak-cli is a gateway to Oakestra and a multifaceted set of tools. Ensure high cohesion and low coupling by splitting unrelated/different parts into their own files and “typer apps”. Use the static CLI configuration, local machine purposes, and their filters. Users should always have access to generic/universal features - specialized features should only be available in fitting conditions/use-cases/environments.

Local Development

For local development clone the CLI repository and install the CLI.

pip install -e .

Create a new branch and create a Pull Request as usual. Note that the final/merged CLI changes always require a CLI version increase that has to be followed up by a matching tag.

We configured an automatic CI (GitHub Actions) to build and release these changes. This CI will be triggered by a new tag.

git tag -a vX.Y.Z -m "<New Custom Tag Message>"
git push origin vX.Y.Z