-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Hi all,
I opened this issue to discuss how the packaging can be improved and collect ideas (I cannot start a discussion for some reason).
Currently there are two sources to define the package fenicsxconcrete and its runtime dependencies and optional dependencies: pyproject.toml and .conda/meta.yaml.
Since fenics-dolfinx is a non-python dependency, we aim at providing a conda package, such that stable versions can be installed simply via conda install --channel bam77 fenicsxconcrete or similar.
For the installation of the development version in the CI we currently use environment.yml including fenics-dolfinx as a basis and let pip handle the installation of the runtime dependencies (see pyproject.toml).
However, the same information is necessary in the recipe .conda/meta.yaml to build the conda package.
This is not ideal, because two files need to be maintained instead of just one. The reason for this is also that the package names (and in some cases also contents) on conda-forge and pypi are not the same.
Ideally, only one source of information (e.g. pyproject.toml) is defined/maintained to manage the package.
To accomplish this, my idea at the moment would be to load the data from pyproject.toml inside .conda/meta.yaml and rely on conda build to build the conda package for (a) the CI and (b) the user. (we simply do not rely on pip as we do at the moment).
The pyproject.toml would contain the names of the packages on conda-forge and therefore pip install -e . would not work.
Further info: I found a cookiecutter for conda python packages. Here are examples on the install commands and the recipe