null-ls.nvim icon indicating copy to clipboard operation
null-ls.nvim copied to clipboard

IMPORTANT: Archiving null-ls

Open jose-elias-alvarez opened this issue 1 year ago • 110 comments

I’ve been struggling to find the time and energy to maintain null-ls, especially since I no longer use Neovim as my primary editor. I’m not confident about my ability to adapt the plugin to 0.10 and beyond, so rather than let the repo silently rot and give the false impression that it’s still under maintenance, I am instead choosing to archive it on August 11, 2023 (about one month from today).

Any user or organization who wants to fork the project and take over maintenance should feel free to do so (the majority of open issues / PRs are not actionable, so I don’t see value in transferring the repo).

I will be traveling for most of July and do not plan on reviewing issues or merging PRs between now and the archival date. If there’s community consensus on a fork, I will update the README to direct users there and mention it in the final archival notice commit to make users aware via their plugin managers, but otherwise, null-ls will remain as-is.

I want to mention a few challenges that anyone thinking of taking over maintenance of null-ls should be aware of:

  1. Due to its architecture, the plugin is uniquely exposed to Neovim changes, both breaking and non-breaking. Almost any change to existing LSP-related code has a non-zero chance of breaking null-ls, and this is not likely to change unless core maintainers decide to open up APIs for code actions and formatting, similar to what was done for diagnostics in 0.6.
  2. The null-ls repo contains both the core null-ls code and a large number of built-in sources (almost 300!), so exposure to upstream changes is high. There’s no easy solution here - I’ve thought about deprecating all built-in sources and urging interested parties to maintain bundles of null-ls sources for different languages / ecosystems, but for the most part, the willingness hasn’t been there. (To illustrate the scale of the problem: the closest analogue is ALE, which as of writing has 532 open issues dating back to 2017.)
  3. Users have an infinite variety of configuration / environment needs, especially in complicated ecosystems like Python. As above, this doesn’t have an easy solution, but the issue helps illustrate why the current approach isn’t sustainable.
  4. A large percentage (possibly a majority) of users use null-ls via a Neovim "distribution" (LunarVim, LazyVim, etc.) which adds indirection and makes issues harder to debug. I think this could be solved if I had had more discipline about directing users of these distributions to report issues upstream first and only come to the null-ls repo once they’re confident the issue can be reproduced independently, but it’s a constant source of friction.
  5. I did not foresee that built-in sources would be far and away the most popular feature of the plugin, so many parts of the architecture are not as user-friendly or flexible as they should be. In particular, it should be easier for users to write, maintain, and customize sources, both on their own and to share, but it's hard to make significant changes now without breaking things.

Taken together, these issues may justify a total rewrite, similar to the jump from nvim-lsp-installer to mason.nvim. The current repo structure is especially hostile to semantic versioning, which I think is a big leap forward for users and maintainers. (For my part, I am agnostic about the "right path" for null-ls from here on out, but I’ll mention that I’m skeptical that feature parity and sustainability can be achieved without some level of buy-in from Neovim core.)

jose-elias-alvarez avatar Jul 09 '23 15:07 jose-elias-alvarez

Hey. I hope you're really doing fine. I'm sure null ls will be a good legacy and there will be other solutions down the road. Thanks for all your effort, open source is known yo be complicated and time consuming I've got curiosity, what is your main editor now?

JulianH99 avatar Jul 09 '23 20:07 JulianH99

Thanks. This plugin is incredible.

marcoswlrich avatar Jul 09 '23 20:07 marcoswlrich

This plugin was easily my favorite in the Neovim ecosystem. I hope this project gets forked and extended so this work lives on. Thank you for everything!

ColinKennedy avatar Jul 09 '23 20:07 ColinKennedy

Thank you for all your work over the years!

magoz avatar Jul 09 '23 21:07 magoz

Thank you for all your hard work!

rochakgupta avatar Jul 09 '23 21:07 rochakgupta

Thank you for all your work!!

EuCaue avatar Jul 09 '23 23:07 EuCaue

Thank you for all your hard work!

PedramNavid avatar Jul 10 '23 01:07 PedramNavid

Thank you for all your hard work!

lost22git avatar Jul 10 '23 01:07 lost22git

Thank you for all your hard work!

tangiang0812 avatar Jul 10 '23 02:07 tangiang0812

Thank you for the wonderful work.

jcaffey avatar Jul 10 '23 02:07 jcaffey

Thanks for your work.

linrongbin16 avatar Jul 10 '23 03:07 linrongbin16

Thanks to everyone who contribute to this awesome project.

anasrar avatar Jul 10 '23 03:07 anasrar

This is one of my favorite neovim plugin, thanks for your work!

keaising avatar Jul 10 '23 03:07 keaising

As a Lunar Vim user, thanks for your work!

ma-anwar avatar Jul 10 '23 03:07 ma-anwar

thank you for your work man! Wish you'll do well on your next project

howarddo2208 avatar Jul 10 '23 04:07 howarddo2208

Thank you for all your work. Wish you the best.

amirhhashemi avatar Jul 10 '23 05:07 amirhhashemi

@jose-elias-alvarez, Thank you for your hard work in maintaining this project as best as you could. May this legacy will be continued in the future.

harshv5094 avatar Jul 10 '23 05:07 harshv5094

Thank you! Best wishes for your retirement from having to deal with GitHub issues 🙂

bas-ie avatar Jul 10 '23 05:07 bas-ie

Thanks for the amazing work 🥺 and making it available to us. Hope you are doing okay...

reaper8055 avatar Jul 10 '23 05:07 reaper8055

Thank you for the time putting on this project and your contribution to the neovim community for making a almost "de facto" standard neovim plugin in many distributions. With 3.4k stars, this project is definitely a huge success.

And Wish the best luck for you.

milanglacier avatar Jul 10 '23 05:07 milanglacier

Thanks for the great work. It is really a really great contribution to the neovim ecosystem already! Hope you are having enough fun with your new editor as well!

LumenYoung avatar Jul 10 '23 05:07 LumenYoung

Hey, you've built one of those major plugins that I'm sure is present in a good percentage (a majority?) of nvim users config (including mine). So thanks you for your incredible work! :) Wish you the best for your next editor journey, hopefully a bit more "relax" xD

doums avatar Jul 10 '23 08:07 doums

@jose-elias-alvarez, I am immensely grateful for the hundreds, it not thousands, of hours you have put in. Your work has helped the community to learn and develop LSP features, enabling us to compete with those big IDEs.

Thank you so much for your contribution, and all the best in your future endeavors!

kylo252 avatar Jul 10 '23 08:07 kylo252

Thank you for your hard work and contributions to the community! 🙏🏻

shapeshed avatar Jul 10 '23 08:07 shapeshed

Thank you very much for your contribution!

JarKz avatar Jul 10 '23 10:07 JarKz

Thanks for creating such a great community and for making this huge contribution effort! Wish you the best on everything :)

mrs4ndman avatar Jul 10 '23 10:07 mrs4ndman

thank you very much for your contribution

zhaopengme avatar Jul 10 '23 11:07 zhaopengme

Thank you a lot for your work :heart:

serranomorante avatar Jul 10 '23 11:07 serranomorante

@tjdevries this might be of interest to you

zwarag avatar Jul 10 '23 11:07 zwarag

Thanks for your hardwork!

xD-saleem avatar Jul 10 '23 11:07 xD-saleem