Joss-reviews: [REVIEW]: prisonbrief: An R package that returns tidy data from the World Prison Brief website

Created on 11 Aug 2017  ·  27Comments  ·  Source: openjournals/joss-reviews

Submitting author: @danilofreire (Danilo Freire)
Repository: https://github.com/danilofreire/prisonbrief
Version: v0.1.0
Editor: @karthik
Reviewer: @benmarwick
Archive: 10.5281/zenodo.833889

Status

status

Status badge code:

HTML: <a href="http://joss.theoj.org/papers/5031a106e0aa73c2187ea3e6271d2a91"><img src="http://joss.theoj.org/papers/5031a106e0aa73c2187ea3e6271d2a91/status.svg"></a>
Markdown: [![status](http://joss.theoj.org/papers/5031a106e0aa73c2187ea3e6271d2a91/status.svg)](http://joss.theoj.org/papers/5031a106e0aa73c2187ea3e6271d2a91)

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.)

Reviewer questions

@benmarwick, please carry out your review in this issue by updating the checklist below (please make sure you're logged in to GitHub). The reviewer guidelines are available here: http://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @karthik know.

Conflict of interest

  • [x] As the reviewer I confirm that there are no conflicts of interest for me to review this work (such as being a major contributor to the software).

Code of Conduct

General checks

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Version: Does the release version given match the GitHub release (v0.1.0)?
  • [x] Authorship: Has the submitting author (@danilofreire) made major contributions to the software?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
    BM: On binder/rocker I got an error: ERROR: dependency ‘udunits2’ is not available for package ‘units’. Maybe add "On Linux you may need to sudo apt-get install libudunits2-dev before installing this package"
    BM: I see this has been addressed
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] Performance: Have any performance claims of the software been confirmed?

Documentation

  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • [x] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • [x] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • [x] Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
    BM: I don't see any tests
    BM: I see them now
  • [x] 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
    BM: I recommend to add a code of conduct. Could be pasted in to the contributing.md file if you don't want to add another file to the repo.
    BM: I see this now.

Software paper

  • [x] Authors: Does the paper.md file include a list of authors with their affiliations?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?
    BM: need to cite source of data in paper.md
    BM: I see the citations now
accepted published recommend-accept review

Most helpful comment

Congrats @danilofreire on getting your paper accepted 🎉

All is done at your end. We'll wait for @arfon to complete the final steps.

All 27 comments

Hello human, I'm @whedon. I'm here to help you with some common editorial tasks for JOSS. @benmarwick 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 as reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all JOSS reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands

I ran

> library(prisonbrief)
> wpb_list()

and got

Error in xpath_class(<S4 object of class "Class">) : 
  could not find function "xpath_class"

I installed the selectr pkg and that solved it.

Do we need selectr in the DESCRIPTION Imports: ?

Hi @benmarwick,

Thanks for pointing that out. I thought that selectr would be installed automatically. I've just added the package to DESCRIPTION Imports: (link).

Thanks, in the code in in R/, we see a lot of :: in functions where @IimportFrom is also used in the roxygen above the function. I'm not sure that you need both of these methods. In http://r-pkgs.had.co.nz/namespace.html we see

If you are using functions repeatedly, you can avoid :: by importing the function with @importFrom pgk fun. This also has a small performance benefit, because :: adds approximately 5 µs to function evaluation time.

So I'd recommend removing the ::, what do you think?

In the README.Rmd I think we may we need library(dplyr) before line 103 to make %>% available to the user's environment.

Thanks again for your comments. We left the :: operator in the functions because we thought it could improve readability, but you're right in pointing out that it leads to a decrease in performance. All files have been edited now. Also, I've added library(dplyr) to README.Rmd (line 93 in the new document) as suggested. You can see the changes here.

Hi @benmarwick and @karthik! I would like to kindly ask you whether there is anything we should do to continue the reviewing process. My co-author and I are happy to address any further comments the editors may have. Many thanks!

Hi @danilofreire
Sorry for the delay. @benmarwick will need to check off the items on the list above and give me a green light before I can do a final check and proceed with accepting.

Ben: Can you check off the appropriate boxes? 🙏

Sorry to be slow, I've had a go at the checklist, a few easy fixes needed. Let me know when those are done and I'll finish it off.

@danilofreire Would you be kind enough to update the thread once you have finished the fixes? Until then I will leave this as paused.

Hi @karthik and @benmarwick. My co-author and I have already addressed the missings items from the checking list. We added the data source as recommended by the original authors and included a message about the Linux dependency in this commit. Also, we added tests as requested, please see this commit. Finally, we included a Contributing.md file with instructions on how others can contribute to our project, ask for help, and provide feedback. Here. We hope these files solve the issues above, and we're happy to address any further questions. Many thanks!

Great, thanks @danilofreire
I will wait for Ben to weigh in.

Thanks for the updates. All good to go now!

Many thanks @benmarwick and @karthik! I greatly appreciate your time and feedback. Please let me or my co-author know if there's anything we should do at the moment. Again, thanks!

I have a few comments myself.

  • How come there is appveyor integration but none for travis?
  • Here you use html_node but only import html_nodes which throws an error for me. Can you keep it consistent?
  • After loading rvest as well, I get this error
> africa <- wpb_table(region = "Africa")
Error in data.matrix(data) : 
  (list) object cannot be coerced to type 'double'
In addition: Warning messages:
1: In data.matrix(data) : NAs introduced by coercion
2: In data.matrix(data) : NAs introduced by coercion
3: In data.matrix(data) : NAs introduced by coercion
My session info
Session info ------------------------------------------------------------------
 setting  value                       
 version  R version 3.4.3 (2017-11-30)
 system   x86_64, darwin15.6.0        
 ui       RStudio (1.1.383)           
 language (EN)                        
 collate  en_US.UTF-8                 
 tz       America/Los_Angeles         
 date     2018-01-22                  

Packages ----------------------------------------------------------------------
 package           * version    date      
 assertthat          0.2.0      2017-04-11
 base              * 3.4.3      2017-12-07
 bindr               0.1        2016-11-13
 bindrcpp          * 0.2        2017-06-17
 class               7.3-14     2015-08-30
 classInt            0.1-24     2017-04-16
 cli                 1.0.0      2017-11-05
 colorspace          1.3-2      2016-12-14
 compiler            3.4.3      2017-12-07
 coyote              0.3        2017-09-13
 crayon              1.3.4      2017-09-16
 curl                3.1        2017-12-12
 data.table          1.10.4-3   2017-10-27
 datasets          * 3.4.3      2017-12-07
 DBI                 0.7        2017-06-18
 devtools          * 1.13.4     2017-11-09
 digest              0.6.14     2018-01-14
 dplyr               0.7.4      2017-09-28
 e1071               1.6-8      2017-02-02
 ggplot2           * 2.2.1      2016-12-30
 git2r               0.21.0     2018-01-04
 glue                1.2.0      2017-10-29
 graphics          * 3.4.3      2017-12-07
 grDevices         * 3.4.3      2017-12-07
 grid                3.4.3      2017-12-07
 gtable              0.2.0      2016-02-26
 httr                1.3.1      2017-08-20
 lattice             0.20-35    2017-03-25
 lazyeval            0.2.1      2017-10-29
 magrittr            1.5        2014-11-22
 memoise             1.1.0      2017-04-21
 methods           * 3.4.3      2017-12-07
 munsell             0.4.3      2016-02-13
 passport            0.2.0      2017-11-30
 pillar              1.1.0      2018-01-14
 pkgconfig           2.0.1      2017-03-21
 plyr                1.8.4      2016-06-08
 prisonbrief       * 0.1.0      2018-01-23
 purrr               0.2.4      2017-10-18
 R6                  2.2.2      2017-06-17
 Rcpp                0.12.15    2018-01-20
 rgeos               0.3-26     2017-10-31
 rlang               0.1.6      2017-12-21
 rnaturalearth       0.1.0      2017-03-21
 rnaturalearthdata   0.1.0      2017-02-21
 rstudioapi          0.7.0-9000 2017-10-05
 rvest             * 0.3.2      2016-06-17
 scales              0.5.0      2017-08-24
 selectr             0.3-1      2016-12-19
 sf                  0.6-0      2018-01-06
 sp                  1.2-7      2018-01-19
 stats             * 3.4.3      2017-12-07
 stringi             1.1.6      2017-11-17
 stringr             1.2.0      2017-02-18
 tibble              1.4.1      2017-12-25
 tidyr               0.7.2      2017-10-16
 tools               3.4.3      2017-12-07
 udunits2            0.13       2016-11-17
 units               0.5-1      2018-01-08
 utf8                1.1.3      2018-01-03
 utils             * 3.4.3      2017-12-07
 withr               2.1.1      2017-12-19
 XML                 3.98-1.9   2017-06-19
 xml2              * 1.1.1      2017-01-24
 yaml                2.1.16     2017-12-12
 source                                   
 CRAN (R 3.4.0)                           
 local                                    
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.0)                           
 local                                    
 Github (karthik/coyote@acad466)          
 cran (@1.3.4)                            
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.2)                           
 local                                    
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.1)                           
 local                                    
 local                                    
 local                                    
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.1)                           
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.1)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.0)                           
 local                                    
 CRAN (R 3.4.0)                           
 cran (@0.2.0)                            
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.0)                           
 Github (danilofreire/prisonbrief@9eba895)
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.3)                           
 cran (@0.1.0)                            
 cran (@0.1.0)                            
 Github (rstudio/rstudioapi@335f257)      
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.1)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.3)                           
 CRAN (R 3.4.3)                           
 local                                    
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.2)                           
 local                                    
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.2)                           
 local                                    
 CRAN (R 3.4.2)                           
 CRAN (R 3.4.1)                           
 CRAN (R 3.4.0)                           
 CRAN (R 3.4.3) 

Hi @karthik, thanks very much for your comments. We've fixed the errors you pointed out.

Please let us know if you encounter any problem with the code. Many thanks!

@danilofreire Looks good. Please deposit the repo in Zenodo and paste the doi here so I can proceed with the next steps.

@karthik, thanks very much for your reply. Here's the doi for the repo: https://doi.org/10.5281/zenodo.833889

@whedon set 10.5281/zenodo.833889 as archive

OK. 10.5281/zenodo.833889 is the archive.

@whedon generate pdf

Attempting PDF compilation. Reticulating splines etc...
https://github.com/openjournals/joss-papers/blob/joss.00361/joss.00361/10.21105.joss.00361.pdf

Congrats @danilofreire on getting your paper accepted 🎉

All is done at your end. We'll wait for @arfon to complete the final steps.

Great! Thanks @benmarwick and @karthik for your comments. Our package has improved a lot after your reviews!

@benmarwick - many thanks for your review here and to @karthik for editing this submission ✨

@danilofreire - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00361 ⚡️ 🚀 💥

: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:

[![DOI](http://joss.theoj.org/papers/10.21105/joss.00361/status.svg)](https://doi.org/10.21105/joss.00361)

This is how it will look in your documentation:

DOI

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 volunteering to review for us sometime in the future. You can add your name to the reviewer list here: http://joss.theoj.org/reviewer-signup.html

Was this page helpful?
0 / 5 - 0 ratings