summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2021-07-23 15:45:08 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2021-07-23 15:49:09 +0200
commit055a054ea9a8208395f8fcee5c84d0bfab841e0a (patch)
treebe0138bae056e5f42620dbbc18b17774878d3032 /dev-python/spyder
parentdev-python/pyls-spyder: depend on pylsp all-plugins flag (diff)
downloadgentoo-055a054ea9a8208395f8fcee5c84d0bfab841e0a.tar.gz
gentoo-055a054ea9a8208395f8fcee5c84d0bfab841e0a.tar.bz2
gentoo-055a054ea9a8208395f8fcee5c84d0bfab841e0a.zip
dev-python/spyder: do not depend on parso,jedi,pylsp
spyder does not use these directly, instead it imports pyls-spyder, which imports pylsp, which imports jedi, which imports parso. We remove the indirect dependencies here so we don't have to touch this ebuilds if e.g. pylsp becomes (in)compatible with a certain version of jedi. Instead we record this infomration in the downstream ebuilds where it belongs. This requires some sed magic to make sure spyder's dependency checks don't complain. This is intended to once and for all fix Bug 743466 and prevent the repeating issue of bugs such as Bug 803269 Closes: https://bugs.gentoo.org/803269 Bug: https://bugs.gentoo.org/743466 Package-Manager: Portage-3.0.20, Repoman-3.0.3 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'dev-python/spyder')
-rw-r--r--dev-python/spyder/Manifest2
-rw-r--r--dev-python/spyder/spyder-4.2.5-r2.ebuild (renamed from dev-python/spyder/spyder-4.2.5-r1.ebuild)68
-rw-r--r--dev-python/spyder/spyder-5.0.5-r1.ebuild (renamed from dev-python/spyder/spyder-5.0.5.ebuild)58
3 files changed, 55 insertions, 73 deletions
diff --git a/dev-python/spyder/Manifest b/dev-python/spyder/Manifest
index 83fb9880490b..8fea8366a3a6 100644
--- a/dev-python/spyder/Manifest
+++ b/dev-python/spyder/Manifest
@@ -1,4 +1,4 @@
DIST spyder-4.2.5.tar.gz 11539071 BLAKE2B 9d7a98da018aae934803d640995fe2dfa6bbb20bfc7140bd00f5e7a00a09c47922fefd8df84f4b217a50176ee190515da6f4cbf498a03cae68e2ac4f5ec70664 SHA512 081b047a45b7522a69b1b21a221ab5cdef47f87f36ed4423ff63297d205f924c1627517c50622acb2d10efa094bc506fed4ec88f861775d3f58e81ac6ef017ac
DIST spyder-5.0.5.tar.gz 20606379 BLAKE2B 52f05ffcf0b6aabdac23a055af1c674c6aa80a7d4f3608779df1d46e0e51de63a71b4e97db286dc92e071cbb44a0dc827aa750d8ca538e6764b5e780f493d615 SHA512 17654ee76eb51c5f5b9f494d009af3d7813f869f27f22ceb8ad8ca96dcedcbcd6b86c7a3895bb63eba3cc60e4a57ab94128abb8d21f05c4672b8bb8d545fe1ff
-DIST spyder-docs-6ebb1ace2d7ce94e45e8b2c1b7ddb53395f86e67.tar.gz 78446300 BLAKE2B 4225589581ef47237d7025f506812840c959e589cddfe47d2c4d3a74d7fc876f67eda291ad07e82b054ff2666bed34fa0edca1e1c0e1ff5574efb2db1028a42a SHA512 4d0bd348ec3335e022456c19dc319295948061cea45b0f1e5a05c2640943776b5c3bdc2581fdc0571bd98fe8834af035134084394ce6711d5a69598515bd0e9b
+DIST spyder-docs-5eb83118155a3765de4a0f863b936bcbe73bb7aa.tar.gz 85362596 BLAKE2B 7294dcd0f169958da132b141379b9b1cf497095981a86416fb98d98f98e30a425fe2e628a523785f932bbc06a2ba1ecddb45bae0df009887db928f879e08cdef SHA512 45f45546b83afb3036348e89ee3eded4d8ecee36ce58fe697da14677fbff8fa2dfe170be7385ecf10e1989817780c07b5676d545ee34e87a8f252929ad72882e
DIST spyder-docs-78b25754c69a20643258821146e398ad5535c920.tar.gz 69167467 BLAKE2B d2815d552002f329b5fac59329fba3b3b0cd592bcbdacc0878966919e44dbab29548533661e60a1b9b8fd763d57d1e4c2f761782ace1b0a814a5f0cec1f66af9 SHA512 10764367fd5f830d7a3620b9d9e7ec4ab74539c1f48326c0c40f7caff74a50401addc7609fe1558c57dac4649d0a214c0d2d77cecd100bd8574151134e49634d
diff --git a/dev-python/spyder/spyder-4.2.5-r1.ebuild b/dev-python/spyder/spyder-4.2.5-r2.ebuild
index cb91fff8bf7a..04d05d40e107 100644
--- a/dev-python/spyder/spyder-4.2.5-r1.ebuild
+++ b/dev-python/spyder/spyder-4.2.5-r2.ebuild
@@ -26,21 +26,13 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-# The test suite often hangs or does not work.
-# Technically spyder requires pyqt5<13, which
-# we do not have in ::gentoo any more. Likely
-# this is the reason many of the tests fail
-# or hang. RESTRICTing because IMO it is
-# not worth the several hours I spend every
-# single version bump checking which tests
-# do and do not work. Spyder itself works
-# fine with pyqt5>13.
+# The test suite often hangs or does not work. Technically spyder requires
+# pyqt5<13, which we do not have in ::gentoo any more. Likely this is the reason
+# many of the tests fail or hang. RESTRICTing because IMO it is not worth the
+# several hours I spend every single version bump checking which tests do and
+# do not work. Spyder itself works fine with pyqt5>13.
RESTRICT="test"
-# White space separated deps are expansion of python-language-server[all] dep
-# As the pyls ebuild does not add flags for optional runtime dependencies
-# we have to manually specify these desp instead of just depending on the [all]
-# flag. The indentation allows us to distinguish them from spyders direct deps.
RDEPEND="
>=dev-python/atomicwrites-1.2.0[${PYTHON_USEDEP}]
>=dev-python/chardet-2.0.0[${PYTHON_USEDEP}]
@@ -48,31 +40,15 @@ RDEPEND="
>=dev-python/diff-match-patch-20181111[${PYTHON_USEDEP}]
>=dev-python/intervaltree-3.0.2[${PYTHON_USEDEP}]
>=dev-python/ipython-7.6.0[${PYTHON_USEDEP}]
- ~dev-python/jedi-0.17.2[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/keyring-17.0.0[${PYTHON_USEDEP}]
>=dev-python/nbconvert-4.0[${PYTHON_USEDEP}]
>=dev-python/numpydoc-0.6.0[${PYTHON_USEDEP}]
- ~dev-python/parso-0.7.0[${PYTHON_USEDEP}]
>=dev-python/pexpect-4.4.0[${PYTHON_USEDEP}]
>=dev-python/pickleshare-0.4[${PYTHON_USEDEP}]
>=dev-python/psutil-5.3[${PYTHON_USEDEP}]
>=dev-python/pygments-2.0[${PYTHON_USEDEP}]
>=dev-python/pylint-1.0[${PYTHON_USEDEP}]
- >=dev-python/python-lsp-server-1.0.1[${PYTHON_USEDEP}]
-
- dev-python/autopep8[${PYTHON_USEDEP}]
- >=dev-python/flake8-3.8.0[${PYTHON_USEDEP}]
- >=dev-python/mccabe-0.6.0[${PYTHON_USEDEP}]
- <dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/pycodestyle-2.7.0[${PYTHON_USEDEP}]
- >=dev-python/pydocstyle-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/pyflakes-2.3.0[${PYTHON_USEDEP}]
- <dev-python/pyflakes-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/pylint-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/rope-0.10.5[${PYTHON_USEDEP}]
- dev-python/yapf[${PYTHON_USEDEP}]
-
>=dev-python/python-lsp-black-1.0.0[${PYTHON_USEDEP}]
>=dev-python/pyls-spyder-0.4.0[${PYTHON_USEDEP}]
>=dev-python/pyxdg-0.26[${PYTHON_USEDEP}]
@@ -145,24 +121,38 @@ python_prepare_all() {
# in making the switch. Because we are running into issues with outdated deps
# and a whole dependency mess as a result, we can no longer wait for upstream.
find . -name "*.py" -exec sed -i \
- -e 's/python-language-server\[all\]>=0.36.2,<1.0.0/python-lsp-server\[all\]>=1.0.0/g' \
- -e 's/python-language-server/python-lsp-server/g' \
- -e 's/python_language_server/python_lsp_server/g' \
- -e 's/python-jsonrpc-server/python-lsp-jsonrpc/g' \
- -e 's/python_jsonrpc_server/python_lsp_jsonrpc/g' \
-e 's/pyls/pylsp/g' \
-e 's/pylsp-spyder/pyls-spyder/g' \
-e 's/pylsp_spyder/pyls_spyder/g' \
- -e 's/pyls-spyder>=0.3.2,<0.4.0/pyls-spyder>=0.4.0/g' \
-e 's/pylsp-black/python-lsp-black/g' \
+ -e 's/pyls-spyder>=0.3.2,<0.4.0/pyls-spyder>=0.4.0/g' \
-e 's/>=0.3.2;<0.4.0/>=0.4.0/g' \
- -e 's/>=0.36.2;<1.0.0/>=1.0.0/g' \
{} + || die
- # do not depend on pyqt5<13
- sed -i -e '/pyqt5/d' \
+ # Do not depend on pyqt5<5.13, this dependency is carried by QtPy[pyqt5]
+ # Do not depend on pyqtwebengine<5.13, this dependency is carried by QtPy[webengine]
+ # Do not depend on parso and jedi, this is dependency is carried in python-lsp-server
+ # Do not depend on python-lsp-server, this dependency is carried in pyls-spyder
+ # The explicit version requirements only make things more complicated, if e.g.
+ # pyls-spyder gains compatibility with a newer version of python-lsp-server
+ # in a new release it will take time for this information to propagate into
+ # the next spyder release. So just remove the dependency and let the other
+ # ebuilds handle the version requirements to speed things up and prevent
+ # issues such as Bug 803269.
+ sed -i \
+ -e '/pyqt5/d' \
-e '/pyqtwebengine/d' \
- setup.py || die
+ -e '/python-language-server/d' \
+ -e '/python-lsp-server/d' \
+ -e '/parso/d' \
+ -e '/jedi/d' \
+ {setup.py,requirements/conda.txt} || die
+ sed -i \
+ -e "/^PYLS_REQVER/c\PYLS_REQVER = '>=0.0.1'" \
+ -e "/^PYLSP_REQVER/c\PYLSP_REQVER = '>=0.0.1'" \
+ -e "/^PARSO_REQVER/c\PARSO_REQVER = '>=0.0.1'" \
+ -e "/^JEDI_REQVER/c\JEDI_REQVER = '>=0.0.1'" \
+ spyder/dependencies.py || die
# do not check deps, fails because we removed pyqt5 dependency above
sed -i -e 's:test_dependencies_for_spyder_setup_install_requires_in_sync:_&:' \
diff --git a/dev-python/spyder/spyder-5.0.5.ebuild b/dev-python/spyder/spyder-5.0.5-r1.ebuild
index 27d30b0d5a4c..75ea2dbe52d6 100644
--- a/dev-python/spyder/spyder-5.0.5.ebuild
+++ b/dev-python/spyder/spyder-5.0.5-r1.ebuild
@@ -9,7 +9,7 @@ DISTUTILS_USE_SETUPTOOLS=rdepend
inherit optfeature xdg distutils-r1
# Commit of documentation to fetch
-DOCS_PV="6ebb1ace2d7ce94e45e8b2c1b7ddb53395f86e67"
+DOCS_PV="5eb83118155a3765de4a0f863b936bcbe73bb7aa"
DESCRIPTION="The Scientific Python Development Environment"
HOMEPAGE="
@@ -41,13 +41,10 @@ RDEPEND="
>=dev-python/diff-match-patch-20181111[${PYTHON_USEDEP}]
>=dev-python/intervaltree-3.0.2[${PYTHON_USEDEP}]
>=dev-python/ipython-7.6.0[${PYTHON_USEDEP}]
- ~dev-python/jedi-0.17.2[${PYTHON_USEDEP}]
>=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}]
>=dev-python/keyring-17.0.0[${PYTHON_USEDEP}]
>=dev-python/nbconvert-4.0[${PYTHON_USEDEP}]
>=dev-python/numpydoc-0.6.0[${PYTHON_USEDEP}]
- >=dev-python/parso-0.7.0[${PYTHON_USEDEP}]
- <dev-python/parso-0.8.0[${PYTHON_USEDEP}]
>=dev-python/pexpect-4.4.0[${PYTHON_USEDEP}]
>=dev-python/pickleshare-0.4[${PYTHON_USEDEP}]
>=dev-python/psutil-5.3[${PYTHON_USEDEP}]
@@ -55,7 +52,6 @@ RDEPEND="
>=dev-python/pylint-1.0[${PYTHON_USEDEP}]
>=dev-python/python-lsp-black-1.0.0[${PYTHON_USEDEP}]
>=dev-python/pyls-spyder-0.4.0[${PYTHON_USEDEP}]
- >=dev-python/python-lsp-server-1.0.1[${PYTHON_USEDEP}]
>=dev-python/pyxdg-0.26[${PYTHON_USEDEP}]
>=dev-python/pyzmq-17[${PYTHON_USEDEP}]
~dev-python/qdarkstyle-3.0.2[${PYTHON_USEDEP}]
@@ -72,21 +68,6 @@ RDEPEND="
>=dev-python/watchdog-0.10.3[${PYTHON_USEDEP}]
"
-# python-lsp-server[all] deps
-RDEPEND+="
- dev-python/autopep8[${PYTHON_USEDEP}]
- >=dev-python/flake8-3.8.0[${PYTHON_USEDEP}]
- >=dev-python/mccabe-0.6.0[${PYTHON_USEDEP}]
- <dev-python/mccabe-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/pycodestyle-2.7.0[${PYTHON_USEDEP}]
- >=dev-python/pydocstyle-2.0.0[${PYTHON_USEDEP}]
- >=dev-python/pyflakes-2.3.0[${PYTHON_USEDEP}]
- <dev-python/pyflakes-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/pylint-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/rope-0.10.5[${PYTHON_USEDEP}]
- dev-python/yapf[${PYTHON_USEDEP}]
-"
-
BDEPEND="
test? (
dev-python/cython[${PYTHON_USEDEP}]
@@ -146,28 +127,39 @@ python_prepare_all() {
# The original hasn't been update in over 6 months, and spyder upstream is slow
# in making the switch. Because we are running into issues with outdated deps
# and a whole dependency mess as a result, we can no longer wait for upstream.
- # Also relax the parso dependency to allow parso 0.7.1
find . -name "*.py" -exec sed -i \
- -e 's/python-language-server\[all\]>=0.36.2,<1.0.0/python-lsp-server\[all\]>=1.0.0/g' \
- -e 's/python-language-server/python-lsp-server/g' \
- -e 's/python_language_server/python_lsp_server/g' \
- -e 's/python-jsonrpc-server/python-lsp-jsonrpc/g' \
- -e 's/python_jsonrpc_server/python_lsp_jsonrpc/g' \
-e 's/pyls/pylsp/g' \
-e 's/pylsp-spyder/pyls-spyder/g' \
-e 's/pylsp_spyder/pyls_spyder/g' \
- -e 's/pyls-spyder>=0.3.2,<0.4.0/pyls-spyder>=0.4.0/g' \
-e 's/pylsp-black/python-lsp-black/g' \
+ -e 's/pyls-spyder>=0.3.2,<0.4.0/pyls-spyder>=0.4.0/g' \
-e 's/>=0.3.2;<0.4.0/>=0.4.0/g' \
- -e 's/>=0.36.2;<1.0.0/>=1.0.0/g' \
- -e "s/'parso==0.7.0'/'parso>=0.7.0,<0.8.0'/g" \
- -e "s/'=0.7.0'/'>=0.7.0;<0.8.0'/g" \
{} + || die
- # do not depend on pyqt5<13
- sed -i -e '/pyqt5/d' \
+ # Do not depend on pyqt5<5.13, this dependency is carried by QtPy[pyqt5]
+ # Do not depend on pyqtwebengine<5.13, this dependency is carried by QtPy[webengine]
+ # Do not depend on parso and jedi, this is dependency is carried in python-lsp-server
+ # Do not depend on python-lsp-server, this dependency is carried in pyls-spyder
+ # The explicit version requirements only make things more complicated, if e.g.
+ # pyls-spyder gains compatibility with a newer version of python-lsp-server
+ # in a new release it will take time for this information to propagate into
+ # the next spyder release. So just remove the dependency and let the other
+ # ebuilds handle the version requirements to speed things up and prevent
+ # issues such as Bug 803269.
+ sed -i \
+ -e '/pyqt5/d' \
-e '/pyqtwebengine/d' \
- setup.py || die
+ -e '/python-language-server/d' \
+ -e '/python-lsp-server/d' \
+ -e '/parso/d' \
+ -e '/jedi/d' \
+ {setup.py,requirements/conda.txt} || die
+ sed -i \
+ -e "/^PYLS_REQVER/c\PYLS_REQVER = '>=0.0.1'" \
+ -e "/^PYLSP_REQVER/c\PYLSP_REQVER = '>=0.0.1'" \
+ -e "/^PARSO_REQVER/c\PARSO_REQVER = '>=0.0.1'" \
+ -e "/^JEDI_REQVER/c\JEDI_REQVER = '>=0.0.1'" \
+ spyder/dependencies.py || die
# do not check deps, fails because we removed pyqt5 dependency above
sed -i -e 's:test_dependencies_for_spyder_setup_install_requires_in_sync:_&:' \