According to our release schedule, we organize our branches into:
master
: is the project permanent branch which should always reflects a production-ready statefeat
: If it’s a feature pull request. In this workflow, a new contributor starts from the master branch.fix
: If you need to send a bug fix pull requestchore
: If is a small change (update something without impacting the user).
Branch naming scheme
feat/foo-bar
for new featuresfix/foo-bar
for bug fixeschore/foo-bar
for anything else. Use chore(docs/style/...) to scope your task.
We have very precise rules on how git commit messages should be formatted. More readable messages makes the project history easier to search.
Each commit message must have a header that includes the type, the scope (optional), and the description:
<type>[optional scope]: <description>
Example:
fix(storybook): Allow fonts to be rendered in storybook.
Read more about Conventional Commits and allowed types on conventionalcommits.org.
Use Github Issues for bug tracing.
Before reporting a new bug, ensure that the bug was not already reported and is not fixed.
If you find a bug in the source code, you can help us by submitting an issue to our Git Repository. Even better, you can submit a Pull Request with a fix.
- To do a “substantial” change - change to the API or introducing a new feature - we highly recommend using our RFC process.
- To report a bug, we recommend using our bug issue tracker and provide a reproduction of the bug.
Many changes, including bug fixes and documentation improvements can be implemented and reviewed via the normal GitHub pull request workflow.
Some changes, though, are “substantial” and should be put through a bit of a design process in order to produce a consensus among the core team.
The “RFC” (Request For Comments) process is intended to provide a consistent and controlled path for new features to enter a project. You can create a new RFC document by using the Feature template in the project issues area.
Before submitting a pull request, please make sure you:
- Clone the repository and create your branch from master.
- Create a new feature branch.
- Run
yarn install
in the project root to install project dependencies. - Do the necessary developments.
- Add tests if you’ve fixed a bug or added code that needs to be tested and ensure the test suite passes (
yarn test
). - Make sure your code lints (
yarn lint
). - Update the project README with details of the changes made to the interface.
- Rebase your work on top of the base branch.
- Open a
Pull Request
to master. - Code owners should automatically be requested for review your code.
- Once reviewed and approved, one of the project master/owners will do the merge and the respective release.
After cloning the project, run yarn install
to fetch its dependencies. Then, you can run several commands:
yarn gr
runs locally built version of Garment. Allows to test changes during the developmentyarn watch
runs TypeScript compiler in a watch mode which incrementally rebuilds changed filesyarn build
builds Garment using TypeScript compileryarn release
updates the versions of changed Garment's packages and publishes them