Skip to content

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.py and CLI documentation docs/cli.md
  • server routes in wraptile/src/wraptile/routes.py and the service interface in wraptile/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.