Integration Review
From MoodleDocs
Purpose
The purpose of the integration review is to:
- Ensure consistent quality across the codebase
- Ensure that pedagogical aims of Moodle are at the forefront of any change
- Take into consideration the holistic view of moodle, looking at the impact beyond where the original developer was focused
- Provide guidance and feedback to developers, helping them learn and improve
- Consider other perspectives of other users perhaps not considered by original developers e.g.
- Teachers
- Students
- Administrators
- Third-party developers
Integration Review Process
- Run automated pre-checks against the continuous integration server. (In future this can be automated and also moved into publicly accessible domain.)
- Final code review, much like the peer review, except this is the final check. To include
- Takes place in-situ (integrated) to examine the impact against other integrated issues
- Checking against the coding guidelines - syntax/whitespace
- Moodleisms - using the built-in api functions where appropiate
- Cross-DB compatibility
- Security
- Check purpose - the bug needs to fix the issue reported.
- Ensure backwards compatibility is is maintained. As a starting point backwards compatibility must always be maintained. Where backwards compatibility is affected it should be:
- Well discussed with evidence of justification
- Documented and communicated to the community
- Check the right people have been involved (e.g. component maintainers)
- Tests - must be written to guide tester to verify the fix is working.
- Unit test - very much preferred if applicable
- at end of wednesday, ensure testing is going to complete as expected. else take other actions (speak to test manager)
- Performance - we have to look at maintaining optimum code here, as far as simple patches that can affect performance. (simple optimisations)
- Scalability - if master only - we're looking far future , stable branches may not be lucky to get such improvements..
- git authorship is correct vs committer + credits due are mentioned + email addresses
- Documentation / phpdoc / readability
- Tracker_issue_labels which might need adding. Particularly:
- docs_required
- ui_change
- api_change
- qa_test_required
- Fixed Version after integration - is the versions that the issue is patched for. (A rule here : mention master if its the only branched fixed, if not don't mention master)
- Update the workflow counters
- If an issue is in need of a second review +1 to errors column in integration workflow counters