note: This library is in the infant stages of development. Backend developmetn in Native Reason/Ocaml is not friendly for newcomers (I know first hand). This is a collections of modules I have been using personally with code I have built, and code I assembled from various other open source projects for server side development in Reasonml. It is an attempt to have a unified mono-repo of packages that are stable, compadible, and activley maintained. I am in the process of making them into stable released packages on npm and opam. In the meantime cloning and building locally with esy would be the most painless way to use it today. Windows and LWT support is planned but not yet supported. If you run into issues building in open up an issue and I'll respond as soon as I can. Α real README is also in the works.
A project which demonstrates a Reason workflow with Esy.
You need Esy, you can install the beta using npm:
% npm install -g esy@latest
NOTE: Make sure
esy --version
returns at least0.5.4
for this project to build.
Then run the esy
command from this project root to install and build dependencies.
% esy
Now you can run your editor within the environment (which also includes merlin):
% esy $EDITOR
% esy vim
Alternatively you can try vim-reasonml which loads esy project environments automatically.
After you make some changes to source code, you can re-run project's build
again with the same simple esy
command.
% esy
And test compiled executable (runs scripts.tests
specified in
package.json
):
% esy test
Documentation for the libraries in the project can be generated with:
% esy doc
% esy open '#{self.target_dir}/default/_doc/_html/index.html'
Shell into environment:
% esy shell
esy
allows creating prebuilt binary packages for your current platform, with
no dependencies.
% esy npm-release
% cd _release
% npm publish
hello-reason
includes CI configuration for Azure
DevOps pipelines out of the box.
- Create your Azure DevOps account.
- Add a new project, and point that new Azure DevOps project to your github
repo that includes the CI (
./azure-pipelines.yml
and the.ci/
directory) fromhello-reason
. - Create a new Pipeline within that project.
- When asked how to configure the new pipeline, select the option to use existing configuration inside the repo.
The CI is configured to build caches on the master
branch, and also any
branch named one of (global
, release-*
, releases-*
). That means that pull
requests to any branch with those names will be fast, once you have landed at
least one commit to that branch. The first time you submit a pull request to
one of those branches, the builds will be slow but then subsequent pull
requests will be faster once a pull request is merged to it.
BSD3, see LICENSE files for its text.