Remove `repositoryName` from `ModuleSource` API
- Using `ModuleSource` to transport the repository name is a bit of a
mis-use of this type, which was intended to be an opaque memento of
resolution state. (Despite the name indicating otherwise).
- This commit removes `repositoryName` from the API:
This is now only available on the `RepositoryChainModuleSource`,
which attaches a repository identifier to the resolved component result
(in order that it can later look for artifacts in the same repository only).
19 Jul 18 fd798e764b10e8aedb898757b89124bfffdc660c
Add support for emitting information about repositories used during configuration resolution process, and sourced repository for a component (#5959)
- `ResolveConfigurationDependenciesBuildOperationType.Details` now contains a `List<Repository>` eventually provided by all `ResolutionAwareRepository` implementations
- `ResolvedComponentResult` has been subclassed to `ResolvedComponentResultInternal`, to provide the `repositoryName` used as source. This can be `null` in case of project dependency.
- Note that even when artifacts are resolved from the cache, they still convey the original repository that was used as source. The `name` of a repository is guaranteed to be unique inside a given repository container, and we use a single repository container to resolve a given configuration. Hence, the name can be safely used to uniquely identify which repository was used to source components.
- This commit also moves custom serialization logic to the owning type of `SerializedOperation` implementations to their owning types
17 Jul 18 84da08cb029d80f2fdac5800463f8521dbe109ec