porespy
porespy copied to clipboard
Ways to make a truly archived porespy installation?
My recent descent into dependency hell has me thinking about making truly 'archived' installations. I'm opening this issue to capture the ideas and options.
Option: We could create executable installers using pynsist. These could be posted on the github page under the releases section along with the release notes.
This guy has made a detailed website about own personal headaches: https://sonotley.github.io/python-deployment-docs/tldr/
A spyder dev suggests this for scientific packages: https://github.com/conda/constructor, though spyder actually uses pynsist for their new spyder standalone installer.
The poetry package gets referenced a lot when it comes to python packaging. I once read a very long blob post by a poetry fan, waiting for the actual point to arrive, and it never did. I guess it's worth another look.
Another option is to manually run conda list --export
on a functioning install of the code, then post the result as a 'conda_pinned_requirements.txt' somwhere. A user can then create an functioning env by doing conda create --name porespy_archive --file conda_pinned_requirements.txt
.
This is actually a pretty simple solution. We could get the GH Actions to generate this file and inlcude it in the release notes along with the changelog.
Your final suggestion is a commonly used pattern (both in conjunction with conda and pip).
The only caveat is that you may need to maintain one requirement file per python version that you aim to support (see, e.g. here).
There is also this: https://github.com/pypa/pipx