Skip to content

Instantly share code, notes, and snippets.

@willingc
Last active June 15, 2021 04:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save willingc/988c6af3ff0ba8c14769a1127f4b1db4 to your computer and use it in GitHub Desktop.
Save willingc/988c6af3ff0ba8c14769a1127f4b1db4 to your computer and use it in GitHub Desktop.
pyopensci review template

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s) demonstrating major functionality that runs successfully locally
  • Function Documentation: for all user-facing functions
  • Examples for all user-facing functions
  • Community guidelines including contribution guidelines in the README or CONTRIBUTING.
  • Metadata including author(s), author e-mail(s), a url, and any other relevant metadata e.g., in a setup.py file or elsewhere.

Readme requirements The package meets the readme requirements below:

  • Package has a README.md file in the root directory.

The README should include, from top to bottom:

  • The package name
  • Badges for continuous integration and test coverage, a repostatus.org badge, and any other badges. If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the badge for pyOpenSci peer-review will be provided upon acceptance.)
  • Short description of goals of package, with descriptive links to all vignettes (rendered, i.e. readable, cf the documentation website section) unless the package is small and there’s only one vignette repeating the README.
  • Installation instructions
  • Any additional setup required (authentication tokens, etc)
  • Brief demonstration usage
  • Direction to more detailed documentation (e.g. your documentation files or website).
  • If applicable, how the package compares to other similar packages and/or how it relates to other packages
  • Citation information

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider:

  • The documentation is easy to find and understand
  • The need for the package is clear
  • All functions have documentation and associated examples for use

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Continuous Integration: Has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.
  • Packaging guidelines: The package conforms to the pyOpenSci packaging guidelines.

For packages co-submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

  • A short summary describing the high-level functionality of the software
  • Authors: A list of authors with their affiliations
  • A statement of need clearly stating problems the software is designed to solve and its target audience.
  • References: with DOIs for all those that have one (e.g. papers, datasets, software).

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing:


Review Comments

@willingc
Copy link
Author

willingc commented May 25, 2021

  • Add test coverage, a repostatus.org badge

  • Rename master branch to main and update test.yml, etc.

  • Usability

    • Reorder the README
  • Docs

    • Consider adding devicely/inst/paper.md to sphinx docs

@willingc
Copy link
Author

willingc commented Jun 15, 2021

Strengthen statement of need

Installation:

  • Be a bit more explicit with development installation instructions
  • pipenv pinned to 3.6, relax to 3.6+
  • [dev-packages] can be removed as none are provided
  • pipenv didn't work on 3.6.13 on my system or with 3.9.5

Usage:

  • In Basic usage, perhaps give an example using the REPL and an example using as a library.
  • Example be explicit that pandas needs to be installed to run the example (a fully runnable example is helpful)
  • One line description of each type or link to the other projects using "Reading ... Data"
  • Explain the TimeStamp App
  • Notebook (Why pipenv defaulting to CPython 3.6.13) Relax to 3.6+
  • editable = true not sure that this needs to be an editable install unless developing devicely source code
  • Notebook - add prose to give reader context
    • cell 1 should read
      from datetime import timedelta
      
      import pandas as pd
      
      import devicely
    • cell 3 should have a space between 15, and unit='d'
  • Mention in Usage that the examples are found in the notebook and the data source is available at the figshare url/doi

Tests:

  • Add instructions on how to run tests with pytest

CI:

  • Test for all versions of Python supported

Packaging:

  • Create a conda-forge feedstock

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment