Closed RemkoDuursma closed 8 years ago
+1
how much code is broken? Would it not be easier to make a little wrapper for older code, and update it progressively?
grid.ellipse <- function(ar, ...) { gridExtra::grid.ellipse(rho=1/ar, ...) }
I emailed >50 package maintainers depending on gridExtra before this update, and no-one seemed to use the function. In fact, I didn't think of including it until I realised I needed it myself in a project. I had to clean up the implementation, which wasn't very clear.
It is hard to tell how much code is broken - the package maintainers that explicitly depend on gridExtra form a small component of the actual users, I would imagine. My question is more on why compatibility was broken in this case - I see no advantage to the new argument rho instead of ar. I fully understand the tradeoffs when maintaining a package, and sometimes it needs to be broken so it can be fixed.
I don't see how a wrapper is easier than changing the call to ellipseGrob directly in old code?
Why not have an argument ar=NULL
and then if(!is.null(ar))rho <- 1/ar
? This is fairly common in packages that have changed the default arguments.
i don't have a strong view against changing rho to ar, but it may not reach CRAN very soon. See if the development version works for you.
Thanks - I will test it as soon as I can.
Dear developers. We just noticed that recent changes in gridExtra have broken backwards compatibility in ellipseGrob. It used to have an argument
ar
(aspect ratio), which has been changed torho
(the inverse ofar
).Apart from scratching my head why this change was made (is there some advantage?), it would be ideal if ar was still an argument so as to not break lots of code.