esy-ocaml / esy-opam-override Goto Github PK
View Code? Open in Web Editor NEWoverrides for packages converted from opam
overrides for packages converted from opam
I tried to update to 1.9.6 but got this error: https://github.com/reasonml/reason/actions/runs/4460356134/jobs/7833443065
Issue: The characters used in the path aren't cloneable on Windows, resulting in this error message:
E:\> git clone https://github.com/bryphe/esy-opam-override
Cloning into 'esy-opam-override'...
remote: Counting objects: 378, done.
remote: Compressing objects: 100% (7/7), done.
Receiving objects: 61% (231/378) 9 (delta 1), pack-reused 368 eceiving objects: 60% (227/378)
Receiving objects: 100% (378/378), 38.01 KiB | 3.80 MiB/s, done.
Resolving deltas: 100% (125/125), done.
fatal: cannot create directory at 'packages/jbuilder.>=1.0.0-beta19': Invalid argument
Defect: The <
and >
characters are not valid for directory names in Windows.
Proposed Fix: We should update our override strategy to use alternate characters, or an alternate versioning schema, so that this is more friendly to work on for Windows devs
The majority of our recent Windows PR / patches are just direct ports from https://github.com/fdopen/opam-repository-mingw - is there a way we can automate this?
Today, it's hard to validate the correctness of an override (and easy to break the build for a package)
We should have a CI test that:
package.json
with the package as a dependencyesy install
w/ the override (might need to directly call esyi
to specify the override)esy build
and validate the package builds successfullyNum was ripped out of OCaml in the latest OCaml release and put into its own num package.
When adding "batteries": "^2.8.0"
to the esy example project dependencies, we get this error:
### ORIGINAL COMMAND: make all
### RENDERED COMMAND: make all
### CWD: /Users/me/.esy/3__________________________________________________________________/b/opam__slash__batteries-2.8.0-a15b5845
ocamlfind: Package `qcheck' not found
Build mode: native
ocamlbuild -no-links -use-ocamlfind src/batteries.cma src/batteriesHelp.cmo src/batteriesThread.cma META src/batteries.cmxa src/batteriesThread.cmxa
ocamlfind ocamlopt unix.cmxa -I /Users/me/.esy/3__________________________________________________________________/i/opam__slash__ocamlbuild-0.12.0-5d1c6b48/lib/ocamlbuild /Users/me/.esy/3__________________________________________________________________/i/opam__slash__ocamlbuild-0.12.0-5d1c6b48/lib/ocamlbuild/ocamlbuildlib.cmxa -linkpkg myocamlbuild.ml /Users/me/.esy/3__________________________________________________________________/i/opam__slash__ocamlbuild-0.12.0-5d1c6b48/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
ocamlfind: Package `bisect' not found
ocamlfind ocamldep -package bigarray,num,str -package str -package bytes -modules build/prefilter.ml > build/prefilter.ml.depends
ocamlfind ocamlc -c -annot -bin-annot -safe-string -w -3 -w -29 -package bigarray,num,str -package str -package bytes -I build -I src -I qtest -I benchsuite -I testsuite -o build/prefilter.cmo build/prefilter.ml
ocamlfind ocamlc -linkpkg -linkpkg -package bigarray,num,str -package str -package bytes -I build build/prefilter.cmo -o build/prefilter.byte
+ ocamlfind ocamlc -linkpkg -linkpkg -package bigarray,num,str -package str -package bytes -I build build/prefilter.cmo -o build/prefilter.byte
File "_none_", line 1:
Error: Cannot find file /Users/me/.esy/3__________________________________________________________________/i/opam__slash__ocamlfind-1.7.3--1-4a313506/lib/ocaml/nums.cma
Command exited with code 2.
make: *** [all] Error 10
I think that the num package might mutate the ocamlfind install and we just just haven't made the appropriate fix somewhere to account for it.
Hello!
It seems that 0426b0d broke zarith.
The resolution for esy-gmp
is broken, since esy-gmp
isn't on npm
. I think it was meant to receive a direct link to the repo?
I have a project that uses @opam/pcre. The last time I upgraded esy pulled in a new version of the override for @conf-libpcre. The entry in the esy.lock/index.json
changed from
"@opam/conf-libpcre@opam:1@3271fa7f": {
"id": "@opam/conf-libpcre@opam:1@3271fa7f",
"name": "@opam/conf-libpcre",
"version": "opam:1",
"source": {
"type": "install",
"source": [ "no-source:" ],
"opam": {
"name": "conf-libpcre",
"version": "1",
"path": "esy.lock/opam/conf-libpcre.1"
}
},
"overrides": [],
"dependencies": [
"@opam/conf-pkg-config@opam:1.1@67c69c0c",
"@esy-ocaml/[email protected]@d41d8cd9"
],
"devDependencies": []
},
to
"@opam/conf-libpcre@opam:1@e16abcd7": {
"id": "@opam/conf-libpcre@opam:1@e16abcd7",
"name": "@opam/conf-libpcre",
"version": "opam:1",
"source": {
"type": "install",
"source": [ "no-source:" ],
"opam": {
"name": "conf-libpcre",
"version": "1",
"path": "esy.lock/opam/conf-libpcre.1"
}
},
"overrides": [
{
"opamoverride":
"esy.lock/overrides/opam__s__conf_libpcre_opam__c__1_opam_override"
}
],
"dependencies": [
"esy-pcre@github:esy-packages/esy-pcre#c5076c8facbebaf5f5718c0e270418fd218add7e@d41d8cd9",
"@opam/conf-pkg-config@opam:1.3@93481236",
"@esy-ocaml/[email protected]@d41d8cd9"
],
"devDependencies": []
},
See the additional dependency.
That leads to the executable failing to start if the system does not have libpcre.so.1
in the LD_LIBRARY_PATH
, like any debian and ubuntu system (they have libpcre.so.3
installed).\
I think the executable should pick up esy-pcre
but it does not for some reason.
I made a repro repo: https://github.com/despairblue/esy-pcre-example
This is the commit that likely broke the builds: 5147ed0
Side note: I'm still looking for a way to financially support the esy development. I think it was brought up multiple times on discord. I wonder if anybody who's active in the esy ecosystem can be supported via github sponsors?
$ esy
info esy 0.6.7 (using package.json)
info checking https://github.com/ocaml/opam-repository for updates...
info checking https://github.com/esy-ocaml/esy-opam-override for updates...
info resolving esy packages: done
info solving esy constraints: done
info resolving npm packages: done
info fetching: done
info installing: done
info building @opam/ocamlbuild@opam:0.14.0@6ac75d03
info building @opam/ocamlfind@opam:1.8.1@ff07b0f9
info building @opam/stdio@opam:v0.14.0@a624e254
error: build failed with exit code: 1
build log:
# esy-build-package: building: @opam/ocamlfind@opam:1.8.1
# esy-build-package: pwd: /home/louis/.esy/3/b/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db
# esy-build-package: running: 'bash' '-c' 'true'
# esy-build-package: running: './configure' '-bindir' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/bin' '-sitelib' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/lib' '-mandir' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/man' '-config' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/lib/findlib.conf' '-no-custom' '-no-topfind'
Welcome to findlib version 1.8.1
Configuring core...
Checking for #remove_directory...
Testing threading model...
systhread_supported: true
Testing DLLs...
Testing whether ppxopt can be supported...
Checking for ocamlc -opaque...
Configuring libraries...
native dynlink: found
labltk: not present
ocamlbuild: not present
camlp4: not present (normal since OCaml-4.02)
compiler-libs: found
dbm: not present (normal since OCaml-4.00)
num: not present (normal since OCaml-4.06)
bytes: found, installing fake library
spacetime: found
graphics: not found
Configuration for dynlink written to site-lib-src/dynlink/META
Configuration for str written to site-lib-src/str/META
Configuration for threads written to site-lib-src/threads/META
Configuration for unix written to site-lib-src/unix/META
Configuration for stdlib written to site-lib-src/stdlib/META
Configuration for bigarray written to site-lib-src/bigarray/META
Configuration for ocamldoc written to site-lib-src/ocamldoc/META
Configuration for compiler-libs written to site-lib-src/compiler-libs/META
Configuration for bytes written to site-lib-src/bytes/META
Configuration for raw_spacetime written to site-lib-src/raw_spacetime/META
Detecting compiler arguments: (extractor built) FAILED (see the file ocargs.log for details)
error: command failed: './configure' '-bindir' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/bin' '-sitelib' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/lib' '-mandir' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/man' '-config' '/home/louis/.esy/3____________________________________________________________________/s/opam__s__ocamlfind-opam__c__1.8.1-3ed6d6db/lib/findlib.conf' '-no-custom' '-no-topfind' (exited with 1)
esy-build-package: exiting with errors above...
building @opam/ocamlfind@opam:1.8.1
esy: exiting due to errors above
Can reproduce on https://github.com/Khady/modern-ocaml/tree/ocaml-411
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.