-
-
Notifications
You must be signed in to change notification settings - Fork 39
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]: Jobflow: Computational Workflows Made Simple #5995
Comments
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:
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
|
|
Wordcount for |
|
@rashatwi, @jherasdo – This is the review thread for the paper. All of our communications will happen here from now on. Please read the "Reviewer instructions & questions" in the first comment above. Please create your checklist typing:
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, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention We aim for the review process to be completed within about 4-6 weeks but please make a start well ahead of this as JOSS reviews are by their nature iterative and any early feedback you may be able to provide to the author will be very helpful in meeting this schedule. |
Review checklist for @jherasdoConflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
The manuscript “Jobflow: Computational Workflows Made Simple” by Andrew S. Rosen and co-workers present the software application called Jobflow as an open source Python package for writing computational workflows tailored for high-throughput computing applications. This application abstracts a lot of complexities in the field by using a decorator-based approach which is able to transform pythonic functions and classes into more complex workflows. Furthermore, Jobflow also supports dynamic workflows and different ways to store the results both locally and cloud-based databases. Finally, this application can be coupled with FireWorks package to easily manage computational resources in typical HPC cluster architectures. I have completed my first review of the code and the paper. The software looks very good. The paper is well written with a clear statement of need and state of the field. There are only few things to solve in the manuscript:
I encourage the authors to revise the references since there are some issues:
|
Addressed first bullet point by reviewer: openjournals/joss-reviews#5995 (comment)
This was a leftover issue from fetching references from Google Scholar. Addresses openjournals/joss-reviews#5995 (comment)
Addresses openjournals/joss-reviews#5995 (comment). Namely, I used a minimal format for the Zenodo references. Now, I have used the one auto-generated by Zenodo. One downside of this approach is that the author list includes all contributors to the repo, no matter how large or small their contributions are. I see two ways to go about this: 1) Just accept it and move on. 2) Keep the rest of the metadata but remove the `author` field. @utf, any thoughts?
@editorialbot generate pdf |
CC: @utf @jherasdo: Thank you for your positive feedback and, of course, for your review! We greatly appreciate the time you spent on this. I'll briefly address your comments, but please let us know if you have any further requests or comments!
Thanks! Fixed in the updated paper.
Thanks for catching this. It is now fixed. In case you're curious, this was from Google Scholar's bibtex exporter, which automatically truncates author lists with "& others." Very annoying. I must have missed it. Any remaining truncation you see (with "...") is from the automatically applied JOSS style.
Thanks! This is now fixed (and I did the same for the
Thanks. The reference you are referring to is slightly different. The list of existing workflow systems happens to be hosted on the CWL (common workflow language) repository but is a distinct entity from CWL itself. The reference you shared is specifically for CWL, which is a bit outside the scope of this manuscript. We used the recommended citation, which includes the apache URL. |
Thank you so much for your quick answer @Andrew-S-Rosen! I have updated my checklist accordingly! I actually have a couple of questions regarding Jobflow: Since I'm more used to interact with the "original" atomate package.
And also, since sometimes is quite difficult to deploy and maintain a MongoDB in HPC clusters:
Thanks again! |
@jherasdo: Thank you! Happy to answer any questions you have.
Any inputs/outputs that you are familiar with using from Atomate1 should also be able to be used by Jobflow and thereby Atomate2. The relevant section of the Jobflow documentation is the callout on this page stating "jobflow encodes job outputs as json using the MontyEncoder feature of the monty package. This means that additional datatypes such as datetime objects, enums, and MSONable classes can also be serialized." Happy to elaborate further if there are additional questions there!
This is a good question. Jobflow uses maggma for the database handling and, therefore, supports all of the data stores in maggma. This includes options like |
In terms of Postgres, one project I've found is ferretdb.io which provides a mongodb interface to a Postgres database. It should be possible to use that directly with the current maggma stores. |
Thank you so much @Andrew-S-Rosen and @utf for your answers and congrats for the nice work! I will definitely take a look on the DB possibilities you mentioned. And also thanks for considering Postgres as a future addition for maggma and Joblow. @arfon from my side everything looks good and my questions/comments were solved accordingly. Please let me know if you need anything else from my side. |
@arfon: Thanks for your help thus far. We haven't heard from the 2nd reviewer yet. Perhaps worth another ping? We are happy to address any comments they may have and are looking forward to their review. |
Thank you very much for your very detailed review! We are glad to hear that you have found Jobflow both easy to use and potentially valuable in your own future research. We have addressed your points below --- please let us know if any further clarification is needed, especially as it relates to the remaining "example usage" tickbox.
This has now been addressed in PR 503. We also added an automatic link-checker to ensure that such an issue doesn't happen again.
Thank you for your report. This was an artifact of running the same cell again in a Jupyter Notebook. PR 505 provides a bit of guidance to ensure that this doesn't happen to other users going through the tutorial.
Indeed, we strived to keep the Jobflow documentation quite accessible and domain-agnostic, with ample detail provided in the API. The information about more "advanced" stores is admittedly scattered across a few repositories. We have streamlined things in the Jobflow documentation to help users like yourself. This has now been addressed in PR 506, and you can see it in the documentation here.
This is a good question. Recently, several of the co-authors on this work have developed a custom workflow manager built around Jobflow called
Due to the way in which Jobflow is written, all objects must be (de)serializable by Monty. We note that this includes
First, I'll answer the question independent of atomate2. In general, we anticipate that the transition from a FireWorks-based library to one centered around Jobflow should be relatively straightforward. The use of the simple For your specific question about atomate-->atomate2, however, the story is a bit different. That's because atomate1 is a very large, complex package and atomate2 was designed to address this by introducing a variety of new concepts that are built around Jobflow but are not specific to Jobflow itself. Porting workflows from atomate1 to atomate2 was not a simple translation process as a result --- it largely is a conceptual rewrite. For this reason, the initial time commitment has been high, although we believe the long-term payoff is worth it since the workflows are much more streamlined, more maintainable, and easier to test. If you're solely interested in taking an existing package and swapping out the workflow bits to be Jobflow-centric, that process should be significantly more straightforward to carry out. |
@Andrew-S-Rosen (CC: @arfon): Thank you and the team for addressing my comments and answering my questions. All my concerns have been addressed now and I checked all the boxes above. |
@editorialbot generate pdf |
@arfon: Just wanted to check in. Everything seems good to go here based on the reviewers' comments. |
@Andrew-S-Rosen – looks like we're very close to being done here. I will circle back here next week, but in the meantime, please give your own paper a final read to check for any potential typos etc. After that, could you make a new release of this software that includes the changes that have resulted from this review. Then, please make an archive of the software in Zenodo/figshare/other service and update this thread with the DOI of the archive? For the Zenodo/figshare archive, please make sure that:
|
Thanks @arfon. I've released a new version of jobflow (v0.1.16) on PyPI and GitHub and archived it on Zenodo. The DOI for zenodo is 10.5281/zenodo.10466868. |
@editorialbot set v0.1.16 as version |
Done! version is now v0.1.16 |
@editorialbot set 10.5281/zenodo.10466868 as archive |
Done! archive is now 10.5281/zenodo.10466868 |
@editorialbot recommend-accept |
|
|
👋 @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#4881, then you can now move forward with accepting the submission by compiling again with the command |
@editorialbot accept |
|
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
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. |
🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘 |
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨 Here's what you must now do:
Any issues? Notify your editorial technical team... |
@rashatwi, @jherasdo – many thanks for your reviews here! JOSS relies upon the volunteer effort of people like you and we simply wouldn't be able to do this without you ✨ @Andrew-S-Rosen – your paper is now accepted and published in JOSS ⚡🚀💥 |
🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉 If you would like to include a link to your paper from your README use the following code snippets:
This is how it will look in your documentation: 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:
|
Thank you all! |
Submitting author: @Andrew-S-Rosen (Andrew S. Rosen)
Repository: https://github.com/materialsproject/jobflow
Branch with paper.md (empty if default branch): main
Version: v0.1.16
Editor: @arfon
Reviewers: @rashatwi, @jherasdo
Archive: 10.5281/zenodo.10466868
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
@rashatwi & @jherasdo, 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 @arfon 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 @jherasdo
📝 Checklist for @rashatwi
The text was updated successfully, but these errors were encountered: