pharmaR / riskmetric

Metrics to evaluate the risk of R packages
https://pharmar.github.io/riskmetric/
Other
161 stars 31 forks source link

Initial package observations #69

Open mpadge opened 4 years ago

mpadge commented 4 years ago

First impression: Fanstastic work @elong0527 @kkmann @dgkf - you really have given so much thought to the package API, and done a tremendous job of thinking the whole time about future extensibility. And yes, that makes initial familiarization with the package somewhat more burdensome than it might otherwise be, but the extensibility will be critical to future success and adoption of the package, so it is very clearly worthwhile.

So as @dgkf already knows, rOpenSci are embarking upon a new endeavour to develop a system to peer-review explicitly statistical software packages. Among many other necessities will be the development of tools to assess the "quality" of software (whatever that might be deemed to be). Neither we nor you want to expend effort repeating prior development efforts of other people, and so ... i'm pretty confident at this very early stage that i can say that we will build at least part of the system directly on riskmetric. To that end, I have devoted quite some time familiarizing myself with the package, and so offer, in the tradition of rOpenSci reviews, the following observations. Please note that I have done nothing but engage in the easy job of armchair criticism here. Accordingly, please do not interpret any of the following as implying any degree of overt criticism of the package as a whole, which really is very impressive. The observations are merely made in the hope that addressing them may serve to improve the package even more.

I'll focus here only on the meta-level of package functionality as presented in the vignettes, and so divide this in to the corresponding sections.

Main vignette

Extending riskmetric

General comments

I'll just offer one initially, regarding function names, the main ones of which are arguably somewhat overly generic: assess, score, and coverage will almost certainly meet namespace conflicts at some stage (and yes, coverage directly calls the covr function of the same name, but loading this package will still issue a namespace conflict warning, which is an undesirable side-effect). As recommended in the rOpenSci guide, it would perhaps be better to simply prefix these with rm_ (so rm_assess, rm_score, and rm_coverage). Note, however, that rm_ is of course used as a common prefix for remove-type functions, although even then mostly only in the qdapRegex package, so still largely free otherwise. Maybe prm_ for package risk metric?

The package seems still "young" enough that this could be done with little consequence. Just a thought ...


Happy to open any of these as individual issues if that would help focus work addressing any of these - just let me know. I'm really looking forward to using, breaking, and extending this fabulous package. Already much indebted to you!

mark

ping @noamross @karthik

dgkf commented 4 years ago

Thanks @mpadge, this is a fantastic write-up and is exactly the type of feedback that helps us to make the package more accessible. Your thorough overview is extremely valuable.

As is evident when looking back at the vignettes and is highlighted by your comments, this package has gone through quite a few structural rearrangements and the language in the vignettes has suffered. I agree with all the suggestions and I think we can break these up into tasks that we can start working through. I think we're reaching the point where we're confident enough with the architecture that we can really invest in making sure everything is clear in our onboarding process.

@elong0527 - how would you feel about organizing a documentation themed sprint for December? that might be a good way of toning down the implementation pieces around the holidays while still moving forward.

elong0527 commented 4 years ago

Thanks @mpadge for the great review. Yeah, @dgkf, I think it is a good idea to focus on documentation in December.