-
Notifications
You must be signed in to change notification settings - Fork 249
Peer Code Review
All code must go through a peer-approval process before it is merged with any of the collaborator-maintained codebases. This is to ensure that it firstly 'scratches' the intended 'itch', and complies to the guidelines set out by the project.
When code is ready for review, the below process is followed:
- Code is submitted for review as a pull request.
- Code is then reviewed by peers using GitHub's pull-request review feature to leave comments where necessary and give an approval/rejection.
- Code is amended if needed until it satisfies the required number of approvals.
- Provided all unit tests are passing, code is merged.
The reviewing process is governed by these rules:
- The developer who submits the PR is not allowed to submit a review.
- If a commit is added to the PR, any previously given reviews are invalidated. Everyone must re-post their verdicts after reviewing the commit.
- Any new functionality/feature requests uncovered during review of a PR must be separated into new issues/PRs, unless directly related.
- For code to be merged, a minimum of three approvals is required. Of these, at least two must have come from a core team member. In the interest of impartiality, it is generally not advised to get all three approvals from a single collaborating company.
- The person who merges the PR must also submit their review prior to merging if their vote is required. Merging a PR which already has enough approvals does not require the review of the merger themselves.
- Any review rejections must be accompanied by an adequate explanation of why the PR should not be merged. Without this, the review will be disregarded.
- Any concerns signalled by a 'rejected' review warrant careful consideration, but no reviewer has veto rights. If the PR receives enough approvals, it can still be merged (provided the other rules outlined on this page are followed).
- Concerns will be resolved in conversation between the submitter of the PR and the reviewer who rejected the PR. When/if satisfied, the reviewer will change verdict to an approval.
- At an impasse, a course of action will be decided by the core development team.
There are two 'statuses' which can be applied to submitted PRs: approve and request changes. See below for a quick checklist for each:
A core developer may reject a PR because any (or all) of the following:
- The code fails testing.
- The code does not meet Adapt standards.
- The code negatively impacts the application.
- There are unresolved questions about the intent of the code.
A core developer will approve an PR because of the following:
- The intentions of the submitter are understood.
- The implementation of the PR is accepted.
- The submitted code complies with the code-style outlined in the project's styleguide.
- The code passes all automated tests.
- No negative issues resulting from the proposed changes are foreseen.
Adapt Framework Core Developers: Alex Benesch, Oliver Foster, Dan Gray, Tom Taylor, Cahir O'Doherty, Brian Quinn Aniket Daria, Nayan Khedkar, Ratnadeep Rajput, Chetan Sachdev, Chris Steele, Chuck Lorenz, Eleanor Heath, Kirsty Hames, Guy Willis, Joe Allen
Adapt Authoring Tool Core Developers: Thomas Berger, Dan Gray, Tom Taylor, Nicola Willis, Ali Maimaiti, Ingo Klemm
- Framework in Five Minutes
- Setting up Your Development Environment
- Manual Installation of the Adapt Framework
- Adapt Command Line Interface
- Common Issues
- Reporting Bugs
- Requesting Features
- Creating Your First Course
- Styling Your Course
- Configuring Your Project with config.json
- Content starts with course.json
- Course Localisation
- Compiling, testing and deploying your Adapt course
- Core Plugins in the Adapt Learning Framework
- Converting a Course from Framework Version 1 to Version 2
- Contributing to the Adapt Project
- Git Flow
- Adapt API
- Adapt Command Line Interface
- Core Events
- Core Model Attributes
- Core Modules
- Web Security Audit
- Peer Code Review
- Plugins
- Developing Plugins
- Developer's Guide: Components
- Developer's Guide: Theme
- Making a theme editable
- Developer's Guide: Menu
- Registering a Plugin
- Semantic Version Numbers
- Core Model Attributes
- Adapt Command Line Interface
- Accessibility v3
- Adapt Framework Right to Left (RTL) Support