Setup

Dependencies

This project has the following system level dependencies:

Python dependencies are listed in pyproject.toml.

Install

An overview of software repos where gallia is available is provided by repology.org.

Docker

Docker images are published via the Github Container registry.

Arch Linux

$ paru -S gallia

Debian/Ubuntu

$ sudo apt install pipx
$ pipx install gallia

NixOS

$ nix shell nixpgks#gallia

For persistance add gallia to your environment.systemPackages, or when you use home-manager to home.packages.

Generic

$ pipx install gallia

Without Install

The uvx tool is provided by uv.

$ uvx gallia

Development

uv is used to manage dependencies.

Clone repository

$ git clone https://github.com/Fraunhofer-AISEC/gallia.git

Environment

uv manages the project environment, including the python version. All uv commands must be invoked within the gallia repository.

$ pipx install uv
$ uv sync

If you want to use a different Python version from the one defined in .python-version, the flags --python-preference only-system or --python for uv sync might be helpful; e.g. to use your system provided Python 3.11:

$ uv sync --python-preference only-system --python 3.11

shell

Enable the venv under .venv manually by sourcing:

$ source .venv/bin/activate
$ source .venv/bin/activate.fish

run

Run a single command inside the venv without changing the shell environment:

$ uv run gallia

Development with Plugins

If you want to develop gallia and plugins at the same time, then you need to add gallia as a dependency to your plugin package.

Shell Completion

bash

# register-python-argcomplete gallia > /etc/bash_completion.d/gallia

fish

$ mkdir -p ~/.config/fish/completions
$ register-python-argcomplete --shell fish gallia > ~/.config/fish/completions/gallia.fish

IDE Integration

Just use LSP. Most editors (e.g. neovim) support the Language Server Protocol. The required tools are listed as development dependencies in pyproject.toml and are automatically managed by uv. Please refer to the documentation of your text editor of choice for configuring LSP support.