Coder Social home page Coder Social logo

esy-opam-override's People

Contributors

andreypopp avatar anmonteiro avatar azure-pipelines[bot] avatar bryphe avatar davesnx avatar eduardorfs avatar fraidev avatar jordwalke avatar manasjayanth avatar rizo avatar smorimoto avatar tatchi avatar ulrikstrid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

esy-opam-override's Issues

Windows: Cannot clone repository - cannot create directory: invalid argument

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

Add CI test

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:

  • For each override:
    • Create a minimal package.json with the package as a dependency
    • Use esy install w/ the override (might need to directly call esyi to specify the override)
    • Use esy build and validate the package builds successfully

Cannot build latest Batteries release

Num 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.

zarith1.12 is broken

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?

conf-libpcre overrides break @opam/pcre

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

cc @ManasJayanth


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?

ocamlfind 1.8.1 doesn't build

$ 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.