Cédric Champeau

Add exclude intersection normalization

This commit introduces exclude intersection normalization.

This is done to avoid the "exclusion explosion" in case:

- we have 2 incoming edges to the same node

- those edges have different excludes

- the different edge excludes cannot be merged (e.g having a `group` and `moduleId` exclude on each)

Fix missing Kotlin dependency

Add fast exit on fast iteration

This commit adds a fast exit path when the fast iterator

is exhausted: we don't have to iterate because we already

know there's no possible candidate.

Fix accessibility of test methods

Fix accessibility of test methods

Fix integration test

This test should be Java library specific

Optimize `equalsIgnoreArtifact`

In some cases, calling `equalsIgnoreArtifact` may be extremely

costly. This optimizes the algorithm for different cases:

1. the specs we compare actually do not exclude artifacts, in

which case we can compare by equality

2. the specs we compare are in a different order, in which

case we can avoid deep `equals` calls

3. the specs we compare are different, but some of them are

equal and we should avoid considering them candidates again

Add more test coverage for test fixtures

Rework hashcode for lazy project capabilities

Fix remaining failing integration tests

In particular, this introduces a "resources" outgoing variant for test

fixtures, that is currenly only used by the `idePlay` project.

    • -1
    • +1
    /gradle/wrapper/gradle-wrapper.properties
    • -0
    • +27
    /subprojects/ide-play/ide-play.gradle.kts
Fix remaining failing integration tests

In particular, this introduces a "resources" outgoing variant for test

fixtures, that is currenly only used by the `idePlay` project.

    • -1
    • +1
    /gradle/wrapper/gradle-wrapper.properties
    • -0
    • +27
    /subprojects/ide-play/ide-play.gradle.kts
Fix remaining failing integration tests

In particular, this introduces a "resources" outgoing variant for test

fixtures, that is currenly only used by the `idePlay` project.

    • -1
    • +1
    /gradle/wrapper/gradle-wrapper.properties
    • -0
    • +27
    /subprojects/ide-play/ide-play.gradle.kts
Fix remaining failing integration tests

In particular, this introduces a "resources" outgoing variant for test

fixtures, that is currenly only used by the `idePlay` project.

    • -1
    • +1
    /gradle/wrapper/gradle-wrapper.properties
    • -0
    • +27
    /subprojects/ide-play/ide-play.gradle.kts
Revert logging of Groovy compile errors

Revert logging of Groovy compile errors

Fix merge conflict

    • -8
    • +3
    /subprojects/launcher/launcher.gradle.kts
Fix merge conflict

    • -8
    • +3
    /subprojects/launcher/launcher.gradle.kts
Fix execution of integration tests

    • -0
    • +3
    /subprojects/logging/logging.gradle.kts
  1. … 11 more files in changeset.
Fix execution of integration tests

    • -0
    • +3
    /subprojects/logging/logging.gradle.kts
  1. … 11 more files in changeset.
Fix execution of integration tests

    • -0
    • +3
    /subprojects/logging/logging.gradle.kts
  1. … 11 more files in changeset.
Fix execution of integration tests

    • -0
    • +3
    /subprojects/logging/logging.gradle.kts
  1. … 11 more files in changeset.
Fix integration test missing runtime only dependencies

    • -0
    • +1
    /subprojects/plugins/plugins.gradle.kts
Fix performance test compilation

    • -0
    • +1
    /subprojects/plugins/plugins.gradle.kts
Fix performance test compilation

    • -0
    • +1
    /subprojects/plugins/plugins.gradle.kts
Fix performance test compilation

Fix performance test compilation

    • -0
    • +1
    /subprojects/plugins/plugins.gradle.kts
Fix cross version test compilation

Fix cross version test compilation

Fix cross version test compilation

Fix scala integration tests compile