Tools for Merge Request reviewers
Here are the merge requests: https://gitlab.com/groups/tikiwiki/-/merge_requests
- Ready to be merged: https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&draft=no
- Not ready to be merged (in draft): https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&draft=yes
Main reviewers
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=marclaporte
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=adrienmaloba
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=kroky
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=gary.cunningham-lee
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=jonnybradley
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=luciash
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=robertokir
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=alvinbm
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=josaphat.imani97
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=benoitg
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=jyhem
- https://gitlab.com/groups/tikiwiki/-/merge_requests?scope=all&state=opened&reviewer_username=fabiomontefuscolo
Guidelines
- If a MR is in draft, you can provide feedback, but don't merge yet.
Example: https://gitlab.com/tikiwiki/tiki/-/merge_requests/2910#note_1417388350
Atomic Commit Convention
Database Schema changes
Please be extra careful on these. Please see: Database Schema Upgrade
Continuous integration pipeline
In general, do not merge if there are failing tests, but as of 2023-02-01, we have some issues on older branches, so pipeline will run tests only on modified files in MR/commit
Status as of 2023-02-01:
- https://gitlab.com/tikiwiki/tiki/-/commits/master Runs tests on all files (even files you don't modify)
- https://gitlab.com/tikiwiki/tiki/-/commits/25.x Runs tests only on modified files in MR/commit
- https://gitlab.com/tikiwiki/tiki/-/commits/24.x Runs tests only on modified files in MR/commit
- https://gitlab.com/tikiwiki/tiki/-/commits/21.x Runs tests only on modified files in MR/commit
- https://gitlab.com/tikiwiki/tiki/-/commits/18.x Runs tests only on modified files in MR/commit
Questions and answers
Is it OK to rebase?
What about rebasing? When I click "Rebase", this alert displays: "Are you sure you want to rebase?
Rebasing creates a pipeline that runs code originating from a forked project merge request. Consequently there are potential security implications, such as the exposure of CI variables.
You should review the code thoroughly before running this pipeline with the parent project's CI/CD resources.
If you are unsure, ask a project maintainer to review it for you."
So my question is, is it ok go go ahead and rebase?
Answer: Yes, it is OK to rebase. And you need to do it before approving the merge request. It can also be useful to rebase if some tests are failing, as it may resolve a flaky test, or tests may have been improved in master.
What if the merge train fails and the merge request gets removed from it?
Recently we switched to the "Merge Trains" feature of GitLab. It might sometimes happen (especially on the older branches) that while trying to merge a MR (e.g. a cherry-picked backport) via the GitLab UI you get a message such as "<username> removed this merge request from the merge train because The resulting pipeline would have been empty. Review the rules configuration for the relevant jobs." and the MR is not merged. What can I do?
Answer: The merge request must be merged manually. Here are the steps you need to follow on your command line:
- git fetch "git@gitlab.com:<mr-author-username>/tiki.git" 'mr-authors-branch-name'
- git checkout -b ‘<mr-authors-branch-name>’ FETCH_HEAD
- git rebase upstream/<tiki-branch-name> # Or replace “upstream” with whatever you called the main tiki source. Just a standard local rebase. NOT a merge, we normally enforce linear history.
- git push upstream <tiki-branch-name> # Or replace “upstream” with whatever you called the main tiki source, instead of pushing back to the MR or to your own tiki fork. This is the "manual" part
For example:
git fetch "git@gitlab.com:rodriguezny/tiki.git" '21x-remove-patch-already-applied-in-adodb-5.20.21' git checkout -b 'tiki-21x-remove-patch-already-applied-in-adodb-5.20.21' FETCH_HEAD git rebase upstream/21.x git push upstream 21.x