Submitting author: @joethorley (Joseph Thorley)
Repository: https://github.com/poissonconsulting/checkr
Version: v0.0.2
Editor: @arfon
Reviewer: @boshek
Archive: 10.5281/zenodo.1208141
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/05940085572e81079caad4d1f27df912"><img src="http://joss.theoj.org/papers/05940085572e81079caad4d1f27df912/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/05940085572e81079caad4d1f27df912)
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
@boshek, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @arfon know.
### Conflict of interest
paper.md file include a list of authors with their affiliations?Hello human, I'm @whedon. I'm here to help you with some common editorial tasks. @boshek it looks like you're currently assigned as the reviewer for this paper :tada:.
:star: Important :star:
If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿
To fix this do the following two things:


For a list of things I can do to help you, just type:
@whedon commands
Attempting PDF compilation. Reticulating splines etc...
PDF failed to compile for issue #624 with the following error:
/app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:98:in []': no implicit conversion of String into Integer (TypeError)
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:98:inblock in parse_affiliations'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:97:in each'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:97:inparse_affiliations'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:84:in parse_authors'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon.rb:68:ininitialize'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon/processor.rb:29:in new'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/lib/whedon/processor.rb:29:inset_paper'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/bin/whedon:37:in prepare'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:inrun'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in invoke_command'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor.rb:387:indispatch'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor/base.rb:466:in start'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-a31a5c2a9125/bin/whedon:99:inload'
from /app/vendor/bundle/ruby/2.3.0/bin/whedon:22:in
@boshek - please carry out your review in this issue by updating the checklist above and giving feedback in this issue. The reviewer guidelines are available here: http://joss.theoj.org/about#reviewer_guidelines
Any questions/concerns please let me know.
Here's the PDF: 10.21105.joss.00624.pdf
@joethorley - this PR will fix the paper compilation issues: https://github.com/poissonconsulting/checkr/pull/6
@joethorley, @arfon - This is an excellent package and I can immediately see it's utility for all sorts of applications especially when writing scripts. I have several specific minor comments below. Overall though this is an excellently written package with very good code coverage, a clear purpose and meets all the JOSS guidelines.
I think you have nicely provided a clear interface for a relatively new R user to begin implementing some added rigour into their R scripts/packages. I think the point in an R user's skill development where this becomes useful is when they understand what a vector, a class, an environment etc. all mean. I think two places where you can link a new user with your nice set of check_* functions are a) the Description in each help file, where some of terminology can be explained more fully and b) a "checkr for the absolute beginner" vignette.
Currently the argument description exclusive in several functions is a little misleading:
A flag indicating whether other classes/ columns etc are permitted.
This implies that other classes/columns are permitted when exclusive = TRUE. Consider revising
Description in the help files is a little sparse. Consider expanding for a new user.
Consider generating some package level documentation. usethis::use_package_doc() would provide this quite easily. This is often an entry point for new users: i.e. ?checkr
Possibly consider replacing 1:nrow() with seq_len() in check_join(). I am not sure how an empty data frame can make it past !all_y && !nrow(x) but just to be certain this may be prudent to avoid returning 1:0.
I think you could emphasize the use of checkr in scripts as its easily understood goals are well suited to transfer to the non-developer R script writer in a more introductory vignette. This would be in addition to the comparison piece.
I think that the audience for this package could be more clearly stated in both the DESCRIPTION file and in the JOSS paper.
I wonder if a very short example in the JOSS paper may be instructive.
This vignette could benefit from a summary of why a new user should choose checkr over the other assertive programming tools currently available in R.
Consider using a .github folder and ISSUE and PULL REQUEST templates. rOpenSci has some excellent examples here
@boshek thanks for the helpful review - your comments all make sense to me.
Thanks for the thorough and thoughtful review @boshek. @joethorley - please let me know when you've had a chance to incorporate @boshek's review feedback.
@arfon I've incorporated @boshek 's review feedback. In particular I've
revised the exclusive argument documentation so that it reads "A flag indicating whether other names are not permitted."
added a description for each function
generated package level documentation using usethis::use_package_doc() - this is a helpful function I was not aware of.
replaced 1:nrow(x) with seq_len(nrow(x))
add a vignette checkr-naming which provides an overview of the functions and their naming scheme and should serve as a starting point.
both the DESCRIPTION and JOSS paper state that the functions are designed to be used in scripts and packages.
added a short example to the JOSS paper
added the following text to the vignette
In short the
checkrpackage is recommended over the alternatives if you are looking for a set of expressive, dependency-free, pipe-friendly assertive functions with customisable object names.
added a .github folder with customized ISSUE and PULL REQUEST templates - I didn't know about this - its very cool
Great. Thanks @joethorley! @boshek - would you be able to take another look?
@joethorley So good! In particular I really like the new vignette. Everything looks great to me. @arfon I say ship it.
@joethorley - At this point could you make an archive of the reviewed software in Zenodo/figshare/other service and update this thread with the DOI of the archive? I can then move forward with accepting the submission.
@arfon here it is https://doi.org/10.5281/zenodo.1208141.
@whedon set 10.5281/zenodo.1208141 as archive
OK. 10.5281/zenodo.1208141 is the archive.
@boshek - many thanks for your review here ✨
@joethorley - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00624 ⚡️:rocket: :boom:
:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:
If you would like to include a link to your paper from your README use the following code snippet:
[](https://doi.org/10.21105/joss.00624)
This is how it will look in your documentation:
We need your help!
Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
Many @arfon and @boshek - for acting as editor and reviewer - it was a positive experience
@joethorley Great for me as well. Looking forward to incorporating checkr in some future work.