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]: mathlib: A Scala package for readable, verifiable and sustainable simulations of formal theory #6049

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

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Nov 10, 2023

Submitting author: @markblokpoel (Mark Blokpoel)
Repository: https://github.com/markblokpoel/mathlib
Branch with paper.md (empty if default branch): joss
Version: v0.9.1
Editor: @danielskatz
Reviewers: @larkz, @stephenfmann, @drussellmrichie
Archive: 10.5281/zenodo.12819230

Status

status

Status badge code:

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

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

@bzz & @larkz, 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 @danielskatz 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 @larkz

📝 Checklist for @stephenfmann

📝 Checklist for @drussellmrichie

@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.01 s (516.2 files/s, 29422.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Markdown                         1             22              0             84
TeX                              1              4              0             38
YAML                             1              1              4             18
-------------------------------------------------------------------------------
SUM:                             3             27              4            140
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 711

@editorialbot
Copy link
Collaborator Author

Failed to discover a valid open source license

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1177/1745691620970585 is OK
- 10.1177/1745691620970604 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

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

@danielskatz
Copy link

@bzz and @larkz - Thanks for agreeing to review this submission.
This is the review thread for the paper. All of our communications will happen here from now on.

As you can see above, you each should use the command @editorialbot generate my checklist to create your review checklist. @editorialbot commands need to be the first thing in a new comment.

As you go over the submission, please check any items that you feel have been satisfied. There are also links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#6049 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for reviews to be completed within about 2-4 weeks. Please let me know if either of you require some more time. We can also use editorialbot (our bot) to set automatic reminders if you know you'll be away for a known period of time.

Please feel free to ping me (@danielskatz) if you have any questions/concerns.

@danielskatz
Copy link

👋 @bzz and @larkz - Just a brief reminder that you will need to use the command @editorialbot generate my checklist to create your review checklist before you can do anything else. @editorialbot commands need to be the first thing in a new comment.

@danielskatz
Copy link

👋 @bzz and @larkz - I would appreciate it if you would use the command @editorialbot generate my checklist to create your review checklist, and then check off the first two items to make sure the process works correctly. @editorialbot commands need to be the first thing in a new comment.

@bzz
Copy link

bzz commented Dec 6, 2023

Review checklist for @bzz

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/markblokpoel/mathlib?
  • 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 (@markblokpoel) 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?

@larkz
Copy link

larkz commented Dec 9, 2023

Review checklist for @larkz

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/markblokpoel/mathlib?
  • 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 (@markblokpoel) 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?

@larkz
Copy link

larkz commented Dec 18, 2023

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@larkz
Copy link

larkz commented Dec 18, 2023

Thank you so much for your effort in providing this very interesting piece of code.

Disclaimer: This review is provided by an individual fairly experienced in Scala and JVM development, along with having a good grasp of probability theory. While I have rudimentary knowledge of set theory and graph theory, I am not super-familiar with 'formal theory' or prior work in Blokpoel, M., & van Rooij, I. (2021).

Lines 6-9:

Regarding the phrases, "These methods allow scientists to ‘conceptually analyze, specify, and formalize intuitions that otherwise remain unexamined…" and "…They make otherwise underspecified theories precise and open for critical reflection."

This wording is rather vague, and it could apply to anything. For instance:

  • "(Finite element analysis) can enable scientists to ‘conceptually analyze, specify, and formalize intuitions that otherwise remain unexamined’."
  • "(Stochastic calculus) can allow scientists to ‘conceptually analyze, specify, and formalize intuitions that otherwise remain unexamined’."

It would be beneficial to provide a more specific explanation of what constitutes formal theory and offer concrete examples.

Line 14:

It is recommended to omit "cannot (easily)" for precision. If a problem cannot be solved, the predictions are not "derived" but rather "approximated." Additionally, defining the term "easily" is essential – does it refer to computational time savings, memory efficiency, or ease of problem formulation for coders?

Lines 15-20:

The author contends that Scala is an ideal language for modelling mathematical expressions. Concrete examples, especially for those unfamiliar with Scala, would enhance the clarity of this assertion.

Line 25:

While the claim about backwards compatibility is generally valid, it would be beneficial to elaborate on how this constitutes a tremendous advantage over other programming languages. Backwards compatibility is a common goal for many languages/frameworks; is mathlib notably more robust in this aspect compared to others?

Lines 28-27:

The argument seems to be that Scala's functional programming nature, resembling mathematical language, is its primary advantage. Is this the sole advantage, and are there any trade-offs in terms of runtime? A comparison with a non-functional language like Java, highlighting concrete improvements in Scala, would provide a stronger stance.

Lines 46-47:

Again, similar to Line 25, a more nuanced discussion about the uniqueness of backwards compatibility in Scala compared to other languages/frameworks would be beneficial.

Line 51:

Resources:
There seems to be an issue accessing the editorial notebooks in all the provided links.

And for the ones that are “not yet available”, I would expect to see more of them become available, especially for the purposes of this review, so that I (and other users) can get a quicker grasp of how to use the framework, and its potential advantages. The repository should be complete work, with core examples, not work-in-progress.

Additional Comments:

Even though the paper is supposed to be concise, there is room for improvement in the clarity of the exposition. Enhancing the presentation would allow readers, potentially lacking expertise in formal theory, to quickly understand the novelty and technical contributions of the software, which currently remain unclear and challenging to ascertain.

@danielskatz
Copy link

@bzz - how is your review coming?

@larkz - thanks for your work so far.

@markblokpoel
Copy link

@larkz thank you very much for the invaluable feedback. I'm out of office for the next two weeks, but will reply to your suggestions when I get back as soon as possible.

@danielskatz regarding the linked repository with the examples and tutorial: @larkz rightly points out these are still under development. I can fix the bugs with running the notebooks, but I perceived these as a separate academic contribution, next to the mathlib library (potentialy suitable when finished for publication in the sibling Journal of Open Source Education. Your advise as editor would be most welcome.

@danielskatz
Copy link

👋 @bzz and @larkz - I'm just checking in post-holidays on how your reviews are going. I look forward to seeing progress, or some discussion about what's blocking you.

@danielskatz
Copy link

👋 @bzz and @larkz - I'm just checking in again, when it's more likely we are post-holidays, on how your reviews are going. I look forward to seeing progress, or some discussion about what's blocking you.

@danielskatz
Copy link

👋 @markblokpoel - sorry I missed this somehow...

@danielskatz regarding the linked repository with the examples and tutorial: @larkz rightly points out these are still under development. I can fix the bugs with running the notebooks, but I perceived these as a separate academic contribution, next to the mathlib library (potentialy suitable when finished for publication in the sibling Journal of Open Source Education. Your advise as editor would be most welcome.

I think there are two potentially separable things:

  1. As you suggest, examples and tutorials can be separate academic contributions
  2. However, there is likely some minimum stable contribution needed as part of this submission.

So, perhaps you can separate and mark the work that is part of this submission, and that reviewers (and users) can rely on today to help them understand the software, and what is work-in-progress that will provide more support but isn't part of the minimum needed to start using the software.

@danielskatz
Copy link

@markblokpoel - did my comment above make sense? Does this seem reasonable?

@danielskatz
Copy link

👋 @bzz and @larkz - I'm just checking in again on how your reviews are going. I look forward to seeing progress, or some discussion about what's blocking you.

@larkz
Copy link

larkz commented Jan 16, 2024

👋🏼 @danielskatz, I'm waiting for @markblokpoel to address my previous comments in the paper. And I look forward to seeing the updated code with examples 😃 .

@markblokpoel
Copy link

Dear @danielskatz and @larkz,

Thanks so much for your feedback!

@danielskatz your suggestions are reasonable, I'll try to clarify this in my revision.

@larkz I still need to find time to answer your feedback, I'm wrapping up my teaching for this semester and expect to have time for this early February.

I appreciate your patience!

@danielskatz
Copy link

👋 @markblokpoel - any news on your updates?

@danielskatz
Copy link

@markblokpoel - My suggested changes are in markblokpoel/mathlib#19. Please merge this, or let me know what you disagree with, then we can proceed.

@markblokpoel
Copy link

@editorialbot generate pdf

@markblokpoel
Copy link

@danielskatz I've accepted your suggestions, thank you for this! We can proceed.

@editorialbot
Copy link
Collaborator Author

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

@danielskatz
Copy link

@markblokpoel - At this point could you:

  • Make a tagged release of your software, and list the version tag of the archived version here.
  • Archive the reviewed software in Zenodo or a similar service (e.g., figshare, an institutional repository)
  • Check the archival deposit (e.g., in Zenodo) has the correct metadata. This includes the title (should match the paper title) and author list (make sure the list is correct and people who only made a small fix are not on it). You may also add the authors' ORCID.
  • Please list the DOI of the archived version here.

I can then move forward with accepting the submission.

@markblokpoel
Copy link

@danielskatz Here are the items:

Hope I did this correctly, please let me know if the release and deposit are in order.

@danielskatz
Copy link

@editorialbot set v0.9.1 as version

@editorialbot
Copy link
Collaborator Author

Done! version is now v0.9.1

@danielskatz
Copy link

@editorialbot set 10.5281/zenodo.12819230 as archive

@editorialbot
Copy link
Collaborator Author

Done! archive is now 10.5281/zenodo.12819230

@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.1177/1745691620970585 is OK
- 10.1177/1745691620970604 is OK

MISSING DOIs

- No DOI given, and none found for title: Theoretical modeling for cognitive science and psy...
- 10.7551/mitpress/1900.003.0004 may be a valid DOI for title: Coherence as Constraint Satisfaction
- No DOI given, and none found for title: Vision: A computational investigation into the hum...
- No DOI given, and none found for title: Programming in Scala

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#5674, 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 Jul 25, 2024
@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: Blokpoel
  given-names: Mark
  orcid: "https://orcid.org/0000-0002-1522-0343"
doi: 10.5281/zenodo.12819230
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Blokpoel
    given-names: Mark
    orcid: "https://orcid.org/0000-0002-1522-0343"
  date-published: 2024-07-25
  doi: 10.21105/joss.06049
  issn: 2475-9066
  issue: 99
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 6049
  title: "mathlib: A Scala package for readable, verifiable and
    sustainable simulations of formal theory"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06049"
  volume: 9
title: "mathlib: A Scala package for readable, verifiable and
  sustainable simulations of formal theory"

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.06049 joss-papers#5675
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.06049
  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 Jul 25, 2024
@markblokpoel
Copy link

Thanks @danielskatz 🥳

@danielskatz
Copy link

@markblokpoel - the DOI seems to be having some problems, so I'm going to leave this open until it's working. In the meantime, however:

Congratulations on your publication!!

And thanks to @larkz, @stephenfmann, and @drussellmrichie for reviewing!
JOSS depends on volunteers and couldn't succeed without you

@danielskatz
Copy link

@editorialbot reaccept

Let's see if there was just a transient error, since Crossref (where the DOIs are registered) has all green status currently.

@editorialbot
Copy link
Collaborator Author

Rebuilding paper!

@editorialbot
Copy link
Collaborator Author

🌈 Paper updated!

New PDF and metadata files 👉 openjournals/joss-papers#5676

@danielskatz
Copy link

Ok, this DOI is now registered and working, so I'm going to close this issue and end this process - thanks all again!!

@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.06049/status.svg)](https://doi.org/10.21105/joss.06049)

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

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

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 published Papers published in JOSS recommend-accept Papers recommended for acceptance in JOSS. review Scala TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics
Projects
None yet
Development

No branches or pull requests

8 participants