Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge remote-tracking branch 'origin/release'

* origin/release:

When instrumenting build logic, discard any files which cannot be opened as a Jar.

Increase parallelism in test

Fix race conditions in credentials providers when evaluated during execution

Increase parallelism in test

Fix race conditions in credentials providers when evaluated during execution

Credentials providers will be evaluated at execution time possibly in a multi-threaded environment if they are not declared as task inputs and not validated before execution.

This change uses thread-safe collections for storing credentials providers and synchronizes their evaluation. Evaluation part is synchronized because error messages may be constructed there and error messages are assembled from possibly multiple missing properties - we don't want them duplicated and we want to have a deterministic order when missing properties are reported.

  1. … 1 more file in changeset.
Add an ignored test that asserts for credentials not being serialized to configuration cache

This replicates an issue we want to fix. How to fix it still needs to be explored.

Document ToBeFixed cause in CredentialsProviderIntegrationTest

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

Remove `@ToBeFixedForInstantExecution` from `CredentialsProviderIntegrationTest`

Introduce `zip` directly on `Provider`

This commit makes it possible to create a zipped provider from any

provider. It realies on the fact that all providers internally

implement `ProviderInternal`, where we can actually supply a default

method implementation which returns a zipped provider.

This commit also adds some test coverage for zipped provider.

  1. … 3 more files in changeset.
Introduce `ProviderFactory#zip`

This method takes two providers, a function which arguments

are the types of the providers and returns a new provider

which value is computed using the combiner function. The

potential dependencies of the inputs are tracked.

This allows binding providers together and facilitates

computation of values which depend on the value of two

providers.

Currently there's only a zip function taking a pair

of providers.

It would be nicer to have this method on `Provider` directly

so that we don't have to call the provider factory, but

the required infrastructure isn't available at this location

in the code.

See #12974

  1. … 6 more files in changeset.
Fix integration test

Document reason for @ToBeFixedForInstantExecution in :modelCore

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

Expose Credentials providers via ProviderFactory

    • -0
    • +229
    ./org/gradle/api/provider/CredentialsProviderIntegrationTest.groovy
  1. … 30 more files in changeset.
Capture the plugin or script where an undeclared system property read happens and include this in the problem description.

    • -3
    • +3
    ./org/gradle/model/RuleSourceAppliedAsProjectPluginIntegrationTest.groovy
  1. … 39 more files in changeset.
Fix PropertyIntegrationTest for the configuration cache

by using a system property provider in the build under test

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

Correctly serialize a `Property` instance with finalize on read enabled and whose value is derived from a task output.

  1. … 3 more files in changeset.
Work around a race condition in `DefaultConfiguration` that is exposed when visiting the task dependencies of a `Configuration` while also visiting the files of the same `Configuration` instance.

This does not fix the race condition, but simply makes it less likely to have an effect. The underlying issue can be fixed later.

  1. … 1 more file in changeset.
Work around an issue where a `Property` instance may have multiple threads attempting to finalize its value.

This does not fix the issue, which is that multiple threads can use the property instance at the same time. For model objects such as `Property` instances only a single thread should use the instance at any given time.

  1. … 2 more files in changeset.
Standardize modelRules snippet

  1. … 41 more files in changeset.
Add additional assertions in interoperability tests for org.gradle.api.provider.Property

Signed-off-by: Gregor Dschung <gregor@chkpnt.de>

When a strict `Property` is read, finalize all properties whose values are used to calculate the property's final value.

  1. … 42 more files in changeset.
Add some context to exceptions that are thrown when querying the value of a `Property` instance, if diagnostic information is available for the property.

  1. … 4 more files in changeset.
When a property instance is strict, apply the query constraints to `finalizeValue()` (which is a kind of query).

  1. … 6 more files in changeset.
Disallow reading the value of a task output `Property` that is strict before the producing task has started execution.

  1. … 27 more files in changeset.
Add `HasConfigurableValue.disallowUnsafeRead()` back onto public API.

Change the semantics so that the value cannot be read until after completion of project configuration, rather than prior to the start of `afterEvaluate()`

  1. … 7 more files in changeset.
Remove `@ToBeFixedForInstantExecution` from `AbstractPropertyLanguageInterOpIntegrationTest`

Restore `@ToBeFixedForInstantExecution` for `PropertyKotlinInterOpIntegrationTest`

And `ManagedPropertyKotlinInterOpIntegrationTest`.

Remove `@ToBeFixedForInstantExecution` from `AbstractPropertyLanguageInterOpIntegrationTest`

Remove `@ToBeFixedForInstantExecution` from `ProviderIntegrationTest`

Add `@ToBeFixedForInstantExecution` to some new test cases.

  1. … 1 more file in changeset.
Remove always-true JDK8_OR_LATER test precondition

  1. … 41 more files in changeset.
Remove always-true KOTLIN_SCRIPT test precondition

  1. … 42 more files in changeset.