Contribute to Fractal Client development¶
The development of Fractal Client takes place on the fractal-client Github repository. To ask questions or to inform us of a bug or unexpected behavior, please feel free to open an issue.
Set up the development environment¶
Clone repository¶
First, you should clone the repository
Install package¶
We use uv to manage the development environment and the dependencies - see https://docs.astral.sh/uv/getting-started/installation/ for methods to install it. Running
will create a new virtual environment in./.venv and install the main dependencies (and optionally the dev/docs groups).
Build and release¶
Preliminary check-list:
- The
mainbranch is checked out. - You reviewed dependencies, and the lock file is up to date with
pyproject.toml. - The current HEAD of the
mainbranch passes all the tests (uv run pytest). - You updated the
CHANGELOG.mdfile. - You updated
docs/versions.mdwith the constraints for the new version.
Actual release instructions:
-
Use one of the following
to test updating the version bump. -
If the previous step looks good, remove
--dryand re-run to actually bump the version. This will trigger a dedicated GitHub action to build the new package and publish it to PyPI.
Run tests¶
Unit and integration testing of Fractal Server uses the pytest testing framework.
Before running the test suite, a Fractal Server instance and a PostgreSQL database must be available. For convenience, both services can be started via Docker Compose using the configuration provided at tests/fractal-server/docker-compose.yml:
The Fractal Server service can be customized via environment variables:
FRACTAL_SERVER_BRANCH: Git branch of the Fractal Server repository to use (defaults tomain).
For example:
export FRACTAL_SERVER_BRANCH=123-bug-fix
docker compose -f tests/fractal-server/docker-compose.yml up
Then, you may run the test suite by invoking
from the main directory of thefractal-client repository.
It is sometimes useful to specify additional arguments, e.g.
Tests are also run as part of GitHub Actions Continuous Integration for the fractal-client repository.
Documentation¶
The documentations is built with zensical.
You can preview it locally through