Deltares / imod-python

🐍🧰 Make massive MODFLOW models
https://deltares.github.io/imod-python/
MIT License
18 stars 3 forks source link

Should pyproject.toml have a dev dependencies section? #763

Closed Huite closed 8 months ago

Huite commented 9 months ago

I wonder whether we still need a dev section for the pyproject toml.

Mostly, we expect people to install imod-python from conda-forge (or get it via Deltaforge). In that case, the whole pyproject dependencies aren't relevant, since it's the recipe that defines the dependencies.

However, we also release imod python on PyPI and there are people who do not use conda-forge (for whatever reason). For this reason, we've tried to keep a "minimal" version installable via pip, which is why we have the current required dependencies:

dependencies = [
    'pandas',
    'numba',
    'numba_celltree',
    'numpy',
    'pooch',
    'scipy',
    'xarray',
]

The more problematic stuff is things like netCDF4, GDAL, PROJ, etc. For this, the idea is that they're optional dependencies. They are available via optional-dependencies all, which should result in the same packages as the conda-forge install.

For stuff that only developers need (sphinx, etc.), the dev deps are separate. However, since we expect/recommend to use pixi now, we might as well get rid of it?

Huite commented 9 months ago

Also: shouldn't xugrid be included in the required dependencies, as well as e.g. dask? Since I remember an issue (from Hendrik?) where he couldn't read IDFs due to dask missing.

JoerivanEngelen commented 8 months ago

I think the dev dependencies can be removed with the introduction of pixi.

Also: shouldn't xugrid be included in the required dependencies, as well as e.g. dask? Since I remember an issue (from Hendrik?) where he couldn't read IDFs due to dask missing.

Since https://github.com/Deltares/imod-python/pull/707, these have been added. I however, noticed a inconsitency in pinned packages: in pixi.toml xugrid = ">=0.6.4", whereas in pyproject.toml "xugrid >=0.3.0".

Furthermore, another mistake is that hatchling is missing from the pixi.toml. This will probably cause issues when we try to release.