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

52 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2023-01-31 12:06:29 +00:00
## 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`)
2023-09-01 13:26:26 +00:00
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](pr-review-policy.md) for more details on our approach to PR reviews.
2023-09-01 13:26:26 +00:00
2) Learn more about our [Pipeline for QA](pipeline_process.md) process
2023-01-31 12:06:29 +00:00
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)
2023-09-01 13:26:26 +00:00
7) Ask QA for manual testing if the PR requires it (more details [here](pipeline_process.md))
2023-01-31 12:06:29 +00:00
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, merge the status-go PR first.
4) Once merged, tag the merged commit with the new version and push the tag:
2023-01-31 12:06:29 +00:00
```
git checkout develop
git pull develop
make tag-version
2023-01-31 12:06:29 +00:00
git push origin vx.y.z
```
:warning: If a specific commit need to tagged in status-go, use `make tag-version TARGET_COMMIT={hash}`. More info about tagging in [status-go](https://github.com/status-im/status-go/blob/develop/RELEASING.md#tagging-versions).
2023-01-31 12:06:29 +00:00
5) Update status-mobile with the new status-go version, using the new tag `scripts/update-status-go.sh "vx.y.z"`
2023-08-11 14:05:14 +00:00
6) 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.
7) 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.