Skip to content
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]: uJVM: Lightweight Java Virtual Machine for embedded systems #1338

Open
whedon opened this Issue Mar 20, 2019 · 56 comments

Comments

Projects
None yet
9 participants
@whedon
Copy link
Collaborator

whedon commented Mar 20, 2019

Submitting author: @omoliavko (Oleksandr Moliavko)
Repository: https://github.com/Samsung/uJVM/
Version: v0.1
Editor: @gkthiruvathukal
Reviewer: @morganericsson, @hainesr
Archive: Pending

Status

status

Status badge code:

HTML: <a href="http://joss.theoj.org/papers/23161710ad8996910f329efc48c2f1a1"><img src="http://joss.theoj.org/papers/23161710ad8996910f329efc48c2f1a1/status.svg"></a>
Markdown: [![status](http://joss.theoj.org/papers/23161710ad8996910f329efc48c2f1a1/status.svg)](http://joss.theoj.org/papers/23161710ad8996910f329efc48c2f1a1)

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

@morganericsson & @hainesr, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @gkthiruvathukal know.

Please try and complete your review in the next two weeks

Review checklist for @morganericsson

Conflict of interest

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (v0.1)?
  • Authorship: Has the submitting author (@omoliavko) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?

Review checklist for @hainesr

Conflict of interest

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (v0.1)?
  • Authorship: Has the submitting author (@omoliavko) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @morganericsson, 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:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Mar 20, 2019

Hi @omoliavko, should vpetrychenko also be an author on this paper? They appear to have made a significant contribution to the software - https://github.com/Samsung/uJVM/graphs/contributors

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Mar 20, 2019

Hi @hainesr, I could add him to authors list, but he contributed to S/W, not the paper itself, so I'm not sure if it would be correct.

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Mar 20, 2019

The software is the important contribution here, so I think he should be added. The paper is of secondary importance where authorship is concerned. I'll tag in @gkthiruvathukal for an adjudication, though...

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Mar 20, 2019

I concur with @hainesr. I would think that one of the main goals of JOSS is to ensure that those who contribute substantially to the development of research software are recognized for their contributions.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Mar 20, 2019

Ok, I'll update the author list

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Mar 20, 2019

Added Vitalii Petrychenko (vpetrychenko) to author list

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Mar 20, 2019

@whedon commands

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

Here are some things you can ask me to do:

# List Whedon's capabilities
@whedon commands

# List of editor GitHub usernames
@whedon list editors

# List of reviewers together with programming language preferences and domain expertise
@whedon list reviewers

EDITORIAL TASKS

# Compile the paper
@whedon generate pdf

# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name

# Ask Whedon to check the references for missing DOIs
@whedon check references

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Mar 20, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 20, 2019

@tdrozdovsky

This comment has been minimized.

Copy link

tdrozdovsky commented Mar 22, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 22, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 22, 2019

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Mar 24, 2019

Hi @omoliavko, I had some issues building this project with my setup. I have JDK 11 as my default java, but setting $JAVA_HOME to point to JDK 8 didn't have any effect. I have submitted a pull request (Samsung/uJVM#79) to fix this.

@tdrozdovsky

This comment has been minimized.

Copy link

tdrozdovsky commented Mar 25, 2019

Hi @hainesr, Great job! I've merged your pull request. We will add a description "how to set JAVA_HOME for Java "

@tdrozdovsky

This comment has been minimized.

Copy link

tdrozdovsky commented Mar 25, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 25, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Mar 25, 2019

@arfon

This comment has been minimized.

Copy link
Member

arfon commented Mar 31, 2019

👋 @morganericsson - how are you getting along with your review?

@morganericsson

This comment has been minimized.

Copy link
Collaborator

morganericsson commented Apr 1, 2019

@arfon I've had some issues with the software. Since this is my first review for JOSS, I am unsure where/how to voice my concerns, but I'll do it here and then we can edit if it is the wrong place.

  • The current version seems to be 0.2, so my comments are based on that version.
  • It is not clear who this is intended for, see the next item...
  • The documentation (apart from compiling) is quite poor, so it is difficult to judge exactly what the current release can do. I tried to write a few simple programs, and quickly ran into multiple difficulties, e.g.:
    • It was not obvious how to package and run programs.
    • It was not obvious which classes/functions I could use. Again, the japps and tests helped, but the documentation really needs to be better.
    • I ran into multiple failures (e.g., Ret <something> @ instr right before <addr>) from even simple loops and methods.

Based on this, I am not sure if the submission fulfills "The software should be feature complete" (and "either enables some new research challenges to be addressed or makes addressing research challenges significantly better" but I guess this depends on the target audience).

(so, checkmarks are in some sense correct according to my current understanding of the software)

@kyleniemeyer

This comment has been minimized.

Copy link
Collaborator

kyleniemeyer commented Apr 1, 2019

@morganericsson this is valid feedback to mention here—you are totally allowed (expected, even) to not check something off that you don't feel the software satisfies. This is the place for such conversations between you, the authors, and the editors to get the submission to the acceptance point.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 2, 2019

@morganericsson Thanks for the valuable feedback, we'll improve the documentation as soon as feasible. Now answers to your specific comments:

  1. Current version is 0.2 - we're actively developing the uJVM, taking feedback from multiple sources into account; indeed, you're welcome to give feedback if you have time and feel inclined to do so
  2. We'll update the article to specify intended applications of uJVM; however, right now it is more of an experimental development than application meant for release
    3.1) We'll provide documentation that describes the process of creating applications and running them on uJVM (see Samsung/uJVM#81);
    3.2) As of March 2019, uJVM development is centered on creating efficient Java interpreter, to prove the feasibility of Java apps for embedded systems - indeed, this was the primary objective of uJVM research project from the very beginning; creating extended library of classes similar to standard Java library is only in plans; we'll provide list of currently supported library classes and methods in documentation (see Samsung/uJVM#82)
    3.3) We'd be grateful if you could send detailed error reports to us or create issues on github so we could analyze and fix the bugs you've encountered
    Once again, thanks for your time and effort
@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 2, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 2, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 2, 2019

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 2, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 2, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 2, 2019

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 2, 2019

@hainesr @morganericsson We've added expected audience for uJVM project to paper

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 2, 2019

@hainesr @morganericsson Javadoc documentation generation is added to uJVM to view info on supported Java classes; updated README.md to reflect this and added uJVM_functionality_description.md file to docs folder.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 3, 2019

@hainesr @morganericsson A guide on creating apps for uJVM was added - please see docs/java_app_creating_guide.md file. We'd be grateful for your opinion on it.

@morganericsson

This comment has been minimized.

Copy link
Collaborator

morganericsson commented Apr 5, 2019

I've reviewed the added files and the updated paper, and updated my review checklist accordingly. Overall, I think it's fine and all of my concerns have been addressed. The documentation, of course, should improve over time, but I think it's sufficient for now.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 5, 2019

@morganericsson Thank you once again for your time, and a separate thank you for vote of confidence. If you have any suggestions on how to improve project and documentation further, please do not hesitate to contact us.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 8, 2019

@arfon @kyleniemeyer Could you please explain what steps we should take now that @morganericsson has completed the checklist?

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 8, 2019

@omoliavko I will await a response from @arfon or @kyleniemeyer. It looks like we are pretty close.

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Apr 8, 2019

I'm aware that I need to complete my checklist too. I will endeavour to do so in the next couple of days.

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 8, 2019

Thanks @hainesr. We will wait for your checklist.

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Apr 10, 2019

I have raised a new PR to fix javadoc on setups with multiple JDKs: Samsung/uJVM#85

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 10, 2019

@hainesr Pull Request accepted, thank you for collaboration

@hainesr

This comment has been minimized.

Copy link
Collaborator

hainesr commented Apr 10, 2019

My checklist is complete now @gkthiruvathukal, @arfon. I'm happy with the submission!

I think a new release now needs to be tagged @omoliavko. Would you consider calling it 1.0 in line with Semantic Versioning? https://semver.org/

One minor nit-pick: in the paper itself, I think it would read better if you wrote 'software' and 'hardware' out longhand instead of using 'S/W' and 'H/W'. But this is just my personal preference and not necessarily a barrier to acceptance.

@omoliavko

This comment has been minimized.

Copy link

omoliavko commented Apr 10, 2019

@hainesr We're also happy with our progress so far; unfortunately, we cannot tag a new release now, because we have a development plan to adhere to, and next release of uJVM shall include several features that are in development now.

@tdrozdovsky

This comment has been minimized.

Copy link

tdrozdovsky commented Apr 13, 2019

@arfon @kyleniemeyer @gkthiruvathukal Could you please explain what steps we should take now that @morganericsson and @hainesr have completed the checklist?

@kyleniemeyer

This comment has been minimized.

Copy link
Collaborator

kyleniemeyer commented Apr 13, 2019

At this point @gkthiruvathukal will give it a final look as the editor for the submission; if he decides it is ready to accept, then he'll ask you to archive the accepted version of the package and provide an associated DOI (e.g., via Zenodo). However, hold off until you get that request from him.

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 14, 2019

@kyleniemeyer I'm on travel right now (a mix of business and pleasure). I will work on the decision in the next day or two. I'm encouraged by what I am seeing though. Thanks to all for your patience. I will try not to keep you waiting for too long.

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 16, 2019

@tdrozdovsky and @omoliavko, I have gone through the checklist, and I'm ready to accept. Based on @kyleniemeyer's follow-up, can you please archive the accepted version of the package and provide an associated DOI (e.g., via Zenodo).

@kyleniemeyer Just to clarify, I do not do an accept via Whedon just yet, right?

@danielskatz

This comment has been minimized.

Copy link
Collaborator

danielskatz commented Apr 16, 2019

Hi @gkthiruvathukal - rather than asking a specific AEiC, you probably should ask all of us (to get the person on duty this week) by including @openjournals/joss-eics in the comment.

And in this case, no, don't do an accept yet - you can do that once these other things (version, archive) are done, or the AEiC can do it.

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 16, 2019

@danielskatz Thanks for clarifying how to ask all AEICs. Somehow that was lost on me.

@openjournals/joss-eics This submission is moving toward acceptance. As this is one of the first I have seen through the process, it would be good if you can take a look that all is in order. The checklists are fine and all issues seem to have been addressed in the issue thread and follow-up. I believe we just need the DOI for the accepted version of the package.

@arfon

This comment has been minimized.

Copy link
Member

arfon commented Apr 16, 2019

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 16, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

whedon commented Apr 16, 2019

@arfon

This comment has been minimized.

Copy link
Member

arfon commented Apr 16, 2019

The checklists are fine and all issues seem to have been addressed in the issue thread and follow-up. I believe we just need the DOI for the accepted version of the package.

Yep, I think we're in good shape here. At this point we just need the author to create a DOI for the software and post the URL to it here.

@gkthiruvathukal

This comment has been minimized.

Copy link

gkthiruvathukal commented Apr 16, 2019

Thanks, @arfon. Will await the DOI and associated URL and process the acceptance not long thereafter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.