Submitting author: @malmans2 (Mattia Almansi)
Repository: https://github.com/malmans2/oceanspy
Version: 0.1.0
Editor: @kthyng
Reviewer: @tomchor, @platipodium
Archive: 10.5281/zenodo.3270646
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/13bced5913676dda750f65b84da3a563"><img src="http://joss.theoj.org/papers/13bced5913676dda750f65b84da3a563/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/13bced5913676dda750f65b84da3a563)
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) by leaving comments 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.)
@tomchor & @platipodium , 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.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @kthyng know.
โจ Please try and complete your review in the next two weeks โจ
paper.md file include a list of authors with their affiliations?paper.md file include a list of authors with their affiliations?Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @tomchor, @platipodium it looks like you're currently assigned to review 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...
Opened https://github.com/malmans2/oceanspy/issues/107 to complete doi referencing in @malmans2 paper/paper.bib
@whedon commands
Here are some things you can ask me to do:
# List Whedon's capabilities
@whedon commands
# List of editor GitHub usernames
@whedon list editors
# List of reviewers together with programming language preferences and domain expertise
@whedon list reviewers
EDITORIAL TASKS
# Compile the paper
@whedon generate pdf
# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name
# Ask Whedon to check the references for missing DOIs
@whedon check references
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@kthyng I'm not 100% sure if this is the appropriate behavior, but I'm pasting my review below. Most of the comments are general so I figured it wouldn't be appropriate to create an issue in the target repo for them. Please let me know if there's anything else I should do.
Best
Tomas.
This is a nice package and is likely to be helpful to scientists who do ocean modelling. The package, from what I understood, is a collection of wrappers specific to oceanography around already-existing packages. I recommend publication with minor revisions based on the comments below.
Statement of need: the target audience is very well stated, but in my opinion the problems the package aims to solve could be better stated. The paper itself has those problems/needs very well explained however.
Installation instructions: although the installation instructions are very clear, there is no explicitly stated list of dependencies. Instead the dependencies are implicitly listed in a conda install command.
Automated tests: there were no automated tests that I could find in the package.
The SciServer part in the tutorial was a bit confusing to me. This only a suggestion, but I think It would also be good to state the differences of working from within SciServer. (I know that there is a paragraph in the beginning on the docs trying to clarify the SciServer/standalone options, but I'm not sure if everyone is familiar with SciServer.) The flowchart, for example, could be one of the first things in the documentation (or at least in the getting started portion). Instead it is given a separate section with no context whatsoever.
Furthermore, the steps to start a SciServer didn't quite work for me. After clicking on compute, there was no option to Run Existing Notebook. I suspect they are outdated. It was very straightforward to figure out by myself the correct steps, but it would still be nice to have the correct instructions.
od_drop"compute module are mathematically defined. However, as a scientist, it would be nice to know which numerical scheme is used to perform those computations. I assume it is the default functionality of xarray, which uses specific numpy functions. A simple reference to the xarray function would suffice (to avoid having to go through code to figure it out).Thanks @tomchor! We are going to open a new pull request to address your comments. It looks we can address everything by improving the documentation (we do have automated tests that are covering 98% of the code but they are only mentioned in the contributing section. We will probably add test instructions in the installation section to make it more clear).
@platipodium @kthyng, can we just merge the pull request when we're done, or should we wait for the other review? If we don't merge the pull request, the documentation needs to be compiled locally in order to see the changes.
I am happy with merging the PR, us rebuilding docs is part of the job description I guess.
@tomchor, thanks for your quick and helpful review! I think we've been able to address all your points. The new documentation is already online.
Statement of need: the target audience is very well stated, but in my opinion the problems the package aims to solve could be better stated. The paper itself has those problems/needs very well explained however.
We edited the github README, which is also the front page of the documentation: https://oceanspy.readthedocs.io
Installation instructions: although the installation instructions are very clear, there is no explicitly stated list of dependencies. Instead the dependencies are implicitly listed in a conda install command.
Required and optional dependencies are now explicitly stated here.
Automated tests: there were no automated tests that I could find in the package.
We have automated tests and they cover 98% of the code. Instructions on how to run and implement tests are available here. We also added a section in the installation page to make it more clear. You can check continuous integration and code coverage by clicking on the stickers in the front page.
The SciServer part in the tutorial was a bit confusing to me. This only a suggestion, but I think It would also be good to state the differences of working from within SciServer. (I know that there is a paragraph in the beginning on the docs trying to clarify the SciServer/standalone options, but I'm not sure if everyone is familiar with SciServer.) The flowchart, for example, could be one of the first things in the documentation (or at least in the getting started portion). Instead it is given a separate section with no context whatsoever.
We revised the quick start and SciServer sections to make it more clear, and the flowchart is now in the quick start section. We also added in bold "How to use OceanSpy?" in the front page.
Furthermore, the steps to start a SciServer didn't quite work for me. After clicking on compute, there was no option to Run Existing Notebook. I suspect they are outdated. It was very straightforward to figure out by myself the correct steps, but it would still be nice to have the correct instructions.
We had a typo in the SciServer Job section that originated the confusion. Point 3 now says: click on compute Jobs, which is the SciServer app that allows to run jobs asynchronously. The steps in quick-start, which use the interactive domain, should be up-to-date.
In some places (generally towards the ends of the tutorial sections) the comments tend to become scarce. An example are cells [7] through [9] in the Kogur case. A little explanation in these cases would benefit users.
All code cells are now preceded by markdown comments.
Before cell [13] in https://oceanspy.readthedocs.io/en/latest/Tutorial.html the comment should say "while this syntax adds the new variable to od_drop"
Fixed!
I think it is really nice that in the paper (and also in the autogen docs) the calculations done by the compute module are mathematically defined. However, as a scientist, it would be nice to know which numerical scheme is used to perform those computations. I assume it is the default functionality of xarray, which uses specific numpy functions. A simple reference to the xarray function would suffice (to avoid having to go through code to figure it out).
OceanSpy is mainly targeting models that use finite volume methods. We tested OceanSpy using MITgcm simulations, so we used the MITgcm schemes as reference.
Here is an example: To compute the vertical component of the relative vorticity we use the OceanSpy's curl function. The vorticity computed by the model online and by OceanSpy agree to machine precision. OceanSpy's curl has a "Numerical Method" reference that points to the MITgcm documentation. Since OceanSpy's vertical_relative_vorticity uses the curl function, curl is listed under "See Also" of vertical_relative_vorticity (it's also a link).
@malmans2 thanks for the reply. I just have one more comment before I consider the review finished.
OceanSpy is mainly targeting models that use finite volume methods. We tested OceanSpy using MITgcm simulations, so we used the MITgcm schemes as reference.
Here is an example: To compute the vertical component of the relative vorticity we use the OceanSpy's curl function. The vorticity computed by the model online and by OceanSpy agree to machine precision. OceanSpy's curl has a "Numerical Method" reference that points to the MITgcm documentation. Since OceanSpy's vertical_relative_vorticity uses the curl function, curl is listed under "See Also" of vertical_relative_vorticity (it's also a link).
I think it's a good idea to choose your numerical schemes in a way that agrees with the model. The downside is that you have to pick one model (in this case MITgcm), which makes the package less general and not appropriate for some other models depending on their numerical scheme.
This is important information and should be mentioned somewhere that's easy to find in the documentation. At the moment, I can't find this information anywhere. I had noticed the link to MITgcm in your computing functions, but since it points to the notation page, it wasn't clear to me at all that you had mimicked MITgcm's schemes.
Thus, my last point is simply to make it clear that the package (at least the computing part) is focused on and tailored towards MITgcm results.
Cheers!
@tomchor, that's a good point! We added a highlighted note in the front page.
Thanks for everyone's effort so far! Sorry for my slow response; I've been traveling.
@tomchor Are there any lingering issues you'd like to see addressed? I see one checkbox still unchecked.
@platipodium How are things from your perspective?
@kthyng I apologize, I forgot to update my checkboxes. There are no more issues to be addressed. I believe now I've ticked every checkbox I had to! :)
Cheers
I have so far failed to successfully install the software on my local system, neither via conda forge nor on my system python installation, that's why I did not check functionality.
Whoa, what happened, I seem not to be able to tick my boxes above anymore ...
@platipodium could you please tell me a little more about the issues you are encountering?
In my experience the following commands usually solve all problems:
$ conda config --set channel_priority strict
$ conda config --prepend channels conda-forge
They basically just edit you .condarc, which should look like:
channel_priority: strict
channels:
- conda-forge
- defaults
If your .condarc has been edited before and looks different, or if you are using a very old version of conda, this could be another source of problems.
@platipodium, just checking if you are still stuck on the installation. I'm able to install on our machines and the continuous integration is also successfully creating the environment, so I would need more details to get it fixed (e.g., log, OS, ...).
Thanks for checking on me. I have finally been able to overcome the issues I faced, all of which were related to permissions gone wrong in my conda installation. Nothing to worry about in your package. But something we too often forget with CI and package management, that also those systems are far from perfect and working for everyone. I have not yet gone through the steps to replicating your demo functionality on my local system, but that will be done soon. Sorry for the delay.
Good news, thanks! I was worried about problems related to the OS since we mainly test and develop on linux machines.
@malmans2 I have now tested the claimed funtcionality, also on my local system, @kthyng I still can't tick my boxes (but I would if I could). So I guess the review is complete.
@platipodium I haven't heard about that happening before, but thank you for clearly stating that your review is complete.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon check references
Attempting to check references...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
Hi @malmans2! Can you clarify which ocean models OceanSpy will work with in your paper? After that, please make a Zenodo archive, and report the DOI in this thread.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon check references
Attempting to check references...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
Hi @malmans2! Can you clarify which ocean models OceanSpy will work with in your paper? After that, please make a Zenodo archive, and report the DOI in this thread.
Hi @kthyng, I think we're all set. We've updated the paper and added a reference. Before creating the doi I've released v0.1.0, so I think we need to inform whedon.
Here is the doi: 10.5281/zenodo.3270646
@malmans2 excellent! You may be getting some notes in the future as I encourage people I know to try out this package!
I'll have whedon update several things and feel free to let me know if you think I've missed something.
First though, do you want to keep the version as 0.1 instead of 1? Publishing this paper could be a good reason to bump up the version all the way to a whole number :)
(obviously completely up to you, just a suggestion)
Thanks a lot for the feedback and helping disseminate OceanSpy!
I would keep 0.1 for now. I think we have a few tasks before version 1:
@whedon set 10.5281/zenodo.3270646 as archive
OK. 10.5281/zenodo.3270646 is the archive.
@whedon set 0.1.0 as version
OK. 0.1.0 is the version.
@openjournals/joss-eics This paper is ready for acceptance! Nice work @malmans2 and thank you to @platipodium and @tomchor for your reviews!
@whedon accept
Attempting dry run of processing paper acceptance...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/822
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/822, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
๐ฆ๐ฆ๐ฆ ๐ Tweet for this paper ๐ ๐ฆ๐ฆ๐ฆ
๐จ๐จ๐จ THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! ๐จ๐จ๐จ
Here's what you must now do:
Party like you just published a paper! ๐๐๐ฆ๐๐ป๐ค
Any issues? notify your editorial technical team...
Congratulations, @malmans2, your JOSS paper is published! ๐
Big thanks to our editor: @kthyng, and the reviewers: @tomchor, @platipodium ๐
: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 snippets:
Markdown:
[](https://doi.org/10.21105/joss.01506)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01506">
<img src="http://joss.theoj.org/papers/10.21105/joss.01506/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: http://joss.theoj.org/papers/10.21105/joss.01506/status.svg
:target: https://doi.org/10.21105/joss.01506
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:
Thanks @platipodium and @tomchor for the constructive comments! @kthyng, I loved the whole JOSS process. Let me know if you'll need me as reviewer in the future!
@malmans2 Definitely will be asking you for reviews! I see you're already on the list. :)
Most helpful comment
Congratulations, @malmans2, your JOSS paper is published! ๐
Big thanks to our editor: @kthyng, and the reviewers: @tomchor, @platipodium ๐