OutputSpecification.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use ISO 8601 log format for logged daemon messages

  1. … 4 more files in changeset.
Use ISO 8601 log format for logged daemon messages

  1. … 4 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. … 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. … 22 more files in changeset.
Transform the logging event stream prior to processing it, to discard progress operations that are not interesting to the logging subsystem. This reduces the amount of work required to process the stream, e.g. to write the events to the daemon client or track the state of each operation to group output or draw the dynamic console output.

  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.

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

  1. … 147 more files in changeset.
Fix behavior after rebasing from master

  1. … 6 more files in changeset.
Use common output chain for grouping and header generation

This allows us to group logs for print streams like stdout and stderr.

Use PrettyPrefix header for all output chains, making our output

consistent between rich and plain console modes.

Adjust functional test coverage to accomodate for new task header

  1. … 111 more files in changeset.
Revert "Revert "Clean up output event listeners for console chain""

This reverts commit 81dc8db94fe2dca893ddc107693ca34a7dd61eeb.

  1. … 12 more files in changeset.
Revert "Clean up output event listeners for console chain"

This is due to unexpected perf test failure.

This reverts commit 6b64ec421a95024054190d5853c6e1228d24170a.

  1. … 12 more files in changeset.
Clean up output event listeners for console chain

This change removes the use of the BatchOutputEventListener,

unifying the update logic for event listeners to use

UpdateNowEvents.

Issue: #2221

  1. … 12 more files in changeset.
Clean up output event listeners for console chain

This change removes the use of the BatchOutputEventListener,

unifying the update logic for event listeners to use

UpdateNowEvents.

Issue: #2221

  1. … 12 more files in changeset.
Send total progress for progress logging with the progress start event

  1. … 17 more files in changeset.
Add explicit knowledge about failure to ProgressCompleteEvent

  1. … 18 more files in changeset.
Color the progress bar in the console

For this, the ProgressEvent is enriched with the actual progress

information as int values and the progress bar rendering is moved

to the client.

  1. … 20 more files in changeset.
Periodically forward output of long running task

  1. … 8 more files in changeset.
Rename progress.BuildOperationType to BuildOperationCategory

  1. … 16 more files in changeset.
Remove unnecessary fields from progress events

This change removes the category from progress and progress

complete events. They are never used in logging because the

category from the start event is used for generated log messages.

Similarly, the timestamp is removed from progress events as it's

never used.

Finally, the description for progress complete events is never

used.

All of these reduce the serialization burden of a now much-larger

number of progress events, resulting in improved performance.

  1. … 11 more files in changeset.
Handle progress events without message (#1988)

  1. … 2 more files in changeset.
Group logs by project and task

Introduces a BuildOperationType enum and adds it to the

default BuildOperationDescriptor. Passes this information

to the logging infrastructure through the BuildOperationExecutor.

All BuildOperations now have a ProgressLogger. This allows

progress logging to maintain a heirarchy of build operations,

otherwise we would not be able to group many log events.

ProgressStartEvents are given additional information in a

compact form to allow a tree of build operations to be

maintained and their operation types associated. This allows us

to associate log events who aren't fired by progress logging to

still be grouped.

A LogGroupingOutputEventListener uses these build operation

types and the build operation heirarchy to buffer and output

logs related to tasks and project configurations.

Issue: #1818

  1. … 30 more files in changeset.
Add build operation types to log events

This will allow OutputEventListeners to react to output events

from different types of operations differently.

Remove BuildProgressLogger and move progress bar logic and

rendering to BuildStatusRenderer where it belongs.

Issue: #1818

  1. … 46 more files in changeset.
Revert some logging changes

- Move OperationIdentifier back to logging and use Objects for

BuildOperation ids

- Remove log event builders and use plain constructors to avoid too

much garbage

  1. … 54 more files in changeset.
Mark log events with their associated build operation id

Use BuildOperationIdentifierRegistry in all of the places where

we generate renderable output events to set build operation id.

Serialize Operation identifiers coming from forked processes.

Use Builder pattern for constructing renderable output events to

avoid an explosion of constructors while maintaining forward

compatibility. (0 uses of StyledTextOutputEvent in non-forked

repos, so removed those constructors, they're internal anyway)

Reuse BuildOperation ids through progress logging where we

can.

Issue: #1611

  1. … 55 more files in changeset.
Build elapsed time summary (#1689)

* Indicate Gradle's continued progress in the format `3h 23m 2s`

* Improve AntLoggingAdapterTest to avoid flaky test

  1. … 10 more files in changeset.
Moved classes out of o.g.internal.logging.internal to remove this package.

    • -0
    • +84
    ./OutputSpecification.groovy
  1. … 81 more files in changeset.