Skip to content

Maintenance

Philipp Niedermayer edited this page Dec 19, 2025 · 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

Add new 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. Do not push changes to the generated *.txt files manually, they will be overwritten during the next CI run!

Add/update python versions

  • Add python version in .github/workflows/dependencies.yaml and push to a new branch deps/add-python-xxx
  • Run the workflow manually at https://github.com/xsuite/xplt/actions/workflows/dependencies.yaml against the deps/add-python-xxx branch
  • This will generate requirements files for the new python version and open a PR against main (!)
  • Change the target of that PR to the deps/add-python-xxx branch and merge it
  • In the deps/add-python-xxx branch, also add the python version to .github/workflows/test.yaml, push and wait for CI to pass
  • If all looks good, merge the deps/add-python-xxx branch

Drop python versions

  • Remove the python version from .github/workflows/dependencies.yaml and .github/workflows/test.yaml, and delete the requirements/*-requirements-pyX.XX.txt files

Clone this wiki locally