status-react/doc/merging-pr-process.md

2.6 KiB

PR process

  1. Create a PR in status-mobile
  2. Add some reviewers to the PR and wait for feedback
  3. Address feedback
  4. Make sure builds and tests are green (run make test locally, make lint-fix to fix any indentation issue and make lint)
  5. Once the PR has been reviewed by the dev team, run e2e tests on it by going to https://github.com/status-im/status-mobile/projects/7 and move the pr under the column E2E tests. This will trigger tests. Running E2E tests is required for all PRs.
    1. Read our PR Review Policy for more details on our approach to PR reviews.
    2. Learn more about our Pipeline for QA process
  6. Once e2e tests have run, they will report the result on the PR, if it's less than 100%, ask QA to take a look to make sure everything is in order (some might fail for legitimate reasons)
  7. Ask QA for manual testing if the PR requires it (more details here)
  8. Once it has been tested successfully, squash everything into one commit. rebase and merge. The commands we use:
  git checkout develop
  git pull develop
  git checkout your-feature-branch
  git rebase develop
  git checkout develop
  git rebase your-feature-branch
  git push

Status-go changes

If you are introducing status-go changes, the PR process is pretty similar, with some differences.

The most important thing is that

status-mobile code that makes it to the develop branch, should always point to a tagged version of status-go in the develop branch of status-go.

In practice, this means that sometimes they need to be merged in lockstep.

  1. Create a PR in status-go and status-mobile. Update the status-go version to the PR revision scripts/update-status-go.sh $git_revision.
  2. Get both PRs reviewed and approved. Once status-mobile PR has been approved, go through manual QA testing if necessary. Don't merge status-mobile PR just yet.
  3. Now that you know the integration between client & server is working, bump the VERSION in status-go and merge it.
  4. Once merged, tag the version with the new version and push the tag:
  git checkout develop
  git pull develop
  git tag vx.y.z
  git push origin vx.y.z
  1. Update status-mobile with the new status-go version, using the new tag scripts/update-status-go.sh "vx.y.z"
  2. If you had to rebase status-go to include new changes, e2e test MUST be re-run. If there's any issue you will have to fix in status-go with another PR and follow the same process.
  3. In status-mobile, push, rebase against develop and merge it 🚀

important note : make sure your status-go PRs get a tested-ok by QA before merging them in.