Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TL;DR: This PR aims to fix compatibility with the new ggplot2 version.
Hi Malcolm,
We have been preparing a new release of ggplot2 and during a reverse dependency check, it became apparent that the prospective ggplot2 3.5.0 would break ggdag. Given that other packages also import ggdag, we felt it was prudent to help out to transition to the new version.
The culprit of the breakage was the
ScalesListQuiet
class, which (to my best estimate) re-implementsggplot2:::ScalesList
with minor modifications. We made internal changes toggplot2:::ScalesList
, see tidyverse/ggplot2#5144. However, as these changes aren't automatically transferred, ggdag would break.This PR replaces the
ScalesListQuiet
class with a function that adds the customScalesListQuiet$add()
method on the go. This should make ggdag immune to most* changes in theggplot2:::ScalesList
class, and works both with the CRAN version and release candidate of ggplot2.To test the code changes with the release candidate, you can install it with the code below:
The release of ggplot2 3.5.0 is scheduled at the end of January / early Februari. The progress can be tracked in tidyverse/ggplot2#5588.
We are hoping that this PR might help ggside be ready around that time to soften the impact on downstream packages.
* I've added a 'canary in the coal mine'-test for modifications to
ggplot2:::ScalesList$add()
.