We aim to keep all technical discussions inside GitHub issues, and all other discussions in the Reason Discord. This is to make sure valuable discussions are public and discoverable via search engines.
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.
David Sancho has a contact email on the GitHub profile, and happy to talk about any problems via those 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. Also make sure that no one else is already working on it. We don't want you to be disappointed.
-
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
-
Make your changes and commit:
git add
andgit commit
-
Make sure that the tests still pass:
make test_all
(if you ranmake init
a pre-psuh 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 yarn (1.x).
- 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_all
to run all test suites
Ensure ocaml-lsp-server is installed. opam info ocaml-lsp-server
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 test to ensure all the ppx generation is working as expected, under the e2e/
folder. Which contains
$ tree -L 1 e2e
e2e
├── bucklescript-v8
├── rescript-v10-JSX4
└── rescript-v9-JSX3
make build
cd e2e/bucklescript-v8
yarn install
yarn build
yarn test
- Each PR created will release a nighly release that you can install via npm.
- Each stable release will happen once the package.json's verison is updated and merged in the main branch.
These contribution guidelines are based on styled-components's guideline.