GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Plan for plugins moving forward · Issue #27 · python-lsp/python-lsp-server

Plan for plugins moving forward #27

New issue
Copy link
New issue
Copy link
Open
Open
Plan for plugins moving forward#27
Copy link

Description

@yeraydiazdiaz
yeraydiazdiaz
opened on Apr 29, 2021
Issue body actions

Hello, thanks for starting this community-driven fork 🙏🏻

I noticed that @andfoy has been creating issues in the repositories for different plugins but I wonder if a different approach would be benefitial.

I was thinking the newly formed python-lsp organisation would be a good place to gather these plugins so they're not only easier to find but can benefit from the shared experience of other plugin and pylsp contributors. These plugins could also be (re)published to PyPI with proper namespacing and maybe a classifier so they're easier to find.

@andfoy issues are certainly a step in the right direction, but frankly most of the plugins look quite abandoned and some of them already have forks that have been published independently (pyls-mypy for example was forked into mypy-ls), and I don't have high hopes they will be addressed soon, so, the only solution that comes to mind is forking, with all due respect to the authors of the plugins.

I hope this doesn't come across as confrontational, I genuinely would like to see an ecosystem of well-maintained plugins for pylsp.

Reacted by Michał Krassowski, Michael Weimann, jdhao, Rocky, nyngwang and Felipe S. S. Schneider
Reacted by Rocky, nyngwang and Felipe S. S. Schneider

Activity

Next
  1. andfoy commented on Apr 29, 2021

    @andfoy
    andfoy
    on Apr 29, 2021
    Contributor
    More actions

    I think plugins can live in the organization, as long as the following conditions are met:

    1. Someone is going to have to maintain them

    Sadly, we (the Spyder team), won't have time to take over all the plugins

    1. They would need to be renamed pylsp_*, e.g., pylsp_black, pylsp_mypy, etc

    This is to distinguish them from the current existing plugins that work only with the old pyls. This change however may cause confusion to the users of the plugins that already are taking action to transition, such as pyls-memestra and pyls-spyder.

    If we were to preserve the original pyls prefix, we would need to contact the original owners in order to get publishing permissions in PyPi, which may be difficult since the original plugins are unmaintained.

    I think the best take here would be waiting for a few weeks in order to see if some plugin maintainers appear. I'll also publish a checkbox list here of all the pyls plugins, and which of those are already migrated.

    Otherwise, if someone is able to volunteer for ownership for a specific plugin, they should comment here, in order to create a fork.

  2. andfoy commented on Apr 29, 2021

    @andfoy
    andfoy
    on Apr 29, 2021
    Contributor
    More actions

    After a thorough discussion with @ccordoba12, we decided to give the original plugins maintainers three weeks to perform the migration, after this period, which ends on May 18th, we will proceed to fork the plugins that were not migrated.

    All the maintainers will be notified on the issues that were opened initially.

  3. yeraydiazdiaz commented on Apr 29, 2021

    @yeraydiazdiaz
    yeraydiazdiaz
    on Apr 29, 2021
    ContributorAuthor
    More actions

    I think there's not much point for plugins to support the original pyls, for example, pyls-memestra is not looking back. In my opinion python-lsp-server is the reference implementation now and plugins should just migrate or, if maintainers are unresponsive, forked.

    It'd be great to have a PyPI package naming convention like pyls[p]-<NAME> for discoverability. Forked projects could use the extra p to distinguish or otherwise a PEP 541 issue can be opened for continued maintenance.

    There is an edge case where the maintainer is responsive and willing to migrate but the package does not follow the convention, but I don't believe it would be a problem to rename the package to match. There could also be a list of plugins in this repo even if they don't all match the naming convention 100%, which is something that probably should exist regardless.

    Whether or not they reside in the org is probably less important but probably benefitial, although I don't know what plans the Spyder team has for the org.

    Reacted by Michał Krassowski
  4. krassowski commented on Apr 29, 2021

    @krassowski
    krassowski
    on Apr 29, 2021
    Member
    More actions

    I will also highlight that members of JupterLab team are happy members of the community and will help with maintenance of the plugins herein if given the chance. I also think that as long as original authors are responsive (see pyls-memestra), it should be fine for the plugin to live outside of the organization.

    Maybe there should be a note in the reademe encouraging plugins (future or existing) to move to this organization in the future?

  5. andfoy commented on Apr 29, 2021

    @andfoy
    andfoy
    on Apr 29, 2021
    Contributor
    More actions

    @yeraydiazdiaz, we'll wait for some responses until May 18th, afterwards we can start delving into forks.

    Reacted by Yeray Díaz
  6. andfoy commented on Apr 29, 2021

    @andfoy
    andfoy
    on Apr 29, 2021
    Contributor
    More actions

    Python Language Server plugins

    Feel free to comment with your username if you are willing to give maintenance for a eventual fork.

    • pyls-black: The plugin was forked into https://github.com/python-lsp/python-lsp-black and @haplo is willing to maintain it
    • pyls-flake8: The plugin was migrated, thanks @haplo
    • pyls-isort: The plugin was migrated, thanks @haplo
    • pyls-mypy: Although there are plans to incorporate MyPy into the PyLSP core, a PR is ongoing on Depend on python-lsp-server pylsp-mypy#2 and one of maintainers is reviewing it.
    • pyls-smart
    • pyls-cwrap
    • pyls-black-macchiato
    • pyls-spyder: This one depend on us
    • pyls-memestra: Thanks @marimeireles!
  7. andfoy
    pinned this issue on Apr 29, 2021
  8. s7726 commented on May 1, 2021

    @s7726
    s7726
    on May 1, 2021
    More actions

    An attempt was made...
    rupert/pyls-black#37

  9. haplo commented on May 13, 2021

    @haplo
    haplo
    on May 13, 2021
    Contributor
    More actions

    Feel free to comment with your username if you are willing to give maintenance for a eventual fork.

    I'm willing to fork pyls-black, pyls-flake8 and pyls-isort, as those are the ones I use. Looks like pyls-flake8 maintainer is responsive, so that will probably not be necessary. Let's wait until the deadline for the rest.

    Edit: I also use pyls-mypy, so count me in for that one too if needed.

  10. s7726 commented on May 13, 2021

    @s7726
    s7726
    on May 13, 2021
    More actions

    @haplo I came here to reply that someone had responded to the pyls-black PR I made... Then realized that was you ;) Nice.

  11. haplo commented on May 13, 2021

    @haplo
    haplo
    on May 13, 2021
    Contributor
    More actions

    @haplo I came here to reply that someone had responded to the pyls-black PR I made... Then realized that was you ;) Nice.

    Yeah sadly no response from a maintainer yet. If they remain unresponsive it should be easy enough to fork, change repository and package names to pylsp- prefix and release compatible versions.

  12. andfoy commented on May 13, 2021

    @andfoy
    andfoy
    on May 13, 2021
    Contributor
    More actions

    @s7726 @haplo Which plugins are you willing to maintain after May the 18th?

  13. haplo commented on May 14, 2021

    @haplo
    haplo
    on May 14, 2021
    Contributor
    More actions

    @s7726 @haplo Which plugins are you willing to maintain after May the 18th?

    I use these plugins:

    • pyls-black
    • pyls-flake8
    • pyls-isort
    • pyls-mypy

    I already have PRs for 3 of them, and @s7726 has one for pyls-black.

    If we have to fork any of these plugins I propose doing so under the python-lsp organization. Then we can add multiple maintainers, I can be one of them.

  14. haplo commented on May 14, 2021

    @haplo
    haplo
    on May 14, 2021
    Contributor
    More actions

    pyls-isort now has a compatible release in PyPI. 🚀

    Reacted by Edgar Andrés Margffoy Tuay, Jonathan Jin, jdhao and nyngwang
  15. haplo commented on May 18, 2021

    @haplo
    haplo
    on May 18, 2021
    Contributor
    More actions

    Status update:

    • pyls-flake8 accepted the PR, but has yet to release a new version to PyPI.
    • pyls-mypy is unresponsive, and from other comments has been for months. It looks like there is no actively maintained fork, so my recommendation is to fork as python-lsp/lsp-mypy, make necessary changes and release as lsp-mypy package to PyPI. I can also fork at haplo/lsp-mypy and handle the release to PyPI, just let me know.
    • No response from pyls-black. I can fork it and maintain it unless @s7726 wants to handle it.
  16. 7 remaining items

  17. haplo commented on May 19, 2021

    @haplo
    haplo
    on May 19, 2021
    Contributor
    More actions

    @andfoy I created a PR that updates the README to point to the new forks.

  18. jdhao
    added a commit that references this issue on Jul 15, 2021

    Use pylsp instead of pyls

    ffb0601
  19. igo95862 commented on Nov 21, 2021

    @igo95862
    igo95862
    on Nov 21, 2021
    More actions

    Can a plugin be upstreamed in to this repository? (for example, there is a flake8 plugin in default installation and as a third party plugin)

  20. andfoy commented on Nov 22, 2021

    @andfoy
    andfoy
    on Nov 22, 2021
    Contributor
    More actions

    @igo95862, it could be discussed as long as someone takes ownership of it

  21. igo95862 commented on Nov 23, 2021

    @igo95862
    igo95862
    on Nov 23, 2021
    More actions

    I am kind of interested in official mypy plugin. It is a pretty big project made by python creators. Although it should be some way opt-in as a lot of projects are not typed. Mypy has a specification for configuration file so maybe it should only activate if the config file is present.

  22. doolio commented on Nov 8, 2023

    @doolio
    doolio
    on Nov 8, 2023
    Contributor
    More actions

    Has there been any thoughts about removing the built-in plugins entirely to simplify the codebase? I'm thinking many of the built-in plugins could be replaced by python-lsp-ruff which could be kept independent or even made to be built-in if preferable.

    Reacted by Fidel Ramos
  23. haplo commented on Nov 8, 2023

    @haplo
    haplo
    on Nov 8, 2023
    Contributor
    More actions

    Has there been any thoughts about removing the built-in plugins entirely to simplify the codebase? I'm thinking many of the built-in plugins could be replaced by python-lsp-ruff which could be kept independent or even made to be built-in if preferable.

    I'm +1 to removing all built-ins, and have people install the ones they need, everything properly documented of course, including a directory of known plugins. This should be OK with a new major version of python-lsp-server IMO.

  24. ccordoba12 commented on Nov 14, 2023

    @ccordoba12
    ccordoba12
    on Nov 14, 2023
    Member
    More actions

    I'm +1 to removing all built-ins, and have people install the ones they need.

    That's more or less the case right now. I mean, if you install python-lsp-server you'll only get code completion, go-to-definition and hovers with Jedi. All the other of functionality is opt-in by installing Yapf, rope, Autopep8, etc.

    The problem I see with splitting the project into multiple plugins is that it'd make maintenance harder. And since I'm the only maintainer, I'm -1 on it because I'm also in charge of a lot of other stuff.

  25. haplo commented on Nov 14, 2023

    @haplo
    haplo
    on Nov 14, 2023
    Contributor
    More actions

    Jedi has no alternative AFAIK, right? In that case it makes sense to keep it built-in, as long as the rest are optional installs.

    Would you be open to PRs to extract yapf, rope, autopep8, etc. into separate plugins?

  26. ccordoba12 commented on Nov 14, 2023

    @ccordoba12
    ccordoba12
    on Nov 14, 2023
    Member
    More actions

    Jedi has no alternative AFAIK, right? In that case it makes sense to keep it built-in, as long as the rest are optional installs.

    Rope, but it's not as feature complete.

    Would you be open to PRs to extract yapf, rope, autopep8, etc. into separate plugins?

    Nop, due to what I said. That would require for me to maintain not a single project but 5 or 10 of them (i.e. make releases, keep them in sync and in general spread my attention between several repos).

    What we could do is to modify the defaults to not endorse any linting or formatting library at all. That way, if you install python-lsp-server and python-lsp-ruff, you'll get all that you need (for people that wants to use only Ruff).

    Reacted by Daria
  27. haplo commented on Nov 15, 2023

    @haplo
    haplo
    on Nov 15, 2023
    Contributor
    More actions

    Nop, due to what I said. That would require for me to maintain not a single project but 5 or 10 of them (i.e. make releases, keep them in sync and in general spread my attention between several repos).

    I think I speak for everyone when I thank you for your maintenance effort, anything that makes your life easier is good.

    If the optional parts are neither installed nor enabled then it should be OK IMO.

    What we could do is to modify the defaults to not endorse any linting or formatting library at all. That way, if you install python-lsp-server and python-lsp-ruff, you'll get all that you need (for people that wants to use only Ruff).

    I like that idea. Currently many plugins (thinking of python-lsp-black and python-lsp-ruff) disable other plugins in their default configuration, this could be a way to clean that up.

  28. ccordoba12 commented on Nov 15, 2023

    @ccordoba12
    ccordoba12
    on Nov 15, 2023
    Member
    More actions

    I think I speak for everyone when I thank you for your maintenance effort, anything that makes your life easier is good.

    Thanks for understanding.

    I like that idea.

    Great! Could you submit a pull request for that? We can include it in our next minor release (1.10.0).

  29. mcepl commented on Jun 6, 2024

    @mcepl
    mcepl
    on Jun 6, 2024
    More actions

    Rope

    There is https://github.com/python-rope/pylsp-rope which is built for THIS Python LSP server, not the old one.

    Reacted by Carlos Cordoba
  30. nandhinianandj
    added a commit that references this issue on Oct 16, 2025

    Use pylsp instead of pyls

    c31ae3b
  31. aleeraser
    added a commit that references this issue on Oct 22, 2026

    Use pylsp instead of pyls

    cb84ac5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.