Skip to content
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

Accept multi-lib packages with public sublibraries #1119

Closed
brprice opened this issue Aug 10, 2022 · 12 comments
Closed

Accept multi-lib packages with public sublibraries #1119

brprice opened this issue Aug 10, 2022 · 12 comments

Comments

@brprice
Copy link

brprice commented Aug 10, 2022

Now that cabal 3.8 has been released and multi-lib packages are no longer experimental, my understanding is that it is planned to update Hackage to accept multi-lib (with publicly visible sublibraries) packages (#852 (comment)).
I am opening this issue mostly to have something upstream to track the progress of this.

Some specific questions:

  • Am I correct in thinking this is a planned feature?
  • Any idea on an ETA?
  • What (if anything) can I do to help progress this?
  • Is this blocked by Post-multilibs checklist cabal#5660 (or anything else)?

Links to other tracking issues in the ecosystem:

@gbaz
Copy link
Contributor

gbaz commented Sep 8, 2022

This is indeed a planned feature. I think the groundwork is basically laid except for porting hackage server to link against 3.8 and a new deploy. Once that's done, the UX might be a bit rough still, but it should all work at least (and we can improve the display as we go). Hopefully we can do this forward port and deploy in the next couple months, following the conclusion of gsoc projects which should also be incorporated into the upcoming deploy.

@cartazio
Copy link
Contributor

I totally thought this was already done! Is my recollection incorrect or is some brave soul updating hackage code needed?

@gbaz
Copy link
Contributor

gbaz commented Mar 24, 2023

I think it should work now, if anyone has a multilib package to upload.

@cartazio
Copy link
Contributor

Ok cool! Are there any on hackage yet ? I’m curious what the ui looks like

@gbaz
Copy link
Contributor

gbaz commented May 14, 2023

closing as done.

@gbaz gbaz closed this as completed May 14, 2023
@michaelpj
Copy link

I'm also curious as to whether there are any examples in the wild. I think a number of us are keen to try this out but anxious not to mess up our packages accidentally, so it would be great to see an example which we could poke and check it seems to work okay!

@fgaz
Copy link
Member

fgaz commented May 15, 2023

From a quick index grep, there is currently no such package on hackage

edit: but you can experiment by uploading candidates

@cartazio
Copy link
Contributor

cartazio commented May 15, 2023 via email

@dhess
Copy link

dhess commented May 15, 2023

I'm also curious as to whether there are any examples in the wild. I think a number of us are keen to try this out but anxious not to mess up our packages accidentally, so it would be great to see an example which we could poke and check it seems to work okay!

We will have one very shortly; no later than this year's Zurihac, I expect.

@georgefst
Copy link

How is one actually supposed to use this feature? I've run the usual cabal upload --publish $(cabal sdist | tail -n1), but I see no sign of anything other than the main library on Hackage. The others are present in the sdist tarball, and in fact were even before I set visibility: public for them, since they are depended on by the main lib. But none of their modules appear in the Hackage module list.

@fgaz
Copy link
Member

fgaz commented Jun 30, 2023

Upload is allowed, but the hackage UI isn't there yet. You can still use the public libraries in other cabal packages though

@georgefst
Copy link

georgefst commented Jun 30, 2023

Upload is allowed, but the hackage UI isn't there yet.

Ah, yes, I now see that that's tracked in #1218.

You can still use the public libraries in other cabal packages though

Can confirm this does work! At least when adding to build-depends in a .cabal file (install --lib has issues: haskell/cabal#9074).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants