Skip to content

Code Review Checklists

Julia Damerow edited this page Feb 23, 2022 · 3 revisions

Editor Checks

  • Contribution and authorship: Is there a justification for who are the authors/contributors and why the submitter is the one requesting the review?
  • Description: Is there at least a basic documentation (e.g. README file, link to documentation, etc.)? And if so, is it easily findable?

Reviewer Checks

This checklist has been adapted from the JOSS review checklist.

Code of Conduct

  • I confirm that I read and will adhere to the code of conduct. (Code of conduct still needs to be written.)

General Checks

  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Does the author/contributor list match the submitted justification?

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage and data: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems). Do the authors include example data to be used to test the software?
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Nice to Have

  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support?
  • Github citation file: Is there a GitHub citation file?

The Code

  • Examine the code
    • Is the code readable to a human?
    • Are variables and method names clear?
    • Is there sufficient documentation for someone to come back 6 months later (or someone new) to understand what the code is doing?
  • Examine the algorithms in detail
    • Are there any hidden assumptions, not specified, that could cause problems?
    • Are there edge cases that may not work?
    • What happens with bad or missing data?
    • Does the algorithm do what it is supposed to? – Use stepwise abstraction

Clone this wiki locally