POC: Attempt to package jdaviz in PyOxidizer #1923
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR encompasses the learning lessons I've made to package jdaviz in pyoxidizer. Requires #1890
Some background:
PyOxidizer's approach is much more understandable to me. The end product is similar to PyInstaller in that it is intended to produce a portable executable that can be carried around. PyOxidizer encapsulates a python shell, along with all the dependencies you designate, into a portable package, and you can specify different modules, commands, and instructions to execute in the python shell when you "run" the executable.
So if you just package an "empty" executable, you'll get a portable python instance you can carry around with you! Then if you install different packages, you effectively have a portable virtual environment.
The main blocker I've run into is indygreg/PyOxidizer#237.
jsonschema
which is used byasdf
a direct dependency ofjdaviz
invokes__package__
to determine the location of theschema
folder in thejsonschema
installation inlib/site-packages
. The folder exists and is installed by PyOxidizer properly, but the location is different than whatjsonschema
is expecting. This is a known issue from PyOxidizer (as referenced above), andjsonschema
is already explicitly reported as an "upstream failure" by PyOxidizer: indygreg/PyOxidizer#171Traceback
We should monitor indygreg/PyOxidizer#237 to see if this gets unblocked at some point.
One other issue I ran into: for some reason the pyzmq "subpackage"
pyzmq.libs
is missing from the install, despitepyzmq
being installed properly. I just copied my copy from my working venv into PyOxidizer'slib
folder, and it stopped complainingChange log entry
CHANGES.rst
? If you want to avoid merge conflicts,list the proposed change log here for review and add to
CHANGES.rst
before merge. If no, maintainershould add a
no-changelog-entry-needed
label.Checklist for package maintainer(s)
This checklist is meant to remind the package maintainer(s) who will review this pull request of some common things to look for. This list is not exhaustive.
trivial
label.