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.