const-ae / ggsignif

Easily add significance brackets to your ggplots
https://const-ae.github.io/ggsignif/
GNU General Public License v3.0
593 stars 43 forks source link

Specify minimum needed R version in DESCRIPTION #136

Closed IndrajeetPatil closed 6 months ago

IndrajeetPatil commented 6 months ago

Looks good. Although, I don't actually think we need to test it on 3.6. I think it is okay to say in the README that we only support versions, for example, >4.0.

See my comment above. Until we actually bump to R > 4.0, I'd like to continue to make sure that the package can at least be installed on R 3.6.

My problem with putting the minimum version in the DESCRIPTION is that it makes it impossible for users who know what they are doing to opt into using ggsignif on older installations.

Yes, but such users can always get the version without minimum requirements from CRAN archive. Anyone who wants to lock themselves into a specific version can always use a project management tool (like renv).

Does that make sense?

IndrajeetPatil commented 6 months ago

I will wait to merge this until you approve the PR.

const-ae commented 6 months ago

But, whether we specify a minimum version in DESCRIPTION or not, it is there. Nobody can install {ggsignif} if they can't even install {ggplot2}. So, for all intents and purposes, we already do have a minimum version; it's just invisible.

In my experience, some people are stuck on cluster systems with wildly outdated R versions (e.g., they might still be on R 3.6). They might have installed ggplot2 years ago and can't update it because they get the error message about the required minimum R version, but they still have a working (though outdated) ggplot installation. Now, they might today discover ggsignif and try to install it.

From my perspective, at that point there are two options:

  1. We matched the R version requirement from a recent version of ggplot2, so the standard installation will fail, and the user would need to use CRAN archive.
  2. We don't have a minimum R version. The package will install and might work just fine, or it may at runtime break due to some incompatibility of ggsignif and ggplot2.

My preference is the latter because not enough people are aware of CRAN archive (or renv). To avoid random breakage, ggsignif should have an accurate version dependency of ggplot2 (however, I wouldn't invest too much time and just base it on bug reports).

On the other hand, I really hope only a tiny percentage of people are still using R 3.6; so in the end, this question is (hopefully) mostly academic and as you have been handling most issues and maintenance, I am happy to defer to your judgement.

IndrajeetPatil commented 6 months ago

I get your point, but I still think it's better to actively isolate the versions of R where we can't guarantee the package is running as expected. Those who want to opt into using the package on those versions can still the appropriate working version from archive. Additionally, the proportion of users affected by these changes are going to be exceedingly miniscule by now.

But cryptic runtime errors that stem from not having set the correct minimum R version (cf. https://github.com/tidyverse/purrr/issues/1045) are far more of a headache to debug.