Repository: spyder-ide/spyder

Issue:
Update Jedi dependency upper bound
<!--- **PLEASE READ:** When submitting here, please ensure you've completed the following checklist and checked the boxes to confirm. Issue reports without it may be closed. Thanks! --->

### Issue Report Checklist

* [X] Searched the [issues page](https://github.com/spyder-ide/spyder/issues?q=is%3Aissue) for similar reports
* [X] Read the relevant sections of the [Spyder Troubleshooting Guide](https://github.com/spyder-ide/spyder/wiki/Troubleshooting-Guide-and-FAQ) and followed its advice
* [-] Reproduced the issue after updating with ``conda update spyder`` (or ``pip``, if not using Anaconda)
* [-] Could not reproduce inside ``jupyter qtconsole`` (if console-related)
* [-] Tried basic troubleshooting (if a bug/error)
    * [ ] Restarted Spyder
    * [ ] Reset preferences with ``spyder --reset``
    * [ ] Reinstalled the latest version of [Anaconda](https://www.anaconda.com/download/)
    * [ ] Tried the other applicable steps from the Troubleshooting Guide
* [X] Completed the **Problem Description**, **Steps to Reproduce** and **Version** sections below


## Problem Description
spyder currently sets an upper bound on its jedi dependency of 0.19.0, in several files - `binder/environment.yml`, `external-deps/python-lsp-server/pyproject.toml`, `requirements/main.yml`, `setup.py` and `spyder/dependencies.py` at least. Upstream lsp, which is where this dependency comes from I believe, [bumped it to 0.20.0 recently](https://github.com/python-lsp/python-lsp-server/pull/416) with the note that there "don't seem to be any breaking changes". spyder should probably inherit this bump so it can be used with jedi 0.19.


### What steps reproduce the problem?

1. Try and install spyder with jedi 0.19.

### What is the expected output? What do you see instead?

It fails, but it should be allowed.

## Versions

This is present in current git head and all supported branches.


Discussion:
I'd send a PR for this, but I couldn't find an explanation of the procedure for bumping a dependency that comes from lsp like this.
Hey @AdamWill, thanks for reporting and for the offer to help.

> I'd send a PR for this, but I couldn't find an explanation of the procedure for bumping a dependency that comes from lsp like this.

That's right, we don't have one, but the procedure is like this:

* Open a PR against our `5.x` branch (our maintenance one), so this can be part of our next version (5.5.0).
* Synchronize our `python-lsp-server` subrepo, as described [here](https://github.com/spyder-ide/spyder/blob/master/CONTRIBUTING.md#making-contributions-that-depend-on-pull-requests-in-python-lsp-server-or-qtconsole) (use the last command on that section). That will update the dependency in `external-deps/python-lsp-server/pyproject.toml`.
* Bump our Jedi requirement to `>=0.17.2,<0.20` in the other files you mentioned (`binder/environment.yml`, `requirements/main.yml`, `setup.py` and `spyder/dependencies.py`).

That should do it, but let me know if you have other questions about this process.

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -210,7 +210,7 @@ def run(self):
     'diff-match-patch>=20181111',
     'intervaltree>=3.0.2',
     'ipython>=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0,!=8.11.0,!=8.12.0,!=8.12.1',
-    'jedi>=0.17.2,<0.19.0',
+    'jedi>=0.17.2,<0.20.0',
     'jellyfish>=0.7',
     'jsonschema>=3.2.0',
     'keyring>=17.0.0',
diff --git a/spyder/dependencies.py b/spyder/dependencies.py
--- a/spyder/dependencies.py
+++ b/spyder/dependencies.py
@@ -40,7 +40,7 @@
 INTERVALTREE_REQVER = None if is_pynsist() else '>=3.0.2'
 IPYTHON_REQVER = (
     ">=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0,!=8.11.0,!=8.12.0,!=8.12.1")
-JEDI_REQVER = '>=0.17.2,<0.19.0'
+JEDI_REQVER = '>=0.17.2,<0.20.0'
 JELLYFISH_REQVER = '>=0.7'
 JSONSCHEMA_REQVER = '>=3.2.0'
 KEYRING_REQVER = '>=17.0.0'


Test patch: