Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Remove synthetic accessors for internal private symbol references

    • -3
    • +3
    ./DefaultBuildOperationListenerManager.java
    • -12
    • +12
    ./DefaultBuildOperationQueue.java
  1. … 900 more files in changeset.
Add missing @Override to all modules

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

  1. … 1005 more files in changeset.
Add missing @Override to all modules

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

  1. … 999 more files in changeset.
Convert net.jcip.annotations to javax.annotation.concurrent annotations

  1. … 67 more files in changeset.
Add ExecutingBuildOperation

And use it to track input snapshotting and build cache key calculation.

    • -0
    • +5
    ./DelegatingBuildOperationExecutor.java
    • -0
    • +48
    ./ExecutingBuildOperation.java
  1. … 11 more files in changeset.
Don't show artifact transformation headers (#7421)

The headers for artifact transforms should not show up in the build

log if there is no output from the transformations.

That makes the console log much cleaner, especially for the plain and

verbose console.

The logging for artifact transformations still shows up in build scan

logs or if the transformation produced some output.

  1. … 6 more files in changeset.
Use more conventional hash code for OperationIdentifier

Remove BuildOperationNotificationListener2

Not used anymore by the build scan plugin from 2.0-RC1

    • -47
    • +0
    ./notify/BuildOperationNotificationListener2.java
    • -9
    • +0
    ./notify/BuildOperationNotificationListenerRegistrar.java
Retire worker lease service callable methods in favor of Factory methods

  1. … 8 more files in changeset.
Simplify BuildOperationNotificationListenerRegistrar

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

version required for Gradle 5.0+.

    • -2
    • +4
    ./notify/BuildOperationNotificationListener.java
    • -1
    • +1
    ./notify/BuildOperationNotificationListener2.java
    • -13
    • +2
    ./notify/BuildOperationNotificationListenerRegistrar.java
  1. … 7 more files in changeset.
Fix handling of InterruptedExceptions

These exceptions were handled incorrectly throughout the whole

codebase, usually rethrown without restoring the interrupt status

or discarded entirely. This means that the system would not stop

executing even though the user wanted it to. In some cases this

also left the system in an inconsistent state, leading to deadlocks.

The most notable changes include:

- UncheckedException.rethrow automatically restores the interrupt status

- AsyncDispatch is guaranteed to deliver its messages, even when interrupted

- ExecHandle cancels the started process if it is interrupted while waiting

- ExecHandle disconnects from the process' output before killing it

- The worker API cancels the started work items if it is interrupted

- ManagedExecutors shut down immediately if they are interrupted while stopping

- We no longer log exceptions caused by interruption to the console

- Interrupting our caches no longer leaks file locks

  1. … 38 more files in changeset.
Document build operations categories

  1. … 3 more files in changeset.
Use new BuildOperation category for transforms (#6186)

So they show up in the console and in build scans.

  1. … 4 more files in changeset.
Change the console build status rendering to use the progress operation events associated with various build operations rather than injecting some additional synthetic progress events into the event stream to communicate this information. This avoids the cost of handling these additional events.

As a side benefit, the configuration phase % complete calculation now takes included builds into account.

  1. … 24 more files in changeset.
Always generate task realization and registration build operations and remove the magic flag that used to enable this.

  1. … 3 more files in changeset.
Remove outdated comment

    • -8
    • +0
    ./notify/BuildOperationStartedNotification.java
Emit build operations for task registration / realization (#5610)

* Wire in op executor to task container

* Add internal task id

* Add binary compatibility exception

* Add as-light-as-possible build ops for eagerly created tasks

* Use op task ids when creating tasks

* Emit light build ops for lazily realized tasks

* Only fire task creation build ops when collecting task stats

* Provide rich details for task creation build ops

* Use groovy method rather than JDK8 method

* Wire in op executor to task container

* Add internal task id

* Add binary compatibility exception

* Add as-light-as-possible build ops for eagerly created tasks

* Use op task ids when creating tasks

* Emit light build ops for lazily realized tasks

* Only fire task creation build ops when collecting task stats

* Provide rich details for task creation build ops

* Use groovy method rather than JDK8 method

* Change test to use new register method

* Make NullBuildOperationExecutor a singleton

* Add note about opt-in to operations being empty

* Consolidate name/type/uniqueId into TaskIdentity

Reduces the number of args flying around, consolidates how identity paths etc. are calculated and enforces only one instance of such paths.

* Don't nest realize op for eagerly created lazy task

* Add test for nesting of task realize build ops

    • -0
    • +72
    ./NullBuildOperationExecutor.java
  1. … 25 more files in changeset.
Fix the parent relationship of a bunch of build operations, to reflect where the work is actually happening (which is the intention of this relationship), rather than to which build the work belongs (which is a different relationship, conveyed by the details of the operation).

  1. … 8 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.

    • -0
    • +43
    ./BuildOperationListenerManager.java
    • -0
    • +131
    ./DefaultBuildOperationListenerManager.java
  1. … 16 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.

  1. … 50 more files in changeset.
Add files missed from bad merge.

    • -0
    • +26
    ./BuildOperationCategory.java
    • -0
    • +154
    ./BuildOperationDescriptor.java
    • -0
    • +31
    ./BuildOperationListener.java
    • -0
    • +27
    ./BuildOperationRef.java
    • -0
    • +48
    ./CurrentBuildOperationPreservingRunnable.java
    • -0
    • +59
    ./CurrentBuildOperationRef.java
    • -0
    • +38
    ./DefaultBuildOperationRef.java
    • -0
    • +53
    ./DelegatingBuildOperationExecutor.java
    • -0
    • +51
    ./OperationFinishEvent.java
    • -0
    • +39
    ./OperationProgressEvent.java
    • -0
    • +29
    ./OperationStartEvent.java
  1. … 5 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.

    • -45
    • +0
    ./BuildOperationIdentifierPreservingRunnable.java
    • -39
    • +0
    ./BuildOperationIdentifierRegistry.java
  1. … 144 more files in changeset.
rename interface to fix Checkstyle

    • -0
    • +47
    ./notify/BuildOperationNotificationListener2.java
    • -1
    • +1
    ./notify/BuildOperationNotificationListenerRegistrar.java
    • -47
    • +0
    ./notify/BuildOperationNotificationListener_2.java
  1. … 2 more files in changeset.
Introduce build operation progress events, only used for conveying test output to build scans currently.

    • -1
    • +1
    ./notify/BuildOperationNotificationListener.java
    • -1
    • +9
    ./notify/BuildOperationNotificationListenerRegistrar.java
    • -0
    • +47
    ./notify/BuildOperationNotificationListener_2.java
    • -0
    • +53
    ./notify/BuildOperationProgressNotification.java
  1. … 19 more files in changeset.
Minus 1 when submit `max-workers` to thread pool (#3281)

Fix https://github.com/gradle/gradle/issues/3273

Currently, we allow main thread (i.e. the thread which is waiting for build operation queue's completion)

to execute some work. The consequence is, the actual worker number is max-workers number +1. Since we

can't set --max-workers=0 via command line, that means the work would always be executed parallelly.

This commit only submit `max-workers`-1 threads to thread pool to avoid this issue.

* Remove @Ignore of DependencyUnresolvedModuleIntegrationTest

We fixed the possible issue with `max-workers` (see #3273),

this commit removes @Ignore in DependencyUnresolvedModuleIntegrationTest

  1. … 1 more file in changeset.
some minor cleanup

  1. … 3 more files in changeset.
Simplify test emmitting build operations to only emmit to BuildOperationListener without touching BuildOperationExecutor

  1. … 9 more files in changeset.
simplify emmitting child build operations

  1. … 2 more files in changeset.
Simplify emitting test output build operations

  1. … 3 more files in changeset.
Add build operation for text output in test

  1. … 3 more files in changeset.