-
-
Notifications
You must be signed in to change notification settings - Fork 842
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
Move out ALL builtins #1228
Comments
It's a completely understandable endeavor, but let me just note for the sake of completeness that this would add friction to users:
Unless you want to pull in the external repos as submodules (including fzf-native)? That might be a compromise here. |
TJ just mentioned it "out of the blue" and i put it here because to collect more thoughts. So thank you very much :) these are good points. I am torn apart what i wanna do, we have ~50 pickers and they are a lot to maintain (you know that) and most of the issues that were opened lately didn't interested me. I dont know if moving them out even has a benefit if no one wants to maintain them in the end we have the same issue. |
Submodules would be an acceptable solution in my mind. I do want to try and continue to provide out-of-the-box support for a bunch of stuff when you download telescope. In contrast, I will need to think about it a bit more, but sometimes I get demotivated looking at issues about pickers that I've never used 😆 or trying to weigh in and decide on those (and then some aspect of them leaks into the "engine" or "core" part of telescope, which makes things complicated later). I will think some more as time goes on :) |
Let me be clear that I totally get where you are coming from and do not oppose this fundamentally; I just wanted to play advocatus diaboli and add points against this (since you seem to already have points in favor yourself ;)) Also, the example of
That is a common misconception -- |
This is what I'm wary of. At the same time, I'm only at this for two months, maintaining somewhat sizable contributions I don't use myself and trying to keep up with issues for which too often the problem isn't truly clear from the OP; and yeah my excitement is wearing off. To add to what @clason said, I'm also wondering as to whether such fragmentation might cause maintenance problems later on. What (else) can we maybe do? Just thinking out loud.
Playing the long game in hopes more people step up. Then, we can hopefully also gradually expand the team to reduce the burden. |
☝🏻 This. (And more frustration since your work is now spread over multiple repos, with issues constantly opened in the wrong one etc.) So that strategy is only really useful if you want to do a hard abandon of Telescope (as a plugin for users rather than a generic framework you personally enjoy tinkering with) -- which is totally within your right, mind you. So I'm with @fdschmidt93 on this one: the problem is that Telescope is a victim of its meteoric success, with user growth far outstripping contributor growth. So it's a community problem, and hence one that needs to be solved on that level, not with software development -- in a nutshell, you need to be aggressively investing in people. Some thoughts:
|
This is a great discussion. Good points all around. The "one-stop-shop" is very convenient, especially when it comes to the most popular pickers. I know my eyes got big a couple of weeks ago when
I think both of the general approaches mentioned so far have merit and could work. Of course, people will not be motivated to work on features that they don't use or care about. It's difficult to find motivation when you are getting paid to work on things you don't care about. I, for one, ❤️ all the pickers equally 😄. I have complete faith that TJ will set the proper course based on community input and deep thought... or a Twitch poll. I'd be more than happy to take on the Git builtins whether they're in their own repo or stay in core. I really do use more pickers than what I imagine the average user does. So, I would be happy to contribute more in whatever areas need it. I just happen to love Git stuff. I get so much out of 🔭 and really appreciate the hard work of the team. So, apologies for the long narrative comment instead of concise bullets. I am looking forward to seeing where this goes and helping it get there. |
When I was developing nvim-compe, the first built-in source that existed was lsp / buffer / path / vsnip. While receiving feature-requests, the number of built-in sources gradually increased. google translated |
I forgot to add this yesterday: Telescope already has the concept of extensions, and those are pretty well-used already. While I strongly believe Telescope core should come with a set of basic pickers, I don't have any argument against doing a round of spring cleaning where some pickers are moved to an extension (which should be sizeable and cohesive, though -- not just one extension per picker!), while at the same time possibly moving extensions into core (cough |
Thanks for all comments here. You are awesome :) TJ also had a different idea (tami also suggested it to me). We could also move the engine (core part) in a different repo and provide it as submodule here. So nothing changes for the end user. We then have to live with that we might need to transfer some issue to the new repo but we can more easily iterate on the core stuff and just test out things because we pinned the version. |
I agree with others in that splitting off some of the currently Regarding splitting out the "engine", to me it seems difficult to draw a hard line between "engine" and "not engine". It also has the same problem with there likely ending up being issues in the wrong place, which will require maintainers to spend time doing the frustrating task of sorting it out. To my mind, the best ideas are:
Most importantly, I think that contributors (even the more prominent ones) should not feel a responsibility to spend more time working on telescope than they want/are able to. This is a widely used community tool, and it takes a community effort to keep it running smoothly 🙂 |
TL;DR: Leverage Github tooling (CODEOWNERS, Teams, a custom bot) to allow team members to stop subscribing to every issue/PR/commit to Telescope without missing the stuff they are actually interested in. I believe this goes a long way towards staving of burnout and frustration, as the constant stream of notifications is enough to sap anyone's will... |
Why not make a label the issues by 1. The alternative would be to put all picker |
From my perspective as someone who would like to contribute but doesn't find it too easy to understand the codebase, I do agree/believe that splitting out the builtins from the core would make it easier and more approachable for new contributors to get involved in the higher-level functionality such as new pickers. I've written my own very simple picker and would be more likely to create such a plugin around it and provide community support for it if this were a fundamental, established way of doing things as opposed to often primarily using builtins. In essence, I agree with l-kershaw's point on this.
Many good points all around though, this is just one point among many. |
DON'T EXPECT THIS TO BE UPSTREAMED due to: * nvim-telescope#1228 * https://github.com/nvim-telescope/telescope.nvim/blob/master/CONTRIBUTING.md THIS IS MY PERSONAL changes. port original patch for quickfixhistory picker while considering file name changes etc. * 8d1841b ("feat: quickfixhistory picker (nvim-telescope#1878)", 2022-05-04) * 0621c1c ("break: prefix internal files and add deprecation messages (nvim-telescope#2032)", 2022-07-01) Related: * nvim-telescope#1739 * nvim-telescope#1742 * https://github.com/cgsheeh/telescope.nvim (forked repo) TODO: make this external https://github.com/nvim-telescope/telescope.nvim/blob/master/developers.md Signed-off-by: Osamu Aoki <[email protected]>
Disclaimer: This is something TJ just brought up on Discord.
TJ and I think we should move out all builtins to own repositories. like
telescope-files.nvim
telescope-git.nvim
telescope-lsp.nvim
etc, ....Neither TJ nor I enjoy maintaining a lot of the issues that currently are piling up. I only use 5-6 pickers so I am also the wrong person to maintain most of these issues (because i dont have any strong feeling for them) and from my conversation with TJ i think he feels the same.
We can still have them under
lua/telescope/builtin/
and we can still support them with:Telescope ...
and configuration withtelescope.setup{ pickers = { ... } }
but with moving them we could gain more flexibility. People can pick whatever picker they need and we (core team and other maintainers) can focus more on the "engine" telescope.We then can assign more people to these individual repositories.
Thoughts are welcome :)
The text was updated successfully, but these errors were encountered: