openjournals / joss-reviews

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

[REVIEW]: f3dasm: Framework for Data-Driven Design and Analysis of Structures and Materials #6912

Closed editorialbot closed 1 month ago

editorialbot commented 3 months ago

Submitting author: !--author-handle-->@mpvanderschelling<!--end-author-handle-- (Martin van der Schelling) Repository: https://github.com/bessagroup/f3dasm Branch with paper.md (empty if default branch): Version: v1.5.3 Editor: !--editor-->@RMeli<!--end-editor-- Reviewers: @AntObi, @idocx Archive: 10.5281/zenodo.13227915

Status

status

Status badge code:

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

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

@AntObi & @idocx, 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 @RMeli 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 @AntObi

šŸ“ Checklist for @idocx

editorialbot commented 3 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 3 months ago

Software report:

github.com/AlDanial/cloc v 1.90  T=0.15 s (862.2 files/s, 129719.9 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          79           3486           5138           8357
Markdown                         9            220              0            588
YAML                            15             32             25            543
reStructuredText                18            198            201            360
make                             2             37              5            175
DOS Batch                        1             23              1            166
CSS                              2             26             40             78
TeX                              1              5              0             69
TOML                             1              2              0             16
Bourne Shell                     1             16             35             13
CSV                              3              0              0              5
-------------------------------------------------------------------------------
SUM:                           132           4045           5445          10370
-------------------------------------------------------------------------------

Commit count by author:

   816  Martin van der Schelling
     6  Guillaume Broggi
     1  llguo95
editorialbot commented 3 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1016/j.cma.2017.03.037 is OK
- 10.21105/joss.04364 is OK
- 10.21105/joss.04719 is OK
- 10.21105/joss.02338 is OK
- 10.21105/joss.05594 is OK

MISSING DOIs

- No DOI given, and none found for title: Optuna: A next-generation hyperparameter optimizat...

INVALID DOIs

- None
editorialbot commented 3 months ago

Paper file info:

šŸ“„ Wordcount for paper.md is 651

āœ… The paper includes a Statement of need section

editorialbot commented 3 months ago

License info:

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

RMeli commented 3 months ago

@editorialbot remind @idocx in 2 weeks

editorialbot commented 3 months ago

Reminder set for @idocx in 2 weeks

RMeli commented 3 months ago

@editorialbot remind @AntObi in 2 weeks

editorialbot commented 3 months ago

Reminder set for @AntObi in 2 weeks

editorialbot commented 3 months ago

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

AntObi commented 2 months ago

Review checklist for @AntObi

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

editorialbot commented 2 months ago

:wave: @idocx, please update us on how your review is going (this is an automated reminder).

editorialbot commented 2 months ago

:wave: @AntObi, please update us on how your review is going (this is an automated reminder).

idocx commented 2 months ago

Review checklist for @idocx

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

RMeli commented 2 months ago

Thank you @AntObi and @idocx for starting the review!

RMeli commented 2 months ago

šŸ‘‹ @mpvanderschelling, @AntObi, and @idocx

I hope you are all doing well. Could you please all provide a short few sentences/bullet points on how things are going with this review?

Thanks and keep up the great work!

mpvanderschelling commented 2 months ago

Hey everyone! First of all thanks for taking up the review of my work! I'll be happy to resolve any feedback you might have. I'll be traveling for a conference until the 31st of July, but after that I'm available!

idocx commented 2 months ago

Hey Martin! Thank you for the great work!

I will try to get the review ready by the end of this week. So far it looks good except for the annoying numpy 2.0 issue. The Pypi registry has not been updated to numpy < 2.0 to avoid autograd package failure. (https://github.com/HIPS/autograd/issues/622#issue-2371900518)

Do you have plan to update the pypi registry some time? I notice that you have updated the version on the github. Thanks!

mpvanderschelling commented 2 months ago

@idocx ; I have updated the PyPI registry to version 1.5.2; which fixes the numpy 2.0 issue

AntObi commented 2 months ago

Hey Martin!

This is some great work! I've been working through my review and should hopefully have it complete within the next couple of days!

idocx commented 2 months ago

Hey Martin @mpvanderschelling,

Thank you for sharing the great work! I have gone through the package and had several questions/comments regarding the package. Since my background is mostly on high-throughput screening and experimentation, my questions are mostly based on my understanding of how to apply this package to HT screening workflows.

Thank you and look forward to knowing your thoughts!

Best, Yuxing

mpvanderschelling commented 2 months ago

Hey Yuxing @idocx,

Thank you for your feedback, I'll address each of your points individually

Documentation Yes, this is definitely a bug from my part (created a new issue here), and might be due to some header issues when generating the Sphinx Gallery. Will take a look at it!

Project structure The reason that I put all the source code of the Python package in a separate _src directory is precisely what you mentioned: since I put the actual implementations behind a private submodule, I can structure the public API separately [^1]. It indeed creates overhead when implementing new public functions/classes, but I have more control over the public API and notice earlier in the development process when I (accidentally) cause an API change when renaming methods.

Non-vectorizable parameters At the moment, this is not implemented yet but on the backlog. This behaviour is already implemented for large objects or array-like data, and makes it possible to store any output that is non-vectorizable to disk and store a reference link in the ExperimentData object. I am planning on implementing the same behaviour for the input parameters in the near future.

Data generator Yes, for that you will have to use the class approach of creating a custom DataGenerator. You can create any class and store object parameters (e.g., different config for VASP) via the self attribute. In your execute function, you can use those. Whenever you call the evaluate method on your ExperimentData object, you can determine which custom DataGenerator object you want to use on the experiments.

[^1]: Similar practices are shown for the numpy with the _core directory and jax source code

Database support Yes, there is the idea to support database access to the ExperimentData object, but this is not a priority at the moment. However, I have no experience with databases and Python, so if you have any suggestions or pointers for this, please let me know!

Best, Martin

mpvanderschelling commented 1 month ago

Hey everyone,

RMeli commented 1 month ago

Thanks @mpvanderschelling for the update. @idocx and @AntObi thank you very much for your reviews. I see the checklists are now complete; are you happy with the latest changes by @mpvanderschelling? If you could quickly summarize your review status it would be fantastic.

idocx commented 1 month ago

Hi @RMeli and @mpvanderschelling, the author's response has resolved all my concerns. I agree to publish the software package to JOSS as it is.

For the database support, you can refer to pandas.DataFrame.to_sql if you would like to support SQL database. If you would like to use MongoDB, then you can directly call df.to_dict("record") to get the record you would like to save. One tricky thing I can imagine is to retrieve large result - you will have to link the local file to the database somehow. But it should be doable.

Thanks, Yuxing

AntObi commented 1 month ago

Hi @RMeli and @mpvanderschelling , this is some great work that has been produced! It's well documented, great coverage with unit tests and the integration of experiments with Hydra is a very great addition to the package.

I'm happy to accept the paper and package as is.

Yours truly, Anthony

RMeli commented 1 month ago

Thank you @AntObi and @idocx for completing your reviews. @mpvanderschelling I'll now start the final checks.

RMeli commented 1 month ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

RMeli commented 1 month ago

@editorialbot generate pdf

RMeli commented 1 month ago

@editorialbot check references

editorialbot commented 1 month ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1016/j.cma.2017.03.037 is OK
- 10.21105/joss.04364 is OK
- 10.21105/joss.04719 is OK
- 10.21105/joss.02338 is OK
- 10.21105/joss.05594 is OK

MISSING DOIs

- No DOI given, and none found for title: Optuna: A next-generation hyperparameter optimizat...

INVALID DOIs

- None
editorialbot commented 1 month ago

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

RMeli commented 1 month ago

@mpvanderschelling can you please add the DOI for Optuna? I thin it should be https://doi.org/10.1145/3292500.333070

mpvanderschelling commented 1 month ago

Latest release: 1.5.3 Zenodo DOI: 10.5281/zenodo.13227916

RMeli commented 1 month ago

@editorialbot check references

editorialbot commented 1 month ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1016/j.cma.2017.03.037 is OK
- 10.21105/joss.04364 is OK
- 10.21105/joss.04719 is OK
- 10.21105/joss.02338 is OK
- 10.1145/3292500.3330701 is OK
- 10.21105/joss.05594 is OK

MISSING DOIs

- None

INVALID DOIs

- None
RMeli commented 1 month ago

@editorialbot set 10.5281/zenodo.13227915 as archive

editorialbot commented 1 month ago

Done! archive is now 10.5281/zenodo.13227915

RMeli commented 1 month ago

@editorialbot set v1.5.3 as version

editorialbot commented 1 month ago

Done! version is now v1.5.3

RMeli commented 1 month ago

@editorialbot set 1.5.3 as version

editorialbot commented 1 month ago

Done! version is now 1.5.3

RMeli commented 1 month ago

@editorialbot generate pdf

editorialbot commented 1 month ago

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

RMeli commented 1 month ago

@mpvanderschelling I read the paper again and left a few very minor suggestions as a PR. Otherwise LGTM.

mpvanderschelling commented 1 month ago

Thank you! I have approved the minor suggestions and merged the PR with the main branch

RMeli commented 1 month ago

@editorialbot recommend-accept

Thank you @mpvanderschelling for the fast final fix. Based on the extensive comments from the reviewers (and my own assessment), I'm happy to recommend this paper for acceptance! The EiC will now perform the final checks. Thank you for engaging so well with the review process.

Thank you very much again @idocx and @AntObi for doing the hard work!

editorialbot commented 1 month ago
Attempting dry run of processing paper acceptance...
editorialbot commented 1 month ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1016/j.cma.2017.03.037 is OK
- 10.21105/joss.04364 is OK
- 10.21105/joss.04719 is OK
- 10.21105/joss.02338 is OK
- 10.1145/3292500.3330701 is OK
- 10.21105/joss.05594 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 1 month ago

:wave: @openjournals/bcm-eics, this paper is ready to be accepted and published.

Check final proof :point_right::page_facing_up: Download article

If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5758, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept