Make new utilities not completely bypass capabilities #234
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.
The new
inherits.from
anddepends.on
utilities completely bypass all the nice checks that gradle's dependency resolution does by just naively combining two file collections instead of going through dependency resolution. This is obviously Not Good, because it means the sort of guarantees provided by stuff like capabilities -- guarantees that mod authors like myself may be expecting consumers to be able to rely on -- just plain don't hold. This PR makes those all go through dependency resolution, as they ought to. I would highly recommend the use of feature variants and self-project-dependencies instead ofdepends.on
, and the use of shared parent configurations instead ofinherits.from
, because both of those provide a mechanism to keep some dependencies internal to the inherited/depended source set, but these two utilities should at least not break the nice guarantees that gradle can provide us.