Skip to content

Maintenance

Philipp Niedermayer edited this page Apr 21, 2026 · 9 revisions

Dependencies

Dependencies are managed with pip-compile, and CI is set up to update them regularly. See .github/workflows/dependencies.yaml. It will open PRs once in a while to keep dependencies updated. The workflow can also manually be triggered from the GitHub actions page at https://github.com/xsuite/xplt/actions/workflows/dependencies.yaml

Never push changes to the generated requirements/*.txt and .python-version files manually, they will be overwritten during the next CI run!

Add/update dependencies

  • Add package dependencies in pyproject.toml (consider using optional-dependencies)
  • Add further dependencies for the example notebooks in requirements/examples.in (package dependencies are added by default)
  • Add further dependencies for testing in requirements/tests.in (package and example dependencies are added by default)
  • Add further dependencies for building the sphinx docs in requirements/sphinx.in (package and example dependencies are added by default)

Push it to the dev branch, this will trigger CI to update the generated *.txt files for you.

Add/update python versions

Drop python versions

Resolve test failure after dependency updates

In case the PR opened by the automatic dependency update action fails some of the tests, a manual checkout and debugging is required.

If resolving the issue requires changes to the dependency definitions in requirements/*.in or pyproject.toml, those changes first have to be pushed to main. This will trigger the dependency update workflow to make sure all requirements files are synched properly and updated the PR.

In any case, you can then work on the deps/dependency-updates branch, debug the error or simply rerun the example jupyter notebooks. If it's just visual differences, committing the new reference outputs might be sufficient to resolve the issue.

git checkout deps/dependency-updates
git pull
source .venv/bin/activate
pip install -r requirements/tests-requirements-py3.13.txt # adjust python version
pip install -e .
pytest -v -W error::RuntimeWarning
# resolve issues, commit and push ...

Clone this wiki locally