Closed editorialbot closed 1 year 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.88 T=0.06 s (681.4 files/s, 71183.9 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Python 17 428 284 1830
Markdown 4 84 0 258
reStructuredText 10 160 74 213
TeX 1 11 0 189
Jupyter Notebook 2 0 515 138
YAML 3 4 13 96
JSON 3 0 0 91
TOML 1 3 0 46
DOS Batch 1 8 1 26
make 1 4 7 9
-------------------------------------------------------------------------------
SUM: 43 702 894 2896
-------------------------------------------------------------------------------
gitinspector failed to run statistical information for the repository
Wordcount for paper.md
is 1038
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.5281/zenodo.3509134 is OK
- 10.5281/zenodo.6536395 is OK
- 10.5281/zenodo.7264816 is OK
- 10.25080/shinma-7f4c6e7-008 is OK
MISSING DOIs
- None
INVALID DOIs
- None
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@ArsamAryandoust, @schnorr, see above for instructions to review. If anything is unclear, just let me know. Please finish your reviews within six weeks at the very latest. I will add a reminder in two weeks from now for both of you.
@editorialbot remind @ArsamAryandoust in two weeks
Reminder set for @ArsamAryandoust in two weeks
@editorialbot remind @schnorr in two weeks
Reminder set for @schnorr in two weeks
:wave: @ArsamAryandoust, please update us on how your review is going (this is an automated reminder).
:wave: @schnorr, please update us on how your review is going (this is an automated reminder).
Hi @ArsamAryandoust and @schnorr, can you let us know how the review is going? Half of the review time has elapsed and I'll set another reminder for both of you to let you know when the review time is almost over.
@editorialbot remind @schnorr in two weeks
Reminder set for @schnorr in two weeks
@editorialbot remind @ArsamAryandoust in two weeks
Reminder set for @ArsamAryandoust in two weeks
Hi @timtroendle, I've started my review and hope to finish this week.
Great, thanks for letting us know.
So, just to let you know that I've completed my review. My opinion after regarding the source code, documentation, testing the commands suggested by the authors, etc, is that the PyExperimenter
software has good maturity. It also has some people already using it, as can be seen in the Issues tabs for people requesting new functionality. I've only found a minor problem that I've registered as an issue in their repository.
About the Functionality, I think the tool is very useful because usually R or Python packages are focused on generating the experimental project without handling the experiment run. The PyExperimenter let the user define a function that will receive the configuration parameters. The function must then run the experiment itself with those parameters and let PyExperimenter know that everything went okay. So, the functionality provides a way to define the experiment project and also run it (eventually in parallel with the n_jobs
parameter). Of course, some R packages especially are much more advanced because they would allow one to define specific screening projects to optimize the number of experiments to be run (avoiding a cartesian product of all configurations - which might be overwhelming). But that is not the focus of this project, which is focused in a specific type of experimental project.
I've checked all the bullet points in the review, running sloccount
(for the number of lines ~ about 1k lines), checking the number of committers, and so on. As consequence, I conclude that the software checks all the requirements. So, my general opinion is a go for accept.
Thank you once again for considering my for JOSS @timtroendle !
The authors provide solid work that includes both extensive unit and integration tests. A list of dependencies is available in the pyproject.toml file, maybe could also be stated in the readme or a requirements.txt file (?). Overall, I suggest to go for an accept only after the following issues are addressed.
The documentations under docs/source/examples/ need to be improved. Test your notebooks more accurately and make sure they run. I made exemplar pull requests. Everything else works flawlessly.
Seeking support and creating issues is described under documents tab 'Need help?'. Descriptions on how to contribute can be added.
I did not test the full functionality of the presented tool. However, the provided toy examples are functional and seem to demonstrate the core functionality.
The paper can have small improvements. @timtroendle: please provide a proper PDF file or other manuscript file for suggesting changes.
I like working with Docker. So I create a minimalistic Dockerfile:
cd
mkdir py_experimenter
cd py_experimenter
mkdir Docker
vim Docker/Dockerfile
Content added to Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get upgrade -y
RUN apt-get install python3-pip -y
RUN pip3 install py-experimenter
RUN pip3 install scikit-learn
WORKDIR /py_experimenter
I build and enter the container:
docker build Docker -t py_experimenter_docker
docker run -it -v ~/py_experimenter_test:/py_experimenter py_experimenter_docker
Everything works flawlessly. In example notebooks, there are small issues. In code section 1, insert the following command:
if not os.path.isdir('config'):
os.mkdir('config')
experiment_configuration_file_path = os.path.join('config', 'example_general_usage.cfg')
with open(experiment_configuration_file_path, "w") as f:
f.write(content)
In code snippet under 'Fill Table' section, change code into the following, to ensure that code runs while also illustrating the example. I guess everyone will still get the point also with dataset being iris again:
experimenter.fill_table_from_config()
experimenter.fill_table_with_rows(rows=[
{'dataset': 'iris', 'cross_validation_splits': 3, 'seed': 42, 'kernel':'linear'}])
# showing database table
experimenter.get_table()
In code section under 'Restart Failed Experiments', change code into:
experimenter.reset_experiments('error')
# showing database table
experimenter.get_table()
Thanks a lot for your extensive reviews, @schnorr and @ArsamAryandoust .
@ArsamAryandoust , the paper is available as Markdown source. Would that help?
@timtroendle thanks for the reference to the paper markdown. I am done with suggested changes to the paper and created these as a pull request to the markdown file.
The paper is well written and together with the documentation of the tool, it contains everything a user needs to know. I further believe the documentation is not perfect but a great initial version for a tool that irons out with more user feedback.
Thanks again, @ArsamAryandoust !
@tornede, could you have a look at the suggested changes?
:wave: @schnorr, please update us on how your review is going (this is an automated reminder).
:wave: @ArsamAryandoust, please update us on how your review is going (this is an automated reminder).
Hi, I've finished as we can see above.
Hi @schnorr @ArsamAryandoust, yes I am aware both of your reviews are finished. Sorry for the confusing bot message. It was based on the reminder I set two weeks ago.
We are currently waiting for @tornede to respond to the review comments.
Thanks a lot for the detailed feedback! We will respond to it within the next week :)
Dear reviewers and editor,
thanks a lot (again) for the kind and detailed feedback! It helped a lot to find outdated documentation and issues within the examples.
PyExperimenter
has been developed further since we handed in the paper in November 2022. The last week, we concluded a lot of unfinished work and prepared a new release, both addressing your issues as well as new features. Additionally we reworked huge parts of the documentation, especially regarding usage, and updated the example notebooks.
I've only found a minor problem that I've registered as an issue in their repository.
Thanks for the detailed issue regarding resetting experiments, which we fixed within the last days.
Additionally you checked all boxes from the review checklist, which is why we assume that you have no further concerns. :)
A list of dependencies is available in the pyproject.toml file, maybe could also be stated in the readme or a requirements.txt file (?).
We decided to use poetry, and therefore define dependencies via pyproject.toml. Having a separated requirements file would be duplicated and error prone. We decided to reduce the README to a minimum and instead reference the documentation, again to reduce redundancy and possible errors.
- The documentations under docs/source/examples/ need to be improved. Test your notebooks more accurately and make sure they run. I made exemplar pull requests. Everything else works flawlessly.
Thanks for hinting to the problem of the creation of the experiment configuration file within the example notebooks, which we fixed within the last days.
- Seeking support and creating issues is described under documents tab 'Need help?'. Descriptions on how to contribute can be added.
We distinguish between a simple user and an (external) contributor, which is why we have the two pages within the documentation: "Need Help?" and "How to Contribute". In case of a simple user and any occurring problems, we believe referring to the examples and GitHub issues is enough, as such a person will most likely not make actual changes to the code. Otherwise "How to Contribute" can be found next to "Need Help?" within the side bar.
- I did not test the full functionality of the presented tool. However, the provided toy examples are functional and seem to demonstrate the core functionality.
Thanks for the great feedback, that the provided examples demonstrate the core functionality. As this has been listed under "issues to be addressed" we are wondering, if you have any further feedback that can be addressed?
The paper can have small improvements.
Thanks for the feedback to the paper text itself. We implemented some parts of it into the paper.
I like working with Docker. So I create a minimalistic Dockerfile
Thanks a lot providing a Dockerfile and some lines how to build it. We created an issue containing your provided information, which will be investigated in the future.
In example notebooks, there are small issues.
Thanks for pointing this out, we fixed it within the last days.
In code snippet under 'Fill Table' section, change code into the following, to ensure that code runs while also illustrating the example. I guess everyone will still get the point also with dataset being iris again
Thanks for the remark, that this row might not be well understood. We decided to change the dataset name to "error_dataset", which will always result into a raised exception and therefore a logged stacktrace.
In code section under 'Restart Failed Experiments', change code into [...]
Thanks for this issue, which is the same as pointed out by @schnorr, which has been fixed within the last days.
When checking your review checklist, we figured out that some boxes have not been checked. Is there anything else that has to be addressed?
How do we handle the new version for the JOSS paper? Will it be the old version v1.1.0 or the new one v1.2.0 ?
@tornede, thank you for your detailed responses and for addressing the comments of the reviewers.
Regarding the version: it should be the version of the tool that the reviewers have assessed. If you make changes according to the reviewer's comments, the version number can change of course. The new version should not include other changes the reviewers are not aware of, however.
@ArsamAryandoust, could you let us know if your comments have been addressed sufficiently? If yes, can you check the corresponding boxes in the review checklist?
@timtroendle
All issues I raised are addressed. No further issues are found.
Happy to go for an accept!
@tornede, at this point could you:
I can then move forward with recommending acceptance of the submission
@timtroendle
Thank you for the support and fast responses!
@editorialbot set 10.5281/zenodo.7838280 as archive
Done! Archive is now 10.5281/zenodo.7838280
@editorialbot set v1.2.0 as version
Done! version is now v1.2.0
@editorialbot check references
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.5281/zenodo.3509134 is OK
- 10.5281/zenodo.6536395 is OK
- 10.5281/zenodo.7264816 is OK
- 10.25080/shinma-7f4c6e7-008 is OK
MISSING DOIs
- None
INVALID DOIs
- None
@tornede, it all looks good to me and I am happy to move forward.
Thanks again @schnorr and @ArsamAryandoust for your reviews!
@editorialbot recommend-accept
Attempting dry run of processing paper acceptance...
:wave: @openjournals/dsais-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/4138, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.5281/zenodo.3509134 is OK
- 10.5281/zenodo.6536395 is OK
- 10.5281/zenodo.7264816 is OK
- 10.25080/shinma-7f4c6e7-008 is OK
MISSING DOIs
- None
INVALID DOIs
- None
@timtroendle It looks good to me, too. Do I have to tell it to the editorial bot, or do you do it?
Thanks again everyone :)
Submitting author: !--author-handle-->@tornede<!--end-author-handle-- (Tanja Tornede) Repository: https://github.com/tornede/py_experimenter Branch with paper.md (empty if default branch): develop Version: v1.2.0 Editor: !--editor-->@timtroendle<!--end-editor-- Reviewers: @ArsamAryandoust, @schnorr Archive: 10.5281/zenodo.7838280
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
@ArsamAryandoust & @schnorr, 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 @timtroendle 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 @ArsamAryandoust
📝 Checklist for @schnorr