Revert the initial implementation of capabilities
Revert "Remove the `Preference` inner class"
Revert "Add test case showing limitation of the current implementation of capabilities"
Revert "Report error whenever two modules in the graph disagree on a preference"
Revert "Support capabilities with project dependencies"
Revert "Consume capabilities from external modules"
Revert "Handle case of conflicting resolution in case multiple capabilities are found"
Revert "Make sure that conflict resolution on version still kicks in"
Revert "Wire capabilities handling into conflict resolution"
Revert "Introduce `CapabilitiesHandlerInternal`"
Revert "Validate module notations in capabilities"
Revert "Introduce the concept of "capabilities""
This reverts commit a6248b2c4e7a810051112fc2169c97d341b9f007.
This reverts commit 76e88732f403d1b295c879bdee0b0a92887e4173.
This reverts commit d9dbe0f6d909604d31857504133440f92996d3f3.
This reverts commit ac3ffa467dd73314b4526b79df3cedf6db4e6c13.
This reverts commit 97f523cd78cdca3819a8a6d65d33b72f8b972646.
This reverts commit d4c02e3f13340ce2d6114cd17f741ac51fee7796.
This reverts commit 4d4d71eb26a2828ff37fe700ae55530d9fff711d.
This reverts commit b0c962468a54affd3eaad8a5df698287d5a1ab4f.
This reverts commit 4030f642397f46330670b99cd6252e92684c53a1.
This reverts commit 80f39f5465990c870dac59b61ade4d8c68839fe2.
This reverts commit 8c0e02833303ea1a6a4e57af48278f24672c98ff.
08 Mar 18 f59f282a77a60aebe9f5103649c4ea16244015fc
Consume capabilities from external modules
This commit introduces the ability to consume capabilities from external
modules. This is a pretty big change for multiple reasons:
- capabilities are no longer known beforehand (before resolution starts) but
can be discovered as we add more nodes to the graph
- conflict resolution cannot fail fast anymore, since it is possible for a
module to declare a capability that triggers a conflict with another module
in the graph, but a 3rd party module can express a preference
- capabilities are consumed from Gradle metadata files
- capabilities from the local component and capabilities from the graph are
merged during resolution
Capabilities are, in published metadata, available at the component level,
with the assumption that capabilities are the same for all variants. It is
not necessary for a module to express a preference for a capability, as
a 3rd party module can declare only a preference, for example.
20 Feb 18 e986495954b74b2adf63c518a40bba1c8e603291