-
-
Notifications
You must be signed in to change notification settings - Fork 197
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
OPAM package #71
Comments
I think this will also necessitate packaging up several of the dependencies as OPAM packages:
There's also some C/C++ packages we'd need to bundle (I guess as
Some of the dependencies above depend on esy's environment settings to figure out where to find header files, libs, etc - we'd need to adjust that as well. |
We're also using an unreleased build of JSOO that I'm not sure how to set up in OPAM: Line 44 in d3ab0ba
|
I assume we will need to ship Rely to opam as well? I can kick that off! |
@kyldvs - oh ya, good call - that would be great! Just ninja edited my list above. |
I believe that we can make rely (and even some others) just |
this would be great! i would love to try out revery, but i'm not familiar with the JS world. i guess it would be ok to read the manual in Reason syntax, as long as i don't have to write it! (as a general remark, i would love to see more Reason libraries that are usable from the Ocaml ecosystem; after all that's one of the advantages of Reason just being a syntax! it would be a shame to miss out on this opportunity for cross-pollination) |
@nilsbecker The ReasonML umbrella project includes Reason Syntax, as well as the esy workflow which does in fact integrate pretty well with the OCaml ecosystem. You can use esy to install packages that haven't yet been pushed to opam in the mean time, and use whatever syntax you like when consuming them (for example Revery). No JS is involved at all in that case. |
thanks for the info. i'm still figuring out what esy does exactly. it seems to be a build system that integrates with npm, which allows it to install pre-built binaries and JS packages. yes? it replaces dune and partially, opam, as opam is used as a source for dependencies. although i deeply dislike the fact of again having several build systems coexisting, i guess dune will never be able to do all of the JS integration that esy does. |
Hello! Is packaging the dependencies mentioned in #71 (comment) all that needs to be done now, or is there more that must be done before that? If not, the only thing that needs to be done is for a member of revery-ui to follow the steps outlined in https://opam.ocaml.org/doc/Packaging.html for the necessary dependencies, right? I'd like to help with this process where I can; Revery is a really nice library, and being able to use it with OPAM would make it that much better! |
In fact our .opam file are empty so you have to fill it. |
Okay, will do! I'll start with this repo and then create PR's for the OPAM files mentioned in #71 (comment). |
I think the reverse order is better. Now if you want to build revery you will have to pin lot of package. with we can publish our dependencies and then revery without pinning to mush stuff. |
Good point! Will do the reverse then ;) |
As for the versions of the packages (in the .opam files), should I match the NPM versions or do something else? |
|
I wasn't sure about
Could you elaborate on this? Also, should I put the information in |
|
A few things need to be filled in before this is ready for merge: * The `description` part of the `(package` section. * The `depends` part of the `(package` section. I'm not sure what version of OCaml should used, so I've left it as `(ocaml (>= <FILL VERSION HERE>))`. If anyone knows the version that should be used, let me know and I'll update this. Also, any other dependencies will need to be put here, which don't necessarily have to have versions associated with them but should be listed. If I'm forgetting any other fields (or if there are any other changes that should be made), let me know. Note that I've used https://github.com/rgrinberg/opium/blob/master/dune-project as a reference here. The reason for this addition is so that Revery can be published on OPAM (see revery-ui/revery#71), which will require that its dependencies be published on OPAM as well (this repository was mentioned as a dependency of Revery in revery-ui/revery#71 (comment)). With this PR, the dune file will generate `reglfw.opam` (due to `(generate_opam_files true)`), preparing this library for for publishing on OPAM.
Originally posted by @Et7f3 in revery-ui/reason-glfw#116 (comment) You haven't run opam lint :) because the lint say we must add a . at the end of synopsys and description. And sorry I hadn't seen the message is outdated. I have added a notice now that is up to date. Revery is know to compile from 4.07 to 4.09 maybe he compile on 4.06 (so just try to compile with 4.06 if you want. If you want to quickly move on you can put this three version.) (3) We have also regular deps that are purely OCaml/ReasonML. some with Reason-smth has of course dep to reason (published on OPAM) |
We are planning on releasing the reason-native packages to opam fwiw. That might help if anything in Revery land depends on them. Maintaining the same packages in two universes is pretty cumbersome though. And it can cause serious issues if some dependency depends on the opam one and another dependency depends on the npm one - you will get link time failures. The approach we want to go with moving forward is that all packages (reason, esy, opam, anything really ) needs to have its library name include a very unique prefix like |
Is this necessary though? Esy can use opam packages, so why not shift focus to opam instead of NPM? Existing Revery projects would need to switch over to using the opam packages, but that should be straightforward (change |
Does releasing revery in OPAM still on the roadmap? I would love to use revery in my own OCaml project. |
I'd like to publish an OPAM package for revery to make sure it's usable with the broader OCaml community (which would primarily consume this library via OPAM).
I've only tested it with
esy
currently, but it would be great to publish and verify this through OPAM.The text was updated successfully, but these errors were encountered: