conda-forge / metatensor-feedstock

A conda-smithy repository for metatensor.
BSD 3-Clause "New" or "Revised" License
0 stars 2 forks source link

Naming convention for the different packages on conda #2

Open Luthaf opened 6 months ago

Luthaf commented 6 months ago

Comment:

The metatensor project contains a lot of different sub-packages, developed somehow independently. This feedstock currently builds the native library for metatensor-core, but there are also the following packages:

We are also leaving open the possibility for more language bindings to metatensor-core or metatensor-torch. The question is what's the best way to split the packages on conda-forge. I think the native libraries should be packaged separately from the Python bindings (they are used on their own when running pre-trained model inside simulation engines).

Our current idea would be to have the following packages on conda-forge:

As well as the following empty packages with only dependencies on the above (as a convenient way for users to install most packages at the same time):


For reference, the following packages are currently on PyPI:

As well as an empty metatensor package with dependency on the above. With the proposed package separation above, the following commands would be mostly equivalent:

conda install pip install
metatensor metatensor
metatensor-torch metatensor[torch]
metatensor-python-core metatensor-core
metatensor-python-torch metatensor-torch
metatensor-python-operations metatensor-operations
metatensor-python-learn metatensor-learn
metatensor-lib-core /
metatensor-lib-torch /

@conda-forge/core does this looks like a good packaging plan to you? Is the -lib and -python somewhat common in the ecosystem or should we adopt a better naming convention?

isuruf commented 6 months ago

For metatensor-lib-core: libmetatensor-core would be better. For metatensor-python-core: I'd suggest either metatensor-core or python-metatensor-core.

Luthaf commented 6 months ago

Thank you very much for the feedback. The plan will be to go with the following (- package, => dependency):

- libmetatensor

- libmetatensor-torch
  => libmetatensor

- python-metatensor-core
  => libmetatensor

- python-metatensor-torch
  => libmetatensor-torch

- python-metatensor-operation
  => python-metatensor-core

- python-metatensor-learn
  => python-metatensor-core

# Meta packages
- metatensor
  => libmetatensor
  => python-metatensor-core
  => python-metatensor-operations
  => python-metatensor-learn

- metatensor-torch
  => metatensor
  => python-metatensor-torch