Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch dxtbx CI to a unified dependency system (#753)
This is the start of work to consolidate the requirements for specifying dials-ecosystem dependencies for development, testing, conda-forge, mac, linux, windows, prebuilt-cctbx and bootstrap. It defines the dependencies for dxtbx alone, in CI jobs. All dependencies are declared in a single `dependencies.yaml` in the dxtbx root. They are now split up into categories matching the [conda-build] definitions: - `build` is for build tooling only required when you build the packages (the user would not install these) - `host` is.. slightly harder to pin down. It's effectively the binary packages that you need present at build time, to e.g. link against. - `run` is any dependencies only required to actually run dxtbx, separate from building it - `test` is any dependencies used for running tests (e.g. dials-data, pytest...) Platform/target selection of dependencies is handled with _selectors_. This is a very small subset of [the concept used by conda-build][selectors]. Effectively, you can mark lines as only included when a condition is met. For example: ``` - pycbf #[prebuilt_cctbx] - scipy - wxpython >=4.2.0 #[not osx] - wxpython >=4.2.0=*_5 #[osx] - pytest - pytest-nunit # [win] ``` `pycbf` will only be included when using prebuilt (e.g. from conda-forge) cctbx. `scipy` and `pytest` will always be included, `wxpython` will have different constraints depending on whether you are running on macOS or not, and `pytest-nunit` will only be included on windows. Valid selector combinations are currently specified in the header of `dependencies.yaml`. [conda-build]: https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#requirements-section [selectors]: https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#preprocess-selectors
- Loading branch information