tethysplatform / tethys

The Tethys Platform main Django website project repository.
http://tethysplatform.org/
BSD 2-Clause "Simplified" License
92 stars 49 forks source link

[FEATURE] PDM Integration #941

Open swainn opened 1 year ago

swainn commented 1 year ago

Is your feature request related to a problem? Please describe. We are moving toward having official support for a pip installable version of Tethys Platform again, however one challenge we have is that the pip solver is not nearly as rigorous/reliable as the conda solver. I recently discovered pdm, which is an npm-style package managing dependencies and building Python packages. It supports the modern PEP standards (including 517) and multiple build backends (setuptools, flit, hatch(ling)). It also include npm features like lock files and scripts. It also provides hooks at different phases of the project management lifecycle to allow building custom tools (e.g. we could hook into the pdm add command to also add the dependency to the install.yml of an app).

Describe the solution you'd like We should explore integrating PDM with Tethys Platform, especially the pip-installable version. We may be able to leverage it's features to automate the build and deployment of the package to PyPI.

Describe alternatives you've considered N/A

Additional context https://pdm.fming.dev/latest/

msouff commented 1 year ago

This sounds like a possible path to having isolated apps in the same portal as well.

I'm planning to give it a try next time I get a chance.

swainn commented 9 months ago

After some more experience with pdm, I think we could use it as a potential unifier between pip and conda builds/distributions:

The pdm-conda developer has been responsive and already implemented a feature that I requested. So I suspect if we need additional functionality to facilitate this use, they would be more than willing to work with us.