openjournals / joss-reviews

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

[REVIEW]: IWOPY: Fraunhofer IWES optimization tools in Python #6014

Open editorialbot opened 8 months ago

editorialbot commented 8 months ago

Submitting author: !--author-handle-->@SchmJo<!--end-author-handle-- (Jonas Schmidt) Repository: https://github.com/FraunhoferIWES/iwopy Branch with paper.md (empty if default branch): paper Version: v0.1.5 Editor: !--editor-->@fraukewiese<!--end-editor-- Reviewers: @BenWinchester, @StewMH Archive: Pending

Status

status

Status badge code:

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

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

@BenWinchester & @StewMH, 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 @fraukewiese 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 @BenWinchester

📝 Checklist for @StewMH

editorialbot commented 8 months ago

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf
editorialbot commented 8 months ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.09 s (944.6 files/s, 147697.3 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          55           2017           3360           5125
Jupyter Notebook                 4              0            884            497
Markdown                        10            149              0            324
YAML                             2             16             18            149
SVG                              2             18              0            136
reStructuredText                 5             44             73             75
DOS Batch                        1              8              1             26
TeX                              1              1              0             21
make                             1              4              6             10
HTML                             1              1              0              9
TOML                             1              2              1              3
-------------------------------------------------------------------------------
SUM:                            83           2260           4343           6375
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 8 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.21105/joss.02338 is OK

MISSING DOIs

- 10.1109/access.2020.2990567 may be a valid DOI for title: pymoo: Multi-Objective Optimization in Python

INVALID DOIs

- None
editorialbot commented 8 months ago

Wordcount for paper.md is 492

editorialbot commented 8 months ago

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

BenWinchester commented 8 months ago

Review checklist for @BenWinchester

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Note: The documentation can be found here.

Software paper

fraukewiese commented 8 months ago

@SchmJo could you check on the missing DOI (see above)? Thank you

StewMH commented 8 months ago

Review checklist for @StewMH

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

BenWinchester commented 7 months ago

@SchmJo, I've carried out as much of the check-list review as possible but have unfortunately encountered a couple of Python ImportError's and raised issues in the iwopy issue tracker (here and here) for these. Unfortunately, until these are resolved, I am unable to verify the functionality, performance, and automated tests.

The remainder of my review is as follows below.

Many thanks, Ben

General comments

I think the repository and paper conform to the JOSS review criteria and recommend it for publication. However, I have a few points, itemised below, which I would like to see addressed.

Substantial scholarly effort

What the repository lacks in citations, it makes up for in its length of commit history and number of lines of code. The repository's nature means that, once published in the JOSS, I believe that its use will continue to expand. I am therefore happy that the repository/paper meet the requirements for substantial scholarly effort, albeit without satisfying each of the criteria.

Checklist comments

Comments as below:

General checks

Functionality

Documentation

Software paper

fraukewiese commented 7 months ago

Thank you very much @BenWinchester . @SchmJo : Please update us about your reactions to the comments by @BenWinchester

fraukewiese commented 5 months ago

@SchmJo : Could you please update us regarding your answers to the reviewer's comments? If the review process takes so long it might be more difficult for the reviewers, so it would be great if you could let us know your status.

SchmJo commented 5 months ago

Hi all, thanks for reviewing and thanks for the issues!

I hope that I will be able to address them until mid February. As far as I see it, the issues were due to dependencies on pymoo and pygmo that were needed for the tests, but are optional for the main package. I will improve this, and go through your comments soon.

...and sorry for the delay on my side!

fraukewiese commented 4 months ago

Thanks for the update @SchmJo

fraukewiese commented 3 months ago

@SchmJo : Are there any updates from your side?

SchmJo commented 3 months ago

Yes, I solved the two issues that were posted by the reviewers. Waiting for feedback before closing one of them: #12

BenWinchester commented 3 months ago

Hi @SchmJo and @fraukewiese ,

Following the advice within issue #12 of the iwopy repository, I installed the dependencies and can confirm that the software runs as described. However, whilst this means that I have crossed off the functionality-related requirements, there are still

SchmJo commented 3 months ago

@BenWinchester Concerning the deps:

Is this insufficient? If you insist, I can make it a general dependency, even though this somewhat breaks the intention of iwopy to not install all packages automatically for which it provides interfaces. Thanks for further feedback

BenWinchester commented 3 months ago

@SchmJo , thanks for getting back to me :smile:

I think there isn't really a "best" way to deal with this dependency. I may be interpreting this wrong (sorry if so!) but it seems as though, iwopy, as a package, works to wrap around other optimisation tools, so it's dependent on them. If it's nicer to have it not install these dependencies (so users can choose their own optimisation packages to install?), then they probably don't need to be automatic. However, there's the check-list comment that needs addressing:

[ ] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.

I think, at the minute, listing the dependencies in the setup.cfg as installed only for testing isn't sufficient for a user to run the code. E.G., for someone to run the examples (as I did: they're great fun!), they need to run the code, get the error message, realise that they should install the packages manually, and then all will be well.

This doesn't seem neat enough to me to fulfil the "clearly-stated list" requirement. They could maybe go in the README.md, or, if that breaks the idea that the packages can be selected independently from iwopy, perhaps they could go at the top of each example in the documentation? Something like "to run these examples, you'll need to have pygmo installed. You can run pip install pygmo" or something similar? There's nothing in the checkbox (as far as I can read) that says the process needs to be automatic, just that it needs to be clearly-stated :smiley:

fraukewiese commented 2 months ago

@SchmJo : Are there any updates from your side?

SchmJo commented 2 months ago

I am not sure I understand the issue with the not explicitly mentioned dependencies - it is a setup.cfg-type package. For me it is not nice to explicitly state the dependencies again as pip install ... at several places, since this is redundant and harder to maintain. What is your opinion, @fraukewiese ? Is pip install .[test] really insufficient for the user, before running tests?

BenWinchester commented 2 months ago

@SchmJo , happy to leave this to @fraukewiese . Just to be clear though, my issue is that, to run the code, i.e., to run any of the examples in the documentation (which are great fun!), you need these dependencies installed, and there's currently no guidance for this: a user only finds out when the error message is displayed to them. One of the options I mentioned, which doesn't seem to tricky to implement (as it just requires an update to the source code behind the examples documentation—no changes are needed to the source code of the package), is having a message at the top of the examples with some short instructions:

Something like "to run these examples, you'll need to have pygmo installed. You can run pip install pygmo" or something similar? There's nothing in the checkbox (as far as I can read) that says the process needs to be automatic, just that it needs to be clearly-stated 😃

Please also let me know when you've had a chance to check off the other items in the review and I'll take a look at the repository again :smile:

SchmJo commented 2 months ago

@BenWinchester Ok, thanks! I agree such an addition to the examples is a good way out of this. I will add such a sentence to the notebooks.

fraukewiese commented 1 month ago

@SchmJo : Could you update us on the status regarding the issues raised by @BenWinchester ? Thank you :)

SchmJo commented 1 month ago

@fraukewiese I am on it - my prognosis is end of May (I have vacation time ahead). Hoping that is ok? Sorry for all these delays along the way!

SchmJo commented 1 month ago

@BenWinchester I made the following updates, thanks for checking:

I hope this is helpful and can bring this process forward - thanks again for reviewing!

fraukewiese commented 3 weeks ago

@SchmJo Thanks for the updates.

fraukewiese commented 3 weeks ago

@BenWinchester : Are you satisfied regarding the changes made by @SchmJo ? Thank you very much :)

BenWinchester commented 3 weeks ago

@BenWinchester I made the following updates, thanks for checking:

  • The community is invited here in the documentation to contribute, and here in the README
  • The setup.cfg file now contains an option for extra dependencies called opt, which will always list all featured third-party optimization packeges (currently pygmo and pymoo). This is explained here in the documentation
  • The examples section of the documentation explicitly states the dependency on pygmo and pymoo, as requested
  • Also the testing section of the documentation now mentions the extra dependencies, which are installed by the extra dependency option test in setup.cfg
  • Explanation: The author "Bernhard Stoevesandt" appears as an author in the role of a "last-author" of the paper. He is my boss and has not written any line of code for this project, but was involved in strategic planing and money aquisition for making it possible. If wanted, I can take him off the author list, not a problem - please just let me know.

I hope this is helpful and can bring this process forward - thanks again for reviewing!

@fraukewiese , apologies for the delay in getting back to you—I'm currently travelling with limited internet access/speed! @SchmJo , thank you for taking the time to go through and address some of the issues raised:

The only other outstanding comments from me are all about the content of the paper, not the repo. Has this been updated?

fraukewiese commented 2 weeks ago

@editorialbot generate pdf

fraukewiese commented 2 weeks ago

@BenWinchester : Thanks a lot for your thorough continued review :)

editorialbot commented 2 weeks ago

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

fraukewiese commented 2 weeks ago

@SchmJo : I think @BenWinchester has described the conditions for being mentioned as a co-author very well. So I think it is on your and your potential co-authors side to decide whether Bernhard Stoevesandt has contributed more than purely financial or organisational contributions.

fraukewiese commented 2 weeks ago

@SchmJo : Please notify @BenWinchester and me as soon as you have updated the content of the paper, according to the points raised above by @BenWinchester Thank you :)