This package is currently under development. Contributions to this project will be strictly reviewed at the owner's disgression until this project has well-defined contribution details. Once those details are available, the contribution model will contain helpful details to assist in making active contributions to this project.
- Typescript, Javascript
- Node.js
- React
- Jest
Specific tech:
More specific information is provided in each sub-package.
-
Fork the repository
-
Clone the forked repository
git clone https://github.com/{username}/momentum-design.git
-
Navigate to the root of the repo.
cd momentum-design
-
Setup upstream remote references in your local
git remote add upstream https://github.com/momentum-design/momentum-design.git
-
Verify that your forked repos are set up with the correct remote references. Running
git remote -v
in your repository directory should return settings like these:origin [email protected]:{username}/momentum-design.git (fetch) origin [email protected]:{username}/momentum-design.git (push) upstream [email protected]:momentum-design/momentum-design.git (fetch) upstream [email protected]:momentum-design/momentum-design.git (push)
-
Run
yarn
in the root of the repo -
Run
yarn build
in the root of the repo
This is a mono-repo (using yarn workspaces), to run scripts in each sub-package (like building, testing, etc.), run yarn <PACKAGE_NAME> <SCRIPT_NAME>
from the root of the repository.
For example,
to build the icons package - yarn icons build
to run the builder tests - yarn builder test
Steps for creating a PR (after First time setup has been done):
- Make sure your main branch is up to date with the remote, by executing
git pull upstream main -ff
and then push. - Create a new branch and make your changes.
- Commit your changes, using conventional commits.
- Push your branch to the origin remote
- Create a PR against base repository / main branch on Github
- Important: Add a proper description and title to the PR - it should be formatted, human-readable and also not include the description template text anymore.
- Set the validated label on the PR to kick off the pipeline if you have the access rights for it.
When asking for a review on a PR, consider the following:
- Pipeline should pass before asking for review
- Every comment on a PR should be answered / addressed
- If there is disagreement or discussions, please stay respectful and try to resolve the issues together
- Comments from reviewer should always be resolved by reviewer
- Do not dismiss anyones review/re-review
When reviewing/re-reviewing a PR, consider the following:
- It is encouraged to use conventional comments
- Use "Request changes" or "Approve" option in Github ("Adding comments" should be used when a PR shouldn't be blocked, but feedback should still be provided)
- Check that the PR should include unit or e2e test changes for all the implementation changes
- Every PR should be checked out locally, ran and tested manually.
- Check for breakages due to changing dependencies (like if u update a dependecy, you need a more thorough test)
- Conventions & common coding standards should be pointed out on reviews.
- Maintainability of the changes should be checked (like is it extensible / flexible / etc.)
- Check if similar areas of code need changes or code can be reused from these similar areas
- In case of a longer time off / being not available, consider to finish/handover your review.