process-services

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Dogfood native test fixtures

This commit replaces our custom test fixtures with the native "Java test fixtures".

The `TestFixturesPlugin` of our build has been simplified to leverage the native

test fixtures capabilities. Some noticeable changes:

- the `testFixtures` extension has been replaced with regular dependency declaration

- dependencies on test fixtures are now declared using the `testFixtures` keyword

- test fixtures properly declare an API and an implementation, meaning that the

implementation dependencies of test fixtures no longer leak into the compile

classpath of consumers (in particular tests)

  1. … 84 more files in changeset.
WIP: Dogfood native test fixtures

This commit replaces our custom test fixtures with the native "Java test fixtures".

  1. … 84 more files in changeset.
Dogfood native test fixtures

This commit replaces our custom test fixtures with the native "Java test fixtures".

The `TestFixturesPlugin` of our build has been simplified to leverage the native

test fixtures capabilities. Some noticeable changes:

- the `testFixtures` extension has been replaced with regular dependency declaration

- dependencies on test fixtures are now declared using the `testFixtures` keyword

- test fixtures properly declare an API and an implementation, meaning that the

implementation dependencies of test fixtures no longer leak into the compile

classpath of consumers (in particular tests)

  1. … 84 more files in changeset.
Dogfood native test fixtures

This commit replaces our custom test fixtures with the native "Java test fixtures".

The `TestFixturesPlugin` of our build has been simplified to leverage the native

test fixtures capabilities. Some noticeable changes:

- the `testFixtures` extension has been replaced with regular dependency declaration

- dependencies on test fixtures are now declared using the `testFixtures` keyword

- test fixtures properly declare an API and an implementation, meaning that the

implementation dependencies of test fixtures no longer leak into the compile

classpath of consumers (in particular tests)

  1. … 84 more files in changeset.
Change all subprojects to use 'implementation' dependencies

This includes:

- All projects now explicitly declare all dependencies to other

subprojects. This makes issues more visible, guards for accidental

addition of new dependencies, and leaks much less transitive

dependencies on the compile classpathes.

- All usages of 'runtime' to declare dependencies have been replaced

with 'runtimeOnly'

- All projects are now `java-library` (and declare this explicitly)

- Most remaining Groovy scripts are translated to Kotlin

- The old 'compile' and 'runtime' configurations are not

configured/created anymore for the 'testFixture' and 'integTest'

source sets.

- Some obsolete dependencies (see previous commits) are removed

- 'api' is used scarcely on purpose as the current project structure is

not well designed for this. The projects contain code for several

concerns of the build tool and thus putting complete projects on the

API of others exposes too much. They should be split up along

functional concerns first.

  1. … 112 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 901 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 901 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 889 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 896 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 901 more files in changeset.
Remove synthetic accessors for internal private symbol references

  1. … 901 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 283 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 286 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 284 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Use 'implementation' dependencies everywhere

  1. … 285 more files in changeset.
Make more subprojects use Java 8 and remove redundant module types (#9447)

  1. … 28 more files in changeset.
Make more subprojects use Java 8 and remove redundant module types (#9447)

  1. … 28 more files in changeset.
Make more subprojects use Java 8 and remove redundant module types

  1. … 28 more files in changeset.
Make Linux /proc/meminfo parser thread safe

Upgrade to new version of native-platform.

  1. … 13 more files in changeset.
Fix nullability of `executable` property on `Exec`, `JavaExec`

and `RunTestExecutable` tasks

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

  1. … 3 more files in changeset.
Make totalMemory and freeMemory consistent

We were using different data sources for total and free physical

memory on Linux and MacOS, which lead us to detect memory pressure

were there was in fact none, e.g. when running in containers with

resource limits.

We now get both total and available memory from the same OS specific

data source.

  1. … 4 more files in changeset.
Convert `process-services` build script to Kotlin

    • -0
    • +26
    ./process-services.gradle.kts
  1. … 1 more file 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.
Converted many Groovy script to Kotlin and improved the Kotlin DSL usage in some existing Kotlin scripts.

    • -0
    • +26
    ./process-services.gradle.kts
  1. … 94 more files in changeset.
Set timeout for AbstractIntegrationSpec (#5806)

We have been bitten by CI build exection timeout for a long time.

This PR introduces timeout for AbstractIntegrationSpec in order to

monitor execution timeout. Upon timeout, a spock interceptor can

print all threads' stack traces in all JVMs so that we can diagnose

the potential issues in other JVMs (daemons, test workers, etc.).

  1. … 29 more files in changeset.
Introduced the property moduleType to derive source compatibility settings

  1. … 80 more files in changeset.
Removed almost all extra properties and extracted build environment check into plugin

- Moved extra properties into extension methods

- Created AddVerifyProductionEnvironmentTaskPlugin

- Moved build-extensions from kotlin-dsl to configuration submodule

- Created separate extensions for project groups

  1. … 38 more files in changeset.