...
Make sure that the Jira task has a clear description, and then move it to
In Progress
IN PROGRESS
Expand | ||
---|---|---|
| ||
Ideally the description in the Jira task is written in a way that it can be copied and pasted as the description of the Pull Request. This is very subjective, but the description should:
|
...
Crank out some code and tests (or tests and code, for TDD bonus points) and whatever documentation that needs to be created or updated
Periodically commit your work with messages like:
Code Block feat: FORMS-1234 new map component for dropping a pin Added a new map component that allows the user to drop a "pin" on the map, and the location is saved as both Lat/Lon or UTM coordinates.
...
Using your Pull Request number, run the “PR Deploy” Action
Expand | ||
---|---|---|
| ||
There are various ways to tell this:
|
Test your changes in the deployed PR
...
instance
Do a self-review of your Pull Request
Expand | ||
---|---|---|
| ||
Pull Requests should be created so that can be easily and quickly reviewed. By reading through every line of your code changes (because the reviewer should also be reading every line) you check that the Pull Request will make sense to your reviewers. It might help to add a GitHub comment to your code changes to explain them better. It might help to split your Pull Request into smaller pieces if it is too large: small Pull Requests that take five or ten minutes to review will get a more thorough review than Pull Requests that take hours or days. |
...
Expand | ||
---|---|---|
| ||
Ideally every developer would review and understand every change in every Pull Request, but that’s not practical. Code reviews have many purposes:
There are two ways of looking at Pull Requests:
We can use the Ship / Show / Ask approach to changesPull Requests:
|
Talk to reviewers
Keep up to date
Deploy Action
merge and message
Push Action
Undeploy Action
Code Climate / etc?
Jira: moving tickets, rewrite description
...
Tell your reviewers about the Pull Request
Expand | ||
---|---|---|
| ||
This step really depends on the reviewer. Some people notice that they have been asked to do a review, but many do not. It doesn’t hurt to post in the team channel on Discord that something is ready for review and “mention” the reviewers. |
In Jira move the task to
PULL REQUEST (PR)
Keep your branch up to date with
main
Expand | ||
---|---|---|
| ||
It depends! It’s good to always be up to date because the testing and review is more meaningful if the base branch is up to date. However, it can also waste a lot of time if one person is putting in multiple small changes and everyone is trying to keep up. Find a balance between having a current base and spending time keeping it current. |
Re-run the “PR Deploy” Action after updating your branch
Expand | ||
---|---|---|
| ||
If you or others are testing the deployed code, but the code is not up to date with main, then bugs could sneak through. When you look at your PR there will be comments in the timeline for commits, and comments from the PR Deploy Action. If there are commits after the last PR Deploy, then it should be deployed again. Retesting might be wanted if there were merge conflicts or other contention between the new main and the PR code. |
Wait for approval (if needed) and merge your changes with the properly formatted commit message like:
Code Block |
---|
feat: FORMS-1234 new map component for dropping a pin
Added a new map component that allows the user to drop a "pin" on the map,
and the location is saved as both Lat/Lon or UTM coordinates. |
Expand | ||
---|---|---|
| ||
This format must be followed as we eventually want to introduce automated changelogs and versioning. |
Monitor the
Push
Action
Expand | ||
---|---|---|
| ||
The
Once you have merged your changes, ensure that they are deployed through all environments. Do not leave a deployment “hanging” and deployed to only the lower environments, as the next merge will probably cause it to go all the way to prod. If the change is tested and approved, it must go to prod. |
Run the
PR Undeploy
Action with your Pull Request number
Expand | ||
---|---|---|
| ||
Maybe? Merge can only be done by people with write access to the repo, so in theory on merge we would have access to the GitHub secrets and could undeploy automatically if we can figure out the PR number. |
Check Code Climate
Expand | ||
---|---|---|
| ||
We use Code Climate to monitor maintainability and code coverage. However, it will probably be replaced by SonarCloud in the near future. But it doesn’t hurt to check that your changes didn’t decrease our maintainability or code coverage. |
Move Jira task to
DONE