Contributing to the project
Changelog
You can find the complete changelog here.
Reporting
If you have suggestions, ideas, feature requests, or if you have identified a malfunction or error, then please post an issue.
Contributions
The Eozilla project welcomes contributions of any form as long as you respect our code of conduct and follow our contribution guide.
If you'd like to submit code or documentation changes, we ask you to provide a pull request (PR) here. For code and configuration changes, your PR must be linked to a corresponding issue.
Development
Setup
Before you start, make sure you have pixi installed.
Checkout sources
git clone https://github.com/eo-tools/eozilla.git
cd ./eozilla
Create a new Python environment and activate it:
pixi install 
pixi shell
Running the Eozilla server with a local test service
Run local test server
wraptile run -- wraptile.services.local.testing:service
The dev mode is useful if you are changing server code:
wraptile dev wraptile.services.local.testing:service
Run the Eozilla client Python API
from cuiman import Client
client = Client()
client.get_processes()
client.get_jobs()
Run Eozilla client GUI (in Jupyter notebooks)
from cuiman.gui import Client
client = Client()
client.show()
client.show_jobs()
Run Eozilla client CLI
$ cuiman --help
Formatting & Linting
pixi run isort .
pixi run ruff format 
pixi run ruff check
Testing & Coverage
pixi run test
pixi run coverage
Version syncing
Before a release increase version number in root pyproject.toml
then synchronize versions in workspaces tools/pyproject.toml using 
pixi run sync-versions
Code generation
Some code is generated (see respective file headers)
from an OpenAPI specification in tools/openapi.yaml. 
If this file is changed, code need to be regenerated: 
pixi run generate
This will generate Eozilla's
- pydantic models in gavicore/src/gavicore/models.py(uses datamodel-code-generator)
- client implementation in cuiman/src/cuiman/client.pyand CLI documentationdocs/cli.md
- server routes in wraptile/src/wraptile/routes.pyand the service interface inwraptile/src/wraptile/service.py
Documentation
The Eozilla documentation is built using the mkdocs tool.
With repository root as current working directory:
mkdocs build
mkdocs serve
mkdocs gh-deploy
After changing the CLI code, always update its documentation docs/cli.md 
by running
pixi run gen-client
License
The Eozilla project is open source made available under the terms and conditions of the Apache 2.0 license.