-
-
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]: Ipyannotator: the infinitely hackable annotation framework #4480
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 |
Failed to discover a valid open source license |
@csadorf and @matthewfeickert - Thanks for agreeing to review this submission. As you can see above, you each should use the command 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, reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention We aim for reviews to be completed within about 2-4 weeks. Please let me know if either of you require some more time. We can also use editorialbot (our bot) to set automatic reminders if you know you'll be away for a known period of time. Please feel free to ping me (@danielskatz) if you have any questions/concerns. |
Review checklist for @matthewfeickertConflict of interest
Code of Conduct
General checks
JOSS asks for a minimum of 3 months of work equivalent effort for the software to be considered. The project definitely fulfills this requirement. Functionality
Documentation
Software paper
|
Review checklist for @csadorfConflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
|
👋 @csadorf and @matthewfeickert - thanks for generating your checklists. Is there anything blocking you from starting to check off items? (and I know it's just a week since we started, so this is really a friendly question) |
No, just need to find some time for this. I expect to be able to make some progress early next week. Thank you for the reminder. |
@danielskatz We have just been informed that an ipyannotator introduction talk, that @itepifanio have submitted to Python Nordeste, has been accepted. It would be great if we could incorporate feedback from this review before this talk. Please let me know if we can do something to get the review started. edit: fix typo, in cooperate -> incorporate |
I'm sorry, I don't understand what "if we could in cooperate feedback from this review" means. Also, the review is started, though the reviewers (@matthewfeickert and @csadorf) haven't yet indicated progress in their checklists. |
Ah, sorry I didn't mean to be cryptic. All I wanted to express is that we are starting to prepare the talk and it's material. So any feedback the reviewer provide will not only help us to improve the library, but will also influence the talk, if we get it early enough. Also, ideally we would like to present the library in the exact same version it's described in the JOSS article, since both will be a permanent reference points. :) edit: fix typo, in cooperate -> incorporate |
Ah, I think you meant to "incorporate feedback". Ok, but we need to wait for the reviewers... |
The paper describes the Ipyannotator software, which is aimed at researchers who want to efficiently annotate images and still frames to train a supervised machine learning model for image and video classification. The paper is written very well with only minor language errors and clearly outlines the architecture and design philosophy of the presented software. There are however a a few issues that I would like to see addressed. The significance of contributions by the first author to the source code base cannot be verified. Assuming that @AlexJoz is Oleksandr Pysarenko, it seems that the second author has made the most contributions to the package's source code. One of the key claims is that the software is "infinitely hackable". I was not able to fully understand or verify this claim within the time that I spent on the review and testing the software. According to the paper the frameworks flexibility stems from the fact that it is run in Jupyter notebooks. Since this attribute constitutes the unique value proposition, I would suggest to further elaborate on this point or provide a simple example on what exactly is meant by that and what the benefits are. The code is written using a literate programming style which is why the majority of source code is in the form of Jupyter notebooks (~ 7,500 LOC) resulting in about 5,000 LOC of auto-generated Python code and appears to be of overall sufficient quality. I therefor have no doubts about the significance of the scholarly contribution. The installation instructions are clear, albeit the list of dependencies presented in the README and the docs home page (same source), uses a within the Python eco-system non-standard carot-symbol (^) to indicate the range of supported Python versions. I would recommend to stick to a dependency specification that complies with specifiers documented in PEP 440. While the installation flow is overall straight-forward, it is not immediately clear which steps a user should take immediately after installation. A few sentences that instruct the user on what exactly to do run an example, go through the tutorial, or simply use the software are missing and must be deduced. As stated before, documentation is generated from Jupyter notebooks which means that it is quite extensive, however it also appears to be a bit scattered and of widely varying quality. Especially the API documentation is severely lacking. A clear statement of need, as found in the paper, is also missing from the documentation. As a final note, it appears that the repository contains automated tests, but there are no instructions on how to run those. |
Thanks @csadorf! If you can say anything more about "The paper is written very well with only minor language errors", please do, either in a comment or in a PR to the paper.md file. If not, I will also proofread the paper later in the process |
Thanks for the feedback!
We have been following a Private Development, Public Releases workflow[0]. The downside of this approach is that All authors have contributed code, but @itepifanio has written by far the majority. Maybe the CHANGELOG.md can be used to support my assurance. We'll address all other points in detail later. [0] https://www.braintreepayments.com/blog/our-git-workflow/ |
@editorialbot generate pdf |
@csadorf thanks for your feedback. I believe that our last modifications address your suggestions. You can find a PR with the JOSS paper changes and another with the documentation enhancements. The following changes were made:
Please let us know if you have any other concerns |
@csadorf - does this ☝️ satisfy your concerns? |
👋 @matthewfeickert - I know you've been and are busy with conferences, but just wanted to remind you about this again... |
Thank you for addressing my concerns.
I think the edited description provides a much better justification for this claim, however the fact that ipyannotator is implemented in Python and executed via Jupyter notebooks provides barely any justification for this claim since the same could be said for literally any other open-source software. While I understand that this is to be understood as hyperbole, I think it is important to point out very concretely which elements specifically make this software significantly more customizable compared to similar open-source frameworks. I think both the paper and the docs are providing sufficient explanation now, the only suggestion I would make is to remove any language that appears to be imply that (Python + OSS) is sufficient grounds for the claim. Specifically I have an issue with this sentence:
✅
✅
✅
I still find it a bit hard to navigate the docs, but it looks like the most important elements are now present.
I am glad to see that the concern was addressed, however there is some significant room for improvement here. It is usually good practice to define a test environment explicitly. The docs only state that tests require Further, the instructions on how to run the tests remain weirdly vague as well. Looking at the CI workflows, it seems that the tests are run via poetry? Is this recommended or required? It is not entirely clear to me why the instructions remain so vague when at the same time tests are run rigorously on each commit as it seems.
I don't have any other concerns but those mentioned above. |
|
@itepifanio - please see palaimon/ipyannotator#46 and palaimon/ipyannotator#47 for some suggested changes in the paper and bib |
Thanks for the edits! I have merged both PRs. |
At this point could you:
I can then move forward with accepting the submission. |
At this point could you:
|
@editorialbot set 10.5281/zenodo.7018311 as archive |
Done! Archive is now 10.5281/zenodo.7018311 |
@editorialbot set v0.8.5 as version |
Done! version is now v0.8.5 |
@editorialbot recommend-accept |
|
|
👋 @openjournals/joss-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#3463, then you can now move forward with accepting the submission by compiling again with the command |
@editorialbot accept |
|
🐦🐦🐦 👉 Tweet 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... |
Congratulations to @itepifanio (Ítalo Epifânio) and co-authors!! And thanks to @csadorf and @matthewfeickert for reviewing! |
🎉🎉🎉 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:
|
Well done @itepifanio and co-authors and congratulations! 🎉 |
Congratulations!! 🥳 |
Thanks everyone for making this possible. |
Submitting author: @itepifanio (Ítalo Epifânio)
Repository: https://github.com/palaimon/ipyannotator/
Branch with paper.md (empty if default branch): joss
Version: v0.8.5
Editor: @danielskatz
Reviewers: @csadorf, @matthewfeickert
Archive: 10.5281/zenodo.7018311
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
@csadorf & @matthewfeickert, 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 @danielskatz 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 @matthewfeickert
📝 Checklist for @csadorf
The text was updated successfully, but these errors were encountered: