Pull requests are welcome, please keep conversations and commit messages civil.
-
Fork, then clone the repo.
-
Set up your machine.
yarn && yarn bootstrap
-
Make sure the tests pass.
yarn test
-
Make your change. Add tests for your change. Make the linter and tests pass.
-
Document changes using the jsdoc standards to ensure that our code self-generates good documentation.
build the jsdoc site, the files will be outputted to
./build/docs/
yarn generate-docs
Validate that your generated documentation is what you intended, as documentation gets autogenerated from master.
-
Run prettier to format code to comply with code style (Modified AirBnB Rule set: ES Lint Config)
yarn format
-
Make sure sure the linter and unit tests pass and the docs can be generated.
yarn test
-
-
Push to your fork and submit a pull request and wait for peer review.
We may suggest some changes or improvements or alternatives.
Some things that will increase the chance that your pull request is accepted:
- Your code must be documented inline via jsdoc annotations, tested, and pass the linter.
- Your changes must not break the existing library API without good justification.
- Your commit messages should be reasonable. (
git rebase -i head~n
choose the r option to reword you commits).
This guide is loosely based off of factory_bot_rails contributing.md which is referenced here GitHub's Contributing Guidelines blog post
Once a pull request has been reviewed and merged new versions of all packages can be released by any of the maintainers. This is an automated process driven by Github Release.
-
Check the latest version number under releases and decide if the changes to be released require a MAJOR, MINOR or PATCH release according to semantic versioning:
- MAJOR version when you make incompatible API changes (e.g.
1.15.0
->2.0.0
) - MINOR version when you add functionality in a backwards-compatible manner (e.g.
1.15.0
->1.16.0
) - PATCH version when you make backwards-compatible bug fixes (e.g.
1.15.0
->1.15.1
- MAJOR version when you make incompatible API changes (e.g.
-
Create a new release by incrementing the correct version number using the Github Releases user interface.
- Be sure not to save any draft releases! (as they'll also trigger step 3 below since Github creates a new tag for draft releases).
- The tag version and release title is expected to be the same and in the following format:
v1.43.0
-
The new tag will kick off a Travis build and using will automatically release all packages using the new version specified. (See scripts/publish.sh for details).