-
-
Notifications
You must be signed in to change notification settings - Fork 102
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
Make consult-flycheck a separate package with correct dependencies #53
Conversation
54da791
to
0520424
Compare
@purcell I thought a while about this. I feel a bit pressed about this issue - I would like to have the package available in MELPA but at the same time I don't want to split up the package just yet. There are multiple reasons:
I can assure you, there won't be an explosion in commands. The plan is certainly not to add commands for arbitrary obscure packages or external programs. Maybe in this case with the addition of |
I'm just here to offer advice on helping the design to settle! I'd like to use this library for the long term, and part of the appeal is in it not ending up just like Such a unified
Generally it's only the add-ons for optional packages which would need to go in separate packages, so things like
Yes, those are sub-optimal too. Both |
I have to think about it a bit more. I agree with the things you write, a good early design is important. I agree with avoiding the monolith thing, our whole design is centered around avoiding that. But ending up with one command per package also does not feel so good. I wonder about one thing - is it possible to split and still distribute as one package or is this impossible due to the way dependencies are specified per package? This is not possible and would not make much sense either? Generally - would you recommend splitting up the library more (on the file level, not package level)? There are some core functions, e.g. the helpers and everything related to consult--read. Then there is preview infrastructure entangled with consult--read and the preview-mode (this is the most fragile part). Well, and then there all the user facing commands. Many elisps libraries I have seen are single file. |
And look, my intention is not to waltz in here and gripe about anything. I've seen and reviewed literally thousands of Emacs packages in the last eight years, and I care about the ecosystem. Nobody is going to rage-yank |
Yes, you can have multiple files in one package, but only one set of dependencies per package. In this repo, you could have multiple
No, my personal favoured approach is to avoid over-splitting. It often makes the code hard to follow. In the case of |
(I've seen lots of authors struggle to split big packages up into multiple files, btw. You wouldn't believe the messes I have seen in certain cases, with workarounds to avoid circular dependencies etc.) |
Ok, thanks. The good thing is that consult is not a structurally complicated package. There are a few details but besides it is a flat thing - a bunch of commands. I will look at this issue again in the next days and see how things can be resolved. |
Yeah, let me know if I can help at all. Really appreciate your work here, and enjoying using it. |
FWIW, I totally agree with @purcell on this. Yes, you get more packages and files to manage, and probably more work to set it all up cleanly, but in the long term To a certain degree, that's the beauty of |
Not quite sure if creating N^2 dependencies is the way to make things simpler. Why soft dependencies are evil? I have different experience, but outside the Emacs world. |
@purcell @manuel-uberti @s-kostyaev I can see both sides here and I have experience with both approaches. Doing the split up can ultimately lead to the cleaner design, as you may have seen I proposed the embark/consult marginalia extraction in order to get a clean boundary there. In this case I am divided, I am not just following through with the one approach all the time, doing some judgement call instead. But I will try out how everything looks if things are split up in a separate branch/PR. I will try to separate the selectrum-specific logic too, except for the consult--buffer-selectrum code. The selectrum-specific buffer function should ultimately go away - I just have not found the correct way yet on how to do it. @oantolin, @clemera and I are discussing options in #10. |
See #54 for the WIP |
Closed in favor of #54 |
I can take care of the MELPA side of this.