Replies: 3 comments 2 replies
-
All the shortcomings listed above are chores. Chores can be addressed easily via automation - ideally CI would detect version bumps and perform all the steps needed for a release, including checking version bounds and uploading to Hackage. The benefit is dependency management indeed. For instance, at work we have a custom LSP server built on top of ghcide, with a handful of selected HLS plugins, limited by our stackage snapshot and the maintenance overhead of introducing version overrides. When there are no heavy dependencies, I agree that there is no real reason to create a new package. I guess it comes down to ownership and other random factors, like finding a reasonable "home" for a plugin. For instance, the Ghcide package contains around 10 HLS plugins: |
Beta Was this translation helpful? Give feedback.
-
Agree with the comment above, i would add:
|
Beta Was this translation helpful? Give feedback.
-
Fair enough. My personal experience with a codebase with lots of packages is that it's a huge pain and I always want to consolidate them, but uniformity is indeed nice :) On the plus side, it makes the motivation strong to keep improving multi-package support ;) |
Beta Was this translation helpful? Give feedback.
-
At the moment, it seems that every plugin is in its own package.
While this is nice in principle, it seems like a lot of extra work for the maintainers:
But I'm not entirely sure what benefit we get from it. The main reason I can think of is that some plugins have heavy dependencies that we don't want to include unless they're asked for (e.g. the formatting plugins). But most of them are not like this.
We could retain the split into multiple plugins while still having many of the plugins exported from a single package (thus retaining the ability to e.g. turn them on and off individually). Similarly, we could retain individual test suites by having an internal library per plugin, with at test suite that depends on just that library.
Is there another big reason for splitting them up that I'm missing?
Beta Was this translation helpful? Give feedback.
All reactions