Open gvegayon opened 1 week ago
Issues related to JOSS review https://github.com/openjournals/joss-reviews/issues/7027
Thank you so much @gvegayon for the detailed comments! We will work on these and add a more complete comment here, but in the meantime to address your first point: both Quinn and Vahid were instrumental to the specification of requirements and the design of FaaSr (Vahid also contributed to the FaaSr-Docker repo which is used in building Docker images for users).
This review goes with #110 as well as with the JOSS review issue (link).
[ ] Authors.: The list of authors includes Vahid Daneshmand and Quin Thomas; what was their contribution? I don't see any commits associated with them in the repo.
[ ] Related packages. Doing a search of "AWS Lambdas" on CRAN yielded two other R packages that I failed to see mentioned in the paper:
lambdr
andaws.lambda
. How these packages compare toFaaSr
? The authors should mention these in their paper.[ ] Code coverage. Running
covr::package_coverage(".")
yields approximately 9% coverage (see below). Although I understand writing tests can be cumbersome, I would encourage you to add the coverage badge and ensure that all new commits should have a corresponding test as you continue extending/working on the R package. Again, you can defer this for after publication, but make sure you have an issue for this point (if you don't have one already).[ ] Many functions return "nothing", yet I see that that's not the explicit behavior, and sometimes, may be returning something; for instance, the following code returns the value 10, even when we are not doing so explicitly:
You can use
invisible(NULL)
to make "nothing returned" explicit.[ ] Missing a test via GHA. I think the package would greatly improve if the authors included a GitHub Action in which they use the package via GHA/AWS. They could have a GHA that is triggered manually (or automatically) to check the basic functionality works.
[ ] Improper way to call
stop()
. Across the package, the functionstop()
is called right after printing a message on the screen. The proper way to do that is to put the message as part of thestop()
argument, e.g., instead of doing the following:do
[ ] Improper way of using
on.exit
.: The package incorrectly useson.exit()
. Currently, it is not inserting any bugs, but most of the time, the authors callon.exit
to restore the working directory while doing so again right before returning the function. The following is an example of what the package currently does. The best practice would be leave thesetwd
(or whatever other operations need to be done at the end) by theon.exit()
call:[ ] Usate of tmp directories. R has a robust interface for creating temporary files and directories, namely
tempfile()
andtempdir()
. That interface is safer as it (i) can check whether the path already exists and (ii) points to the system temp path, which can be cleared after the R session ends. Currently, the package makes artificial temporary directories manually, for instance, in thefaasr()
function.[ ] Use of
paste0()
for path creation. To ensure cross-os compatibility, it is recommended that paths should be created using thefile.path()
function. I have added a few examples in a PR I am submitting with this review.Appendix
Output from
covr