Rationalise handling of “current” build operation and build operation ID
For an upcoming change to emit console logging as build operation progress events, we need to associate all progress logging with the build operation. This pulled a thread on some long overdue cleanup.
The end result is:
1. Base build operation infrastructure is consolidated org.gradle.internal.operations.
2. Mechanism for passing thread global current build operation is more test friendly, and better named.
3. A consistent mechanism is used for binding the current operation to the thread, instead of two mechanisms.
4. Build operation IDs are typed to OperationIdentifier.
There is no public API or user behaviour change.
06 Mar 18 bb104be7d25edd589a47185026663c744a2e2ae0
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.
20 Dec 17 af9c80a3d7308019234ce097a21d52c42f1fdc2c