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]: PyKoopman: A Python Package for Data-Driven Approximation of the Koopman Operator #5881

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

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Sep 26, 2023

Submitting author: @pswpswpsw (Shaowu Pan)
Repository: https://github.com/dynamicslab/pykoopman
Branch with paper.md (empty if default branch):
Version: v1.1.0
Editor: @olexandr-konovalov
Reviewers: @ulf1, @fandreuz
Archive: 10.5281/zenodo.10685233

Status

status

Status badge code:

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

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

@ulf1 & @fandreuz, 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 @olexandr-konovalov 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 @fandreuz

📝 Checklist for @ulf1

@editorialbot editorialbot added Python review Track: 7 (CSISM) Computer science, Information Science, and Mathematics labels Sep 26, 2023
@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

Software report:

github.com/AlDanial/cloc v 1.88  T=0.14 s (551.3 files/s, 161325.7 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          43           1906           3802           5504
Jupyter Notebook                18              0           7722           1653
TeX                              1             27              0            563
XML                              1              0             19            448
YAML                             6             18             19            141
reStructuredText                 2             92             74            126
Ruby                             1             28             12            106
Markdown                         1             39              0             96
JSON                             1              0              0             51
TOML                             1              3              0             30
DOS Batch                        1              8              1             26
make                             1              4              7              9
-------------------------------------------------------------------------------
SUM:                            77           2125          11656           8753
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1017/S0022112010001217 is OK
- 10.1137/1.9781611974508 is OK
- 10.1146/annurev-fluid-030121-015835 is OK
- 10.1016/j.arcontrol.2009.12.001 is OK
- 10.1007/978-0-387-40065-5 is OK
- 10.1017/9781108380690 is OK
- 10.1137/21M1401243 is OK
- 10.1063/1.4772195 is OK
- 10.1007/s00332-017-9437-7 is OK
- 10.1146/annurev-fluid-011212-140652 is OK
- 10.1063/1.4993854 is OK
- 10.1007/BF02532251 is OK
- 10.1038/s41467-017-00030-8 is OK
- 10.1007/978-3-662-04323-3_15 is OK
- 10.1017/S0022112009992059 is OK
- 10.1002/9781118535561 is OK
- 10.48550/arXiv.1710.09668 is OK
- 10.1137/18M1225409 is OK
- 10.1063/1.5011399 is OK
- 10.1038/s41467-017-02388-1 is OK
- 10.1098/rspa.2017.0844 is OK
- 10.1103/PhysRevLett.120.024102 is OK
- 10.1137/19M1274067 is OK
- 10.1016/j.jcp.2018.10.045 is OK
- 10.1073/pnas.1906995116 is OK
- 10.1126/science.aaw4741 is OK
- 10.1007/s00466-019-01711-5 is OK
- 10.1137/130932715 is OK
- 10.1016/j.cma.2016.03.025 is OK
- 10.1016/j.physd.2020.132401 is OK
- 10.1073/pnas.1118984109 is OK
- 10.1073/pnas.1620045114 is OK
- 10.1073/pnas.0609476104 is OK
- 10.1126/science.1165893 is OK
- 10.1038/ncomms9133 is OK
- 10.1073/pnas.1517384113 is OK
- 10.1007/s00332-015-9258-5 is OK
- 10.1126/sciadv.1602614 is OK
- 10.3934/jcd.2015005 is OK
- 10.1038/s41467-018-07210-0 is OK
- 10.1137/18M1177846 is OK
- 10.48550/arXiv.1710.04340 is OK
- 10.1017/jfm.2021.271 is OK
- 10.1016/j.ifacol.2016.10.250 is OK
- 10.1109/TAC.2020.2978039 is OK
- 10.1007/978-3-030-35713-9 is OK
- 10.1088/2632-2153/abf0f5 is OK
- 10.1016/j.automatica.2019.05.016 is OK
- 10.1137/20M1325678 is OK
- 10.21105/joss.02104 is OK
- 10.1137/17M115414X is OK
- 10.1016/j.physd.2004.06.015 is OK
- 10.1137/19M1267246 is OK
- 10.1137/15M1013857 is OK
- 10.1088/2632-2153/ac3de0 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 1267

@editorialbot
Copy link
Collaborator Author

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

@fandreuz
Copy link

fandreuz commented Sep 27, 2023

Review checklist for @fandreuz

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/dynamicslab/pykoopman?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@pswpswpsw) 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?

@ulf1
Copy link

ulf1 commented Sep 28, 2023

Review checklist for @ulf1

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

Functionality

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). => https://github.com/dynamicslab/pykoopman/tree/master/docs
  • 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? => https://github.com/dynamicslab/pykoopman/tree/master/test
  • 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 => https://github.com/dynamicslab/pykoopman/tree/master#community-guidelines

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?

@fandreuz
Copy link

fandreuz commented Sep 30, 2023

Hi @pswpswpsw, a few comments about the paper:

  • Figures are not really integrated in the body
    • Figure 3 should be shrinked and it would be preferrable to move it closer to where it is referenced, I've found it unpleasant to move up and down to understand what you were talking about.
    • I feel Figure 1 is quite detached from the context of the paper. It seems to me that it's neither referenced nor explained in the body, and it is too dense of information.
    • I had similar feelings for Figure 2 as for Figure 3, I would shrink it and make it better integrated with the body.
  • Please spend some more words on your dependencies, since you are pulling in some very dense ones which are not just "infrastructure". As a user I would like to know how and where they are used. For instance, I see that you have your own implementation of all DMD variants: I think this is worth noting in the paper, since you depend on PyDMD, and it's also interesting to explain why you do so instead of relying on the PyDMD implementation.
  • I see you have many submodules which provide various functionalities, but I would like to see at least one code sample for one meaningful usecase, as stated in the requirements for the paper.
    • It would also be interesting if you could spend some words on what is the typical pipeline for a user of your package. In the paper you explained the role of each submodule, but it is difficult to grasp the big picture.
  • As part of the Statement of need, I'd like to see a comparison with open source tools like PyDMD (regression), SciPy (differentation). It can be one sentence, what you feel was missing and what you improved as part of your work. This is part of paper requirements (see State of the field).

@pswpswpsw
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@pswpswpsw
Copy link

Hi @fandreuz, thank you for your time reviewing! I just finished the revised paper. Please take a look.

  1. Figures are now integrated with the manuscript.
  2. Major dependency are justified with a separate paragraph in Feature section.
  3. I have included a Example section to demonstrate a typical workflow using this package.
  4. I have included comparison with pydmd in Statement of need. So basically our goal is to strike a balance between serving dynamics/control community and fluid dynamics community. Many of the unique designs/implementation of pykoopman is indeed to achieve that goal.

@fandreuz
Copy link

fandreuz commented Oct 5, 2023

Hi @pswpswpsw, thanks for updating the paper:

  1. Fig2/3/4 are fine, but still I think Fig.1 is a little bit detached from the context. And since it takes half of a page, I would expect it to be either very self-explanatory, or to find an explanation in the body of the manuscript. To me it's confusing and not adding much value to the paper if it's presented this way, therefore I would spend some more words either in the caption or in the body.
  2. Thanks for addressing my request, but I feel now it's too much. Of course you don't need to justify why you use each dependency, but I expected one, max two, sentences to explain your architecture. Example: We use several infrastructure objects and utility functions from PyDMD, however we decided to implement our version of DMDs because ...
  3. I don't see how your package comes into play in your example code, am I missing something?
  4. Thanks.

There's a typo/rendering problem at L93. I propose to remove "the" before "PyKoopman" in L51.

About Statement of need: please try to condense it. I propose to have a detailed explanation of all features supported in PyKoopman only in one place, namely the Features section. In Statement of need I'd like to see only 1/2 sentences about high-level features of your package, 1/2 sentences for comparison with state of the art (e.g. other open source packages like PyDMD) and much less citations. I would say there's not much need for many citations in Statement of need as anyway you will go into details in Features, so I propose to keep only the critical ones.

@pswpswpsw
Copy link

Hi @fandreuz,
Thanks for the second round review.

  1. I have modified the caption to make it more concise. The figure 1 is to summarize the fundamental concepts in Koopman operator and also gives an example for why it can work.
  2. I believe this information is helpful for the readers in case they ask. So I leave it there in case the second reviewer is interested to know.
  3. Oh, I missed the rest of the code for pykoopman. Now I have added them to the revised version. Please take a look.

I just corrected the typo/rendering issues and also removed the "the" before Pykoopman.

For statement of need, the revised version now only has one sentence about comparison to pydmd:

Compared to implementation of DMD (e.g., PyDMD [@demo2018pydmd]) which can be viewed as a linear projection of Koopman operator, PyKoopman offers a comprehensive set of nonlinear projection methods.

@pswpswpsw
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@ulf1
Copy link

ulf1 commented Oct 27, 2023

@pswpswpsw has the package PyKoopman been used in academic papers?

@pswpswpsw
Copy link

pswpswpsw commented Oct 31, 2023

@ulf1 Hi Ulf, first I want to thank you for pointing out the issues. I learned a lot.

To answer your question, not yet (because we just officially released the paper) but soon I will have a few papers that uses this pykoopman. I believe the community will also start to use our package for benchmark.

@pswpswpsw
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@editorialbot commands

@pswpswpsw
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@pswpswpsw
Copy link

@olexandr-konovalov dear editor, looks like the review has been completed? Shall we move forward?

@olexandr-konovalov
Copy link
Member

@fandreuz and @ulf1, could you please confirm if the review is completed? I don't see that all checkboxes have been checked, so it's not yet finished from my perspective. Could you please revisit your checklists and update their state? Thanks!

@fandreuz
Copy link

fandreuz commented Nov 21, 2023

Hi @pswpswpsw, as I said in my last comment I still feel the full detailed summary for each dependency is not needed and it should be cut. Not sure what's the opinion of @ulf1 here.

I also feel 11 pages is quite a lot for JOSS, in general I would:

  • Cut some references, it's not interesting to list all papers treating similar topics, I would restrict to no more than 2/3 per sub-topic and move the extended list to your repository;
  • Cut dependencies as said above
  • Shorten the example. No need for import statements, generation of dataset and plotting. Just put what makes your library peculiar, so the reader is interested in having a look at the examples in your repository.

I've checked all the other points.

@ulf1
Copy link

ulf1 commented Nov 24, 2023

@olexandr-konovalov @pswpswpsw @fandreuz Hello, I finished my review. I like the jupyter demo notebooks to explain how to call the package's classes, and the unit tests. The dependencies, including version ranges, have been fixed.
I agree with @fandreuz that the PDF is very lengthy.
I recommend this submission for publication.

@pswpswpsw
Copy link

@editorialbot check references

@pswpswpsw
Copy link

@editorialbot generate PDF

@pswpswpsw
Copy link

@olexandr-konovalov sorry. I just fixed this..

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1017/S0022112010001217 is OK
- 10.1137/1.9781611974508 is OK
- 10.5281/zenodo.3828935 is OK
- 10.21105/joss.03994 is OK
- 10.1146/annurev-fluid-030121-015835 is OK
- 10.1016/j.arcontrol.2009.12.001 is OK
- 10.1007/978-0-387-40065-5 is OK
- 10.21105/joss.00530 is OK
- 10.1017/9781108380690 is OK
- 10.1137/21M1401243 is OK
- 10.1063/1.4772195 is OK
- 10.1007/s00332-017-9437-7 is OK
- 10.1146/annurev-fluid-011212-140652 is OK
- 10.1063/1.4993854 is OK
- 10.1007/BF02532251 is OK
- 10.1038/s41467-017-00030-8 is OK
- 10.1007/978-3-662-04323-3_15 is OK
- 10.1017/S0022112009992059 is OK
- 10.1002/9781118535561 is OK
- 10.48550/arXiv.1710.09668 is OK
- 10.1137/18M1225409 is OK
- 10.1063/1.5011399 is OK
- 10.1038/s41467-017-02388-1 is OK
- 10.1098/rspa.2017.0844 is OK
- 10.1103/PhysRevLett.120.024102 is OK
- 10.1137/19M1274067 is OK
- 10.1016/j.jcp.2018.10.045 is OK
- 10.1073/pnas.1906995116 is OK
- 10.1126/science.aaw4741 is OK
- 10.1007/s00466-019-01711-5 is OK
- 10.1137/130932715 is OK
- 10.1016/j.cma.2016.03.025 is OK
- 10.1016/j.physd.2020.132401 is OK
- 10.1073/pnas.1118984109 is OK
- 10.1073/pnas.1620045114 is OK
- 10.1073/pnas.0609476104 is OK
- 10.1126/science.1165893 is OK
- 10.1038/ncomms9133 is OK
- 10.1073/pnas.1517384113 is OK
- 10.1007/s00332-015-9258-5 is OK
- 10.1126/sciadv.1602614 is OK
- 10.3934/jcd.2015005 is OK
- 10.1038/s41467-018-07210-0 is OK
- 10.1137/18M1177846 is OK
- 10.48550/arXiv.1710.04340 is OK
- 10.1017/jfm.2021.271 is OK
- 10.1016/j.ifacol.2016.10.250 is OK
- 10.1109/TAC.2020.2978039 is OK
- 10.1007/978-3-030-35713-9 is OK
- 10.1088/2632-2153/abf0f5 is OK
- 10.1016/j.automatica.2019.05.016 is OK
- 10.1137/20M1325678 is OK
- 10.21105/joss.02104 is OK
- 10.1137/17M115414X is OK
- 10.1016/j.physd.2004.06.015 is OK
- 10.1137/19M1267246 is OK
- 10.1137/15M1013857 is OK
- 10.1088/2632-2153/ac3de0 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

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

@olexandr-konovalov
Copy link
Member

@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.1017/S0022112010001217 is OK
- 10.1137/1.9781611974508 is OK
- 10.5281/zenodo.3828935 is OK
- 10.21105/joss.03994 is OK
- 10.1146/annurev-fluid-030121-015835 is OK
- 10.1016/j.arcontrol.2009.12.001 is OK
- 10.1007/978-0-387-40065-5 is OK
- 10.21105/joss.00530 is OK
- 10.1017/9781108380690 is OK
- 10.1137/21M1401243 is OK
- 10.1063/1.4772195 is OK
- 10.1007/s00332-017-9437-7 is OK
- 10.1146/annurev-fluid-011212-140652 is OK
- 10.1063/1.4993854 is OK
- 10.1007/BF02532251 is OK
- 10.1038/s41467-017-00030-8 is OK
- 10.1007/978-3-662-04323-3_15 is OK
- 10.1017/S0022112009992059 is OK
- 10.1002/9781118535561 is OK
- 10.48550/arXiv.1710.09668 is OK
- 10.1137/18M1225409 is OK
- 10.1063/1.5011399 is OK
- 10.1038/s41467-017-02388-1 is OK
- 10.1098/rspa.2017.0844 is OK
- 10.1103/PhysRevLett.120.024102 is OK
- 10.1137/19M1274067 is OK
- 10.1016/j.jcp.2018.10.045 is OK
- 10.1073/pnas.1906995116 is OK
- 10.1126/science.aaw4741 is OK
- 10.1007/s00466-019-01711-5 is OK
- 10.1137/130932715 is OK
- 10.1016/j.cma.2016.03.025 is OK
- 10.1016/j.physd.2020.132401 is OK
- 10.1073/pnas.1118984109 is OK
- 10.1073/pnas.1620045114 is OK
- 10.1073/pnas.0609476104 is OK
- 10.1126/science.1165893 is OK
- 10.1038/ncomms9133 is OK
- 10.1073/pnas.1517384113 is OK
- 10.1007/s00332-015-9258-5 is OK
- 10.1126/sciadv.1602614 is OK
- 10.3934/jcd.2015005 is OK
- 10.1038/s41467-018-07210-0 is OK
- 10.1137/18M1177846 is OK
- 10.48550/arXiv.1710.04340 is OK
- 10.1017/jfm.2021.271 is OK
- 10.1016/j.ifacol.2016.10.250 is OK
- 10.1109/TAC.2020.2978039 is OK
- 10.1007/978-3-030-35713-9 is OK
- 10.1088/2632-2153/abf0f5 is OK
- 10.1016/j.automatica.2019.05.016 is OK
- 10.1137/20M1325678 is OK
- 10.21105/joss.02104 is OK
- 10.1137/17M115414X is OK
- 10.1016/j.physd.2004.06.015 is OK
- 10.1137/19M1267246 is OK
- 10.1137/15M1013857 is OK
- 10.1088/2632-2153/ac3de0 is OK

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#5031, 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 Feb 21, 2024
@danielskatz
Copy link

Hi - I'm the track editor and will move this forward, but I'm currently on vacation, so please give me a few days (until Sunday or Monday likely)

@danielskatz
Copy link

👋 @pswpswpsw - please add countries to the affiliations in the paper. In addition, I've suggested some small changes in dynamicslab/pykoopman#46 Please let me know when these two items are done (or if you disagree with any of them), and we can proceed.

@pswpswpsw
Copy link

@danielskatz Just finished. Both of them are approved and done!

@pswpswpsw
Copy link

@editorialbot generate PDF

@editorialbot
Copy link
Collaborator Author

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

@danielskatz
Copy link

@editorialbot recommend-accept

This will probably pause until tomorrow...

@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.1017/S0022112010001217 is OK
- 10.1137/1.9781611974508 is OK
- 10.5281/zenodo.3828935 is OK
- 10.21105/joss.03994 is OK
- 10.1146/annurev-fluid-030121-015835 is OK
- 10.1016/j.arcontrol.2009.12.001 is OK
- 10.1007/978-0-387-40065-5 is OK
- 10.21105/joss.00530 is OK
- 10.1017/9781108380690 is OK
- 10.1137/21M1401243 is OK
- 10.1063/1.4772195 is OK
- 10.1007/s00332-017-9437-7 is OK
- 10.1146/annurev-fluid-011212-140652 is OK
- 10.1063/1.4993854 is OK
- 10.1007/BF02532251 is OK
- 10.1038/s41467-017-00030-8 is OK
- 10.1007/978-3-662-04323-3_15 is OK
- 10.1017/S0022112009992059 is OK
- 10.1002/9781118535561 is OK
- 10.48550/arXiv.1710.09668 is OK
- 10.1137/18M1225409 is OK
- 10.1063/1.5011399 is OK
- 10.1038/s41467-017-02388-1 is OK
- 10.1098/rspa.2017.0844 is OK
- 10.1103/PhysRevLett.120.024102 is OK
- 10.1137/19M1274067 is OK
- 10.1016/j.jcp.2018.10.045 is OK
- 10.1073/pnas.1906995116 is OK
- 10.1126/science.aaw4741 is OK
- 10.1007/s00466-019-01711-5 is OK
- 10.1137/130932715 is OK
- 10.1016/j.cma.2016.03.025 is OK
- 10.1016/j.physd.2020.132401 is OK
- 10.1073/pnas.1118984109 is OK
- 10.1073/pnas.1620045114 is OK
- 10.1073/pnas.0609476104 is OK
- 10.1126/science.1165893 is OK
- 10.1038/ncomms9133 is OK
- 10.1073/pnas.1517384113 is OK
- 10.1007/s00332-015-9258-5 is OK
- 10.1126/sciadv.1602614 is OK
- 10.3934/jcd.2015005 is OK
- 10.1038/s41467-018-07210-0 is OK
- 10.1137/18M1177846 is OK
- 10.48550/arXiv.1710.04340 is OK
- 10.1017/jfm.2021.271 is OK
- 10.1016/j.ifacol.2016.10.250 is OK
- 10.1109/TAC.2020.2978039 is OK
- 10.1007/978-3-030-35713-9 is OK
- 10.1088/2632-2153/abf0f5 is OK
- 10.1016/j.automatica.2019.05.016 is OK
- 10.1137/20M1325678 is OK
- 10.21105/joss.02104 is OK
- 10.1137/17M115414X is OK
- 10.1016/j.physd.2004.06.015 is OK
- 10.1137/19M1267246 is OK
- 10.1137/15M1013857 is OK
- 10.1088/2632-2153/ac3de0 is OK

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#5047, 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: Pan
  given-names: Shaowu
  orcid: "https://orcid.org/0000-0002-2462-362X"
- family-names: Kaiser
  given-names: Eurika
  orcid: "https://orcid.org/0000-0001-6049-0812"
- family-names: Silva
  given-names: Brian M.
  name-particle: de
  orcid: "https://orcid.org/0000-0003-0944-900X"
- family-names: Kutz
  given-names: J. Nathan
  orcid: "https://orcid.org/0000-0002-6004-2275"
- family-names: Brunton
  given-names: Steven L.
  orcid: "https://orcid.org/0000-0002-6565-5118"
doi: 10.5281/zenodo.10685233
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Pan
    given-names: Shaowu
    orcid: "https://orcid.org/0000-0002-2462-362X"
  - family-names: Kaiser
    given-names: Eurika
    orcid: "https://orcid.org/0000-0001-6049-0812"
  - family-names: Silva
    given-names: Brian M.
    name-particle: de
    orcid: "https://orcid.org/0000-0003-0944-900X"
  - family-names: Kutz
    given-names: J. Nathan
    orcid: "https://orcid.org/0000-0002-6004-2275"
  - family-names: Brunton
    given-names: Steven L.
    orcid: "https://orcid.org/0000-0002-6565-5118"
  date-published: 2024-02-25
  doi: 10.21105/joss.05881
  issn: 2475-9066
  issue: 94
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5881
  title: "PyKoopman: A Python Package for Data-Driven Approximation of
    the Koopman Operator"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05881"
  volume: 9
title: "PyKoopman: A Python Package for Data-Driven Approximation of the
  Koopman Operator"

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

🚨🚨🚨 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.05881 joss-papers#5050
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.05881
  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 Feb 25, 2024
@danielskatz
Copy link

Congratulations to @pswpswpsw (Shaowu Pan) and co-authors on your publication!!

And thanks to @ulf1 and @fandreuz for reviewing, and to @olexandr-konovalov 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.05881/status.svg)](https://doi.org/10.21105/joss.05881)

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

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

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:

@pswpswpsw
Copy link

@danielskatz @olexandr-konovalov @fandreuz @ulf1 Thank you all for the hard work! Happy weekend!

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

No branches or pull requests

6 participants