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
Port to jbuilder #367
Port to jbuilder #367
Conversation
Many months after promising this at the conference. Better late than never. |
Removes the previous topkg/ocamlbuild setup in favor of jbuilder/topkg. This splits tls into 3 packages: tls, tls-lwt, and tls-mirage. Since we're still using topkg, the publishing workflow should be the same as before. Users of tls shouldn't notice any breakage, as the META is still preserving the old tls.{mirage,lwt} as subpackages. However, these will now require the appropriate opam sub packages to be installed to work.
@rgrinberg uh? i expected an async backend from you. Regarding porting to yet another build system, please take the earlier discussion into account. Some questions I have about this PR
|
This is a pre-requesite for this work. Unless we want to pointless rename that
It's not equivalent but it will not be observable to users. jbuilder uses module aliases to gain better build performance and produce smaller binaries.
Documentation is generated through the new odoc tool. Which promises much more usable cross referencing. Should be as simple as
Ah yes, I can bring those back. In jbuilder, it's customary to enable the warning in development only by passing
It's possible to support this but it requires a fair bit of annoying boilerplate at the moment. I could get this to work if you were interested in using jbuilder.
To start:
|
It's not the first time I hear you telling that. For the sake of technical accuracy, note that topkg+ocamlbuild did that long before |
I know, But I'm hopeful that I won't have to repeat myself for much longer.
I'm sure it's possible somehow, I did say as much in that post. But now you've made me curious, how does one toggle the visibility of dependencies with topkg/ocamlbuild? Given TLS for example, jbuilder will build tls-lwt against the local tls library but when installed through opam, it will use the tls instance installed with findlib. |
You know multiplying the number of toplevel packages is not a very good solution either. I have many packages whose depopts are simply to small to justify the bureaucracy and metadata duplication that is needed by this solution.
You don't. |
While I don't have a set budget for top level names like you, I agree that today the boilerplate required to have correct and precise metadata is a pain in the neck. I just still think it's worth it to have the correct metadata. I'm also waiting for a better system to specify all this boilerplate. |
Interesting, you seem to know more about me than myself.
Wait I have an idea, maybe we could... generate that. More seriously we are still missing something in |
Feel free to correct me. I just see you talking about them like they're a scarce resource. Maybe you're right though, naming things is pretty hard after all. |
I don't think I ever said they were a scarce ressource. It does however add some clutter to the system in my opinion. But my real worry is the general unDRYness, metadata duplication and the bureaucracy it incurs. Anyway this is OT for this PR and we can discuss this elsewhere if you wish so. |
@rgrinberg you can enable more warnings like this: ocsigen/lwt@4557ea1 Note not only the |
Thanks Anton, but this PR is shelved until there's more interest by the
maintainers of tls.
…On Wed, Jul 12, 2017, 2:46 AM Anton Bachin ***@***.***> wrote:
@rgrinberg <https://github.com/rgrinberg> you can enable more warnings
like this: ***@***.***
<ocsigen/lwt@4557ea1>
Note not only the --dev flags, but also the :standard -w +A in the jbuild
files.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#367 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAIe-_zEr4K69DHAifO-6O8W_rJWlef5ks5sM9D7gaJpZM4ONmDH>
.
|
Removes the previous topkg/ocamlbuild setup in favor of jbuilder/topkg. This
splits tls into 3 packages: tls, tls-lwt, and tls-mirage. Since we're still
using topkg, the publishing workflow should be the same as before.
Users of tls shouldn't notice any breakage, as the META is still preserving the
old tls.{mirage,lwt} as subpackages. However, these will now require the
appropriate opam sub packages to be installed to work.