-
Notifications
You must be signed in to change notification settings - Fork 177
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
test fail in lwt_unix #729
Comments
Lwt doesn't install on 4.05.0+bytecode-only because its dependency seq assumes a native-code compiler is installed, so I will fix that first. Are you using a patched seq in your build? If so, where can I find the patch? If not, how is the bytecode-only variant configured for you? |
There is nothing special in seq, it is used as is: devel:languages:ocaml:bytecode_only/ocaml-seq |
This assumes |
Yes, most of us use multiple package managers with OCaml, you may note the text allows for that :) I linked the issue for me to keep track of it, not because I expect it to affect your builds. I needed that patch to reproduce the problem here, which I'm now debugging. Other opam users will benefit from it. |
I am concerned however, about why seq 0.1 is working in your environment. This suggests either a configuration of OCaml that built |
Looking through my ocaml.spec, there is just a |
Ok, the explanation for the difference with seq in opam is that a port to Dune was done in this fork and not upstreamed to seq, and not released to opam. |
Ah, yes. There are quite some repositories without dune support, and that project fixes many of them. |
I guess the only relevant result of the seq business for openSUSE, is that seq is about to be released again at version 0.2 (I suggest to watch ocaml/opam-repository#14998). The 0.1 released (or proposed?) for openSUSE right now is in fact not 0.1, it's a patched version that should have been 0.2, and the 0.1 name is misleading. None of this particularly matters, since the code is the same, but for the sake of tidiness, I weakly suggest to wait for the impending seq release, and start seq off at 0.2, and point the URL to the main repo :) I've proceeded with the actual issue locally in the meantime :) EDIT: dune-universe/seq#1 about deleting that repo now. |
@olafhering, I'm also remembering you mentioning about a (false) dependency cycle: lwt -> bisect_ppx -> ounit. This would only happen because ounit is a monorepo that also includes another package, ounit-lwt (see the That makes me concerned: which command is openSUSE using to build ounit (and perhaps also other packages)? For example, doing The latter is the standard command to issue in the OCaml ecosystem, for non-development builds, because many repos function as monorepos for a main package, and some secondary helper packages. In the same way, I see that the openSUSE Lwt package includes You may be intentionally packaging ounit with all its helpers, and Lwt with all its helpers, but that will lead to occasional dependency cycles, as above, because it is not an accurate translation of the true OCaml package boundaries. |
...and Bisect_ppx is not a dependency of Lwt releases at all. It's a dev dependency that we have to manually patch out until ocaml/dune#57 is fixed. |
Even more, ounit is a dev-only dependency of Bisect_ppx! If your build command is If your command is I'm not sure how to interpret the openSUSE package metadata, but you basically want all these deps in your testing environment. You shouldn't include them for releases. |
Thanks for your comments. I will dig into the actual differences between the 'dev' and 'release' targets of dune. Typically a copy of a given git snapshot/tag is packaged, then I already thought about how to untangle cycles, like ounit may depend on something else, which in turn may use ounit to test itself. It would be cool if the |
Great, I'll just add a few more comments for whenever you're looking into it.
|
A bytecode_only ocaml-4.05 fails in
runcheck
:The text was updated successfully, but these errors were encountered: