openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
725 stars 38 forks source link

[REVIEW]: DataRepExp: a R shiny Application that makes Data FAIR for Data Repositories #6693

Closed editorialbot closed 2 months ago

editorialbot commented 7 months ago

Submitting author: !--author-handle-->@RoryChenXY<!--end-author-handle-- (Xinyue (Rory) Chen) Repository: https://github.com/RoryChenXY/DataRepExp_public Branch with paper.md (empty if default branch): Version: v1.0.0 Editor: !--editor-->@crvernon<!--end-editor-- Reviewers: @elimillera, @pydemull, @ZekeMarshall Archive: 10.5281/zenodo.13777122

Status

status

Status badge code:

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

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

@elimillera & @pydemull & @ZekeMarshall, 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:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @crvernon 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 @pydemull

📝 Checklist for @ZekeMarshall

📝 Checklist for @elimillera

editorialbot commented 7 months 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
editorialbot commented 7 months ago

Software report:

github.com/AlDanial/cloc v 1.90  T=0.03 s (1592.2 files/s, 284529.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
R                               28            792            584           5098
CSV                              7              0              0            550
TeX                              1             39              0            322
Markdown                         5            103              0            248
CSS                              2             14              0             90
YAML                             1              1              4             18
-------------------------------------------------------------------------------
SUM:                            44            949            588           6326
-------------------------------------------------------------------------------

Commit count by author:

    30  Rory
    13  RoryXChen
editorialbot commented 7 months ago

Paper file info:

📄 Wordcount for paper.md is 1190

✅ The paper includes a Statement of need section

editorialbot commented 7 months ago

License info:

✅ License found: MIT License (Valid open source OSI approved license)

editorialbot commented 7 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

crvernon commented 7 months ago

👋 @RoryChenXY, @elimillera, @pydemull, and @ZekeMarshall - 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.

Both reviewers have checklists at the top of this thread (in that first comment) with the JOSS requirements. 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 https://github.com/openjournals/joss-reviews/issues/6693 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

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.

editorialbot commented 7 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1038/sdata.2016.18 is OK
- 10.1371/journal.pcbi.1006038 is OK
- 10.1371/journal.pcbi.1009768 is OK
- 10.1007/s10654-023-00997-3 is OK
- 10.1007/s10654-022-00916-y is OK
- 10.1007/s10654-020-00633-4 is OK
- 10.1007/978-3-319-24277-4 is OK
- 10.18637/jss.v040.i03 is OK
- 10.1201/9780429447273 is OK
- 10.21105/joss.01686 is OK
- 10.1007/978-3-319-24277-4 is OK
- 10.18637/jss.v040.i03 is OK
- 10.1201/9780429447273 is OK
- 10.21105/joss.01686 is OK

MISSING DOIs

- No DOI given, and none found for title: Dementias Platform Australia
- No DOI given, and none found for title: Alzheimer’s Disease Data Initiative
- No DOI given, and none found for title: Dementias Platform Australia Data Portal
- No DOI given, and none found for title: R: A Language and Environment for Statistical Comp...
- No DOI given, and none found for title: R: A Language and Environment for Statistical Comp...
- No DOI given, and none found for title: dplyr: A Grammar of Data Manipulation
- No DOI given, and none found for title: DT: A Wrapper of the JavaScript Library DataTables
- No DOI given, and none found for title: fontawesome: Easily Work with Font Awesome Icons
- No DOI given, and none found for title: forcats: Tools for Working with Categorical Variab...
- No DOI given, and none found for title: htmltools: Tools for HTML
- No DOI given, and none found for title: magrittr: A Forward-Pipe Operator for R
- No DOI given, and none found for title: purrr: Functional Programming Tools
- No DOI given, and none found for title: readr: Read Rectangular Text Data
- No DOI given, and none found for title: scales: Scale Functions for Visualization
- No DOI given, and none found for title: shiny: Web Application Framework for R
- No DOI given, and none found for title: shinydashboard: Create Dashboards with Shiny
- No DOI given, and none found for title: shinyjs: Easily Improve the User Experience of You...
- No DOI given, and none found for title: shinyWidgets: Custom Inputs Widgets for Shiny
- No DOI given, and none found for title: stringr: Simple, Consistent Wrappers for Common St...
- No DOI given, and none found for title: tibble: Simple Data Frames
- No DOI given, and none found for title: tidyr: Tidy Messy Data
- No DOI given, and none found for title: useful: A Collection of Handy, Useful Functions

INVALID DOIs

- None
ZekeMarshall commented 7 months ago

Review checklist for @ZekeMarshall

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

ZekeMarshall commented 7 months ago

Hi @RoryChenXY, I'm just working through my review checklist now. Have you considered making versioned releases of DataRepExp_public? One other question, is there a "DataRepExp_private" repository? If so do you plan to keep future developments synchronised between these repositories?

RoryChenXY commented 7 months ago

Hi @RoryChenXY, I'm just working through my review checklist now. Have you considered making versioned releases of DataRepExp_public? One other question, is there a "DataRepExp_private" repository? If so do you plan to keep future developments synchronised between these repositories?

Hi @ZekeMarshall. 1. I think making versioned releases would be great; 2. There is a private repository that uses some AWS services and links to the sensitive data we use, with domain-specific variables. In the future, if we add more modules/functions in the private repository, I will update the public one manually. Due to security reasons, no synchronisation would happen between repositories.

Thanks, Rory

ZekeMarshall commented 7 months ago

Hi @RoryChenXY, I'm just working through my review checklist now. Have you considered making versioned releases of DataRepExp_public? One other question, is there a "DataRepExp_private" repository? If so do you plan to keep future developments synchronised between these repositories?

Hi @ZekeMarshall. 1. I think making versioned releases would be great; 2. There is a private repository that uses some AWS services and links to the sensitive data we use, with domain-specific variables. In the future, if we add more modules/functions in the private repository, I will update the public one manually. Due to security reasons, no synchronisation would happen between repositories.

Thanks, Rory

Hi @RoryChenXY ,

That sounds good! Before I tick off the "Reproducibility" checklist item I would prefer that there was an initial versioned release.

Cheers,

Zeke

ZekeMarshall commented 7 months ago

Hi @RoryChenXY , I don't think I can tick the "Automated tests" checklist item, as there are no tests in the repository. I think that all functions in the repository should be tested, which in DataRepExp consist of the functions in the vis_functions.R file. You could also test your modules, though I don't think that's strictly necessary. Best regards, Zeke

ZekeMarshall commented 7 months ago

Hi @RoryChenXY , to tick of the "Installation" and "Reproducibility" checklist items I think the repository requires dependencies to be recorded, i'd use {renv} to do this. Best regards, Zeke

pydemull commented 7 months ago

Review checklist for @pydemull

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

pydemull commented 7 months ago

Hi @RoryChenXY , regarding co-authorship, while JOSS does not require mentioning the kinds of the contributions from the different co-authors, I think it could be good to mention somewhere (eg, in the footer of the app or on a dedicated page of the app, or in the repo) what have been these kinds of contributions (eg, XX, YY and ZZ, ..., conceived the app (design, aim, features, etc), and XX and YY developed the app (the code)). A potential interest could be to provide some clues about the confidence a user can have in the app (especially if it is a new piece of software that has not been fully scrutinized by the community) : the more there are people who have the skills to check the code, the less there are risks of undetected bugs (I think). I am not saying that a single person is not able to provide perfectly correct code of course. It is not mandatory so I check the box for this item.

crvernon commented 6 months ago

👋 @RoryChenXY, @elimillera, @pydemull, and @ZekeMarshall

Just checking in to see how things are going with this review! Could you provide a short update here in this thread? Thanks!

ZekeMarshall commented 6 months ago

👋 @RoryChenXY, @elimillera, @pydemull, and @ZekeMarshall

Just checking in to see how things are going with this review! Could you provide a short update here in this thread? Thanks!

Hi @crvernon , all good, just waiting for @RoryChenXY to reply to my queries above. Once resolved i'll then proceed with the other checklist items!

elimillera commented 6 months ago

Review checklist for @elimillera

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

elimillera commented 6 months ago

👋 @RoryChenXY, @elimillera, @pydemull, and @ZekeMarshall

Just checking in to see how things are going with this review! Could you provide a short update here in this thread? Thanks!

Working through this in the next few days. Thanks!

RoryChenXY commented 6 months ago

e going with this review! Could you provide a short update here i

Apologies - I was on sick leave, getting on it now

crvernon commented 6 months ago

No problem @RoryChenXY! Thanks!

RoryChenXY commented 6 months ago

Dear All,

For better reproducibility, I have been experimenting with 'testthat' and unit testing, and realised my work needs to be improved so it can be used by others. This is the first time I am sharing my code with others.

I think the best way is to organise the app as a package. I am reading https://r-pkgs.org/ and https://engineering-shiny.org/ at the moment.

Apologise for the delays, but there is a learning curve. I will do my best.

Please let me know if you don't think the package is necessary.

Thanks, Rory

crvernon commented 6 months ago

:wave: @RoryChenXY - first, I am so happy that you are sharing your code for the first time! Our goal here at JOSS is to make sure we help you put together the best product possible.

As far as the tests go, I am glad you are working on these. They will make your code more reliable and stable.

Your reviewers @elimillera, @pydemull, and @ZekeMarshall can provide some solid feedback and help as you go through this process. Don't hesitate to reach out! Thanks!

pydemull commented 6 months ago

Hi @RoryChenXY, just to say you that the two books you have mentioned are the books I have used to build my first Shiny app as a package. Both books will by very useful. The {golem} package (in relation with this book: https://engineering-shiny.org/) allows a fast implementation of the general structure of your repository so that it can be used as a package. The book by Hadley Wickham provides very useful tips for general and common tasks. Personally, I have used the package {shinytest2} to test if the app works correctly. Testing also the basic functions of the app outside the app (which should be done) is not the hardder part. Testing if the app correctly works (correct inputs, correct outputs, etc.) is unfortunately more complicated, but this will render the whole app of a higher quality. I am not a software engineer (not at all) but I will be happy to help if I can.

elimillera commented 6 months ago

@crvernon My check is complete. I have opened the following issues:

As noted by the other editors, some tests would also be good to add for the application, generally I've seen this done in package framework, however that isn't a requirement and just a testthat directory should work without the package framework.

Nice work @RoryChenXY! Let me know if you would like me to expand on any of the points above.

crvernon commented 6 months ago

:wave: @RoryChenXY - it looks like you have some good feedback from @elimillera and @pydemull. Please report here as you have any questions for feedback to the reviewers. Thanks!

RoryChenXY commented 5 months ago

Dear All, @elimillera, @pydemull, @ZekeMarshall and @crvernon,

I am back. Sorry this is taking forever!

I have now converted the app into a package with {golem}, and created a branch (golem) for the updates. I hope you can see the content in my branch - I have not updated the main yet.

As my original app name contains an underscore, it is not permitted as an R package name so I created 'datarepexp' as the package name.

By making this app into a package, I have learned a lot. Dependency: Used {renv} for dependencies, and also DESCRIPTION and NAMESPACE. Testing: Used {testthat} and {shinytest2}.

I have improved some of my functions and designs, the current version is deployed here: https://rorychenxy.shinyapps.io/repexp/

I am still working on the documentation but would like to share the progress. Thank you for your time and patience.

Best, Rory

crvernon commented 5 months ago

Thanks @RoryChenXY!

pydemull commented 5 months ago

Hi @RoryChenXY, I've also updated my checklist. I have also opened a new issue (Miscellaneous): https://github.com/RoryChenXY/DataRepExp_public/issues/6

In addition to this issue, I have the same remarks as @elimillera (cf. the issues he as opened and the remark related to tests).

Best

crvernon commented 5 months ago

:wave: @RoryChenXY - could you share an update here when you have a moment? Thanks!

RoryChenXY commented 4 months ago

👋 @RoryChenXY - could you share an update here when you have a moment? Thanks!

Apologies for the delays - crazy weeks at work. Will focus on this next week.

RoryChenXY commented 4 months ago

Dear All,

I have updated the individual module files to address some of the issues including: version number in app, metadata table numeric filters, download csv files with different table name, visualization tab (Metadata) tooltip contents not showing.

Plan to work on the documentation and test files next week and push the new .tar.gz file after.

Thank you for your kind support.

Best, Rory

crvernon commented 3 months ago

Just following back up to see how things are progressing @RoryChenXY

RoryChenXY commented 3 months ago

Dear All,

I believe I have addressed all the comments and issues to the best of my ability.

I sincerely appreciate the generous contributions of your time and the valuable feedback you’ve provided. My apologies for the delays—academics never seem to have enough time!

This process has been a significant learning experience for me, especially in improving this app and converting it into a package.

Thank you once again for your kind support.

Best regards, Rory

ZekeMarshall commented 3 months ago

Hi @RoryChenXY , thanks for addressing the comments above! I have seen that you have pushed these changes to the main branch, would it be possible to make a release? I will then re-visit my checklist :)

RoryChenXY commented 3 months ago

Hi @RoryChenXY , thanks for addressing the comments above! I have seen that you have pushed these changes to the main branch, would it be possible to make a release? I will then re-visit my checklist :)

Hi @ZekeMarshall, I just made a release - should learn more about these processes. Thanks!

pydemull commented 3 months ago

Hi all, sorry for the delay... thank you @RoryChenXY for all the changes made to comply with my remarks, nice work 👍. I have completed my checklist. It is now OK for me @crvernon. Best

crvernon commented 3 months ago

:wave: @ZekeMarshall - how does this look from your side of things?

ZekeMarshall commented 2 months ago

@editorialbot generate pdf

editorialbot commented 2 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

ZekeMarshall commented 2 months ago

Hi @crvernon and @RoryChenXY , I've just worked through my checklist again using the v0.0.1 release of the app. Thanks for addressing all my comments @RoryChenXY ! Everything is looking great, only two remaining suggestions from me before I can complete my checklist:

  1. I have generated the most recent version of the paper and the app screenshot is not showing, could this be fixed?
  2. In my last paper I was told to reference R packages using the preferred recommended citation, or using the CRAN DOI. Is the CRAN DOI citation format required @crvernon ?

Cheers!

Zeke

RoryChenXY commented 2 months ago

Hi @ZekeMarshall, Thank you for your feedback.

  1. screenshot - fixed, it was the lowercase/ uppercase error
  2. DOI: I update the package DOIs like '10.32614/CRAN.package.golem', didn't realise they were available.

Huge thanks for all!

Best Rory

RoryChenXY commented 2 months ago

@editorialbot generate pdf

editorialbot commented 2 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

ZekeMarshall commented 2 months ago

Hi @RoryChenXY ,

Thanks for addressing these final two points! I've just completed my checklist, @crvernon everything looks good to me now!

Cheers,

Zeke

crvernon commented 2 months ago

@editorialbot generate pdf

crvernon commented 2 months ago

@editorialbot check references

editorialbot commented 2 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1038/sdata.2016.18 is OK
- 10.1371/journal.pcbi.1006038 is OK
- 10.1371/journal.pcbi.1009768 is OK
- 10.1007/s10654-023-00997-3 is OK
- 10.1007/s10654-022-00916-y is OK
- 10.1007/s10654-020-00633-4 is OK
- 10.32614/CRAN.package.dplyr is OK
- 10.32614/CRAN.package.DT is OK
- 10.32614/CRAN.package.fontawesome is OK
- 10.32614/CRAN.package.forcats is OK
- 10.1007/978-3-319-24277-4 is OK
- 10.32614/CRAN.package.htmltools is OK
- 10.18637/jss.v040.i03 is OK
- 10.32614/CRAN.package.magrittr is OK
- 10.1201/9780429447273 is OK
- 10.32614/CRAN.package.purrr is OK
- 10.32614/CRAN.package.readr is OK
- 10.32614/CRAN.package.scales is OK
- 10.32614/CRAN.package.shiny is OK
- 10.32614/CRAN.package.shinydashboard is OK
- 10.32614/CRAN.package.shinyjs is OK
- 10.32614/CRAN.package.shinyWidgets is OK
- 10.32614/CRAN.package.stringr is OK
- 10.32614/CRAN.package.tibble is OK
- 10.32614/CRAN.package.tidyr is OK
- 10.21105/joss.01686 is OK
- 10.32614/CRAN.package.useful is OK
- 10.1007/978-3-319-24277-4 is OK
- 10.18637/jss.v040.i03 is OK
- 10.1201/9780429447273 is OK
- 10.21105/joss.01686 is OK
- 10.32614/CRAN.package.golem is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: Dementias Platform Australia
- No DOI given, and none found for title: Alzheimer’s Disease Data Initiative
- No DOI given, and none found for title: Dementias Platform Australia Data Portal
- No DOI given, and none found for title: R: A Language and Environment for Statistical Comp...
- No DOI given, and none found for title: R: A Language and Environment for Statistical Comp...

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None
editorialbot commented 2 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

crvernon commented 2 months ago

@editorialbot check references