package.json workflow for native development with Reason/OCaml.
This README serves as a development documentation for esy. For user documentation refer to esy.sh documentation site.
esy-build-package— source code for
esy— source code for
esy-install— source code for
esy addand other yarn-based command.
esy-install/esy-install— this is a submodule which points to
esy/esy-installrepo, a fork of
test— unit tests
test-e2e— integration tests for
test-opam— "OPAM top 100 packages" test suite
linux-build— Docker based macOS to Linux cross compilation infra
To make changes to
esy and test them locally:
% git clone git://github.com/esy/esy.git % cd esy % make bootstrap
to see the description of development workflow.
% make test
There are two branches:
master— the active development, we cut new versions out of there regularly.
0.0.x— maintainance branch for 0.0.x releases.
Issues are tracked at esy/esy.
esy is released on npm.
Because esy is written in OCaml/Reason and compiled into a native executable we need to acquire a set of prebuilt binaries. We employ CI servers (thanks Travis CI) to build platform specific releases.
The release workflow is the following:
Ensure you arre on
masterbranch and run
% make bump-patch-verson % git push && git push --tags
(this bumps patch version, use
bump-major-versioncorrespondingly to bump either minor or major version of esy)
Wait till CI finishes its task and uploads releases on GitHub, check https://github.com/esy/esy/releases for them.
% make release
Which downloads platform specific releases (which CI uploaded GitHub) and produces an npm releases with needed metadata inside
Ensure release inside
_releasedirectory is ok.
cd _release && npm pack && npm install -g ./esy-*.tgzto test how release installs and feels.
cd _release && npm publishto publish release on npm.
nextis used to publish preview releases.