This version comes with streamlined options for the Gunicorn startup command
options, and with two new experimental features.
> NOTE 1: you can now enable custom Gunicorn worker/logger by adding the following
> options to the `gunicorn` startup command:
> - `--worker-class fractal_server.gunicorn_fractal.FractalWorker`
> - `--logger-class fractal_server.gunicorn_fractal.FractalGunicornLogger`
> NOTE 2: A new experimental local runner is available, which uses processes
> instead of threads and support shutdown. You can try it out with the
> configuration variable `FRACTAL_BACKEND_RUNNER=local_experimental`
> NOTE 3: A new PostgreSQL database adapter is available, fully based on
> `psycopg3` (rather than `pyscopg2`+`asyncpg`). You can try it out with the
> configuration variable `DB_ENGINE=postgres-psycopg` (note that this requires
> the `pip install` extra `postgres-psycopg-binary`).
* API:
* Add extensive logs to `DELETE /api/v2/project/{project_id}` (\1532).
* Remove catch of `IntegrityError` in `POST /api/v1/project` (\1530).
* App and deployment:
* Move `FractalGunicornLogger` and `FractalWorker` into `fractal_server/gunicorn_fractal.py` (\1535).
* Add custom gunicorn/uvicorn worker to handle SIGABRT signal (\1526).
* Store list of submitted jobs in app state (\1538).
* Add logic for graceful shutdown for job slurm executors. (\1547)
* Runner:
* Change structure of job folders, introducing per-task subfolders (\1523).
* Rename internal `workflow_dir` and `workflow_dir_user` variables to local/remote (\1534).
* Improve handling of errors in `submit_workflow` background task (\1556, \1566).
* Add new `local_experimental` runner, based on `ProcessPoolExecutor` (\1544, \1566).
* Database:
* Add new Postgres adapter `psycopg` (\1562).
* Dependencies
* Add `fabric` to `dev` dependencies (\1518).
* Add new `postgres-psycopg-binary` extra (\1562).
* Testing:
* Extract `pytest-docker` fixtures into a dedicated module (\1516).
* Rename SLURM containers in CI (\1516).
* Install and run SSH daemon in CI containers (\1518).
* Add unit test of SSH connection via fabric/paramiko (\1518).
* Remove obsolete folders from `tests/data` (\1517).