Submitting author: @jameshiebert (James Hiebert)
Repository: https://github.com/pacificclimate/ClimDown
Version: v1.0.7
Editor: @karthik
Reviewer: @mdsumner
Archive: 10.5281/zenodo.1184647
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/87c76a9d8f39f0dafbda6388b82f5cf0"><img src="http://joss.theoj.org/papers/87c76a9d8f39f0dafbda6388b82f5cf0/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/87c76a9d8f39f0dafbda6388b82f5cf0)
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.)
@mdsumner, 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.
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 for JOSS. @mdsumner 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:


For a list of things I can do to help you, just type:
@whedon commands
Here is my review notes for the specific checks.
There's no notes in the readme for installing from either CRAN or Github.
Sufficient code to install is
## install.packages("devtools")
devtools::install_github("pacificclimate/ClimDown")
For R CMD check include
install.packages("RUnit")
A .travis.yml check would be good, since there are system dependencies (NetCDF) and having
a known build script is helpful.
License: GPL-3 in DESCRIPTION (not in LICENSE file)
Release version 1.0.3 is in a branch (not in recent history of trunk)
No instructions for installation in the readme, but there is in the CONTRIBUTING.rst and the installation as per Github/R Packages standard was fine. Since NetCDF can be tricky, having
Linux and OSX install instructions would be helpful.
I don't find it clear what the purpose of the package is from the README or documentation, I think
this needs more explanation of the motivation.
Performance I think is hard to demonstrate since the application is so specific, and it's very deeply wrapped up in parallelization schemes. The README should mention the systems on which this has been applied and whether it's worth trying to use this on other systems.
The documentation describes the overall process, but not the mechanics of using the package much. There aren't examples beyond an uncommented sequence in parallelization and in the exec/ scripts.
There are full examples are in the tests, and these are pretty comprehensive - I think some of the code here should be used as examples in the documentation. It needs to be made clearer up front that the main interface for this package is to run via the scripts in exec/.
The paper.md mentions '... high-level wrapper functions that perform each of three downscaling steps: CI, CA, and QDM, as well as one wrapper that runs the entire BCCAQ pipeline.'
The actual functions are
bccaq.netcdf.wrapper
ca.netcdf.wrapper
ci.netcdf.wrapper
qdm.netcdf.wrapper
rerank.netcdf.wrapper
with the first being the 'one wrapper', the middle three are the downscaling steps and the third is a specialized sort to be sufficiently fast. Each of these functions are so-named wrappers because they don't actually perform in a functional sense, but to be invoked from the command line with the scripts
that are in /exec/. I think this workflow should be made clearer, and they can be easily summarized on the front page/s (README, package-doc) to explain what they do in one place.
bccaq, ci and qdm accept input as two input file names and provide output as a side effect written to a third file in the form obs.file, gcm.file, out.file, varname='tasmax'.
ca take the same analogous input files but return a list of vectors.
rerank is an optimization, does it need to be exported?
The motivation for who the users of this package is useful for is not made clear. Is this to publish
a set of working scripts for the PCIC, or is it also intended for general users of climate data to pick up this package and use?
@jameshiebert Can you please respond to comments from Michael?
Yes, thanks @mdsumner for taking the time to review. I'll try to put together a detailed response early next week.
Thanks for the detailed review and excellent comments. I have clarified a few things inline below, and have noted where we need to make changes to address your concerns.
There's no notes in the readme for installing from either CRAN or Github.
Fixed in branch.
A .travis.yml check would be good, since there are system dependencies (NetCDF) and having a known build script is helpful.
You must have missed it, because we have been running Travis builds for a bit over a year. You can see the config here and the build output here.
License: GPL-3 in DESCRIPTION (not in LICENSE file)
The GPL-3 license was in a COPYING file which is standard in Open Source projects. To address your comment, we have now since included LICENSE as a symbolic link to COPYING.
Release version 1.0.3 is in a branch (not in recent history of trunk)
All 16 releases are tagged in the source control, for example:
https://github.com/pacificclimate/ClimDown/releases/tag/1.0.3
Our practice is to maintain a "release" branch, that accepts merges from master, and maintains any automatically generated files required for installation (e.g. all the .Rd doc files).
Since NetCDF can be tricky, having Linux and OSX install instructions would be helpful.
Good suggestion. We have added a description of system deps and linked to install instructions in branch.
I don't find it clear what the purpose of the package is from the
README or documentation, I think this needs more explanation of the
motivation.
Good suggestion. We have added a section to the README to motivate the package better.
Performance I think is hard to demonstrate since the application is
so specific, and it's very deeply wrapped up in parallelization
schemes. The README should mention the systems on which this has
been applied and whether it's worth trying to use this on other
systems.
Good suggestion. We have added a section about this in branch.
There are full examples are in the tests, and these are pretty
comprehensive - I think some of the code here should be used as
examples in the documentation. It needs to be made clearer up front
that the main interface for this package is to run via the scripts
in exec/.
Good suggestion. We have added examples in this commit.
third is a specialized sort to be sufficiently fast.
...
rerank is an optimization, does it need to be exported?
No, rerank is not simply an optimization; it is imperative to the credibility of the downscaling process. We have added a better explanation of its purpose to the package docs.
The motivation for who the users of this package is useful for is
not made clear. Is this to publish a set of working scripts for the
PCIC, or is it also intended for general users of climate data to
pick up this package and use?
General use. We have tried to motivate it better in a new section in the README.
Excellent, thanks for all this.
Just a few notes.
The devtools installation can use this syntax now, which you might prefer:
{r}
devtools::install_github("pacificclimate/ClimDown@release")
I did miss the .travis.yml, and now realize why - I'm used to seeing "badges" in github readmes, which you might consider adding - but I'll remember not to assume travis will always include these ...
I think you've addressed all my comments very well. Thanks!
I've confirmed all the check boxes in the list above.
Thanks @mdsumner!
@@jameshiebert Please let me know where you have archived the software so we can proceed with finalizing this submission. I will need a Zenodo or figshare DOI.
@karthik Done. DOI = 10.5281/zenodo.1164286 Is there anything else that you need?
@whedon set 10.5281/zenodo.1164286 as archive
OK. 10.5281/zenodo.1164286 is the archive.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
PDF failed to compile for issue #360 with the following error:
/app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:379:in `parse': (tmp/360/paper.md): could not find expected ':' while scanning a simple key at line 26 column 1 (Psych::SyntaxError)
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:379:in `parse_stream'
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:327:in `parse'
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:254:in `load'
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:475:in `block in load_file'
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:474:in `open'
from /app/vendor/ruby-2.3.4/lib/ruby/2.3.0/psych.rb:474:in `load_file'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon.rb:73:in `initialize'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon/processor.rb:26:in `new'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon/processor.rb:26:in `set_paper'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/bin/whedon:37:in `prepare'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
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:in `dispatch'
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-8307502c3aee/bin/whedon:99:in `<top (required)>'
from /app/vendor/bundle/ruby/2.3.0/bin/whedon:22:in `load'
from /app/vendor/bundle/ruby/2.3.0/bin/whedon:22:in `<main>'
@jameshiebert There is a problem with your yaml on the paper. There needs to be three - marks at the top and bottom. Bottom one (line 26) only has 2. Add the third and push and I should be able to generate a pdf.
Ah shoot; sorry about that. Pushed a patch to master/release branches... do I need to generate a new archive?
Yes please update the archive and I'll fix it here, then recompile the PDF.
Done. 10.5281/zenodo.1164299
@whedon set 10.5281/zenodo.1164299 as archive
OK. 10.5281/zenodo.1164299 is the archive.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
PDF failed to compile for issue #360 with the following error:
/app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon.rb:86:in `check_fields': Paper YAML header is missing expected fields: bibliography (RuntimeError)
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon.rb:74:in `initialize'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon/processor.rb:26:in `new'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/lib/whedon/processor.rb:26:in `set_paper'
from /app/vendor/bundle/ruby/2.3.0/bundler/gems/whedon-8307502c3aee/bin/whedon:37:in `prepare'
from /app/vendor/bundle/ruby/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
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:in `dispatch'
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-8307502c3aee/bin/whedon:99:in `<top (required)>'
from /app/vendor/bundle/ruby/2.3.0/bin/whedon:22:in `load'
from /app/vendor/bundle/ruby/2.3.0/bin/whedon:22:in `<main>'
Sorry, one more issue. Can you move your references to paper.bib and remove them from the paper?
Sure, no problem.
@whedon set 10.5281/zenodo.1164304 as archive
I'm sorry @jameshiebert, I'm afraid I can't do that. That's something only editors are allowed to do.
OK then :)
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
https://github.com/openjournals/joss-papers/blob/joss.00360/joss.00360/10.21105.joss.00360.pdf
@whedon set 10.5281/zenodo.1164304 as archive
OK. 10.5281/zenodo.1164304 is the archive.
@jameshiebert all set!
@arfon 🚀
W00t!
@arfon Could you check to make sure the bib parses correctly in the PDF?
Is there anything further that you guys need from me on this?
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@jameshiebert - could you make sure you're citing the references in the body of your paper please? (You can read how to do that here)
Sure. Is there way that I can test it out locally before committing (e.g. with pandoc or something)? What's the command that you use for the article proof?
@jameshiebert - feel free to push commits to your repository and ask @whedon to compile it for you with @whedon generate pdf
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@arfon References are cited in the paper and now included in the bibliography. Do you need me to create a new DOI/archive or can you work off my master branch?
@arfon References are cited in the paper and now included in the bibliography. Do you need me to create a new DOI/archive or can you work off my master branch?
Ideally we'd like there to be a new release that matches what was the finalized version of the repository when accepted.
@afron OK 10.5281/zenodo.1184647 is the new archive for v1.0.7.
@whedon set 10.5281/zenodo.1184647 as archive
OK. 10.5281/zenodo.1184647 is the archive.
@mdsumner - many thanks for your review here and to @karthik for editing this submission ✨
@jameshiebert - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00360 :zap: :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.00360)
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:
Awesome thanks for all of your assistance, feedback and guidance! I'm really appreciative of your shepherding through the process :)
Most helpful comment
Thanks for the detailed review and excellent comments. I have clarified a few things inline below, and have noted where we need to make changes to address your concerns.
Fixed in branch.
You must have missed it, because we have been running Travis builds for a bit over a year. You can see the config here and the build output here.
The GPL-3 license was in a
COPYINGfile which is standard in Open Source projects. To address your comment, we have now since includedLICENSEas a symbolic link toCOPYING.All 16 releases are tagged in the source control, for example:
https://github.com/pacificclimate/ClimDown/releases/tag/1.0.3
Our practice is to maintain a "release" branch, that accepts merges from master, and maintains any automatically generated files required for installation (e.g. all the .Rd doc files).
Good suggestion. We have added a description of system deps and linked to install instructions in branch.
Good suggestion. We have added a section to the README to motivate the package better.
Good suggestion. We have added a section about this in branch.
Good suggestion. We have added examples in this commit.
No,
rerankis not simply an optimization; it is imperative to the credibility of the downscaling process. We have added a better explanation of its purpose to the package docs.General use. We have tried to motivate it better in a new section in the README.