porespy icon indicating copy to clipboard operation
porespy copied to clipboard

Ways to make a truly archived porespy installation?

Open jgostick opened this issue 3 years ago • 7 comments

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.

jgostick avatar Jan 18 '22 19:01 jgostick

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.

jgostick avatar Jan 18 '22 19:01 jgostick

This guy has made a detailed website about own personal headaches: https://sonotley.github.io/python-deployment-docs/tldr/

jgostick avatar Jan 18 '22 19:01 jgostick

A spyder dev suggests this for scientific packages: https://github.com/conda/constructor, though spyder actually uses pynsist for their new spyder standalone installer.

jgostick avatar Jan 18 '22 19:01 jgostick

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.

jgostick avatar Jan 18 '22 19:01 jgostick

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.

jgostick avatar Jan 19 '22 03:01 jgostick

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).

ltalirz avatar Jan 30 '22 00:01 ltalirz

There is also this: https://github.com/pypa/pipx

jgostick avatar Feb 14 '22 15:02 jgostick