Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: PySLSQP: A transparent Python package for the SLSQP optimization algorithm modernized with utilities for visualization and post-processing #7246

Closed
editorialbot opened this issue Sep 18, 2024 · 60 comments
Assignees
Labels
accepted Fortran paused published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Sep 18, 2024

Submitting author: @anugrahjo (Anugrah Jo Joshy)
Repository: https://github.com/anugrahjo/PySLSQP
Branch with paper.md (empty if default branch):
Version: v0.1.2
Editor: @prashjha
Reviewers: @hariharanragothaman, @saaikrishnan
Archive: 10.5281/zenodo.14215102

Status

status

Status badge code:

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

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

@hariharanragothaman & @saaikrishnan, 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 @prashjha 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 @hariharanragothaman

📝 Checklist for @saaikrishnan

@editorialbot editorialbot added Fortran paused Python review TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics labels Sep 18, 2024
@editorialbot
Copy link
Collaborator Author

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
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1145/192115.192124 is OK
- 10.1137/S0036144504446096 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.21105/joss.02564 is OK
- 10.1007/s00158-011-0666-3 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: A software package for sequential quadratic progra...
- No DOI given, and none found for title: The NLopt nonlinear-optimization package
- No DOI given, and none found for title: A MODular development environment and library for ...

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.90  T=0.04 s (1168.4 files/s, 221031.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          14            405            817           1604
Fortran 77                       1            384            691           1115
Markdown                        14            191              0            814
TeX                              4             92             49            659
YAML                             5             58            105            247
Jupyter Notebook                 2              0           1021             75
TOML                             1              8             13             65
Meson                            2              8              3             34
DOS Batch                        1              8              1             26
make                             1              4              7              9
-------------------------------------------------------------------------------
SUM:                            45           1158           2707           4648
-------------------------------------------------------------------------------

Commit count by author:

    34	anugrahjo

@editorialbot
Copy link
Collaborator Author

Paper file info:

📄 Wordcount for paper.md is 2707

✅ The paper includes a Statement of need section

@editorialbot
Copy link
Collaborator Author

License info:

✅ License found: BSD 3-Clause "New" or "Revised" License (Valid open source OSI approved license)

@prashjha
Copy link

Dear @hariharanragothaman and @saaikrishnan, please read the first couple of comments in this thread and create your review checklist. You can read the reviewer guidelines here. Also, you can browse the closed "REVIEW" issues on the "joss-reviews" repository to get some ideas on how to complete the reviews. Good luck!

@hariharanragothaman
Copy link

@prashjha Thanks a lot for the suggestions and guidelines! Will do the needful! ✅

@hariharanragothaman
Copy link

hariharanragothaman commented Oct 6, 2024

Review checklist for @hariharanragothaman

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/anugrahjo/PySLSQP?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@anugrahjo) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@saaikrishnan
Copy link

saaikrishnan commented Oct 6, 2024

Review checklist for @saaikrishnan

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/anugrahjo/PySLSQP?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@anugrahjo) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@saaikrishnan
Copy link

@prashjha Everything looks good to me except for couple of failing tests. Can we please get those fixed ? Thanks

@hariharanragothaman
Copy link

@saaikrishnan Yes I agree. ✅ There were 2 failing tests.

I think this is the reason for it.

  1. The last deployment to pypi happened 5 months ago, whereas recent code updates (2 months ago) in the repository have not been deployed to pypi. This implies the public packages has not been updated.

Reference:

@anugrahjo
Copy link

@saaikrishnan
As @hariharanragothaman commented, if you are installing a release from PyPI but using the latest commit from the GitHub repo, the tests might not work. The tests need to correspond to the PyPI release. To test correctly, you can either
1. install using pip install pyslsqp and run tests after cloning the repository and checking out the correct version with git checkout v0.1.0, or
2. install the most recent commit with pip install git+https://github.com/anugrahjo/PySLSQP.git@main and run tests after cloning the latest commit.

I just verified locally that no tests are failing when either of these is followed. You can also see from the GitHub actions page that the tests on the cloud are successful for both the latest commit and the PyPI-released version. Let me know if you have any concerns.

Thanks.

@anugrahjo
Copy link

@saaikrishnan @hariharanragothaman
Also, the failing tests you see are coming from the docstrings as there were minor changes made to how the console output is printed. These are only cosmetic changes that do not justify a new version release. We only deploy new versions of the package to PyPI which is why the latest commits on GitHub do not necessarily correspond to the latest PyPI release.

@hariharanragothaman
Copy link

@anugrahjo Thanks for clarifying and the detailed response. I was wondering if you were in the process of doing a minor / patch release; but this explains! ✅👍

@saaikrishnan
Copy link

@anugrahjo That makes sense! Thank you for the clarification.

@prashjha
Copy link

Hi @saaikrishnan and @hariharanragothaman, thank you for your reviews. @saaikrishnan, thank you for giving your recommendation.

@hariharanragothaman
Copy link

From my end, everything else looks good to me too! Thanks. ✅

@prashjha
Copy link

Hi @hariharanragothaman and @saaikrishnan, could you please check the remaining items on your checklist? Thank you!!

@anugrahjo
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@anugrahjo
Copy link

@editorialbot generate preprint

@editorialbot
Copy link
Collaborator Author

Done! version is now v0.1.2

@prashjha
Copy link

@editorialbot set 10.5281/zenodo.14215102 as archive

@editorialbot
Copy link
Collaborator Author

Done! archive is now 10.5281/zenodo.14215102

@prashjha
Copy link

@anugrahjo, I used v0.1.2 instead of 0.1.2 as v0.1.2 matches the tag in your repository. If you want 0.1.2, let me know, and I will change it.

@prashjha
Copy link

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1145/192115.192124 is OK
- 10.1137/S0036144504446096 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.21105/joss.02564 is OK
- 10.1007/s00158-011-0666-3 is OK
- 10.48550/arXiv.2410.12942 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: A software package for sequential quadratic progra...
- No DOI given, and none found for title: The NLopt nonlinear-optimization package
- No DOI given, and none found for title: A MODular development environment and library for ...

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/csism-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#6194, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@editorialbot editorialbot added the recommend-accept Papers recommended for acceptance in JOSS. label Nov 29, 2024
@prashjha
Copy link

prashjha commented Nov 30, 2024

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

  • Double check authors and affiliations (including ORCIDs)
  • Make a release of the software with the latest changes from the review and post the version number here. This is the version that will be used in the JOSS paper.
  • Archive the release on Zenodo/figshare/etc and post the DOI here.
  • Make sure that the title and author list (including ORCIDs) in the archive match those in the JOSS paper.
  • Make sure that the license listed for the archive is the same as the software license.

Editor Tasks Prior to Acceptance

  • Read the text of the paper and offer comments/corrections (as either a list or a pull request)
  • Check that the archive title, author list, version tag, and the license are correct
  • Set archive DOI with @editorialbot set <DOI here> as archive
  • Set version with @editorialbot set <version here> as version
  • Double check rendering of paper with @editorialbot generate pdf
  • Specifically check the references with @editorialbot check references and ask author(s) to update as needed
  • Recommend acceptance with @editorialbot recommend-accept

@anugrahjo
Copy link

@anugrahjo, I used v0.1.2 instead of 0.1.2 as v0.1.2 matches the tag in your repository. If you want 0.1.2, let me know, and I will change it.

@prashjha v0.1.2 sounds good.

@danielskatz
Copy link

👋 @anugrahjo - As track chair, I'll next proofread this and let you know if anything else is needed on your part.

@anugrahjo
Copy link

@danielskatz - That sounds good. Thank you for the update!

@danielskatz
Copy link

@anugrahjo - I'm suggesting a few changes in your paper in anugrahjo/PySLSQP#4

The change to the title is because we don't use special formatting in titles.

The changes to the affiliation are because JOSS affiliations are just places, not positions.

I also note that this paper is far too long for JOSS. We discussed this when the submission happened, but it doesn't appear that you've addressed it. I suppose this is partially my fault for not enforcing this when the review started. I won't make you do anything about it now. (@prashjha - as a note, you also can enforce shortening papers of this length in the future, even if the track editor forgets.)

@danielskatz
Copy link

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1145/192115.192124 is OK
- 10.1137/S0036144504446096 is OK
- 10.1038/s41592-019-0686-2 is OK
- 10.21105/joss.02564 is OK
- 10.1007/s00158-011-0666-3 is OK
- 10.48550/arXiv.2410.12942 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: A software package for sequential quadratic progra...
- No DOI given, and none found for title: The NLopt nonlinear-optimization package
- No DOI given, and none found for title: A MODular development environment and library for ...

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@anugrahjo
Copy link

@danielskatz - I have approved and merged the changes in the PR into the main branch.
During the pre-review, you asked me to wait before shortening it, after which it went directly for review, and I forgot about it. Sorry about that.

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/csism-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#6195, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@danielskatz
Copy link

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

Doing it live! Attempting automated processing of paper acceptance...

@editorialbot
Copy link
Collaborator Author

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

cff-version: "1.2.0"
authors:
- family-names: Joshy
  given-names: Anugrah Jo
  orcid: "https://orcid.org/0009-0003-7704-2532"
- family-names: Hwang
  given-names: John T.
doi: 10.5281/zenodo.14215102
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Joshy
    given-names: Anugrah Jo
    orcid: "https://orcid.org/0009-0003-7704-2532"
  - family-names: Hwang
    given-names: John T.
  date-published: 2024-11-30
  doi: 10.21105/joss.07246
  issn: 2475-9066
  issue: 103
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 7246
  title: "PySLSQP: A transparent Python package for the SLSQP
    optimization algorithm modernized with utilities for visualization
    and post-processing"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.07246"
  volume: 9
title: "PySLSQP: A transparent Python package for the SLSQP optimization
  algorithm modernized with utilities for visualization and
  post-processing"

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

@editorialbot
Copy link
Collaborator Author

🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘

@editorialbot
Copy link
Collaborator Author

🦋🦋🦋 👉 Bluesky post for this paper 👈 🦋🦋🦋

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 Creating pull request for 10.21105.joss.07246 joss-papers#6196
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.07246
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? Notify your editorial technical team...

@editorialbot editorialbot added accepted published Papers published in JOSS labels Nov 30, 2024
@danielskatz
Copy link

Congratulations to @anugrahjo (Anugrah Jo Joshy) and co-author on your publication!!

And thanks to @hariharanragothaman and @saaikrishnan for reviewing, and to @prashjha for editing!
JOSS depends on volunteers and we couldn't do this without you

@editorialbot
Copy link
Collaborator Author

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following

code snippets

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.07246/status.svg)](https://doi.org/10.21105/joss.07246)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.07246">
  <img src="https://joss.theoj.org/papers/10.21105/joss.07246/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.07246/status.svg
   :target: https://doi.org/10.21105/joss.07246

This is how it will look in your documentation:

DOI

We need your help!

The 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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Fortran paused published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics
Projects
None yet
Development

No branches or pull requests

6 participants