-
Notifications
You must be signed in to change notification settings - Fork 20
for maintainers
This page describes some tasks that regular developers and maintainers of the ASGarD codebase may be asked to perform.
Here is an outline of the process:
- PR comes in for 'develop'
- CI and Gitlab checks
- if clean merge or CI failures go unanswered, maintainer asks submitter to fix, and eventually rejects PR.
- maintainer does quick sanity checks
- patch is reasonably sized (smallest possible complete logical feature)
- code formatting
- well commented/documented
- Submitter addresses comments from maintainer(s)
- If required, maintainer tags project developer(s) to review and comment
- Submitter addresses comments from developer(s)
- At least one reviewer must mark the PR as "approved" on Gitlab, indicating they have reviewed the code.
- Once developers, requested reviewers, and maintainers give '+1', thumbsup,
okay, whatever, maintainer continues with merging the pull request into
develop
.
If you are asked to review a pull request, please try to have your comments or approval in by the same time (24hrs) of the next business day. This will help to keep discussion active. Once you are done reviewing, please mark the PR as approved in the Gitlab web interface.
Please refer to our code review checklist.
Note that most of these things should be handled by the PR submitter before others review the code in order to make their job easier.
Also checkout the thoughtbot guide to code-reviews.
In addition to meeting the technical requirements discussed above, note the following guidelines:
- PR approvers should not approve work they have been involved with.
- In the event of ambiguity or uncertainty, the PR approvers should all discuss an appropriate process in advance of any approval.
- Currently the status check requires the PR up-to-date with the develop branch. However, a merge of develop to the PR branch can cause difficulty for review. For this reason, unless there is particular concern, delay updating the PR from develop until the review process is completed.
These could be automated on the server side (more robust but more CI resources), or on the developer/IDE side.
- test coverage
- code formatting
- Create a release candidate branch from develop. Set this branch as protected.
- Update the version numbers in CMakeLists.txt
- Update the CHANGELOG.md with major changes since last release.
- Verify CHANGELOG.md is appropriate with contributors, interested parties. Update as needed.
- Issue a PR to master.
- PR approver verifies that the tests run on relevant architectures.
- Approve the PR
- Tag the release with the version number, e.g. 3.0.1
- Create a release using the Gitlab release tool
- Rebase develop onto tagged master commit with
git rebase --preserve-merges
- Delete the release candidate branch.
- Make public announcement
- All developers need to
git fetch; git co develop; git reset --hard upstream/develop