palantir / python-language-server

An implementation of the Language Server Protocol for Python
MIT License
2.61k stars 283 forks source link

Python2 support #737

Open mpanarin opened 4 years ago

mpanarin commented 4 years ago

Python2 reached its EOL. Will pyls continue to support it?

Jedi already dropped support for python2 in its latest release. Also added a bunch of sweet improvements like:

pretty sure spyder community will benefit from this changes a lot. On the other hand we have rope as a dependency that supports python3 only partly. But using it for completion is inferior to Jedi, imo. And renaming with it is super unstable with a big project, so I disabled rope completely. Maybe it is worth investing into making refactoring with jedi possible? So rope could be dropped as a dependency

@ccordoba12 @gatesn

gatesn commented 4 years ago

Agree with regard to Rope. I believe Jedi was looking into providing basic refactoring support but I might be wrong.

Seems like we might also be ready to drop Python 2 support from master but I’d like to keep a release branch around for hot fixes.

ccordoba12 commented 4 years ago

pretty sure spyder community will benefit from this changes a lot.

Yes, totally! Thanks for bringing this up @mpanarin!

Seems like we might also be ready to drop Python 2 support from master but I’d like to keep a release branch around for hot fixes.

Agreed, and that's what I was about to propose too: creating a 0.x branch for bug fixes only and leaving develop to switch to Python 3, with the next release being 1.0.0. I know that's an important milestone, but from the Spyder side we're committed to keep maintaining this project and make it as robust and stable as possible.

I'd also like to have a last release (0.32.0) before moving with this plan, with a couple of PRs that are ready to be merged.

@gatesn, what do you think?

gatesn commented 4 years ago

Sounds good to me, let’s 1.0!

ccordoba12 commented 4 years ago

Glad you agreed! I'll release 0.32.0 and create the 0.x maintenance branch this weekend.

mcepl commented 4 years ago

Agree with regard to Rope. I believe Jedi was looking into providing basic refactoring support but I might be wrong.

This is a rope maintainer speaking. We are claiming now to support Python 3 (and at least our rather extensive test suite is passing), so if you can file any bugs in that regard to our issue tracker (https://github.com/python-rope/rope/issues), it would be helpful.

benmezger commented 4 years ago

Hey all, is there someone working on this already? I would be happy to contribute on removing Python 2 support from the code-base.

ccordoba12 commented 4 years ago

Hey all, is there someone working on this already?

No, there's no one working on it at the moment, and thanks a lot for offering your help!

You can start working on this and we'll merge it as soon as we create a maintenance branch for 0.x (after releasing 0.32.0).

benmezger commented 4 years ago

You can start working on this and we'll merge it as soon as we create a maintenance branch for 0.x (after releasing 0.32.0).

Nice. Do you have any suggestions on where I could start? At the moment, I am typing the related config code, to get a better feeling on what we will need to change to remove Python2 support, but I would like to hear some suggestions on this if possible.

ccordoba12 commented 4 years ago

I don't have any suggestions for you, sorry.