Reason: simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
Getting Started
Community
Contributing
Documentations
The doc repo lives at https://github.com/reasonml/reasonml.github.io
Codebase
See a list of easy tasks here
See the src folder and the corresponding README.
# On OSX, install opam via Homebrew:
brew update
brew install opam
# On Linux, see here (you will need opam >= 1.2.2): http://opam.ocaml.org/doc/Install.html
opam init
# Add this to your ~/.bashrc (or ~/.zshrc), then do `source ~/.bashrc`
# eval $(opam config env)
opam update
opam switch 4.04.2
eval $(opam config env)
git clone https://github.com/facebook/reason.git
cd reason
opam pin add -y reason .
Note: during the last opam pin
step, make sure your local repo is clean. In particular, remove artifacts and node_modules
. Otherwise the pinning might go stale or stall due to the big node_modules
.
Build
make build
. If this fails on your machine but master passes, it means your setup wasn't right. Could you check if you followed the above installation steps? In particular, make sure you did eval $(opam config env)
and sourced your shell environment (if you don't know how, just open a new shell tab and it'll be sourced usually).
Test
make test
(make sure to follow the repo pinning instructions above!). The tests will output the difference between the expected syntax formatting and the actual one, if any.
Cutting a release
- Make sure local changes are properly committed
- Update remote:
git fetch;
git reset --hard origin/master
- Prerelease:
env version=x.y.z make pre_release
- Check everything is ok locally
- Release!
env version=x.y.z make release
- Use opam-publish to publish the latest version to opam.
License
See Reason license in LICENSE.txt.
Works that are forked from other projects are under their original licenses.
Credit
The general structure of refmt
repo was copied from @whitequark's m17n project, including parts of the README
that instruct how to use this with the OPAM toolchain. Thank you OCaml!