Closed whedon closed 4 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @samuelduchesne, @robinroche it looks like you're currently assigned to review this paper :tada:.
:warning: JOSS reduced service mode :warning:
Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.
: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
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
@whedon generate pdf
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.21105/joss.00884 is OK
MISSING DOIs
- None
INVALID DOIs
- None
@samuelduchesne and @robinroche thanks for agreeing to review this submission to JOSS. As noted above, we are trying to adjust to authors, reviewers, and editors needs under COVID. Thus we are asking reviewers try and complete reviews in 6 weeks. I am going to use whedon the editorial bot to remind you about your review in three weeks, half way through the requested timeline.
If there are any questions from the authors or reviewers throughout the process, please feel free to let me know here or directly at krbarnhart@usgs.gov.
Thanks again for contributing to the JOSS review process.
@whedon remind @samuelduchesne in three weeks
Reminder set for @samuelduchesne in three weeks
@whedon remind @robinroche in three weeks
Reminder set for @robinroche in three weeks
:wave: @samuelduchesne, please update us on how your review is going.
:wave: @robinroche, please update us on how your review is going.
Hi, I will work on it next week. Sorry for the delay.
Still working on it! Thanks
@robinroche and @samuelduchesne thanks for checking in. As I noted above, the recent reminder marks three weeks into the review and JOSS is asking reviewers to complete reviews in six weeks. Thanks in advance for your contributions to the JOSS review process.
@tylunel @kbarnhart I am done with my review. I have some suggestions for improvement:
Documentation:
Paper:
Results of the test script:
============================================ test session starts ============================================ platform linux -- Python 3.7.6, pytest-5.3.5, py-1.8.1, pluggy-0.13.1 rootdir: /home/rroche/src/pvpumpingsystem plugins: doctestplus-0.5.0, arraydiff-0.3, astropy-header-0.1.2, hypothesis-5.5.4, remotedata-0.3.2, openfiles-0.4.0 collected 16 items
pvpumpingsystem/test/test_pump.py ....... [ 43%] pvpumpingsystem/test/test_pvpumpsystem.py ..... [ 75%] pvpumpingsystem/test/test_sizing.py .... [100%]
============================================= warnings summary ============================================== pvpumpingsystem/test/test_pump.py::test_init pvpumpingsystem/test/test_pump.py::test_all_models_coeffs pvpumpingsystem/test/test_pump.py::test_functIforVH pvpumpingsystem/test/test_pump.py::test_functQforPH pvpumpingsystem/test/test_pump.py::test_iv_curve_data pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_mppt pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_mppt pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_direct pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_direct /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:102: UserWarning: idname attribute overwritten. warnings.warn('idname attribute overwritten.')
pvpumpingsystem/test/test_pump.py::test_init pvpumpingsystem/test/test_pump.py::test_limited_pump_data_1 pvpumpingsystem/test/test_pump.py::test_all_models_coeffs pvpumpingsystem/test/test_pump.py::test_functIforVH pvpumpingsystem/test/test_pump.py::test_functQforPH pvpumpingsystem/test/test_pump.py::test_iv_curve_data /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:112: UserWarning: motor_electrical_architecture attribute overwritten. warnings.warn('motor_electrical_architecture '
pvpumpingsystem/test/test_pump.py::test_limited_pump_data_1 pvpumpingsystem/test/test_pump.py::test_limited_pump_data_2 /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:1515: UserWarning: Power and current data will be recomputedwith constant efficiency assumption. warnings.warn('Power and current data will be recomputed'
pvpumpingsystem/test/test_pump.py::test_limited_pump_data_2 /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:1297: UserWarning: Simplistic model of constant efficiency applied.Better model could be used if permanent_magnet warnings.warn('Simplistic model of constant efficiency applied.'
pvpumpingsystem/test/test_pump.py::test_functIforVH /home/rroche/src/pvpumpingsystem/pvpumpingsystem/inverse.py:199: RuntimeWarning: Trouble calculating inverse for values: [7.] "%s" % str(yin[~resultsmask]), RuntimeWarning)
pvpumpingsystem/test/test_pump.py::test_functIforVH /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:381: RuntimeWarning: invalid value encountered in sqrt return R_ai + betanp.sqrt(i)
pvpumpingsystem/test/test_pump.py::test_functIforVH /home/rroche/src/pvpumpingsystem/pvpumpingsystem/inverse.py:207: RuntimeWarning: Results obtained with less than 2 decimal digits of accuracy % accuracy, RuntimeWarning)
pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_mppt pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_direct /home/rroche/src/pvpumpingsystem/pvpumpingsystem/pump.py:94: UserWarning: price attribute overwritten. warnings.warn('price attribute overwritten.')
pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_mppt pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_direct /home/rroche/anaconda3/lib/python3.7/site-packages/scipy/optimize/minpack.py:808: OptimizeWarning: Covariance of the parameters could not be estimated category=OptimizeWarning)
pvpumpingsystem/test/test_sizing.py::test_sizing_minimize_npv_direct /home/rroche/src/pvpumpingsystem/pvpumpingsystem/sizing.py:225: UserWarning: Pump Shurflo_9325 and PV module voltage do not match 'do not match').format(pump.idname))
-- Docs: https://docs.pytest.org/en/latest/warnings.html ===================================== 16 passed, 26 warnings in 17.41s ======================================
@kbarnhart, I am done with the review as well. On my end, I worked on MacOS and had no issues installing and using the tool from the installation documentation. I enjoyed trying out this package which is very well coded (excellent programming ethics). The examples were very useful to understand how to use the package. Having both jupyter notebooks and python scripts in the examples folder is a welcomed feature.
Regarding installation, my only suggestion would be to upload the package to PyPi (or to conda-forge) so that a regular pip install
(or conda install
) is possible; installing in editable mode is unusual for published packages.
I agree with @robinroche's suggestions for improvement which cover most of the package-related considerations. I do have general comments as well as some questions regarding the methodology the tool implements (which should not be overlooked...). I present them bellow.
readme
) needs a good diagram visually explaining the tool (the jupyter notebook example has a nice one). This will help users understand quickly the use of this tool.There is very little information in the docs as well as in the paper about the kind of optimization that is performed in the sizing module.
sizing_minimize_npv()
returns a list of possible PV module and pump configurations. What if multiple systems satisfy the constraints? Then, the user must choose?Also, the hardcoded values of 45Β° and 180Β° for the PV surface tilt and azimuth in subset_respecting_llp_direct
is questionable; An optimal panel angle usually follows the latitude of the location.
[ ] Why did the author chose these values?https://github.com/tylunel/pvpumpingsystem/blob/5a6bb6e1c3d1387e04a989cdf1a54baa956f7b50/pvpumpingsystem/sizing.py#L172-L173
[ ] I suggest that the author more clearly define the two use cases in the documentation (and the paper): 1. the modeling of pv pumping system operation and 2. the sizing of such systems.
[ ] Clearly mention the limitations of the sizing module. What are the variables that can (or cannot) be optimized?
@kbarnhart Reading @samuelduchesne 's comments, I realize that I somehow forgot to paste my comments on the technical (application) aspects and conclusions. However they are similar to @samuelduchesne 's. This a nice contribution that can be useful to both researchers and designers of such systems.
Thanks for you very constructive comments @samuelduchesne @robinroche ! I will address the points you raise and come back to you with the corresponding improvements.
But before I have two questions. The first is about the warnings in the tests:
More information on the automated test script should be provided to the user. What can the user expect to see when running it? I got 26 warnings (see below)
I am not sure what is the best practice here, and unfortunately internet did not provide a clear answer on it either haha. I added several warnings in my code in order to guide the user during a normal simulation or sizing, but this results in having all these warnings in the tests as well. Should I try not to add as much UserWarning
(in my view it would make the use of the software maybe more complicated for unexperienced user)? Or is it okay to ignore some class of warnings in the tests like UserWarnings
(as implicitly suggested here: https://docs.pytest.org/en/stable/warnings.html)? Or is it enough just to tell the user that it is normal to see 26 warnings when she/he runs the tests?
The second question in actually more a request for clarification to @robinroche :
I feel that a "Getting started" page would help right after installation, and describe the basic steps of the design of a simple system design. The examples are great, but I feel that this would make the new user more comfortable.
What does this "Getting started" page should contain more exactly in your opinion? Help on how to run the python and jupyter notebook examples? More general explanations around what is a PV pumping system (so far, I assume that the users have a minimum knowledge about PV pumping systems)? A more abstract layout of the steps of simulation than what is proposed in the examples? Thanks in advance for providing further details
@robinroche and @samuelduchesne Thanks for your thoughtful reviews! At this point in the JOSS process we will now let @tylunel address these issues. If more extensive discussion needs to take place I would recommend that @tylunel make an issue in the submitted repository, paste and link to the above review comments, and focus the discussion there. This makes it easier to keep track of multiple threads.
I'll weigh in briefly regarding two items.
Regarding warnings and the result of tests I think the most important thing is to communicate to a user how to evaluate whether the tests passed or not. Secondly I think that if you know (as the developer) that a test will produce a warning (e.g., the example above where the warning is "UserWarning: price attribute overwritten.") you should set up the tests so that that warning is expected, handled, and the test fails if the warning is not raised (e.g., using pytest.warns()).
Regarding other warnings (e.g., RuntimeWarning, DeprecationWarning), there are lots of options for warning handling in testing tools (I'm mostly familiar with those in pytest) but I think that how one uses them is a matter of developer preference (e.g., you could turn them all off using a configuration file, but perhaps you want to know when DeprecationWarnings arrive). Ultimately this means that it is important for the developer to communicate to someone who might use the tests about what they should see.
Happy to discuss these and other points. Please let me know how I can assist as you respond and clarify reviewer comments.
What does this "Getting started" page should contain more exactly in your opinion? Help on how to run the python and jupyter notebook examples? More general explanations around what is a PV pumping system (so far, I assume that the users have a minimum knowledge about PV pumping systems)? A more abstract layout of the steps of simulation than what is proposed in the examples? Thanks in advance for providing further details
@tylunel Yes, I was thinking of a high level explanation of how to use the code, and pointing the user to the basic example at the end of the installation.
More information on the automated test script should be provided to the user. What can the user expect to see when running it? I got 26 warnings (see below)
@tylunel I agree with @kbarnhart . I did not notice anything worrying in the warnings, but I think that the user should know that getting these warnings may be normal. Otherwise one may wonder if the code will be fully operational or not.
The changes have been made as proposed in the reviews. I hope that it corresponds well to your expectations @robinroche @samuelduchesne.
There is one point that was maybe not addressed completely as expected, it is for the clear definition of the 2 use cases (penultimate item of @samuelduchesne). On that, I did not want to insist too much on the sizing case, as it is not the core of the package. The modeling tools are the core, and the sizing tool proposed is more a wrapper of the previous tools, and should be more seen as an example of how the code can be used to adress complex problems. I tried to clarify it in the docs as well.
For the rest of the modifications, there were all useful I think, thanks!
@tylunel Thanks, my comments have been addressed. Congratulations on this package that will hopefully be useful to many.
Thank you @tylunel for addressing these comments. I have nothing to add π
@robinroche and @samuelduchesne thank you for your thoughtful comments and timely review. @tylunel thank you for responding to the reviewer comments.
Now that the reviewers have completed the checklist and recommended publication the next step is that I will do a final proofreading step on the publication (I may make a PR or just provide a list). This will happen in the next few days. Once that is complete I will ask @tylunel to complete a few steps to create the final archive and will then pass the submission on to the JOSS Editors in Chief for final processing.
@whedon check references
@whedon generate pdf
PDF failed to compile for issue #2637 with the following error:
/app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:377:in parse': (282eb7a8936ed27839132ec9/paper/paper.md): invalid trailing UTF-8 octet at line 1 column 1 (Psych::SyntaxError) from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:377:in
parse_stream'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:325:in parse' from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:252:in
load'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:473:in block in load_file' from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:472:in
open'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:472:in load_file' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon.rb:127:in
load_yaml'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon.rb:87:in initialize' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon/processor.rb:38:in
new'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon/processor.rb:38:in set_paper' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/bin/whedon:58:in
prepare'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/command.rb:27:in run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in
invoke_command'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor.rb:387:in dispatch' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/base.rb:466:in
start'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/bin/whedon:131:in <top (required)>' from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23:in
load'
from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23:in `
@whedon generate pdf
PDF failed to compile for issue #2637 with the following error:
/app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:377:in parse': (9c521b79eda83c1ddbaf2d30/paper/paper.md): invalid trailing UTF-8 octet at line 1 column 1 (Psych::SyntaxError) from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:377:in
parse_stream'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:325:in parse' from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:252:in
load'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:473:in block in load_file' from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:472:in
open'
from /app/vendor/ruby-2.4.4/lib/ruby/2.4.0/psych.rb:472:in load_file' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon.rb:127:in
load_yaml'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon.rb:87:in initialize' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon/processor.rb:38:in
new'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/lib/whedon/processor.rb:38:in set_paper' from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/bin/whedon:58:in
prepare'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/command.rb:27:in run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in
invoke_command'
from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor.rb:387:in dispatch' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/base.rb:466:in
start'
from /app/vendor/bundle/ruby/2.4.0/bundler/gems/whedon-d14a699185fb/bin/whedon:131:in <top (required)>' from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23:in
load'
from /app/vendor/bundle/ruby/2.4.0/bin/whedon:23:in `
@tylunel it looks like there is an issue with the paper.md file that makes it not compile. Would you address it and then ping me so I can proceed.
If you make changes on a test branch, know that you can use whedon to compile off a custom branch:
# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name
@kbarnhart Sorry for that, I forgot to check the encoding in UTF-8 after the last changes in paper.md. It should be okay now!
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@tylunel thanks for merging those copyedits. Congratulations on making to the end of the JOSS review process.
At this point could you:
I can then move forward with accepting the submission.
The release version is v1.0.0 (https://github.com/tylunel/pvpumpingsystem/releases/tag/v1.0.0) and the DOI of the archive version is 10.5281/zenodo.4134280 (https://zenodo.org/record/4134280).
@whedon set v1.0.0 as version
OK. v1.0.0 is the version.
@whedon set 10.5281/zenodo.4134280 as archive
OK. 10.5281/zenodo.4134280 is the archive.
@whedon accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.21105/joss.00884 is OK
MISSING DOIs
- None
INVALID DOIs
- None
@tylunel this is now in the hands of the JOSS handling Editor in Chief who manages final publication.
:wave: @openjournals/joss-eics, this paper is ready to be accepted and published.
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1864
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1864, 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...
@samuelduchesne, @robinroche - many thanks for your reviews here and to @kbarnhart for editing this submission β¨
@tylunel - your paper is now accepted into JOSS :zap::rocket::boom:
Submitting author: @tylunel (Tanguy Lunel) Repository: https://github.com/tylunel/pvpumpingsystem Version: v1.0.0 Editor: @kbarnhart Reviewer: @samuelduchesne, @robinroche Archive: 10.5281/zenodo.4134280
:warning: JOSS reduced service mode :warning:
Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.
Status
Status badge code:
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
@samuelduchesne & @robinroche, 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 @kbarnhart 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 β¨
Review checklist for @samuelduchesne
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @robinroche
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper