diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ab763eb6a5..4557925e43 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,8 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - sanityCheck: + sanity-check: + name: SanityCheck runs-on: ubuntu-latest env: buildcacheuser: ${{ secrets.BUILDCACHE_USER }} @@ -35,7 +36,7 @@ jobs: - name: assemble testClasses run: ./gradlew assemble testClasses build: - needs: sanityCheck + needs: sanity-check strategy: fail-fast: false matrix: @@ -107,7 +108,7 @@ jobs: # Status check that is required in branch protection rules. final-status: needs: - - sanityCheck + - sanity-check - build runs-on: ubuntu-latest if: always() diff --git a/gradle/error-prone.gradle b/gradle/error-prone.gradle index a3aff16cfa..b834bac630 100644 --- a/gradle/error-prone.gradle +++ b/gradle/error-prone.gradle @@ -1,50 +1,45 @@ -apply plugin: 'net.ltgt.errorprone' +import static java.lang.System.getenv -dependencies { - errorprone('com.google.errorprone:error_prone_core:2.42.0') - errorprone('tech.picnic.error-prone-support:error-prone-contrib:0.26.0') -} +apply plugin: 'net.ltgt.errorprone' tasks.withType(JavaCompile).configureEach { options.errorprone { - disable( // consider fix, or reasoning. + disableAllWarnings = true // https://github.com/diffplug/spotless/issues/2745 https://github.com/google/error-prone/issues/5365 + disable( + // consider fix, or reasoning. + 'AnnotateFormatMethod', // We don`t want to use ErrorProne's annotations. + 'DoNotCallSuggester', // We don`t want to use ErrorProne's annotations. 'FunctionalInterfaceMethodChanged', + 'ImmutableEnumChecker', // We don`t want to use ErrorProne's annotations. + 'InlineMeSuggester', // We don`t want to use ErrorProne's annotations. 'JavaxInjectOnAbstractMethod', 'OverridesJavaxInjectableMethod', + 'ReturnValueIgnored', // We don`t want to use ErrorProne's annotations. ) error( - 'AmbiguousJsonCreator', - 'AssertJNullnessAssertion', - 'AutowiredConstructor', - 'CanonicalAnnotationSyntax', - 'CollectorMutability', - 'ConstantNaming', - 'DirectReturn', - 'EmptyMethod', - 'ExplicitArgumentEnumeration', - 'ExplicitEnumOrdering', - 'IdentityConversion', - 'ImmutablesSortedSetComparator', - 'IsInstanceLambdaUsage', - 'MockitoMockClassReference', - 'MockitoStubbing', - 'NestedOptionals', - 'PrimitiveComparison', - 'RedundantStringConversion', - 'RedundantStringEscape', 'ReturnValueIgnored', 'SelfAssignment', 'StringJoin', - 'StringJoining', 'UnnecessarilyFullyQualified', 'UnnecessaryLambda', ) // bug: this only happens when the file is dirty. // might be an up2date (caching) issue, as file is currently in corrupt state. - // ForbidGradleInternal(import org.gradle.api.internal.project.ProjectInternal;) - errorproneArgs.add('-XepExcludedPaths:' + - '.*/SelfTest.java|' + - '.*/GradleIntegrationHarness.java' + // ForbidGradleInternal(import + excludedPaths.set( + '.*/GradleIntegrationHarness.java|'+ + '.*/SelfTest.java' ) + if (!getenv().containsKey('CI') && getenv('IN_PLACE')?.toBoolean()) { + errorproneArgs.addAll( + '-XepPatchLocation:IN_PLACE', + '-XepPatchChecks:' + + 'MissingOverride' + ) + } } } + +dependencies { + errorprone('com.google.errorprone:error_prone_core:2.42.0') +} diff --git a/lib-extra/src/jdt/java/com/diffplug/spotless/extra/glue/jdt/EclipseJdtSortMembers.java b/lib-extra/src/jdt/java/com/diffplug/spotless/extra/glue/jdt/EclipseJdtSortMembers.java index 5c75a62344..a50c41a454 100644 --- a/lib-extra/src/jdt/java/com/diffplug/spotless/extra/glue/jdt/EclipseJdtSortMembers.java +++ b/lib-extra/src/jdt/java/com/diffplug/spotless/extra/glue/jdt/EclipseJdtSortMembers.java @@ -98,64 +98,84 @@ private static class Buffer implements IBuffer { this.contents = contents; } + @Override public void addBufferChangedListener(IBufferChangedListener listener) {} + @Override public void append(char[] text) {} + @Override public void append(String text) {} + @Override public void close() {} + @Override public char getChar(int position) { return '\u0000'; } + @Override public char[] getCharacters() { return contents.toCharArray(); } + @Override public String getContents() { return contents; } + @Override public int getLength() { return 0; } + @Override public IOpenable getOwner() { return null; } + @Override public String getText(int offset, int length) { return null; } + @Override public IResource getUnderlyingResource() { return null; } + @Override public boolean hasUnsavedChanges() { return false; } + @Override public boolean isClosed() { return false; } + @Override public boolean isReadOnly() { return true; } + @Override public void removeBufferChangedListener(IBufferChangedListener listener) {} + @Override public void replace(int position, int length, char[] text) {} + @Override public void replace(int position, int length, String text) {} + @Override public void save(IProgressMonitor progress, boolean force) {} + @Override public void setContents(char[] contents) {} + @Override public void setContents(String contents) { this.contents = contents; } diff --git a/lib/src/jackson/java/com/diffplug/spotless/glue/yaml/JacksonYamlFormatterFunc.java b/lib/src/jackson/java/com/diffplug/spotless/glue/yaml/JacksonYamlFormatterFunc.java index b4f8ca6aee..d9cd1c5fde 100644 --- a/lib/src/jackson/java/com/diffplug/spotless/glue/yaml/JacksonYamlFormatterFunc.java +++ b/lib/src/jackson/java/com/diffplug/spotless/glue/yaml/JacksonYamlFormatterFunc.java @@ -1,5 +1,5 @@ /* - * Copyright 2021-2023 DiffPlug + * Copyright 2021-2025 DiffPlug * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,6 +43,7 @@ public JacksonYamlFormatterFunc(JacksonYamlConfig jacksonConfig) { } } + @Override protected JsonFactory makeJsonFactory() { YAMLFactoryBuilder yamlFactoryBuilder = new YAMLFactoryBuilder(new YAMLFactory());