Simple OCaml Development Workflow on CommonJS
an example esy-powered OCaml project
Utility to manage styles for React JS components
package.json workflow for compiled languages (old repository)
jaredly/rejs 28
A Reason web toplevel built using js_of_ocaml
jordwalke/common-native-reason-issues 13
Common Issues When Developing Native Reason Projects
(very) early experiment in animations
ReSS: Reason implementation of CSS Flex Box layout (a port of css-layout project), targeting native compilation and JS compilation
startednessjs/ness
started time in 3 hours
push eventesy/esy
commit sha d42af8e9d1f724af74dddf9518b2ec0c8167d8e9
Readme: Add a section about running slow tests
commit sha 78f65cad66a572b00db933adb01154aec2c2fb25
Disable opam {post} variable (#1319)
commit sha af13504c5867ba996b41b9c1338cb1a919a28258
Typo: pacing -> placing
commit sha 3cfcfa4582a1a8bd0848a97b7e960607a6c3b1b0
Docs: Remove note about esy-release not working on w
commit sha c84566fbfc904a2f714fe5b9d1b293996928a6fd
Fix Alpine image (#1326) * Fix Alpine Builds: adopt 4.12's new compiler variants layout Additionally, uses specific git commits for better reproducibility * Add missing Alpine packages
commit sha f108165abc470f6556a4b822382af2f252dde008
Docs: Add a note about ocaml compiler package
commit sha 25c27129097b1b15788ddac33e81076a983baad9
Fixes Windows cache step failure (#1327) Windows paths have 86 underscores. Not 85
commit sha 6f16cc08d1b5f1557588e9564a6d549ac2ec793a
CI: Trigger on specific branches and skip .md
commit sha 03966da4e3e3dd908d95820bf4b5c0d7b2b32009
Replaced `let%bind` with monadic `let*` (#1278) * Replaces `let%bind` with monadic `let*` bringing into scope operators along with Let_syntax * fixed refmt multiline comments issue * Continue looping on Fs.stats as it used to Co-authored-by: Manas <[email protected]>
commit sha 718d7e7a51fbf82e729045f4293eca56766abff4
Improve local tests-e2e-re (#1070) * Fix: Support local installation of node * Tests: Add test-e2e-re to `make test`
commit sha 83007fb50b1d07543249db9984e01feb8db8e5fb
@slowtest Update slow test suite (#1325) * Use 4.10.x to run slow test * @slowtest Update list of top 100 opam packages ... and temporarily disable NPM and Opam packages that dont build
commit sha 5ce0d2226e456fadff355297bf31fd337429cfc6
@slowtest Document {post} being ignored by solver (#1323)
commit sha ca4e8efaeebf251c90b5a302a4d2006de078522c
@slowtest Add support for extra sources (#1318) * logs * install extra sources * wip: parse extra-souces and store in Dist.NoSource * write extraSources into esy.lock/index.json * wip: wire in pkg.extraSources * wip: fix paths and enable install * wip: remove un-necessary code * wip: remove dependency of Path on Empty in DistStorage * wip: cleanup code * fix: formatting * fix: e2e tests * refactor: use RunAsync.List instead of Lwt_List * run @slowtest libtorch * fix: default to [] in case of old lock files * rename fix to fmt * remove opam related dependency from esy-lib * remove un-necessary files * fmt * remove build bash script * make extraSources optional in fetch * add more information to error log * @slowtest * test for extra-source in opam dependency * @slowtest extra-source libtorch * reorder scripts & run @slowtest
commit sha d44ad8682a3532b701eb8ed532bd864c84f9718a
@slowtest Use vendored bos to remove files/directories Vendored bos has fixes for readonly files on Windows. Issue last seen with esy i --cache-tarballs-path
commit sha 134c26565f92c8837e10a3c74e4808bb29021cb5
@slowtest code formatter
push time in 4 hours
startedjordwalke/paradoc
started time in 8 hours
startedjordwalke/paradoc
started time in 10 hours
startedjordwalke/paradoc
started time in 18 hours
startedjordwalke/paradoc
started time in 18 hours
startedjordwalke/paradoc
started time in 19 hours
issue commentesy/esy
Feel free to re-open this if something actionable on your minds, folks.
comment created time in 19 hours
issue closedesy/esy
This is a question regarding the limitations of the rewritePrefix feature in esy (https://esy.sh/docs/en/npm-release.html#relocating-artifacts-path-rewriting). My goal is to maybe find a way to relax or in the best case completely lift these limitations.
I recently brought this topic up on discord. But I thought opening it here again, would lead to a better discussion, maybe with more people able to chime in 🙂
Question 1:
Currently releases configured with
"esy.release.rewritePrefix": truecannot be produced on Windows.
Is this limitation still present in the current version of esy? I think I have already produced working npm-packages with this flag enabled. Maybe it is just an edge case I didn't encounter, though.
Question 2:
Releases configured with
"esy.release.rewritePrefix": truecannot be installed into deep filesystem locations (the limit is around 108 characters).
I do understand, that the current path-length limitation exists, because of the shebang length limit.
If I understand correctly, this is only an issue on linux, or does this limit also exist on mac and windows? If this is only an issue on linux, one approach to relax this constraint could be to have a different store padding on different operating systems, like for example:
- Linux - 127 (because of shebang limit)
- Windows - 260 (because of path length limit)
- Mac - ??? (I don't know if there is a limiting factor)
Why do I want to increase the limit?
127 characters is already pretty long, but in the context of node_modules (or npm-packages in general), paths can get much longer than that on a regular basis.
Currently, releasing an npm-package with path rewriting enabled often times just leaves you hoping, that no one uses your npm package in a deeply nested path. Especially, when these packages are used in a ci environment, where you don't have much control over the length of your path.
With odiff for example, we've already had two reports of install failures, because of this limitation (https://github.com/dmtrKovalenko/odiff/issues/29, https://github.com/dmtrKovalenko/odiff/issues/34). And this is probably just the tip of the iceberg, as presumably many just give up and walk away, when they encounter such issues.
Disabling path rewriting is also not always an option, as you then run into issues like this https://github.com/dmtrKovalenko/odiff/issues/41.
So relaxing the path limitation would already be a big help. The best thing would obiously be removing the limitation entirely. Maybe something like https://github.com/ocaml/ocaml/pull/8622 could also be done in esy?
But this is an area where I simply don't have any clue of whats possible and what isn't. So this is where I am asking you. Do you see any option to relax or completely lift these limitations?
closed time in 19 hours
eWert-Onlineissue commentesy/esy
@eWert-Online Would you be able to summarise this discussion as small (2-3 lines if nothing else) docs contribution? I'll close this issue for now and mark it as a question.
Thanks for reporting about the Windows docs issue.
comment created time in 19 hours
pull request commentesy/esy
Thank you so much, @melwyn95 !
comment created time in 19 hours
push eventesy/esy
commit sha ca4e8efaeebf251c90b5a302a4d2006de078522c
@slowtest Add support for extra sources (#1318) * logs * install extra sources * wip: parse extra-souces and store in Dist.NoSource * write extraSources into esy.lock/index.json * wip: wire in pkg.extraSources * wip: fix paths and enable install * wip: remove un-necessary code * wip: remove dependency of Path on Empty in DistStorage * wip: cleanup code * fix: formatting * fix: e2e tests * refactor: use RunAsync.List instead of Lwt_List * run @slowtest libtorch * fix: default to [] in case of old lock files * rename fix to fmt * remove opam related dependency from esy-lib * remove un-necessary files * fmt * remove build bash script * make extraSources optional in fetch * add more information to error log * @slowtest * test for extra-source in opam dependency * @slowtest extra-source libtorch * reorder scripts & run @slowtest
push time in 19 hours
issue closedesy/esy
Support opam's `extra-source` field
<!-- Please fill in the entire template below. -->
Hey! I ran into this issue when trying to install a package that uses the opam file field extra-source. At first, it seemed like an issue with the archive, but then I realized that this is the error you get when you try running tar on a file that doesn't exist. I believe that esy already supports the files field through this bit of code, but I could be way off the mark. Any guidance you have would be greatly appreciated. Thanks!
<!-- Please try to reproduce the issue with esy@latest. It may have already been fixed. --> esy version: 0.6.10 Operating System: macOS
Issue: Can't install opam package that specifies files in the extra-source field
Package.json
<!-- Please include the package.json where you hit the issue. If it's large, consider linking to a github repo. -->
{
"dependencies": {
"@opam/libwasmtime": "0.22.0+macos-x86_64"
}
}
Actual behavior: <!-- Make sure to include the command-line output you see. -->
λ libwasmtime-test esy
info esy 0.6.10 (using package.json)
info building @opam/libwasmtime@opam:0.22.0+macos-x86_64@a3eab072
error: build failed with exit code: 1
build log:
# esy-build-package: building: @opam/libwasmtime@opam:0.22.0+macos-x86_64
# esy-build-package: pwd: /Users/oscar/.esy/3/b/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958
# esy-build-package: running: 'sh' '-c' 'test -d /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime/lib/libwasmtime.a || ( mkdir -p /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime && tar xf wasmtime-macos.tar.xz && mv -f wasmtime-*macos*/* /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime )'
tar: Error opening archive: Failed to open 'wasmtime-macos.tar.xz'
error: command failed: 'sh' '-c' 'test -d /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime/lib/libwasmtime.a || ( mkdir -p /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime && tar xf wasmtime-macos.tar.xz && mv -f wasmtime-*macos*/* /Users/oscar/.esy/3__________________________________________________________________/s/opam__s__libwasmtime-opam__c__0.22.0+macos-x86_64-7ece8958/lib/libwasmtime )' (exited with 1)
esy-build-package: exiting with errors above...
building @opam/libwasmtime@opam:0.22.0+macos-x86_64
esy: exiting due to errors above
Expected behavior: Download the files specified in the extra-source field before building
Additional steps to reproduce: N/A
closed time in 19 hours
ospencerPR merged esy/esy
Fixes #1316
- [X] Download file in stage location and later copy
- [X] Check integrity
- [X] Try to encode extra sources info in Variant (NoSource…) [No need found a better solution]
- [x] Code clean up
- [ ] Generalise for other cases Archive, Git, Github, Local?? (Ask Manas) [right now focus only on NoSource, Git & GitHub]
- [X] Encode & Parse extra-sources in no-source [No need to do that as I have access to extraSources from lock file]
- [X] Write extraSources in lock file
- [x] Test esy (new and old) with (new and old) lock file format
- [x] Check if temporary files/paths are deleted/renamed properly
- [x] Test with --cached-tarballs-path
- [x] Write test cases
- [x] Use RunAsync instead of Lwt
pr closed time in 19 hours
issue commentesy/esy
Overall I think we should provide tools to build static binaries to begin with, a linker wrapper that prefers .a to .so would already be 99% of the problem.
comment created time in 21 hours
issue commentesy/esy
@ManasJayanth no what I meant is that there is no way that we can guarantee that rewritePrefix works on npm client.
Building npm releases here for me is clearly about releasing it to the registry, not the npm client. You will still probably need to have esy to install it, of course globally it may work for npm and we can probably ensure that. But not as a package dependency.
comment created time in 21 hours
push eventesy/test-github-long-hash
commit sha 06e490a3cc632079ec68a04edc3726663fa872d3
Fixes Windows build
push time in a day
push eventesy/test-github-short-hash
commit sha 728d04f144f23470ce3ef9b8e5bbf730f39befb8
Windows support
push time in a day
delete branch esy/esy
delete branch : prometheansacrifice/add-post-tag-removal-explainer
delete time in a day
push eventesy/esy
commit sha 5ce0d2226e456fadff355297bf31fd337429cfc6
@slowtest Document {post} being ignored by solver (#1323)
push time in a day
pull request commentesy/esy
Document {post} being ignored by solver
Good for us :P
comment created time in a day
pull request commentesy/esy
Document {post} being ignored by solver
@phated Some 80+ top opam packages are building fine with post=false.
comment created time in a day
pull request commentesy-ocaml/esy-opam-override
Sorry! Missed this PR and ended up adding overrides for zarith 1.12 myself. Once key difference is that the zarith 1.10 patch wasn't necessary for 1.12
comment created time in a day
push eventesy/esy
commit sha af13504c5867ba996b41b9c1338cb1a919a28258
Typo: pacing -> placing
commit sha 3cfcfa4582a1a8bd0848a97b7e960607a6c3b1b0
Docs: Remove note about esy-release not working on w
commit sha c84566fbfc904a2f714fe5b9d1b293996928a6fd
Fix Alpine image (#1326) * Fix Alpine Builds: adopt 4.12's new compiler variants layout Additionally, uses specific git commits for better reproducibility * Add missing Alpine packages
commit sha f108165abc470f6556a4b822382af2f252dde008
Docs: Add a note about ocaml compiler package
commit sha 25c27129097b1b15788ddac33e81076a983baad9
Fixes Windows cache step failure (#1327) Windows paths have 86 underscores. Not 85
commit sha 6f16cc08d1b5f1557588e9564a6d549ac2ec793a
CI: Trigger on specific branches and skip .md
commit sha 03966da4e3e3dd908d95820bf4b5c0d7b2b32009
Replaced `let%bind` with monadic `let*` (#1278) * Replaces `let%bind` with monadic `let*` bringing into scope operators along with Let_syntax * fixed refmt multiline comments issue * Continue looping on Fs.stats as it used to Co-authored-by: Manas <[email protected]>
commit sha 718d7e7a51fbf82e729045f4293eca56766abff4
Improve local tests-e2e-re (#1070) * Fix: Support local installation of node * Tests: Add test-e2e-re to `make test`
commit sha 83007fb50b1d07543249db9984e01feb8db8e5fb
@slowtest Update slow test suite (#1325) * Use 4.10.x to run slow test * @slowtest Update list of top 100 opam packages ... and temporarily disable NPM and Opam packages that dont build
commit sha d48099239adb655e3c4f3290b774cad3a3958692
@slowtest Document {post} being ignored by solver
push time in a day
delete branch esy/esy
delete branch : prometheansacrifice/update-slow-test-suite
delete time in a day
push eventesy/esy
commit sha 83007fb50b1d07543249db9984e01feb8db8e5fb
@slowtest Update slow test suite (#1325) * Use 4.10.x to run slow test * @slowtest Update list of top 100 opam packages ... and temporarily disable NPM and Opam packages that dont build
push time in a day