Skip to content

Pull Request process

Jean-Michel FRANCOIS edited this page Nov 3, 2021 · 2 revisions

Pull request process

TD;LR

  1. Create a pull request, fill the template, do and check as many checkbox as required
  2. CI : compile, test, lint (pushed to PR), theme screenshots (pushed to PR), publish static site containing Storybooks and code coverage
  3. Reviews by at least 2 other contributors
  4. Merge to master and remove branch

1. Create your pull request

Create a pull request from your branch to master.

PR template

Paragraph Description
Title it must follow PR commit guideline.
Problem description Explain the issue or the feature it tries to solve. Include image/gif if possible.
Solution description Explain the solution. Include image/gif if possible.
Requirements Fit as much as possible the requirements. A PR may be rejected if it doesn't follow the guideline or not well tested/documented.
Breaking changes Explain as precisely as possible the breaking changes your PR introduced.

2. CI

The CI is run on each PR, using github action. It performs some cool operations :

Compilation and test run

You should run those by yourself on your machine to ensure that this trivial step passes.

From the root of the project

yarn && yarn test

Prettier

To limit the es linter errors, we run prettier on the changed files. Those changes will be pushed on PR the branch with the message test(ci): prettier.

Linter

The stylelint and eslint linters results will be added as annotation in your PR. New errors must be fixed, and may cause reviewers to block the merge.

From the package you want to lint (ex: /package/components/)

yarn run lint:es
yarn run lint:style

PR static website

A static website is published on <PR_id>.talend.surge.sh. The link is pushed as a comment in your PR. It allows reviewers to see the result and play with it before looking at the code or starting all those locally.

It contents :

  • Components/Containers/Forms storybooks and Theme showroom
  • Code coverage of each package

Home Storybook Code coverage

3. Reviews

2 approvals are required, if possible at least 1 from someone not from your team.

To perform a review, use github review feature.

4. Merge

The merge will be performed when all those steps are done.
On merge, don't forget to remove the branch (the button that appears after merge)