FS#56200 - [ipython] ipython missing dependency on python-jedi and python-pygments

Attached to Project: Community Packages
Opened by Antony Lee (anntzer) - Thursday, 02 November 2017, 02:49 GMT
Last edited by Kyle Keen (keenerd) - Thursday, 02 November 2017, 22:04 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Kyle Keen (keenerd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
IPython declares a dependency on python-jedi and python-pygments (https://github.com/ipython/ipython/blob/6.2.x/setup.py#L186). The Arch Linux package fails to declare these dependencies. (The fact that the IPython codebase includes workarounds to work even when the dependencies are missing should not override the fact that the IPython devs clearly intend jedi and pygments to be dependencies.)

Additional info:
ipython 6.2.1-1


Steps to reproduce:
N/A
This task depends upon

Closed by  Kyle Keen (keenerd)
Thursday, 02 November 2017, 22:04 GMT
Reason for closing:  Fixed
Additional comments about closing:  ipython 6.2.1-2
Comment by Eli Schwartz (eschwartz) - Thursday, 02 November 2017, 14:09 GMT
Well, really, this should be an optdepends. And since upstream is written to make this feature optional, they should not declare in their setuptools keywords that it is *required*, they should declare it as an extras_require.

Non-distro users who want it can install it with `pip install ipython[completion]` and people who don't, won't be forced to.
Comment by Antony Lee (anntzer) - Thursday, 02 November 2017, 20:25 GMT
https://github.com/ipython/ipython/issues/10880#issuecomment-341545190 is the position of the devs: "I would recommend that downstream packagers should turn all of the install_requires into dependencies (or at least 'recommended' in Debian packaging)." I read this as "depends, but optdepends if you really want to"... (semantically, I think optdepends corresponds to Debian's "suggests" rather than "recommended", which is stronger, see https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html#s-depends: "Package A recommends Package B, if the package maintainer judges that most users would not want A without also having the functionality provided by B." (although I am substituting the maintainer's judgement with upstream's); "Package A suggests Package B if B contains files that are related to (and usually enhance) the functionality of A."; man PKGBUILD defines optdepends as "An array of packages (and accompanying reasons) that are not essential for base functionality, but may be necessary to make full use of the contents of this package.")

python-pygments is definitely a strict dependency (IPython actually fails to start without it).

Loading...