Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Migrate remaining tests from SkipCachedTaskExecuterTest to CacheStepTest

    • -205
    • +0
  1. … 2 more files in changeset.
Force non-incremental execution after cache load failure

Previously when handling a failed load we did clean the outputs of the work, but ended up allowing incremental execution nevertheless. This is now fixed.

  1. … 23 more files in changeset.

  1. … 16 more files in changeset.
Remove unused TaskExecutionContext.executionTime

  1. … 2 more files in changeset.
Undo rename of TaskProperties

  1. … 23 more files in changeset.
Move more things to properties package

  1. … 35 more files in changeset.
Pass whether results are reused separate from origin metadata

  1. … 32 more files in changeset.
Rename TaskArtifactState to TaskExecutionMode

    • -17
    • +13
  1. … 18 more files in changeset.
Remove unused method

  1. … 4 more files in changeset.
Add a few unit tests for CacheStep (#7985)

We should add some better tests when we extracted even more of the

execution engine.

    • -112
    • +0
  1. … 2 more files in changeset.
Use a more direct visitor

This avoids having to create a bunch of object instances when we are caching and stuff.

  1. … 25 more files in changeset.
Snapshot mutated outputs on the return branch

  1. … 14 more files in changeset.
Simplify how we snapshot outputs after loading from cache

I'm sure I did something to make this simpler, but I can't really say what. It does compile and some tests pass at least. Onwards!

    • -1
    • +16
  1. … 8 more files in changeset.
Move build cache packaging and execution to build-cache-packaging

With this change the build cache becomes independent of tasks, so that in future it can be used to cache things like artifact transforms and Kotlin build scripts via a unified interface.

    • -21
    • +31
  1. … 71 more files in changeset.
Merge ActionFiringTaskExecuter into ExecutionStep

  1. … 20 more files in changeset.
Release project state lock while working with the build cache

  1. … 2 more files in changeset.
Address some review feedback

    • -15
    • +1
  1. … 2 more files in changeset.
Disable caching when lambda is used as input

We disable caching an up-to-date checks whenever a lambda is used as


    • -17
    • +1
  1. … 23 more files in changeset.
Rename some more snapshots -> fingerprints

  1. … 22 more files in changeset.
Retain hierarchical structure in file system mirror (#5844)

The `FileSystemSnapshotter` now returns a root for each snapshotted file, possible containing all the children in hierarchy as the directory would no the file system.

This PR also contains some performance related changes:

- Stop interning path segments: That was only necessary when we stored the same path segments in many RelativePath objects. We don't do this any more, so interning should not be necessary and make things faster.

Actually, up-to-date assemble on largeMonolithicJavaProject (parallel false)

is about 40ms faster with this change (2.5 %).

- Don't use IndexedNormalizedFileSnapshots: It seems like there are no real performance gains by using IndexedNormalizedFileSnapshots.

  1. … 131 more files in changeset.
Fix non-detected stale output file removal (#4264)

  1. … 20 more files in changeset.
Fix test

    • -13
    • +20
Initial implementation of store()

  1. … 3 more files in changeset.
Initial implementation of load()

  1. … 21 more files in changeset.
Remove some wrong timing loggings (#3860)

* Remove some wrong timing loggings

The time which was captured for up-to-date checks is wrong, since it

did not include actual snapshotting any more.

The time captured how long it took to load/unpack from the cache now

would have included the time it took to snapshot the inputs, too.

These timings are much better captured by the corresponding build

operations, so we remove the log entries for now.

Signed-off-by: Stefan Wolf <>

  1. … 7 more files in changeset.
Emit the origin build invocation ID and execution time of tasks reusing outputs (#3846)

Previously, we emitted the build invocation ID for both up-to-date and from-cache,

but emitted the original execution time only for from-cache. This is now unified.

Moreover, these values now reflect the true origin when from-cache outputs are reused as part of incremental build. Previously, the values from the first build to consider the task up-to-date after a from cache was considered as the origin for subsequent executions. Now, the origin information is kept from the from-cache execution.

    • -6
    • +18
  1. … 46 more files in changeset.
Support rich task inputs (#3720)

@Nested inputs are now discovered based on the runtime type instead of the static type.

    • -14
    • +20
  1. … 150 more files in changeset.
Report original execution time in unpack operation results

  1. … 9 more files in changeset.
Use snapshots while packing task outputs (#2756)

We've already collected snapshots after the task, so no need to walk the file system again.

    • -4
    • +15
  1. … 16 more files in changeset.
Update snapshots while unpacking task outputs (#2745)

Previously we were naively extracting task outputs, and then snapshot

them in a separate step, just as if the output was generated by some

unknown process. However, during unpacking we already know everything we

need to also do the snapshotting. This speeds up the unpacking process


  1. … 46 more files in changeset.