-
Notifications
You must be signed in to change notification settings - Fork 198
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
UI for multiple public libraries #1218
Comments
mildly related #577 |
I can work on this after I get vouching done. |
I'm happy to take a stab at this. I've made changes that get the modules to show per-library. Seems to work fine. I'd also be in favour of listing dependencies per-library on the main package page (as opposed to having to click into the easy-to-miss Not sure if the view heirarchy should be:
or
I'll play around with it and see what feels good. |
Great to hear you're working on the changes! I think the second approach is better, with the caveat that we shouldn't have the "lib-a, lib-b" top level package hierarchy when there is only one exposed public library. Similarly we shouldn't have the signatures section and modules section split in the second level when there are only modules. I'm sympathetic to wanting to have the dependencies per-library. However, for packages with many dependencies, splitting them out would make things even more cluttered than they are now. Maybe we can just highlight the details link better, and perhaps make it more descriptive? |
Yep, that's all sensible. I'll optimise for lack of visual clutter. If I figure out how to display the dependencies per-library in an uncluttered way, it'll be in a separate changeset anyway. |
With the advent of multiple sublibraries per package, it has become less clear what each component is, on the 'detailed dependencies' page. This changeset replaces the tabulated view of | component name | list of dependencies | | -------------- | -------------------- | | - lib 1 | - dep 1 | | | - dep 2 | | | | | - exe 1 | - dep 3 | With the more heirarchical: Libraries - lib 1 - dep 1 - dep 2 ... Executables - exe 1 - dep 3 This change is related to haskell#1218
The current approach seems to be to do something like: for each top-level section, split it up by component. This seems fine for packages with a smallish number of components, but I'm not sure it's going to scale. In particular, imagine if It seems to me like it would be more scalable to have the top-level split be by component, and then have the sub-sections within that. Perhaps harder to implement nicely, though! |
I think you're definitely onto something, at least for the pathological case. A top-level split would also fix my qualm about dependencies not being per-library, as, if I'm picturing it correctly, the dependencies section would then also be for a specific library. A top-level split could be implemented in the right-hand-side sidebar: Not sure about the combined view yet, I imagine it being the same as after #1279. I think it might get confusing if we display the main package page when someone clicks on one of the sublibraries... If it's just a space/pathological case thing, maybe we could add a quick fix by rolling up the module sections: Otherwise, there are more nuclear options than these. |
Having the sections collapsed might work, yeah. Then you can just expand the ones you care about, which isn't so bad. I think the only truly robust solution is indeed a component page, with the package page linking to the components and showing only package-level metadata. But that's probably a lot more work. |
If you want a fun example, I'm toying with merging all the plugin packages with HLS proper and publishing them together, which would mean the package would have some 28 libraries and 28 test suites. So that would be a challenge to render (although it doesn't matter so much, as HLS is mainly an executable). POC here: haskell/haskell-language-server#3976 |
Looks like there currently isn't any, really. https://hackage.haskell.org/package/lsp-types has a second public library but there's no evidence of it on the page.
The text was updated successfully, but these errors were encountered: