Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JOSS Review] Python version support and clarification of framework vs. application #36

Closed
matthewfeickert opened this issue Aug 11, 2022 · 0 comments · Fixed by #40
Closed

Comments

@matthewfeickert
Copy link
Contributor

For the JOSS functionality check of openjournals/joss-reviews#4480

Installation: Does installation proceed as outlined in the documentation?

Yes, but not in a satisfactory manner. The instructions are to run

$ pip install ipyannotator

however, the unversioned documentation (so need to use the README) and setup.py via settings.ini claims that ipyannotator supports Python 3.7+

min_python = 3.7

but that is in opposition with the active metadata on PyPI which states that Python 3.8+ is required. If you use a Python 3.7 runtime to install ipyannotator you get an old version of v0.4.0 which is not a version that is part of the review.

Additionally, because of the way that Poetry locks down things the dependencies that are listed in the documentation are very severely out of date/inaccurate. Instead of the 4 listed dependencies ipyannotator actually incurs 15 dependencies. The additonal constraints that are imposed with Poetry's syntax means that the claim that Python 3.8+ is supported is technically true, but there are multiple instances in which wheels are not available for modern CPython. For example, for Python 3.10 the Poetry constraint on scikit-image of

scikit-image = "^0.18.3"

translates to scikit-image<0.19.0,>=0.18.3 and as can be seen from PyPI and

$ python -m pip index versions scikit-image
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
scikit-image (0.19.3)
Available versions: 0.19.3, 0.19.2, 0.19.1, 0.19.0, 0.18.3, 0.18.2, 0.18.1, 0.18.0, 0.17.2, 0.17.1, 0.16.2, 0.15.0, 0.14.5, 0.14.3, 0.14.2, 0.14.1, 0.14.0, 0.13.1, 0.13.0, 0.12.3, 0.12.2, 0.12.1, 0.12.0, 0.11.3, 0.11.2, 0.10.1, 0.10.0, 0.9.3, 0.9.1, 0.9.0, 0.8.2, 0.8.1, 0.8.0, 0.7.2
   INSTALLED: 0.18.3
   LATEST:    0.19.3

that leaves exactly one viable version, scikit-image v0.18.3 for which there is no Python 3.10 wheel available and so the wheel has to be built from the sdist.

So while it is possible to install ipyannotator on Python 3.10 it takes quite some time and results in a large collection of dependencies

$ python -m pip freeze | wc -l
105

that are extremely constrained. This is of course technically fine, but the lines of what is a "framework" and what is an "application" are starting to merge quite a bit as if ipyannotator is meant to be used alongside other software in an environment it is far too restricting.

The documentation around the installation should try to clarify this or make it clear that the versions of Python that the authors intend the software to be used with are more constrained then what is currently shown.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant