-
-
Notifications
You must be signed in to change notification settings - Fork 38
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]: GB_code: A grain boundary generation code #900
Comments
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @vyasr, it looks like you're currently assigned as the reviewer for this paper 🎉. ⭐ Important ⭐ If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿 To fix this do the following two things:
For a list of things I can do to help you, just type:
|
|
@labarba I'm not quite sure how to review aspects of this repository. It's written in Python, but it's not really a Python package, it's a collection of scripts for a particular purpose. There is no Python API, the intent is just to run these scripts on the command line. That being the case, the normal aspects of a Python package (a setup.py for installation, a Python API, etc) don't really apply. I can request tests for the command line API and some versioning on the repository itself, but since the package won't be Should I just treat this as a command line tool, and give advice accordingly? Or should I be providing suggestions on how to expose/improve a Python API and follow more standard Python packaging guidelines? @oekosheri do you want/see a use for making this tool scriptable within Python rather than as a standalone set of scripts? |
True, I have not provided a setup.py but this is definitely a python package. |
You understood my comment correctly. The underlying code is cleanly divided into functions and classes, and you are correct that in the strict sense the repository is a Python package since it is importable thanks to the init.py file. I was mostly alluding to the fact that it is not immediately installable, and that the intended API appears to be entirely command line based. You've put together a nice implementation of a cool scientific application, I'm just trying to get a sense for how to make it most useful. My recommendations will depend a little bit on how you anticipate people making use of the code. If your intended usage is purely from the command line, then I think my comments regarding how to appropriately evaluate this apply because there really isn't much of an API other than simply executing the scripts as you demonstrate in your README. On the other hand, if you want people to be able to interface directly with the Python functions that you provide (in my opinion, you should allow that since it gives users much more flexibility and they might find use-cases you didn't anticipate), then there are a few things you would want to do. Your repository should be restructured in the form of a standard Python package (see here for example) and you would use a setup.py to make it installable and accessible. If you want to expose a command line interface, the way to do it in that context would be using setuptools entry_points (if you're not familiar, you can see the official docs as well as a few basic tutorials). Even if you don't provide a Python API, making your scripts available on the command line in this fashion would make it easier for people to incorporate the commands into their own (Python, bash, etc) scripts. Let me know your thoughts on these ideas and I can tailor my feedback accordingly. |
Thank you for your help. 1- you say: "Your repository should be restructured in the form of a standard Python package ", I do not quite understand how. Do you mean to separate the script part (main functions) of the codes from the modules (functions/class)? 2- I think it would probably make more sense to me to use the "entry point" solution for the setup.py and keep the scripts as they are. |
As you pointed out, your code already is a package. The standard structure for Python packages, however, is to have all the code in a subdirectory of the repository: README With this structure, setup.py will be able to install the GB_code modules using a very standard setup. I think keeping the main function in the same file as the modules is fine, it doesn't cause any problems at the moment. This would also make it easier to automate testing. The idea with entry points is that someone from anywhere on their filesystem would be able to type |
Yes, that's right. thanks.
It copies the executable scripts in python bin, so very good but it does not copy them in site-packages. Thanks in advance. |
A follow up on my previous post: |
I don't know exactly what caused the issue that you were having, but in general setup.py is known to have some buggy behavior in odd cases like that, so I don't think that you're doing anything wrong. You could try on a different python version if you have conda/virtualenv handy and see how that behaves, but I wouldn't be too worried. |
Ok, Thanks, So I updated the repository now. |
Sorry to bother but I was wondering whether the review process is progressing. Do I need to do make any other changes at this point? |
sorry, I have blocked some time on Monday-Tuesday to do so so should be able to update then |
Hi sorry I had a couple of things come up after my flurry of activity two weeks ago. I will get to this tomorrow. |
Thanks for those changes! Sorry for the delay. Here is my next set of comments.
|
Thank you for your comments.
I submitted the code more than two months ago and have a deadline for presenting it before leaving my institute. Prior to submitting it, I have put quite some time and effort into making the functionality and presentation of it match the needs of current/future users. I really appreciate the fact that I could improve the installation procedure following your comments last time but I also have a time limit now. Aside from completing the docstrings which I will try to finish tomorrow, I would appreciate it if you could test the code now as is. |
@labarba @vyasr @trallard I have updated the repository after adding more to the doctrings of the csl_generator script. I have checked the requirement for the documentation in JOSS and think my code satisfies it for the most part. If there is another necessary step that I'm missing please let me know. |
That's fair enough. I can review as is. The only remaining requirement I have is that you update the setup.py script to have install_requires = ['numpy']. Currently if you try to install this into a clean environment it will fail to run. The requirements.txt file is helpful, but users using pip/setup.py based installation should get the dependencies automatically. pandas and matplotlib are not necessary, since they're just for the notebooks, not the package itself (as far as I can tell). Regarding not accepting contributions, as far as I am concerned that is fine. @labarba may have more to say on that front, but I will check that box for now and can revise if needed. Once the setup change is made I can approve. |
Hi @oekosheri I am doing the review right now and I will soon be opening some issues (and referencing here for completeness/openness
|
I think that covers the missing gaps/issues I encountered, so once these issues are resolved I would be happy to complete the review from my side. (apologies for the long time) Re tests: although I appreciate that the notebooks are there to demonstrate the functionality of the code these should ideally be accompanied with unit tests. I do however, appreciate this means extra effort and time commitment so I would suggest adding that as a work in progress or consider adding tests to cover the different methods in the package. progressively to ensure things work as expected. |
Thank you @trallard |
Thanks a lot for the quick actions @oekosheri. I closed the notebooks issue as I realized that I did not notice the link to the notebooks. |
@whedon generate pdf |
|
@labarba Sorry for testing a few times. Does the last version look acceptable? |
Something is wrong with the DOI links. For example, the second reference links to: Please clean up the BibTeX entries so they resolve properly. |
@whedon generate pdf |
|
It must be correct now. I removed the https. Please let me know. |
Great! The next step is for you to make an archival copy of the full repository in a service like Zenodo, get a DOI, and tell us the archive DOI here so we can add it to the publication. |
Thanks @labarba, so eventually I managed to integrate the repo with Zenodo and it created a badge with Doi. |
That DOI resolves correctly, yes. But note that the authors are listed as "oekosheri; Arfon Smith" in the Zenodo entry. Probably you had a pull-request from Arfon that you merged, and Zenodo is taking the authors from the committers, automatically. You need to manually edit the metadata to display the correct author list in Zenodo. |
I edited it, thanks. Do I need to do any thing else? |
Lastly, I do have a question for you. You've only listed yourself as author in the Zenodo archive. We only see yourself as a committer in the code repository. Yet you have three authors in the JOSS paper. I'm a little worried about courtesy authorship here. The last author is the Director of the Computational Materials Design department at MPIE, and the second author is the group leader of Adaptive Structural Materials. Can you look at the JOSS authorship guide, reflect on this (possibly discuss with your listed co-authors) and make a final determination that the author list is what you all want? From the JOSS guidelines:
|
I am the sole contributor of the code, which is a collection of work I did in the last couple of years under the active direction of the other two authors. So I can update Zenodo author list and include them as well. |
It is your decision to make. |
Thank you. I already updated Zenodo. |
@whedon set 10.5281/zenodo.1433530 as archive |
OK. 10.5281/zenodo.1433530 is the archive. |
@vyasr, @trallard - many thanks for your reviews here and to @labarba for editing this submission ✨ @oekosheri - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00900 ⚡ 🚀 💥 |
🎉🎉🎉 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! 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:
|
Submitting author: @https://github.com/oekosheri (raheleh Hadian)
Repository: https://github.com/oekosheri/GB_code
Version: v1.0.0
Editor: @labarba
Reviewer: @vyasr, @trallard
Archive: 10.5281/zenodo.1433530
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) 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
@vyasr & @trallard, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @labarba know.
✨ Please try and complete your review in the next two weeks ✨
Review checklist for @vyasr
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?Review checklist for @trallard
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?The text was updated successfully, but these errors were encountered: