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.
Branched from #926. Implemented in a standalone compat file that can be copied in zero-dep packages, but will eventually be exported from rlang as well.
Sometimes a package is updated with known breaking changes. Broken downstream dependencies can then be updated to fix the breakage and bump the required version of the upstream package in their DESCRIPTION file. However that doesn't cover the common case of updating the upstream dependencies independently. Since there is no way of specifying minimal versions of downstream dependencies in DESCRIPTION, the downstream packages won't be updated even though they are no longer compatible. This can result in surprising and hard to debug behaviour.
The goal of
check_downstream_deps()
is to reduce friction when breaking updates are released with known downstream dependencies requirements. One instance where these requirements are known ahead of time is when the maintainer owns both the upstream and downstream packages and coordinates a joint release to CRAN.check_downstream_deps()
takes named vectors ofmin
andfrom
components.min
is the minimum version of the downstream package that is compatible with the upstream package.from
is the earliest version of the upstream package that is compatible with that minimum version. For instance here is the downstream-deps spec for rlang:If the user has updated rlang but not dplyr, they get this warning once the load is complete:
As in #926, Windows users receive specific advice about safe installation on that platform: