Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Adjust tests to change of behavior

    • -16
    • +16
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
  1. … 8 more files in changeset.
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

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

    • -2
    • +2
    ./AbstractCompileAvoidanceWithIncrementalCompilationIntegrationTest.groovy
    • -8
    • +8
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -2
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
    • -36
    • +36
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
    • -2
    • +2
    ./GroovyJavaJointIncrementalCompilationIntegrationTest.groovy
    • -6
    • +6
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
    • -4
    • +4
    ./JavaSourceIncrementalCompilationIntegrationTest.groovy
  1. … 866 more files in changeset.
Move skip reasons to @FailsWithInstantExecution and drop @IgnoreWithInstantExecution

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

    • -2
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
  1. … 45 more files in changeset.
Annotate test flaky with instant execution

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

    • -1
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
Annotate integ tests failing with instant execution in various projects

removing most of @IgnoreWithInstantExecution annotations

after fixing the @FailsWithInstantExecution rule

and more ci feedback

also make @IgnoreWithInstantExecution require a reason from a fixed set

and add it to the remaining ignores

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

    • -1
    • +2
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
    • -2
    • +1
    ./JavaSourceIncrementalCompilationIntegrationTest.groovy
  1. … 125 more files in changeset.
Simplify enabling feature previews from tests

    • -2
    • +3
    ./AbstractJavaGroovyIncrementalCompilationSupport.groovy
  1. … 9 more files in changeset.
Annotate integ tests failing with instant execution in various projects

after first round of CI feedback

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

    • -0
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
  1. … 58 more files in changeset.
Annotate integ tests failing with instant execution in various projects

after first round of CI feedback

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

    • -0
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
  1. … 58 more files in changeset.
Annotate integ tests failing with instant execution in :languageJava

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

    • -0
    • +3
    ./AbstractCompileAvoidanceWithIncrementalCompilationIntegrationTest.groovy
    • -0
    • +8
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -0
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
    • -1
    • +38
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
    • -0
    • +2
    ./GroovyJavaJointIncrementalCompilationIntegrationTest.groovy
    • -0
    • +5
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
    • -0
    • +5
    ./JavaSourceIncrementalCompilationIntegrationTest.groovy
  1. … 28 more files in changeset.
Annotate integ tests failing with instant execution in :languageJava

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

    • -0
    • +3
    ./AbstractCompileAvoidanceWithIncrementalCompilationIntegrationTest.groovy
    • -0
    • +8
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -0
    • +2
    ./AbstractCrossTaskIncrementalJavaCompilationIntegrationTest.groovy
    • -1
    • +38
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
    • -0
    • +2
    ./GroovyJavaJointIncrementalCompilationIntegrationTest.groovy
    • -0
    • +5
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
    • -0
    • +5
    ./JavaSourceIncrementalCompilationIntegrationTest.groovy
  1. … 28 more files in changeset.
Use explicit accessibility for field so a field is generated by Groovy

    • -11
    • +3
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Use explicit accessibility for field so a field is generated by Groovy

    • -11
    • +3
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Add explicit constructor to avoid synthetic class generation

    • -1
    • +2
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Split complex test into multiple tests

    • -63
    • +128
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Use enum instead of the name string to compare the language

    • -1
    • +1
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Improve readability of the tests

    • -14
    • +7
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Document why Groovy recompiles for resource changes

    • -0
    • +5
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
Document why Groovy recompiles for resource changes

    • -0
    • +5
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
Merge branch 'master' into wolfs/java-compile-input-changes

    • -2
    • +2
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
  1. … 5 more files in changeset.
Merge branch 'master' into wolfs/java-compile-input-changes

    • -2
    • +2
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
  1. … 5 more files in changeset.
Improve incremental compilation for Java

This patch splits the collected dependencies found in a .class file into "accessible" and "private" dependencies.

* "Accessbile" dependencies are classes that belong to non-private fields, non-private method signatures, class signature ("extends", "implements") etc

* "Private" dependencies are classes that belong to private fields, private methods and classes used in method bodies (i.e. just in "the code")

The TL;DR of the approach is to change the algorithm in `ClassSetAnalysis.getRelevantDependents` to only recurse for "accessible" dependencies.

Goal by example:

Consider classes like

```

class A {

private B b

}

class B {

private C c

}

class C {

}

```

The previous algorithm in `ClassSetAnalysis.getRelevantDependents` would recompile all classes, if `C` was changed. The new algorithm recompiles

just `B` and `C`, because `C` has been changed and `B` uses `C`. But it doesn't recompile `A`, because `A` is not affected by the change. The same

is true, if `C` would have been only used in a method body of `B` or in the signature of a `private` function in `B`.

The algorithm properly handles changes to classes used in the following example:

```

public class SomeClass {

List<Integer> field = new LinkedList<Integer>();

private AccessedFromPrivateField accessedFromPrivateField;

AccessedFromPackagePrivateField someField;

private AccessedFromPrivateMethod accessedFromPrivateMethod() {

return null;

}

public String accessedFromPrivateMethodBody() {

return new AccessedFromPrivateMethodBody().toString();

}

private Set<String> stuff(HashMap<String, String> map) {

System.out.println(new Foo());

return new HashSet<String>();

}

private class Foo {

// Hint: this field won't appear in the ClassAnalysis for SomeClass

public AccessedFromPrivateClassPublicField anotherField;

public String toString() {

return "" + new AccessedFromPrivateClass();

}

}

}

```

Changes the serialization format of `ClassAnalysis` + `DependentsSet`

Signed-off-by: Robert Stupp <snazy@snazy.de>

    • -1
    • +134
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
  1. … 23 more files in changeset.
Adjust incremental compile tests to use new configurations

Also use attributes to match 'class folders' or 'jar files'.

    • -63
    • +25
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -2
    • +2
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Adjust incremental compile tests to use new configurations

Also use attributes to match 'class folders' or 'jar files'.

    • -63
    • +25
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -1
    • +1
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Adjust incremental compile tests to use new configurations

Also use attributes to match 'class folders' or 'jar files'.

    • -64
    • +23
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -2
    • +2
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Adjust incremental compile tests to use new configurations

Also use attributes to match 'class folders' or 'jar files'.

    • -63
    • +25
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
    • -1
    • +1
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Adjust incremental compile tests to use new configurations

Also use attributes to match 'class folders' or 'jar files'.

    • -63
    • +25
    ./AbstractCrossTaskIncrementalCompilationIntegrationTest.groovy
Fix AbstractSourceIncrementalCompilationIntegrationTest

It still referenced `compileJava`, causing the test to not test anything

for Groovy.

    • -1
    • +1
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
Unify messages for non-source file changes

    • -4
    • +4
    ./GroovyJavaJointIncrementalCompilationIntegrationTest.groovy
    • -1
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
Unify messages for non-source file changes

    • -1
    • +1
    ./GroovySourceIncrementalCompilationIntegrationTest.groovy
  1. … 3 more files in changeset.
Use normalized path for inferring class names

Instead of relativizing the path to source roots. The information of

the relative path is already available, so why bother inferring it

again.

    • -5
    • +1
    ./AbstractSourceIncrementalCompilationIntegrationTest.groovy
  1. … 7 more files in changeset.