-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Apply NEP29 (time-limited support) to IPython #16263
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
Comments
👍 to removing work-around code for old versions of IPython. 50/50 on adding a warning for older versions of IPython. |
Do you suggest to not even bother checking if we're running a too-old ipython? |
Treating IPython like numpy seems reasonable. I’m also 50/50 on even bothering to warn about old versions. |
Pushing to 3.4 as it is not urgent. We talked about this on the call, general agreement, but still want to think about if we should warn about old versions. The code we use from IPython has been stable for an extremely long time so this maybe a moot point. |
cc @ianthomas23; I think this ties in with the backend registry? |
I only went back as far as 7.0.0, as due to matplotlib#16263, we probably don't want to be supporting all the way back to IPython 1.
I only went back as far as 7.0.0, as due to matplotlib#16263, we probably don't want to be supporting all the way back to IPython 1.
Yes it does. Looking forward we have removed the hidden tight coupling between the two projects, such as matplotlib dynamically altering ipython's Can we claim to have done enough to close this issue now by informally adopting NEP29 for IPython backward compatibility and implementing tests to prove it in #28205? Or does there need to be a statement somewhere (code or docs) that this is a formal policy? |
I think what really matters is just that someone actually looked into the compatibility ranges, but a statement in the docs can't hurt... (I'm not insisting on it either.) |
Opened a PR with explicitly adding it to the docs. |
Currently, Matplotlib maintains some code to support some extremely old versions of IPython (supposedly down to 1.x) even though it is quite possible that such versions don't even work with Py3.6+. There are also some tricky points wrt backend switching which were fixed a while ago in ipython (ipython/ipython#9287) but for which we still maintain backcompat for older versions. (Backend switching is the motivation for this proposal.)
Even though IPython is not a "dependency" of Matplotlib, there's obviously some rather tight coupling due to event loop integration, so I would suggest applying NEP29 (or rather our version of it, https://matplotlib.org/devdocs/devel/min_dep_policy.html#python-dependencies): "we should support at least (...) minor versions initially released in the 12 months prior to our planed release date or the oldest that supports our minimum python" (as there is no compiled code in IPython) -- right now this would mean ipython 7.3.0. I'm not asking that we be super strict (we could e.g. also treat ipython like numpy, which means 24 months -- so IPython 6.3.0, right now), but unlimited support seems a bit too much.
Assuming we agree on this, we also need to decide what to do if Matplotlib detects that it is running in an too-old-IPython: error out? print a warning?
The text was updated successfully, but these errors were encountered: