operations

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Inline org.gradle.testing.internal.util.Specification

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 53 more files in changeset.
Inline org.gradle.testing.internal.util.Specification

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 53 more files in changeset.
Inline org.gradle.testing.internal.util.Specification

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 52 more files in changeset.
Inline org.gradle.testing.internal.util.Specification

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 53 more files in changeset.
Fix unit tests

    • -1
    • +8
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 1 more file in changeset.
Fix error in handling debug logging created before run build build op has started

    • -4
    • +1
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 1 more file in changeset.
Fallback to attach output from external threads to root build operation

    • -3
    • +9
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 2 more files in changeset.
Re-add deleted-by-mistake tests

#6999

    • -1
    • +233
    ./notify/BuildOperationNotificationBridgeTest.groovy
Simplify BuildOperationNotificationListenerRegistrar

Only keep the method used by build scan plugin 2.0, which is the minimum

version required for Gradle 5.0+.

    • -246
    • +9
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 9 more files in changeset.
Remove the 'parent build operation' property from `ProgressStartEvent` as this can be inferred from the other properties. Reduce the amount of mapping required to perform console output grouping and to simplify the output event stream before it is seen by any consumers.

    • -1
    • +1
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 11 more files in changeset.
Merge the 'short description' and 'status' properties on progress start events, to avoid the cost of tracking and serializing these separately.

    • -1
    • +1
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 22 more files in changeset.
Allow a build operation notification listeners during continuous build (#5453)

This accidentally worked < 4.7. In 4.7 the notification bridge became cross session scoped in order to support bridging the logging output to progress notifications. This broke what was accidentally working, by retaining the notification listener across builds of a continuous build.

This change restores the accidental support by explicitly clearing the bridge state after each build of a continuous build, allowing a new listener on the subsequent build.

    • -9
    • +37
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 12 more files in changeset.
Allow build operation listeners to log (#4693)

This change moves build operation listening out of the standard listener infrastructure, to remove serialisation guarantees. As logging output now causes build operation notifications, whenever a build operation listener logged something it would fail due to the listener manager blocking overlapping signals.

By moving build operation listening out, overlapping and concurrent signals are now allowed.

This places more responsibility on listener implementations (e.g. thread safety), but there are few and they are all internal.

Additionally, listeners will now never receive progress notifications before start notifications and after finish notifications for that operation.

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 18 more files in changeset.
Avoid deadlock between output event renderer and listener manager (#4661)

Previously, the output event listener that forward build op notifications was downstream of the output event renderer, which has its own lock. It was possible to deadlock between this lock and the global listener manager lock.

Now, the build op notification forwarder is a peer of the renderer, so is not notified under its lock.

    • -6
    • +6
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
  1. … 12 more files in changeset.
Emit build operation progress events for logging output (#4537)

* Tweak BuildOperationListener#progress api

* Use build operation id to reference progress

* Add workaround for tracing log output via build operation progress for composite builds

* Replace some Object typing of operation identifiers with OperationIdentifier.

* Associate all progress logging with the current build operation.

* Update logic to accommodate for all progress events now having build operation IDs.

* Don't allow ProgressStartEvent.buildOperationCategory to be null.

** Default it to uncategorized.

    • -0
    • +92
    ./logging/LoggingBuildOperationProgressBroadcasterTest.groovy
    • -4
    • +10
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 49 more files in changeset.
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.

    • -8
    • +12
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 147 more files in changeset.
Include GradleBuild task build operations in the build operation tree (#4560).

This is the conceptual intent. Furthermore, it's necessary for build operation notification based log output which will be required for scans.

    • -26
    • +20
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 26 more files in changeset.
rename interface to fix Checkstyle

    • -9
    • +9
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 4 more files in changeset.
Introduce build operation progress events, only used for conveying test output to build scans currently.

    • -0
    • +67
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 22 more files in changeset.
Reduce/confine the mutability in build operation notification bridge.

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 1 more file in changeset.
Expose operation start/finish timestamps on notifications. (#2834)

* Expose operation start/finish timestamps on notifications.

* Add since.

    • -15
    • +18
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 3 more files in changeset.
Use a fresh transforming listener when recorded operations are not required

Instead of tracking the recorded operation stream to ensure that we don't

emit finish events for 'unstarted' operations, we instead create a new

transforming operation listener and completely discard the recorded notifications.

    • -13
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 1 more file in changeset.
Rename new interface method

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 3 more files in changeset.
Make BuildOperationNotificationListenerRegistrar compatible to build scan plugin 1.8

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 3 more files in changeset.
Replace `BuildOperationRecorder` with thread-safe recording listener

    • -12
    • +23
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 3 more files in changeset.
Moved `BuildOperationNotificationServices` to BuildTree scope

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 6 more files in changeset.
Improve the way the BuildOperationRecorder is started

- Explicitly initialize `BuildOperationNotificationBridge` when starting

Gradle instance.

- Move BuildOperationRecorder to (effective) build-tree scope.

- Move BuildOperationRecorder into o.g.internal.operations.notify

    • -2
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 6 more files in changeset.
fix unit test after reworking recorder handling

    • -1
    • +0
    ./notify/BuildOperationNotificationBridgeTest.groovy
Provide more details about already registered listener (classname)

    • -5
    • +5
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 2 more files in changeset.
Avoid instanceof when comparing recorded BO event type for forwarding to listener

    • -1
    • +1
    ./notify/BuildOperationNotificationBridgeTest.groovy
  1. … 2 more files in changeset.