Closed jdeck88 closed 6 years ago
Hello @jdeck88, sorry for the slight delay and many thanks for your submission! An interesting package.
So there's a few issues flagged by the initial editol checks:
testthat.R
missingThe package repository is missing a testthat.R
script in the tests/
directory. Because of this, running covr::package_coverage()
returns 0% coverage. Using usethis::use_testthat()
creates the required file and the tests run as expected.
testthat.R
file.?usethis::use_coverage()
)goodpractice::gp
output── GP rppo ──────────────────────────────────────────────────────────────────────────────────────
It is good practice to
✖ write unit tests for all functions, and all package code in general. 75%
of code lines are covered by test cases.
R/ppo_data.R:74:NA
R/ppo_data.R:75:NA
R/ppo_data.R:76:NA
R/ppo_data.R:77:NA
R/ppo_data.R:78:NA
... and 23 more lines
✖ omit "Date" in DESCRIPTION. It is not required and it gets invalid quite
often. A build date will be added to the package when you perform `R CMD build` on
it.
✖ add a "URL" field to DESCRIPTION. It helps users find information about
your package online. If your package does not have a homepage, add an URL to
GitHub, or the CRAN package package page.
✖ add a "BugReports" field to DESCRIPTION, and point it to a bug tracker.
Many online code hosting services provide bug trackers for free,
https://github.com, https://gitlab.com, etc.
[x] add a "BugReports" field to DESCRIPTION
✖ use '<-' for assignment instead of '='. '<-' is the standard, and R
users and developers are used it and it is easier to read your code for them if
you use '<-'.
R/ppo_data.R:37:19
R/ppo_data.R:39:18
R/ppo_data.R:54:11
R/ppo_data.R:74:12
R/ppo_data.R:75:12
... and 11 more lines
- [x] Change `'='` assignement to `'<-'`
✖ avoid long code lines, it is bad for readability. Also, many people prefer editor windows that are about 80 characters wide. Try make your lines shorter than 80 characters
R/ppo_data.R:33:1
R/ppo_data.R:39:1
R/ppo_data.R:50:1
R/ppo_data.R:58:1
R/ppo_data.R:72:1
... and 5 more lines
- [x] check code line length
✖ omit trailing semicolons from code lines. They are not needed and most R coding standards forbid them
R/ppo_data.R:41:64
R/ppo_data.R:119:32
R/ppo_data.R:120:17
R/ppo_terms.R:35:59
- [x] omit trailing semicolons
✖ not import packages as a whole, as this can cause name clashes between the imported packages. Instead, import only the specific functions you need.
- [ ] **reviewers** to consider and give feedback on
✖ fix this R CMD check NOTE: Namespace in Imports field not imported from: ‘leafletR’ All declared Imports should be used.
- [ ] Needs checking. Usually this means you have a package (`leafletR`) in `Imports` that should really be in `Suggests` (perhaps it is only used in a vignette).
─────────────────────────────────────────────────────────────────────────────────────────────────
#### `devtools::spell_check()`
Flags some potential spelling errors of which only this looks genuine:
pouplates ppo_terms.Rd:20
Although the CC0 license specified in the DESCRIPTION is accepted by CRAN, it is not accepted by OSI. We recommend avoiding it unless you have a specific need to use it and suggest considering MIT as a similarly permissible license.
Happy to start looking for reviewers. I recommend using this time to try and address some of the issues raised so they can be checked during review rather that be reflagged.
Let me know if anything is unclear!
Reviewers: Due date:
Thank you for the comments Anna.. I have addressed all of the issues that you brought up and committed my changes to our Github repo.
Thanks for your prompt response @jdeck88! I've found the first reviewer and just trying to secure the second one. Will keep you posted. 👍
Both reviewers have now been assigned! 🎉
Reviewers: @tdjames1 & @remsamp Due date: 2018-05-04
👋 @tdjames1 & @remsamp. Just checking in to make sure you're review is going ok? Feel free to reach out if have any questions 😊
@annakrystalli I'm just getting onto the review now, apologies for the delay. I'm aiming to get it done over this weekend.
No problem @tdjames1, thanks for letting me know. I'll push back due date to the 7th then.
Reviewers: @tdjames1 & @remsamp Updated due date: 2018-05-07
Hi @annakrystalli and @jdeck88, here's my review (apologies for the slight delay).
The package includes all the following forms of documentation:
URL
, BugReports
and Maintainer
(which may be autogenerated via Authors@R
).Estimated hours spent reviewing: 4
The Rppo package allows programmatic access to the global Plant Phenology (PPO) data portal. This is a compact but well put together package that will come useful to many plant ecologists and evolutionary biologists. Note that although both ppo_data()
and ppo_terms()
have mostly worked smoothly, I have also experienced some server-related issues while running them. I have provided details below as well as a few other comments/suggestions.
I have had difficulties with accessing the rppo vignette from R. This is the relevant devtools::check() output:
* checking files in ‘vignettes’ ... WARNING
Files in the 'vignettes' directory but no files in 'inst/doc':
‘rppo-vignette.Rmd’, ‘rppo-vignette.md’
Files named as vignettes but with no recognized vignette engine:
‘vignettes/rppo-vignette.Rmd’
(Is a VignetteBuilder field missing?)
Similarly, browseVignettes() fails to find the document.
> browseVignettes("rppo")
No vignettes found by browseVignettes("rppo")
For now I haven't checked the vignette box in the checklist but will do as soon as this is resolved.
In terms of content, the vignette could include a more fleshed out example of how the two functions can be combined to produce additional insights. I imagine they will often be used together?
At times ppo_terms(absent = TRUE)
returns:
Error in ppo_terms(absent = TRUE) : uncaught status code 502
On a couple of occasions I have also received this message trying to run the example in the ppo_data()
help. Over the span of the 3 separate days I have spent time on the review, both functions have worked absolutely fine in most cases, and I believe this is a temporary issue linked to the queried server. The 502 code corresponds to a failed request where one server receives an invalid response from another server. This makes me think that it would be useful for both functions to return the http status code of each query with the corresponding definition. Were an issue (server or otherwise) to crop up again this would both reassure the user that the function itself is not broken and point to the faulty process.
A possible improvement to ppo_data()
would be to implement a vectorised version where the function can take a vector of multiple genera as argument. Another option - though this is constrained by what the PPO portal API itself allows - would be to allow for larger taxonomic groups such as orders and families. I would imagine users (I know this is my personal preference) would like receiving all the data they are interested in "in one go", rather than having to write code to go through a list/vector one element at a time.
Both ppo_data()
and ppo_terms()
return data.frames. Given the popularity of tidyverse packages, would it make sense to make them return tibbles by default?
goodpractice::gp()
suggests a couple of small changes:
A lone typo (well done!) found by devtools::spell_check()
: in ppo_terms.Rd row 20 "pouplates" instead of "populates".
I hope this is useful, thank you very much for your work on this!
Likewise, here's mine!
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
The package includes all the following forms of documentation:
URL
, BugReports
and Maintainer
(which may be autogenerated via Authors@R
).For packages co-submitting to JOSS
- [ ] The package has an obvious research application according to JOSS's definition
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).
Estimated hours spent reviewing: 5
rppo provides a method of accessing a web data portal to query records of plant phenology observations from North America and Europe. It will be of use to scientists who wish to access global data on plant phenology. While the package is simple to use, it would benefit from amendments to its documentation to clarify its purpose and usage. In particular:
ppo_data
function.I have detailed below a few further points with reference to the ROpenSci package guidelines.
checking DESCRIPTION meta-information ... WARNING Dependence on R version ‘3.4.2’ not with patchlevel 0
Do you need to depend on this particular patchlevel? From https://cran.r-project.org/doc/manuals/r-patched/R-exts.html#Package-Dependencies:
It is inadvisable to use a dependence on R with patchlevel (the third digit) other than zero. Doing so with packages which others depend on will cause the other packages to become unusable under earlier versions in the series, and e.g. versions 3.x.1 are widely used throughout the Northern Hemisphere academic year.
rppo
ppo_data
should appear here.ppo_data
returns a list.ppo_terms
I suggest keeping the description concise, e.g. "Retrieve terms from the Plant Phenology Ontology", and moving the rest of the information to a "Details" section.
Fix typo: pouplates
ppo_data
This section should describe the function specifically. The paragraph provided is background information that could go in a "Details" section and/or in the package documentation.
termID - suggest cross referencing ppo_terms
; "to get the relevant IDs for present and absent stages" is not very clear without a fuller description of the function.
fromYear/toYear/fromDay/toDay - indicate parameter format (numeric?); maybe reword, e.g. "return data starting from the specified year".
bbox - the argument description here is too long and unclear. I suggest that the information for creating the bounding box is clarified and moved to a "Details" section of the function documentation. Also, indicate that it's a string value.
I suggest describing the return value explicitly, e.g.
A list containing the following components:
`data` [describe data component]
`readme` [etc]
`citation`
Fix typo: resultset
Vignette
"A critical element of querying the PPO Data Portal is understanding the present and absent value terms contained in the PPO." Maybe need to explain this if it's critical?
Fix typo: 'lis'
Include example of results returned from ppo_terms
? This could lead into the example for ppo_data
, i.e. you could show how the user would inspect the results to find the termID of interest for use in the database query.
Place function/object names in back quotes so that they appear as "code"?
The "readme" string refers reader to _citation_and_data_usepolicies.txt - it might be worth clarifying either here or in the function documentation that the citation element contains that information.
Package checking tools return:
Files in the 'vignettes' directory but no files in 'inst/doc': ‘rppo-vignette.Rmd’, ‘rppo-vignette.md’
ppo_data
ppo_terms
ppo_data
rjson
is used to parse JSON. From ROpenSci Packaging Guide:For parsing JSON, use jsonlite instead of rjson
print
is used to report request status. From ROpenSci Packaging Guide:Use message() and warning() to communicate with the user in your functions. Please do not use print() or cat() unless it's for a print.*() method, as these methods of printing messages are harder for the user to suppress.
Not applicable.
Should the data component returned from ppo_data
include information about the termIDs associated with the individual observations?
No performance issues noted.
ppo_data.R
line 115/117 :<-
should be :<=
Thanks @remsamp & @tdjames1! 🙌
@jdeck88 both reviews are now in for your consideration. 👍
@jdeck88 I had also forgotten to ask you to add the rOpenSci review badge to the README! 😬 Could I ask to do this now, please? markdown snippet attached below.
[![](https://badges.ropensci.org/175_status.svg)](https://github.com/ropensci/onboarding/issues/207)
Thank you for the reviews! I will go through these in the next week.
Thank you for your reviews. They were very helpful! I have addressed your comments... In most cases i was able to make updates, which are listed under UPDATES below. In some cases i had comments or questions and i've listed these under QUESTIONS/COMMENTS.
UPDATES:
Reviewer @remsamp
Reviewer @tdjames1
QUESTIONS/COMMENTS:
Reviewer @remsamp
Reviewer @tdjames1 :
Thanks for your response @jdeck88!
@tdjames1, @remsamp please let us know if there any further comments/responses to @jdeck88's response or whether you're happy that all issues raised have been appropriately dealt with.
Hi @jdeck88, thanks for the thorough response. The documentation is much improved and the vignette is more helpful now, I think. You could include a full reference to your paper in the vignette rather than just a link (see https://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html).
Running goodpractice::gp()
threw up a couple of further points that have popped up in things that have been changed. I'm flagging these up here as you may wish to address them before submitting to CRAN:
✖ use '<-' for assignment instead of '='. '<-' is the standard,
and R users and developers are used it and it is easier to read your
code for them if you use '<-'.
tests/testthat/test-all.R:55:21
tests/testthat/test-all.R:56:20
tests/testthat/test-all.R:57:17
✖ avoid sapply(), it is not type safe. It might return a
vector, or a list, depending on the input data. Consider using vapply()
instead.
R/ppo_data.R:209:45
There still seems to be a typo in ppo_terms.R: line 8 "pouplates"; also I noticed a typo in the updated README.md: line 38 "reccomend".
Regarding URLs in the description field of DESCRIPTION file:
URLs should be enclosed in angle brackets, e.g. ‘\<https://www.r-project.org>’: see also Specifying URLs.
I don't know how to address the issues regarding building vignettes, maybe @annakrystalli can advise?
@annakrystalli: pending the few points above I'm satisfied that all issues have been addressed. Do I need to do anything further to sign this off?
Responses inline and indicated in BOLD (with fixes committed to https://github.com/biocodellc/rppo)
You could include a full reference to your paper in the vignette rather than just a link (see https://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html).
I tried this and was able to render this in HTML but not in Markdown. I worked on this for awhile this afternoon but felt that a single reference in this simple vignette was not worth the effort to track down why the markdown version was not rendering properly so left the link
Running goodpractice::gp() threw up a couple of further points that have popped up in things that have been changed. I'm flagging these up here as you may wish to address them before submitting to CRAN:
✖ use '<-' for assignment instead of '='. '<-' is the standard, and R users and developers are used it and it is easier to read your code for them if you use '<-'.
tests/testthat/test-all.R:55:21
tests/testthat/test-all.R:56:20
tests/testthat/test-all.R:57:17
Fixed
✖ avoid sapply(), it is not type safe. It might return a vector, or a list, depending on the input data. Consider using vapply() instead.
Fixed
R/ppo_data.R:209:45
There still seems to be a typo in ppo_terms.R: line 8 "pouplates"; also I noticed a typo in the updated README.md: line 38 "reccomend".
Fixed
Regarding URLs in the description field of DESCRIPTION file:
URLs should be enclosed in angle brackets, e.g. ‘https://www.r-project.org’: see also Specifying URLs.
Ok, i figured that out
Hi @jdeck88, apologies for the long time in getting back to you. I am happy with your responses to my initial comments, thank you! I can also confirm that the points raised by @tdjames1 have been addressed by your most recent commits.
To note: browseVignettes("rppo") now works after installing the package from github with devtools::install_github("biocodellc/rppo")
.
@annakrystalli: I am happy with the state the package has got to. Please do let me know if I need to do anything else. Thanks!
Right, so that's a wrap! Thanks for all your work and input @tdjames1 & @remsamp!
@jdeck88, there's just a few last housekeeping steps to finalise the review process:
[x] Transfer the package to the ropensci organisation. Here's the relevant gh help page. However, this might not work because of restricted admin rights. If it doesn't, please transfer the repo to @maelle. She will then transfer it to ropensci and return write rights to you. Feel free to reach out here or to @maelle if you need any help with this.
[x] Add the rOpenSci badge to the bottom of the README
[![ropensci_footer](http://ropensci.org/public_images/github_footer.png)](http://ropensci.org)
[ ] Change any needed links, such those for CI badges in the README, to redirect to the new repository URL
Any further questions, let me know!
👋 @jdeck88 I promise I'd transfer the repo and not keep it to myself! Sorry about the awkward worfklow.
OK...
I haven't updated the travis CI links as i'll wait for it to become live at its final destination since it is moving around a bit right now.
I did though add the ropensci badge to the bottom of the readme. John
On Thu, May 31, 2018 at 8:36 AM, Maëlle Salmon notifications@github.com wrote:
👋 @jdeck88 https://github.com/jdeck88 I promise I'd transfer the repo and not keep it to myself! Sorry about the awkward worfklow.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ropensci/onboarding/issues/207#issuecomment-393572256, or mute the thread https://github.com/notifications/unsubscribe-auth/ABGdxX8XGMwieiWGsvxhuyTwjPALtvYYks5t4A3pgaJpZM4TCTAN .
-- John Deck (541) 914-4739
@jdeck88 your repo is now in ropensci and I made you admin again 🎊 thanks for your trust :wink:
Great @jdeck88! Thanks again for submitting. I hope you found the process constructive and congratulations on your newly minted rOpenSci package! 🙌
Thanks Anna... i found the process constructive!
one last thing... is there something i need to change the badge from "in review" to "peer reviewed"?
Good catch @jdeck88. My understanding was that this should update automatically when the issue is closed. @karthik any advice?
Figured this out... turns out i had the wrong issue # in the badge status img link (but the correct one for the hyperlink!)
Summary
What does this package do? (explain in 50 words or less): The global plant phenology data portal (PPO data portal) is an aggregation of plant phenological observations from USA-NPN, NEON, and PEP725 representing 20 million phenological observations from across North America and Europe. The PPO data portal utilizes the Plant Phenology Ontology to align phenological terms and measurements from the various databases. The rppo R package enables programmatic access to all data contained in the PPO data portal.
Paste the full DESCRIPTION file inside a code block below:
https://github.com/biocodellc/rppo/
This package fits under data retrieval since it is used in downloading/extracting data from the global plant phenology data portal.
The target audience are scientists researching plant phenology patterns, shifts of plant phenological patterns over time and space, climate change biologists, and biodiversity scientists looking for sources of plant observation data.
There are no other R packages that we know of that do the same thing.
We enquired with @sckott and @karthik several weeks ago.
Requirements
Confirm each of the following by checking the box. This package:
Publication options
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
.Detail
[X] Does
R CMD check
(ordevtools::check()
) succeed? Paste and describe any errors or warnings:[X] Does the package conform to rOpenSci packaging guidelines? Please describe any exceptions:
If this is a resubmission following rejection, please explain the change in circumstances:
If possible, please provide recommendations of reviewers - those with experience with similar packages and/or likely users of your package - and their GitHub user names: