Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 3.38 KB

CONTRIBUTING.md

File metadata and controls

84 lines (63 loc) · 3.38 KB

Contributing

🎉🏅 Thanks for helping us improve this project! 🙏

This document outlines some of the practices we care about. If you have any questions or suggestions about the process, feel free to open an issue .

How Can I Contribute?

Reporting Issues

If you find any mistakes in the docs or a bug in the code, please open an issue in Github so we can look into it. You can also create a PR fixing it yourself, or course.

If you report a bug, please follow these guidelines:

  • Make sure the bug exists in the latest version.
  • Include instructions on how to reproduce the issue. The instructions should be as minimal as possible and answer the three big questions:
    1. What are the exact steps you took? This includes the exact versions of node, npm, and any packages involved.
    2. What result are you expecting?
    3. What is the actual result?

Improving Documentation

For small documentation changes, you can use Github's editing feature. The only thing to keep in mind is to prefix the commit message with "docs: ". The detault commit message generated by Github will lead to a failing CI build.

For larger updates to the documentation it might be better to follow the instructions for contributing code below.

Contributing Code

Note: If you're planning on making substantial changes, please open an issue first to discuss your idea. Otherwise you might end up investing a lot of work only to discover that it conflicts with plans the maintainers might have.

The general steps for creating a pull request are:

  1. Create a branch for your change. Always start your branch from the latest master. We often prefix the branch name with our initials, e.g. jk-a-change.
  2. Run npm install to install the dependencies.
  3. If you're fixing a bug, be sure to write a test first. That way you can validate that the test actually catches the bug and doesn't pass.
  4. Make your changes to the code. Remember to update the tests if you add new features or change behavior.
  5. Run the tests via npm test. This will also run style checks and other validations. You might see errors about uncommitted files. This is expected until you commit your changes.
  6. Once you're done, git add . and git commit. Please follow the commit message conventions described below.
  7. Push your branch to Github & create a PR.

Code Style

In addition to any linting rules the project might include, a few general rules of thumb:

  • Try to match the style of the rest of the code.
  • We prefer simple code that is easy to understand over terse, expressive code.
  • We try to structure projects by semantics instead of role. E.g. we'd rather have a tree.js module that contains tree traversal-related helpers than a helpers.js module.
  • Actually, if you create helpers you might want to put those into a separate package. That way it's easier to reuse them.

Publishing changes

(Notes for internal team)

This multi-repository is managed with lerna 2.x.

When a PR has been merged to master, we can publish new package(s), maintain tags, bump versions etc. by running:

$ ./node_modules/.bin/lerna publish