openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
703 stars 36 forks source link

[REVIEW]: STITCHES: a Python package to amalgamate existing Earth system model output into new scenario realizations #5525

Closed editorialbot closed 4 months ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@abigailsnyder<!--end-author-handle-- (Abigail Snyder) Repository: https://github.com/JGCRI/stitches Branch with paper.md (empty if default branch): main Version: v0.13 Editor: !--editor-->@observingClouds<!--end-editor-- Reviewers: @znicholls, @Zeitsperre Archive: 10.5281/zenodo.11094934

Status

status

Status badge code:

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

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

Reviewer instructions & questions

@znicholls & @Zeitsperre, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @observingClouds know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @znicholls

📝 Checklist for @Zeitsperre

observingClouds commented 7 months ago

@abigailsnyder as you can see from the second round of reviews the clarity and reproducibility of the package would strongly benefit from a better description of the input data processing and its format. Please extend the current explanation.

While not necessary, I encourage you to make the package pip installable as znicholls suggests.

observingClouds commented 7 months ago

@Zeitsperre do you have anything to add?

abigailsnyder commented 7 months ago

@observingClouds @znicholls yes, thank you! I was just waiting for the second reviewer's feedback before responding.

re pip installable - normally this is the standard for our group. Unfortunately for us, there is already a package named stitches on PyPi. See https://pypi.org/project/stitches/. So we can't technically publish stitches to PyPi using the stitches name. It's a good reminder for us to check PyPi before naming packages in the future. I am checking with one of my co-authors who knows more about this to see if we can maybe publish the package on PyPi using a name like jgcri_stitches for pip installation without have to change much in the package (you can tell this is not my expertise, so I appreciate the help from reviewers and editor!)

I will happily add additional description of input data processing - I agree with Zeb's issue text that it's a tricky thing to do and a critical part of the package.

a script or docs or something that shows how CMIP data is pre-processed, particularly details that are easy to get wrong e.g. area weighting, would be very useful still I think. Yes, this pre-processing is not necessarily part of stitches but it is important to get right in order to use stitches correctly so I think more discussion of this pre-processing step would be worthwhile to give users a better chance of using stitches correctly.

Just a few follow up questions so we can do it in a way that is satisfying: The pre-processing functions are included in the package already so good news is it sounds like this is just a question of us referring to and describing them in the right place so users are aware. Thank you for flagging this! The functions doing the steps referred primarily in the make_tas_archive.py script. (https://github.com/JGCRI/stitches/blob/main/stitches/make_tas_archive.py) and then they get called simply with generate_package_data() (https://github.com/JGCRI/stitches/blob/main/stitches/generate_package_data.py) as one of the steps. What would be the best way to document these so users are aware of them? I will add some brief text to the Install the package data from Zenodo section of the quickstart, and I'm checking on getting it added to github.io page (https://jgcri.github.io/stitches/reference/api.html) as well. Is there anything else that would be preferable instead of these changes?

RE the other two items in the issue:

install_package_data seems to download all the data every time, even if data is already downloaded. Is that intended?

I would put a link to the ESD paper in the notebook where it is mentioned (at the moment it is just referred to but no link is included)

I will get on both of those today! The package data is installed every time the function is called, so I will add some text to that section of the quickstart to let users know that, and that they can comment it out if they have already run it once.

znicholls commented 7 months ago

if we can maybe publish the package on PyPi using a name like jgcri_stitches for pip installation without have to change much in the package

Yep you can do this without issue, see e.g. pyam https://github.com/IAMconsortium/pyam which is under pyam-iamc on PyPI

What would be the best way to document these so users are aware of them?

Yes that would help. Also just having a notebook called, 'Preparing input data' or something that shows the steps would be very helpful.

The package data is installed every time the function is called, so I will add some text to that section of the quickstart to let users know that, and that they can comment it out if they have already run it once.

This is a solution. It would be slightly nicer if the downloader just checked if the data was already there before doing the download (trivial using packages like pooch https://www.fatiando.org/pooch/latest/index.html) but it's not a huge issue

Otherwise thanks for your efforts, I know it is mucking around sorting all this out.

abigailsnyder commented 7 months ago

@znicholls thanks for the suggestions! I'll be working on the Preparing input data notebook and hopefully while I do that, my colleague will have a few free moments to push things to PyPi (thank you for the example!)

abigailsnyder commented 6 months ago

@znicholls @observingClouds: We have addressed these items and all changes have been pushed to main!

observingClouds commented 6 months ago

Thanks for the update @abigailsnyder. Could you quickly outline how you addressed these items in https://github.com/JGCRI/stitches/issues/78 and close this issue if appropriate? I just quickly tried to install stitches-emulator via pip and it seems like the requirements.txt is missing from the code package hosted to pypi.

abigailsnyder commented 6 months ago

I will document and close the repo issue; Chris and I will try to trackdown what went wrong with the pypi hosting. Thanks!

abigailsnyder commented 6 months ago

@observingClouds we're still not sure why the distribution is ignoring the requirements.txt file but Chris figured out a work-around and has updated the distribution. I tested on my mac and the installation is successful now.

observingClouds commented 6 months ago

Thanks @abigailsnyder for the update. I can confirm that the installation is working also on my side. I just reached out to @Zeitsperre for some last comments. If all is well, we can move forward quickly.

Zeitsperre commented 6 months ago

Hello all, please excuse the lack of communication. I'll be resuming my review efforts tomorrow morning!

Zeitsperre commented 6 months ago

I've done a small pass-through now.

I think it's safe to say that when https://github.com/JGCRI/stitches/pull/97 and https://github.com/JGCRI/stitches/pull/98 are addressed, the majority of my boxes will be ticked. Moving onto the functionality now...

observingClouds commented 6 months ago

Thanks @Zeitsperre for the additional comments and PRs. Were you able to test the functionality as well?

Zeitsperre commented 5 months ago

Hi @observingClouds I haven't had a chance to check things since my initial testing. It looks as though many of my comments have been turned into issues within the repository, specifically the points concerning refactoring/optimizing calls for xarray. If those are going to be addressed later, I imagine that it would be fine to click that box.

I've opened a few other issues and a Pull Request that have yet to be addressed. Once those are closed, I would be fine with checking the remaining issues.

abigailsnyder commented 5 months ago

@Zeitsperre I am so sorry - I do not get emails from github when an issue or PR gets opened in the stitches repo and I'm just totally unused to actively checking. I will be able to look at these issues and PR next week. Thank you so much for pointing them out here.

Zeitsperre commented 5 months ago

@abigailsnyder

All good; People get busy. I'll be at a conference and taking a short vacation for the next two weeks. Feel free to ask any questions or request revisions in my PR, and I should be able to get back to you soon after I return. Have a good day!

abigailsnyder commented 5 months ago

@Zeitsperre Thank you! We have responded to all remaining items. For the contributor covenant https://github.com/JGCRI/stitches/issues/82#issuecomment-2045008798, we agree but we have to have appropriate language approved by our lab. For the QOL improvements https://github.com/JGCRI/stitches/issues/96, a PR addressing several of these has been reviewed and merged. For your PR, @crvernon caught one more typo but overall we are happy to merge this. I don't know the extent to which the JOSS process includes a copy-edit pass as other journals do but for the most part it seems like everything from this PR is very much in that space, to me at least?

Thank you so much for your feedback and your patience!

observingClouds commented 4 months ago

@abigailsnyder please merge the copy-editing PR. As an editor I will have a last read of the manuscript before publishing but we do not have a professional copy-editing service so I appreciate all edits that will be fixed and merged beforehand.

abigailsnyder commented 4 months ago

@observingClouds Thank you, done!

Zeitsperre commented 4 months ago

@abigailsnyder

Thanks for merging the final PR from me. I'll leave the QOL suggestions issue open on the repository (as there are a few things left to investigate) but I recommend the project for publication now.

Congratulations! Very fascinating library!

observingClouds commented 4 months ago

@Zeitsperre, @znicholls, @abigailsnyder thank you very much for hanging in here. I appreciate all your time you invested, particularly the reviewers @Zeitsperre and @znicholls with their valuable expertise and feedback.

I will now start the post-review phase where I will work together with @abigailsnyder to move this submission towards publication.

observingClouds commented 4 months ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

observingClouds commented 4 months ago

@abigailsnyder could you please have a look at the above author tasks and post the DOI of the released archive here once you are done? Thank you!

abigailsnyder commented 4 months ago
The version is:  0.13
The DOI is:  10.5281/zenodo.11094934

And I will be getting on the other author items tomorrow hopefully

observingClouds commented 4 months ago

@editorialbot set 10.5281/zenodo.11094934 as archive

editorialbot commented 4 months ago

Done! archive is now 10.5281/zenodo.11094934

observingClouds commented 4 months ago

@editorialbot set v0.13 as version

editorialbot commented 4 months ago

Done! version is now v0.13

observingClouds commented 4 months ago

@editorialbot generate pdf

observingClouds commented 4 months ago

@editorialbot check references

editorialbot commented 4 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.5194/esd-2022-14 is OK
- 10.1017/9781009157940.001 is OK
- 10.5194/gmd-9-1937-2016 is OK
- 10.5194/gmd-9-3461-2016 is OK
- 10.1038/nclimate3310 is OK
- 10.1038/s41586-020-2649-2 is OK
- 10.5281/zenodo.3509134 is OK
- 10.5334/jors.148 is OK

MISSING DOIs

- No DOI given, and none found for title: Emulating Earth system model temperatures with MES...
- 10.5194/esd-13-851-2022 may be a valid DOI for title: MESMER-M: an Earth system model emulator for spati...
- 10.1002/essoar.10511207.1 may be a valid DOI for title: Showcasing MESMER-X: Spatially Resolved Emulation ...
- No DOI given, and none found for title: A simple object-oriented and open-source model for...
- 10.5194/acp-11-1417-2011 may be a valid DOI for title: Emulating coupled atmosphere-ocean and carbon cycl...
- 10.5194/gmd-11-2273-2018 may be a valid DOI for title: FAIR v1. 3: a simple emissions-based impulse respo...
- No DOI given, and none found for title: The Climatic Impact-Driver Framework for Assessmen...
- 10.1002/wcc.457 may be a valid DOI for title: Characterizing half-a-degree difference: a review ...
- No DOI given, and none found for title: Climate Change 2021: the physical science basis. C...
- No DOI given, and none found for title: Ipcc, 2021: Summary for policymakers. in: Climate ...
- No DOI given, and none found for title: Scikit-learn: Machine Learning in Python

INVALID DOIs

- doi:10.59327/IPCC/AR6-9789291691647.001 is INVALID (failed connection)
editorialbot commented 4 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

observingClouds commented 4 months ago

@abigailsnyder thanks for the release and the archive DOI. Could you also check your bibliography and add DOIs to all entries or if none is available provide a url. Thank you.

You can rerun @editorialbot check references to see if the reference check succeeds successfully after you made the changes.

observingClouds commented 4 months ago

@editorialbot check references

editorialbot commented 4 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.5194/esd-2022-14 is OK
- 10.1017/9781009157940.001 is OK
- 10.5194/gmd-9-1937-2016 is OK
- 10.5194/gmd-9-3461-2016 is OK
- 10.1038/nclimate3310 is OK
- 10.1038/s41586-020-2649-2 is OK
- 10.5281/zenodo.3509134 is OK
- 10.5334/jors.148 is OK

MISSING DOIs

- No DOI given, and none found for title: Emulating Earth system model temperatures with MES...
- 10.5194/esd-13-851-2022 may be a valid DOI for title: MESMER-M: an Earth system model emulator for spati...
- 10.1002/essoar.10511207.1 may be a valid DOI for title: Showcasing MESMER-X: Spatially Resolved Emulation ...
- No DOI given, and none found for title: A simple object-oriented and open-source model for...
- 10.5194/acp-11-1417-2011 may be a valid DOI for title: Emulating coupled atmosphere-ocean and carbon cycl...
- 10.5194/gmd-11-2273-2018 may be a valid DOI for title: FAIR v1. 3: a simple emissions-based impulse respo...
- No DOI given, and none found for title: The Climatic Impact-Driver Framework for Assessmen...
- 10.1002/wcc.457 may be a valid DOI for title: Characterizing half-a-degree difference: a review ...
- No DOI given, and none found for title: Climate Change 2021: the physical science basis. C...
- No DOI given, and none found for title: Ipcc, 2021: Summary for policymakers. in: Climate ...
- No DOI given, and none found for title: Scikit-learn: Machine Learning in Python

INVALID DOIs

- doi:10.59327/IPCC/AR6-9789291691647.001 is INVALID (failed connection)
abigailsnyder commented 4 months ago

@observingClouds I got the DOIs added in this morning and I have double checked Authors, affiliations, and ORCIDs. I believe @crvernon and I have checked everything else on the author task list and hopefully are good to go

observingClouds commented 4 months ago

@editorialbot check references

editorialbot commented 4 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.5194/esd-2022-14 is OK
- 10.1017/9781009157940.001 is OK
- 10.5194/gmd-9-1937-2016 is OK
- 10.5194/gmd-9-3461-2016 is OK
- 10.1038/nclimate3310 is OK
- 10.5194/esd-11-139-2020 is OK
- 10.5194/esd-13-851-2022 is OK
- 10.1029/2022GL099012 is OK
- 10.5194/gmd-8-939-2015 is OK
- 10.5194/acp-11-1417-2011 is OK
- 10.5194/gmd-11-2273-2018 is OK
- 10.1029/2022EF002803 is OK
- 10.1002/wcc.457 is OK
- 10.1017/9781009157896.001 is OK
- 10.59327/IPCC/AR6-9789291691647.001 is OK
- 10.1038/s41586-020-2649-2 is OK
- 10.5281/zenodo.3509134 is OK
- 10.5334/jors.148 is OK

MISSING DOIs

- No DOI given, and none found for title: Climate Change 2021: the physical science basis. C...
- No DOI given, and none found for title: Scikit-learn: Machine Learning in Python

INVALID DOIs

- None
abigailsnyder commented 4 months ago

The two missing DOIs I couldn't track down but I did add URLs for them to the bib file

observingClouds commented 4 months ago

@editorialbot generate pdf

editorialbot commented 4 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

Zeitsperre commented 4 months ago

I believe you can use the Zenodo DOI for scikit-learn: https://zenodo.org/doi/10.5281/zenodo.591564 (all versions)

Zeitsperre commented 4 months ago

Additionally, for the IPCC reports, you can refer to this page: https://www.ipcc.ch/report/ar6/wg1/about/how-to-cite-this-report/

observingClouds commented 4 months ago

@abigailsnyder please also have a look at some editorial changes at https://github.com/JGCRI/stitches/pull/100.

observingClouds commented 4 months ago

@editorialbot generate pdf

editorialbot commented 4 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

observingClouds commented 4 months ago

@editorialbot recommend-accept

editorialbot commented 4 months ago
Attempting dry run of processing paper acceptance...
editorialbot commented 4 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.5194/esd-2022-14 is OK
- 10.1017/9781009157940.001 is OK
- 10.5194/gmd-9-1937-2016 is OK
- 10.5194/gmd-9-3461-2016 is OK
- 10.1038/nclimate3310 is OK
- 10.5194/esd-11-139-2020 is OK
- 10.5194/esd-13-851-2022 is OK
- 10.1029/2022GL099012 is OK
- 10.5194/gmd-8-939-2015 is OK
- 10.5194/acp-11-1417-2011 is OK
- 10.5194/gmd-11-2273-2018 is OK
- 10.1029/2022EF002803 is OK
- 10.1002/wcc.457 is OK
- 10.1017/9781009157896.002 is OK
- 10.1017/9781009157896.001 is OK
- 10.59327/IPCC/AR6-9789291691647.001 is OK
- 10.1038/s41586-020-2649-2 is OK
- 10.5281/zenodo.10951361 is OK
- 10.5281/zenodo.3509134 is OK
- 10.5334/jors.148 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 4 months ago

:wave: @openjournals/ese-eics, this paper is ready to be accepted and published.

Check final proof :point_right::page_facing_up: Download article

If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5316, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept