Home Reference Source

Code Review Process

Below is the process the lab's developers use when reviewing new coded features and conditions to ensure correct functionality and coding standards

Primary Code Reviewers

Below are the people listed as code reviewers for major/critical new features and conditions. Their task is to ensure the code written fits the lab's coding standards and does not introduce new bugs into the framework

Peer Code Reviewers

For simpler features and conditions that are not time-sensitive and critical to the functionality of the lab. Peer developers will be done in pairs consisting of a senior and junior lab developer.

Senior Peers

Those who have implemented one or more new conditions or features within the framework

Junior Peers

Those who have just started out in the lab

Stakeholders

Stakeholders are the lab members who requested the new feature/condition. Once the developer is done coding the requested feature/condition, they should confirm with the stakeholder that the code fits their requirements before requesting a code review.

Possible stakeholders are listed below

Code Review Format

Environment

Before the Review

Developers must be able to test the new feature/condition and ensure it's working to stakeholder requirements

For Conditions

For Features/Changes to Back-End Code

The Stakeholder Review

Developers should meet with the stakeholder online/in-person and show the new condition/feature in action. Once the stakeholder gives the approval, the developer can make a pull request and request a code review.

The Code Review Itself

The code review is a meeting between a code-reviewer and a developer. The developer shows the feature in action and the code reviewer and developer look at the actual code to ensure quality.

For the Reviewer:

If additional fixes are needed, the code reviewer must document the requested changes on the created pull request.

Once developer makes additional changes, they must schedule another code review (This one can be shorter or done with image sharing).

Once the code review is complete, the issue can be closed and the pull request merged in.

Practices to Enforce

To ensure consistency and ease of reference for future lab members, it's important to make sure code and documentation follows the same format.

Logistical Practices

Github Issues

This will be primary place to document and assign wanted features/conditions/bugs/experiment types etc ALL requirements, feedback, complications, related issues must be documented in Github Issues

Branch naming

MUST HAVE CONSISTENT NAMING: <issue name>_<developer>

Branch merging

Coding Practices

Quick code

Readable code

Self-documenting Code

Documented Mark-Down Files