Package: autoreviewer
AutoReviewerScientists often do the same bad stuff. Automate giving feedback during peer review for Python packages.Goals:Given a GitHub repository, automate finding common issues such asNo setup.py/setup.cfg/pyproject.tomlNo zenodo archive linked from the READMENon-standard code layout (src/or bust)Files contain hard-coded file pathsNo documentation (search README for link to readthedocs)Package name doesn't match github repository nameNo reproducible installation instructions (i.e., does the README containpip)Uses conda for installationCode does not have consistent style (i.e., there's no configuration forblack)pyromadoesn't pass 10/10missingLICENSEfilemissingCITATION.cfffileAutomate sending issues to the repository instructing how to do these thingsUse deterministic titles for all issues to avoid duplicates / make idempotentCreate and edit "epic" issue that links othersExample Reviews:https://github.com/fanavarro/lexical-analysis-obo-foundry/issues/4https://github.com/krishnanlab/PecanPy/issues/12https://github.com/huihui1126/drugSim-pathway/issues/14Want to collaborate? What do you expect out of Python packages? Let me know in the comments. I envision this being sort
of modular so people can contribute their own checks.Desired interface:Run on the command line with:$autoreviewerhttps://github.com/rs-costa/sbml2hybJ. Chem. Inf. AnalysisThere's a submoduleautoreviewer.jcheminfthat has utilities for scraping the paper list
from the Journal of Cheminformatics, getting their ePub files,
extracting GitHub references from the availability statements, running autoreview on each,
then making the following summary withpython -m autoreviewer.jcheminf.🚀 InstallationThe most recent release can be installed fromPyPIwith:$pipinstallautoreviewerThe most recent code and data can be installed directly from GitHub with:$pipinstallgit+https://github.com/cthoyt/autoreviewer.gitYou'll also need to make surepandocis installed.
The best way to do this isbrew install pandocon macOS.👐 ContributingContributions, whether filing an issue, making a pull request, or forking, are appreciated. SeeCONTRIBUTING.mdfor more information on
getting involved.👋 Attribution⚖️ LicenseThe code in this package is licensed under the MIT License.🍪 CookiecutterThis package was created with@audreyfeldroy'scookiecutterpackage using@cthoyt'scookiecutter-snekpacktemplate.🛠️ For DevelopersSee developer instructionsThe final section of the README is for if you want to get involved by making a code contribution.Development InstallationTo install in development mode, use the following:$gitclonegit+https://github.com/cthoyt/autoreviewer.git
$cdautoreviewer
$pipinstall-e.🥼 TestingAfter cloning the repository and installingtoxwithpip install tox, the unit tests in thetests/folder can be
run reproducibly with:$toxAdditionally, these tests are automatically re-run with each commit in
aGitHub Action.📖 Building the DocumentationThe documentation can be built locally using the following:$gitclonegit+https://github.com/cthoyt/autoreviewer.git
$cdautoreviewer
$tox-edocs
$opendocs/build/html/index.htmlThe documentation automatically installs the package as well as thedocsextra specified in thesetup.cfg.sphinxplugins
liketexextcan be added there. Additionally, they need to be added to theextensionslist indocs/source/conf.py.📦 Making a ReleaseAfter installing the package in development mode and installingtoxwithpip install tox, the commands for making a new release are contained within thefinishenvironment
intox.ini. Run the following from the shell:$tox-efinishThis script does the following:UsesBump2Versionto switch the version number in thesetup.cfg,src/autoreviewer/version.py, anddocs/source/conf.pyto not have the-devsuffixPackages the code in both a tar archive and a wheel usingbuildUploads to PyPI usingtwine. Be sure to have a.pypircfile configured to avoid
the need for manual input at this
stepPush to GitHub. You'll need to make a release going with the commit where the version was bumped.Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
usetox -e bumpversion minorafter.