We aim to keep all technical discussions inside GitHub issues, and all other discussions in the Reason Discord.
If you have questions about a specific PR, want to discuss a new API idea or a bug, GitHub issues are the right place. If you have questions about how to use it, or how the project is running - the Reason Discord is the place to go.
You can contact via Discord or a DM in Twitter.
Here is a quick guide to doing code contributions to the repository.
-
Find some issue you're interested in, or a feature that you'd like to tackle.
-
Fork, then clone:
git clone https://github.com/YOUR_USERNAME/styled-ppx.git
. -
Create a branch with a meaningful name for the issue:
git checkout -b fix-something
. -
Setup the project (see below).
-
Make your changes and commit:
git add
andgit commit
. -
Make sure that the tests still pass:
make test
(if you ranmake init
a pre-push githook has been created for you to run each time you push). -
Push your branch:
git push -u origin your-branch-name
. -
Submit a pull request to the upstream styled-ppx repository.
-
Choose a descriptive title and describe your changes briefly.
-
Wait for a maintainer to review your PR, make changes if it's being recommended, and get it merged.
-
Perform a celebratory dance! 💃
- Make sure you have installed opam and npm.
- Run
make init
will setup the opam switch, install dependencies and some pinned packages. - Run
make build
will build the project ormake dev
to build and watch for changes. - Run
make test
to run all test suites.
Ensure ocaml-lsp-server
is installed with opam info ocaml-lsp-server
and in case not, install it with opam install ocaml-lsp-server
.
In any other case, follow the generic installation steps from Reason documentation.
Aside from all test suites, check the Makefile for all the available commands.
There are some end-to-end tests to ensure all the ppx generation is working as expected, under the e2e/
folder. Which contains
$ tree -L 1 e2e
e2e
├── melange
├── rescript-v10-JSX4
└── rescript-v9-JSX3
make build
make test_e2e_rescript_v10
- Each PR created will create a nightly release that you can install via npm.
- Each stable release will happen once the package.json's version is updated and merged in the main branch.
These contribution guidelines are based on styled-components's guideline.