DiamondLightSource / httomo

High-throughput tomography pipeline
https://diamondlightsource.github.io/httomo/
Other
5 stars 4 forks source link

Sort out versions of dependencies #249

Closed yousefmoazzam closed 3 months ago

yousefmoazzam commented 6 months ago

In particular, there needs to be a plan for how version compatibility between httomo/httomolib/httomolibgpu is approached. For example:

Also, see that conda builds work as expected.

dkazanc commented 5 months ago

For the 2.0 release of httomo the versions of the httomo libraries should be also 2.0. The templates for those versions are generated in GA job to build documentation and the versions are fixed in docs/doc-conda-requirements.yml file. One possible solution to ensure compatibility is that progress with 2. versions with the libraries meaning that httomo 2. should be compatible with them until the main version upgrade, e.g. 3.0.

For instance httomo 2.0 and httomolibgpu 2.3 will still be compatible while httomolibgpu 3.0 will not. However, if the new method added into httomolib/gpu then the corresponding library file needs to be edited in httomo.

yousefmoazzam commented 4 months ago

This PEP on suggested versioning could be useful as a reference for how we choose versions of httomo + backends https://peps.python.org/pep-0440/#final-releases.

It also has a useful section where they describe the similarities and differences to the "semantic versioning" scheme https://peps.python.org/pep-0440/#semantic-versioning.

(Maybe this comment should go in another issue, to address the versioning scheme at a later date, but I'll put it here in case we want to choose a versioning scheme starting from the very first release).