Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix deserialization of `Directory` instances from the instant execution cache so that they use the correct base directory to resolve files and directories.

  1. … 14 more files in changeset.
Let instant execution serialize enum subtypes correctly

Fixes #12301

  1. … 1 more file in changeset.
Simplify the implementation of `GeneratedSingletonFileTree`.

  1. … 21 more files in changeset.
Expose the location that a file tree will generate its contents into to the structure visitor.

Use this to implement mapping a file collection to an Ant structure by visiting the file collection structure and remove the special case implementation.

  1. … 33 more files in changeset.
Add a system property to force the invalidation of the instant execution cache, to use to benchmark or profile writing to the instant execution cache.

Do not write the source paths for a `CopySpec` multiple times to the instant execution cache.

Previously, these were written once when the `CopySpec` was serialized and once when the associated input property spec was serialized.

This commit adds some special case handling for this case. It also preserves the identity of each `FileTree` and `FileCollection` instance for each task to enable short circuiting when the same file collections are referenced via multiple paths, such as in the `CopySpec` case.

  1. … 39 more files in changeset.
Track the source paths for a `CopySpec` in a `ConfigurableFileCollection` rather than a `Set<Object>`.

This will allow instant execution serialization to better deal with serializing these paths.

  1. … 2 more files in changeset.
Do not serialize multiple copies of a `CopySpec` to the instant execution cache, for a given task.

Previously, certain specs and their children would be written several times. For example, the `metaInf` spec for a `Jar` task would be written twice, which includes the manifest generation.

This not only avoids the cost of writing the same data several times but also the cost of calculating the spec contents several times, which can be expensive.

  1. … 1 more file in changeset.
Let Gradle build timestamp `ValueSource` implement `Describable`

  1. … 1 more file in changeset.
Slightly improve handling of Jar manifests when loading from the instant execution cache, so that Jar tasks are up-to-date on first load from the instant execution cache when nothing has changed.

  1. … 18 more files in changeset.
Report changed configuration file causing the ie cache not to be reused

  1. … 1 more file in changeset.
Remove special casing of `SystemPropertyValueSource` when checking the ie cache fingerprint

As it's no longer needed since the change to load the properties very early in

the build.

  1. … 3 more files in changeset.
Extract `ValueSource` description from its `Describable` implementation

  1. … 1 more file in changeset.
Serialize intersection `PatternSet` instances to the instant execution cache.

This fixes an issue where the Java compilation task for a source set would attempt to compile non-Java source files found in the source set.

  1. … 4 more files in changeset.
Serialize more details of the project hierachy to the instant execution cache, so that each project's project directory is correct.

Also correctly recreate the project hierarchy. Previously some projects would not be connected to their parent project.

  1. … 14 more files in changeset.
Polish `InstantExecutionStartParameter`

- Rename property for consistency and clarity

Reuse `unsafeLazy`

Remove `InstantExecutionStartParameter.systemPropertyArg`

It is no longer needed since Gradle started loading system properties earlier in

the build.

Move instant execution cache fingerprint code to `fingerprint` package

Remove no longer needed `InstantExecutionPropertiesLoader`

Serialize the task output `upToDateWhen` spec, if present, to the instant execution cache.

  1. … 5 more files in changeset.
Don't use valid task name characters as meta characters in the ie cache key

Change `Provider.map()` and `Provider.flatMap()` to allow `null` to be returned by the mapping function.

  1. … 16 more files in changeset.
Preserve cache key format when there are no excluded task names

Polish `DefaultInstantExecution`

Add excluded task names to the instant execution cache key

Add relative invocation dir to the instant execution cache key as needed

Because relative task names are resolved relative to the enclosing subproject

according to the invocation dir (`StartParameter.currentDir`).

  1. … 5 more files in changeset.
Polish `DefaultInstantExecution`

Let instant execution honor the build layout

  1. … 1 more file in changeset.
Use `LazyThreadSafetyMode.NONE` for lazy values used by single-threaded code

    • -0
    • +26
    ./kotlin/org/gradle/instantexecution/extensions/unsafeLazy.kt