Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Introduce a factory service to create instances of `TaskDependency`, to allow the implementations to be contextualized and to use types that aren't part of the (internal) core API.

Use this factory in `DefaultConfigurableFileCollection`.

    • -0
    • +41
    ./DefaultTaskDependencyFactory.java
    • -0
    • +21
    ./TaskDependencyFactory.java
  1. … 38 more files in changeset.
Removing a task dependency from a task instance is no longer supported (#10289)

  1. … 2 more files in changeset.
A work node receives a context that exposes the build scoped services, rather than an empty registry, when the node is not associated with a project. This means that a node implementation does not have to carry build scoped services around in case it does not end up have an owning project, and can just locate the execution services it needs via its context when it runs.

  1. … 5 more files in changeset.
Decouple work node implementations from projects a little, so that a node is given a context through which it can locate its execution services, rather than using a project service registry directly.

    • -0
    • +26
    ./NodeExecutionContext.java
  1. … 19 more files in changeset.
Add missing @Override to all modules

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -0
    • +1
    ./CachingTaskDependencyResolveContext.java
  1. … 999 more files in changeset.
Simplify how task input dependencies are discovered by `TaskInput`, so that the dependencies are visited instead of being added as artificial elements of the input file collection.

Also simplify the resolution of task dependencies provided by `TaskDependencyContainer` and `Provider` instances.

    • -0
    • +4
    ./CachingTaskDependencyResolveContext.java
  1. … 8 more files in changeset.
Fix task dependency inference when a mapped task output file `Property` is used as input to an `@Input` on another task.

Move some test utility methods out of the artifact transform tests into a more general place, and reuse in some of the task dependency inference tests.

    • -12
    • +0
    ./AbstractTaskDependencyResolveContext.java
    • -13
    • +0
    ./FailureCollectingTaskDependencyResolveContext.java
  1. … 25 more files in changeset.
Pass around empty service registry

instead of `null`.

  1. … 4 more files in changeset.
Pass fingerprinter registry into transformer (invoker)

  1. … 13 more files in changeset.
Allow a `WorkNodeAction` to declare which project it will require access to when it runs, if any. Use this to ensure that the project lock is held when resolving the dependency graph prior to running artifact transforms that take artifact dependencies as input.

  1. … 8 more files in changeset.
Allow `TaskDependencyContainer` instances to declare a dependency on arbitrary actions that should be run as nodes in the execution graph.

    • -0
    • +24
    ./WorkNodeAction.java
  1. … 4 more files in changeset.
Simplify the injection of artifact transform build dependencies factory into the `ConsumerProvidedVariant` so that it is consistent with the injection of the artifact transform dependencies themselves.

  1. … 18 more files in changeset.
Extract a common implementation of `TaskDependencyResolveContext` that is shared in a couple of places.

    • -0
    • +73
    ./FailureCollectingTaskDependencyResolveContext.java
  1. … 2 more files in changeset.
Change various buildable dependency resolution types to extend `TaskDependencyContainer` rather than providing their own contract for visiting their dependencies.

This removes the need for adapters when visiting the build dependencies of dependency resolution types as part of visiting the dependencies of a task.

  1. … 24 more files in changeset.
Change the contract through which a task finalization action is declared when visiting build dependencies, so that it is similar to how other dependencies are visited.

This change moves some complexity out of the dependency resolution artifact types and into the task dependency infrastructure, which is a better home for it and where it can be simplified.

    • -3
    • +10
    ./CachingTaskDependencyResolveContext.java
    • -0
    • +29
    ./FinalizeAction.java
  1. … 6 more files in changeset.
Simplify implementation of file collection build dependency visiting, by assuming that `TaskDependencyResolveContext` implementations honor this contract.

  1. … 3 more files in changeset.
Replace `BuildDependenciesVisitor` with `TaskDependencyResolveContext` so that the same visitor type is used to visit the build dependencies of a configuration/variant/artifact as is used to visit the build dependencies of other things.

    • -0
    • +7
    ./AbstractTaskDependencyResolveContext.java
    • -1
    • +10
    ./TaskDependencyResolveContext.java
  1. … 25 more files in changeset.
Merge remote-tracking branch 'origin/release'

  1. … 4 more files in changeset.
Avoid locking the target project of project dependencies during task execution.

During work graph calculation, add an action that runs immediately after the producing task of an artifact completed that caclculates the dependency resolution metadata for that artifact. This happens before the consuming tasks are started, and so is available without locking when those tasks execute. Previously this calculation was done by consuming tasks, and they would need to lock the target project to do this.

This strategy works only for those tasks that declare that they will need these files (e.g. are declared as inputs in some form). For tasks that do not declare these inputs (possibly because there is no easy way to do so yet), the action is not added and the locking will still occur when the consuming task executes.

The implementation bolts a new concept onto the task nodes, as an increment towards making these actions real nodes in the graph that can be scheduled in the normal way.

    • -0
    • +10
    ./CachingTaskDependencyResolveContext.java
  1. … 23 more files in changeset.
Rename Transform -> Transformation

  1. … 36 more files in changeset.
Rework task dependency inference so that `Provider` implementations use the same `TaskDependencyContainer` interface that most other things use to declare their producer task to the task resolution infrastructure, rather than having special knowledge sprinkled around various places.

Cleaned up a bunch of `Provider` and `Property` implementations so that more logic is reused rather than reimplemented.

    • -0
    • +32
    ./AbstractTaskDependencyResolveContext.java
    • -7
    • +1
    ./CachingTaskDependencyResolveContext.java
  1. … 27 more files in changeset.
Replace some special cases that are handled by `DefaultTaskDependency` with types that implement `TaskDependencyContainer` instead.

  1. … 4 more files in changeset.
Fix deprecation messages in tests

  1. … 3 more files in changeset.
Fix deprecation messages

  1. … 1 more file in changeset.
Support propagation of the producer task for provider instances that are created using `Provider.map()`.

Now, when a provider represents a task or task output, whether mapped or not, that task is taken as the producer of the value and the mapping function is not called. Otherwise, the value of the provider is unpacked and resolved, as it previously was.

Rework the protocol by which providers communicate their build dependencies to consumers.

    • -0
    • +7
    ./CachingTaskDependencyResolveContext.java
  1. … 32 more files in changeset.
Move task dependency implementation and resolution types from 'files' to 'modelCore' project.

    • -0
    • +44
    ./AbstractTaskDependency.java
    • -0
    • +121
    ./CachingTaskDependencyResolveContext.java
    • -0
    • +296
    ./DefaultTaskDependency.java
    • -0
    • +24
    ./RealizableTaskCollection.java
    • -0
    • +27
    ./TaskDependencyContainer.java
    • -0
    • +37
    ./TaskDependencyInternal.java
    • -0
    • +45
    ./TaskDependencyResolveContext.java
    • -0
    • +27
    ./TaskDependencyResolveException.java
    • -0
    • +24
    ./TaskReferenceInternal.java
    • -0
    • +53
    ./WorkDependencyResolver.java
  1. … 15 more files in changeset.