Closed editorialbot closed 1 month 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
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
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
Paper file info:
š Wordcount for paper.md
is 651
ā
The paper includes a Statement of need
section
License info:
ā
License found: BSD 3-Clause "New" or "Revised" License
(Valid open source OSI approved license)
@editorialbot remind @idocx in 2 weeks
Reminder set for @idocx in 2 weeks
@editorialbot remind @AntObi in 2 weeks
Reminder set for @AntObi in 2 weeks
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
:wave: @idocx, please update us on how your review is going (this is an automated reminder).
:wave: @AntObi, please update us on how your review is going (this is an automated reminder).
Thank you @AntObi and @idocx for starting the review!
š @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!
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!
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!
@idocx ; I have updated the PyPI registry to version 1.5.2; which fixes the numpy 2.0
issue
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!
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.
Documentation: In the tutorial doc part, all the tutorial pages go into the last section. Could you update it?
Project structure: In your source code, the actual code is placed inside a _src
folder. According to Python's naming convention, it means it is a private namespace. All the public functions are exported by making a new name. Since it seems harder to add/remove a function/class, I wonder why you decide to use this kind of project structure? I guess one reason is that this can make public APIs from different modules look neat. But it should be even better if you can classify the APIs inside the package directly.
Non-vectorizable parameters: In material science, sometimes the parameters are not vectorizable. For example, if I would like to input a CIF structure to the VASP program and get some energy as the output, how I could do this? Or is this an unrealistic problem for the package?
Data generator: Is there a way to link the data generator's parameters to the experiment data? Sometimes I may have different definitions of data generator and different parameters (e.g., different config for VASP during calculation). How can I record this kind of information and link them to the experiment data
Database support: is there any plan for supporting database-backend data storage. We found this very useful if you would like to run a project across various computation resources. You don't have to copy the data folder everywhere to sync the data.
Thank you and look forward to knowing your thoughts!
Best, Yuxing
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
Hey everyone,
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.
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
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
Thank you @AntObi and @idocx for completing your reviews. @mpvanderschelling I'll now start the final checks.
@editorialbot set <DOI here> as archive
@editorialbot set <version here> as version
@editorialbot generate pdf
@editorialbot check references
and ask author(s) to update as needed@editorialbot recommend-accept
@editorialbot generate pdf
@editorialbot check references
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
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mpvanderschelling can you please add the DOI for Optuna? I thin it should be https://doi.org/10.1145/3292500.333070
Latest release: 1.5.3 Zenodo DOI: 10.5281/zenodo.13227916
@editorialbot check references
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 set 10.5281/zenodo.13227915 as archive
Done! archive is now 10.5281/zenodo.13227915
@editorialbot set v1.5.3 as version
Done! version is now v1.5.3
@editorialbot set 1.5.3 as version
Done! version is now 1.5.3
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@mpvanderschelling I read the paper again and left a few very minor suggestions as a PR. Otherwise LGTM.
Thank you! I have approved the minor suggestions and merged the PR with the main branch
@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!
Attempting dry run of processing paper acceptance...
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
: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
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 badge code:
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:
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