Pass variant attributes down to `DefaultArtifactSet` to avoid passing the rules thereThis doesn't prevent the rules from being applied multiple times, but it will: now thevariant attributes are passed, meaning that once we cache the application of the rules,they will only be computed once.Signed-off-by: Cedric Champeau <firstname.lastname@example.org>
Retain the value of a variant attribute as an isolated value, rather than retaining the original value. Attribute values are snapshot at the point where the attribute is registered and are isolated from further changes to the original value. This change allows attribute matching to more safely happen in parallel and means that attribute values can behave more consistently with other features that use isolated and snapshot values, such as task inputs or artifact transforms.
Added a public API reachable from `DependencyHandler` that allows a plugin to define attributes that should be attached to artifacts with a given extension, for example when consuming a Maven module or files defined by a file dependency.The intention is that this meta-data about artifact types would complement (and maybe serve as input for) additional meta-data attached to a Maven/Ivy/local module by various meta-data rules.