-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Excavator: Upgrades Baseline to the latest version #122
Conversation
Generate changelog in
|
Type | Description | Link |
---|---|---|
Fix | The PreventTokenLogging error-prone check will now correctly handle null use in SLF4J and Safe/Unsafe Arg functions. | palantir/gradle-baseline#674 |
1.0.0
Type | Description | Link |
---|---|---|
Improvement | Add refaster rule to migrate away from optional.orElse(supplier.get()) | palantir/gradle-baseline#679 |
Fix | Projects can now compile using Java12, because the one errorprone check that breaks (Finally) is now disabled when you use this toolchain. It remains enabled when compiling against earlier JDKs. | palantir/gradle-baseline#681 |
1.1.0
Type | Description | Link |
---|---|---|
Improvement | Ensure that format tasks execute after compilation | palantir/gradle-baseline#688 |
1.1.1
Type | Description | Link |
---|---|---|
Fix | Auto-fix OptionalOrElseMethodInvocation using -PerrorProneApply . |
palantir/gradle-baseline#690 |
1.2.0
Type | Description | Link |
---|---|---|
Improvement | Spotless check for disallowing dangling parenthesis. | palantir/gradle-baseline#687 |
1.3.0
Type | Description | Link |
---|---|---|
Improvement | Don't cache test tasks in the build cache by default. It's possible to restore caching by adding com.palantir.baseline.restore-test-cache = true to your gradle.properties . |
palantir/gradle-baseline#694 |
1.4.0
Type | Description | Link |
---|---|---|
Fix | No longer cache javaCompile tasks when applying errorprone or refaster checks. | palantir/gradle-baseline#696 |
Feature | Test helper for refaster checks. | palantir/gradle-baseline#697 |
1.5.0
Type | Description | Link |
---|---|---|
Improvement | Determine whether to use junitPlatform on a per source set basis | palantir/gradle-baseline#701 |
Feature | OptionalOrElseMethodInvocation now checks for constructor invocations. | palantir/gradle-baseline#702 |
1.6.0
Type | Description | Link |
---|---|---|
Improvement | The severity of PreferSafeLoggableExceptions and PreferSafeLoggingPreconditions is now WARNING. | palantir/gradle-baseline#704 |
Fix | OptionalOrElseMethodInvocation now allows method references in orElse. | palantir/gradle-baseline#709 |
1.6.1
Type | Description | Link |
---|---|---|
Fix | Do not overwrite user provided test configure when using junit5 | palantir/gradle-baseline#712 |
1.7.0
Type | Description | Link |
---|---|---|
Improvement | Baseline can now re-format all your Java files using the Eclipse formatter. This is currently an opt-in preview, try it out by running ./gradlew format -Pcom.palantir.baseline-format.eclipse . |
palantir/gradle-baseline#707 |
Improvement | Add errorprone check to ensure junit5 tests are not used with junit4 Rule/ClassRule | palantir/gradle-baseline#714 |
1.8.0
Type | Description | Link |
---|---|---|
Improvement | Checkstyle now tolerates empty lambda bodies (e.g. () -> {} |
palantir/gradle-baseline#715 |
1.8.1
Type | Description | Link |
---|---|---|
Fix | Correctly set dependency between spotlessApply and baselineUpdateConfig to prevent a race | palantir/gradle-baseline#724 |
1.8.2
Type | Description | Link |
---|---|---|
Fix | Correctly handle EnableRuleMigrationSupport in JUnit5RuleUsage errorprone-rule |
palantir/gradle-baseline#725 |
1.9.0
Type | Description | Link |
---|---|---|
Fix | Wrap long parameterized types where necessary | palantir/gradle-baseline#716 |
Improvement | Allow suppression of the TODO checkstyle check by giving it an ID. Clarify its comment to allow // TODO(username): ... | palantir/gradle-baseline#727 |
Improvement | IntelliJ GitHub issue navigation | palantir/gradle-baseline#729 |
Improvement | print out suggestion for module dependencies inclusion in useful format | palantir/gradle-baseline#733 |
Fix | The checkImplicitDependencies task will no longer suggest a fix of the current project. |
palantir/gradle-baseline#736, palantir/gradle-baseline#567 |
Improvement | Implement DangerousCompletableFutureUsage errorprone check | palantir/gradle-baseline#740 |
1.10.0
Type | Description | Link |
---|---|---|
Improvement | Refaster to use execute over submit when the result is ignored |
palantir/gradle-baseline#741 |
1.10.1
Type | Description | Link |
---|---|---|
Fix | Enable applying refaster rules for repos with -Xlint:deprecation | palantir/gradle-baseline#742 |
1.11.0
Type | Description | Link |
---|---|---|
Improvement | Apply InputStreamSlowMultibyteRead error prone check at ERROR severity |
palantir/gradle-baseline#749 |
1.12.0
Type | Description | Link |
---|---|---|
Improvement | The baseline-idea plugin now generates configuration more closely aligned with Gradle defaults. |
palantir/gradle-baseline#718 |
Improvement | Apply the suggested fixes for UnusedMethod and UnusedVariable . |
palantir/gradle-baseline#751 |
Improvement | Refaster stream.sorted().findFirst() into stream.min(Comparator.naturalOrder()) |
palantir/gradle-baseline#752 |
Improvement | Error prone validation that Stream.sort is invoked on comparable streams | palantir/gradle-baseline#753 |
Improvement | DangerousStringInternUsage : Disallow String.intern() invocations |
palantir/gradle-baseline#754 |
1.12.1
Type | Description | Link |
---|---|---|
Fix | Do not apply the suggested fixes for UnusedMethod and UnusedVariable which automaticall remove code with side effects. |
palantir/gradle-baseline#757 |
1.13.0
Type | Description | Link |
---|---|---|
Improvement | Remove errorprone LogSafePreconditionsConstantMessage |
palantir/gradle-baseline#755 |
Improvement | Disable errorprone Slf4jLogsafeArgs in test code |
palantir/gradle-baseline#756 |
Improvement | error-prone now detects Duration#getNanos mistakes and bans URL in equals methods |
palantir/gradle-baseline#758 |
1.14.0
Type | Description | Link |
---|---|---|
Improvement | Implement OptionalOrElseThrowThrows to prevent throwing from orElseThrow |
palantir/gradle-baseline#759 |
1.15.0
Type | Description | Link |
---|---|---|
Improvement | LogSafePreconditionsMessageFormat disallows slf4j-style format characters | palantir/gradle-baseline#761 |
Improvement | Error Prone LambdaMethodReference check | palantir/gradle-baseline#763 |
1.16.0
Type | Description | Link |
---|---|---|
Improvement | baseline-circleci no longer integrates with the (deprecated) FindBugs plugin, as a pre-requisite for Gradle 6.0 compatibility. | palantir/gradle-baseline#766 |
1.17.0
Type | Description | Link |
---|---|---|
Fix | The TypeParameterUnusedInFormals errorprone check is disabled when compiling on Java 13, to workaround an error-prone bug. |
palantir/gradle-baseline#767 |
Improvement | Publish scm information within POM | palantir/gradle-baseline#769 |
1.17.1
Type | Description | Link |
---|---|---|
Fix | LambdaMethodReference avoids suggestions for non-static methods | palantir/gradle-baseline#771 |
1.17.2
Type | Description | Link |
---|---|---|
Fix | Remove pom only dependencies from analysis in checkUnusedDependencies | palantir/gradle-baseline#773 |
1.18.0
Type | Description | Link |
---|---|---|
Improvement | When computing unused dependencies, compileOnly and annotationProcessor dependencies are ignored due to false positives as these dependencies will not appear as dependencies in the generated byte-code, but are in fact necessary dependencies to compile a given module. |
palantir/gradle-baseline#783 |
1.19.0
Type | Description | Link |
---|---|---|
Improvement | Disable PreconditionsConstantMessage on gradle plugins |
palantir/gradle-baseline#790 |
2.0.0
Type | Description | Link |
---|---|---|
Break | Add gradle 6.0-20190904072820+0000 compatibiltiy. This raises minimum required version of gradle for plugins from this repo to 5.0. | palantir/gradle-baseline#791 |
2.1.0
Type | Description | Link |
---|---|---|
Feature | Automatically configure the Intellij Eclipse format plugin to use the eclipse formatter | palantir/gradle-baseline#794 |
2.1.1
Type | Description | Link |
---|---|---|
Fix | Stop applying error prone patches for checks that have been turned off. | palantir/gradle-baseline#793 |
2.2.0
Type | Description | Link |
---|---|---|
Improvement | baseline-circleci now validates that the rootProject.name isn't the CircleCI default (project ) as can interfere with publishing. |
palantir/gradle-baseline#775 |
Improvement | Remove JGit dependency | palantir/gradle-baseline#798 |
2.2.1
Type | Description | Link |
---|---|---|
Fix | Don't add whitespace to blank lines inside comments. Fixes #799 | palantir/gradle-baseline#800 |
Fix | Eclipse formatter now aligns multicatch so that it passes checkstyle. | palantir/gradle-baseline#807 |
2.2.2
Type | Description | Link |
---|---|---|
Fix | ClassUniquenessPlugin now checks the runtimeClasspath configuration by default. |
palantir/gradle-baseline#810 |
2.3.0
Type | Description | Link |
---|---|---|
Improvement | SafeLoggingExceptionMessageFormat disallows {} in safelog exception messages |
palantir/gradle-baseline#815 |
2.4.0
Type | Description | Link |
---|---|---|
Improvement | A new StrictUnusedVariable check will catch any unused arguments (e.g. AuthHeaders) to public methods. If you need to suppress this, rename your variable to have an underscore prefix (e.g. s/foo/_foo/ ) or just run ./gradlew classes -PerrorProneApply to auto-fix |
palantir/gradle-baseline#819 |
Improvement | Message format checks use instanceof rather than catching | palantir/gradle-baseline#821 |
2.4.1
Type | Description | Link |
---|---|---|
Fix | Avoid false positives caused by module-info.class when checking class uniqueness |
palantir/gradle-baseline#823 |
2.4.2
Type | Description | Link |
---|---|---|
Fix | Checkstyle tasks only check their own source set and only actual java sources. They don't look in your src/*/resources directory anymore. |
palantir/gradle-baseline#830 |
2.4.3
Type | Description | Link |
---|---|---|
Fix | Add link to StrictUnusedVariable that directs users to baseline repo. | palantir/gradle-baseline#829 |
Fix | Long try-with-resources statements are now aligned such that the first assignment stays on the first line. | palantir/gradle-baseline#835 |
2.5.0
Type | Description | Link |
---|---|---|
Improvement | Error Prone StringBuilderConstantParameters. StringBuilder with a constant number of parameters should be replaced by simple concatenation. The Java compiler (jdk8) replaces concatenation of a constant number of arguments with a StringBuilder, while jdk 9+ take advantage of JEP 280 (https://openjdk.java.net/jeps/280) to efficiently pre-size the result for better performance than a StringBuilder. | palantir/gradle-baseline#832 |
2.6.0
Type | Description | Link |
---|---|---|
Fix | Excavator PRs that apply other refaster rules (e.g. Witchcraft ones) will not also apply baseline refaster rules. | palantir/gradle-baseline#827 |
Improvement | Added a new ErrorProne check PreferAssertj to assist migration to AssertJ from legacy test frameworks. It may be necessary to add a dependency on org.assertj:assertj-core in modules which do not already depend on AssertJ. If there's a technical reason that AssertJ cannot be used, PreferAssertj may be explicitly disabled to prevent future upgrades from attempting to re-run the migration. |
palantir/gradle-baseline#841 |
2.7.0
Type | Description | Link |
---|---|---|
Improvement | StrictUnusedVariable now ignores variables prefixed with _ and the suggested fix will rename all unused parameters in public methods instead of removing them |
palantir/gradle-baseline#833 |
Improvement | ErrorProne will now detect dangerous usage of @RunWith(Suite.class) that references JUnit5 classes, as this can cause tests to silently not run! |
palantir/gradle-baseline#843 |
2.8.0
Type | Description | Link |
---|---|---|
Fix | PreferAssertj provides better replacements fixes | palantir/gradle-baseline#850 |
Improvement | Do not run error prone on any code in the build directory | palantir/gradle-baseline#853 |
2.8.1
Type | Description | Link |
---|---|---|
Fix | Fix hamcrest arrayContainingInAnyOrder conversion | palantir/gradle-baseline#859 |
2.9.0
Type | Description | Link |
---|---|---|
Improvement | StrictUnusedVariable can only be suppressed with _ prefix |
palantir/gradle-baseline#854 |
Improvement | StrictUnusedVariable is now an error by default | palantir/gradle-baseline#855 |
Fix | The PreferAssertj refactoring will only be applied if you have explicitly opted in (e.g. using baselineErrorProne { patchChecks += 'PreferAssertj' } |
palantir/gradle-baseline#861 |
2.9.1
Type | Description | Link |
---|---|---|
Fix | Error prone will correctly ignore all source files in the build directory and in any generated source directory | palantir/gradle-baseline#864 |
Fix | Ensure that StrictUnusedVariable correctly converts previously suppressed variables unused to _ |
palantir/gradle-baseline#865 |
2.9.2
Type | Description | Link |
---|---|---|
Fix | When removing unused variables, StrictUnusedVariable will preserve side effects |
palantir/gradle-baseline#870 |
2.10.0
Type | Description | Link |
---|---|---|
Improvement | A new checkJUnitDependencies task detects misconfigured JUnit dependencies which could result in some tests silently not running. |
palantir/gradle-baseline#837 |
Improvement | Some AssertJ assertions can now be automatically replaced with more idiomatic ones using refaster. | palantir/gradle-baseline#851 |
Fix | PreferAssertj check avoids ambiguity in assertThat invocations | palantir/gradle-baseline#874 |
Improvement | Improve performannce of error prone PreferAssertj check | palantir/gradle-baseline#875 |
Improvement | StringBuilderConstantParameters suggested fix doesn't remove comments | palantir/gradle-baseline#877 |
2.10.1
Type | Description | Link |
---|---|---|
Fix | Allow junit4 dependencies to exist without junit4 tests | palantir/gradle-baseline#880 |
2.11.0
Type | Description | Link |
---|---|---|
Improvement | PreferAssertj supports migration of zero-delta floating point array asserts | palantir/gradle-baseline#883 |
2.11.1
Type | Description | Link |
---|---|---|
Fix | checkJunitDependencies only checks Java source | palantir/gradle-baseline#885 |
2.11.2
Type | Description | Link |
---|---|---|
Fix | AssertJ Refaster fixes use static assertThat imports |
palantir/gradle-baseline#887 |
2.12.0
Type | Description | Link |
---|---|---|
Improvement | Disable UnusedVariable error prone rule by default |
palantir/gradle-baseline#888 |
2.13.0
Type | Description | Link |
---|---|---|
Improvement | Refaster for AssertJ isZero/isNotZero/isOne and collections | palantir/gradle-baseline#881 |
Improvement | AssertJ refaster migrations support string descriptions | palantir/gradle-baseline#891 |
Fix | Certain error-prone checks are disabled in test code, and the presence of JUnit5's @TestTemplate annotation is now used to detect whether a class is test code. |
palantir/gradle-baseline#892 |
Fix | BaselineFormat task exclude generated code on Windows | palantir/gradle-baseline#896 |
2.14.0
Type | Description | Link |
---|---|---|
Improvement | Refaster rules for AssertJ tests | palantir/gradle-baseline#898 |
Improvement | refaster replacement for assertj hasSize(foo.size) -> hasSameSizeAs | palantir/gradle-baseline#900 |
Fix | Keep spotless plugin from eagerly configuring all tasks | diffplug/spotless#444 |
Fix | Continue when RefasterRuleBuilderScanner throws | palantir/gradle-baseline#904 |
Improvement | Refaster now works on repos using Gradle 6.0 | palantir/gradle-baseline#804, palantir/gradle-baseline#906 |
2.15.0
No documented user facing changes
2.16.0
Type | Description | Link |
---|---|---|
Improvement | Rewrite ImmutableCollection#addAll to add for arrays | palantir/gradle-baseline#743 |
Improvement | Add refaster rule to simplify empty optional asserts | palantir/gradle-baseline#911 |
Improvement | Baseline now allows static imports of AssertJ and Mockito methods. | palantir/gradle-baseline#915 |
Improvement | Remove refaster AssertjIsOne rule. | palantir/gradle-baseline#917 |
Improvement | Add assertj refaster rules for map size asserts | palantir/gradle-baseline#919 |
Improvement | Added a Refaster rule to change isEqualTo checks into hasValue checks |
2.17.0
Type | Description | Link |
---|---|---|
Improvement | Implement AssertjCollectionHasSameSizeAsArray | palantir/gradle-baseline#922 |
Improvement | Implement assertj map refactors for containsKey and containsEntry | palantir/gradle-baseline#925 |
Improvement | Refaster assertj migrations support descriptions with format args | palantir/gradle-baseline#926 |
Improvement | Refaster out String.format from describedAs | palantir/gradle-baseline#927 |
2.18.0
Type | Description | Link |
---|---|---|
Improvement | Refaster rules to simplify negated boolean expressions and extract null checks. | palantir/gradle-baseline#935 |
Improvement | Refaster rules for checks that maps do not contain a specific key | palantir/gradle-baseline#935 |
Improvement | Refaster rule 'CollectionStreamForEach' | palantir/gradle-baseline#942 |
Improvement | ExecutorSubmitRunnableFutureIgnored as error prone ERROR | palantir/gradle-baseline#943 |
2.19.0
Type | Description | Link |
---|---|---|
Improvement | checkJUnitDependencies detects a possible misconfiguration with spock and JUnit5 which could lead to tests silently not running. | palantir/gradle-baseline#951 |
2.20.0
Type | Description | Link |
---|---|---|
Improvement | Use Mockito verifyNoInteractions over deprecated verifyZeroInteractions | palantir/gradle-baseline#924 |
Improvement | Errorprone rules for usage of Guava static factory methods | palantir/gradle-baseline#941 |
Improvement | Fix error-prone UnnecessaryParentheses by default |
palantir/gradle-baseline#952 |
Improvement | Implement Error Prone ThrowError to discourage throwing Errors in production codeErrors are often handled poorly by libraries resulting in unexpected behavior and resource leaks. It's not obvious that 'catch (Exception e)' does not catch Error. This check is intended to be advisory - it's fine to @SuppressWarnings("ThrowError") in certain cases, but is usually notrecommended unless you are writing a testing library that throws AssertionError. |
palantir/gradle-baseline#957 |
Improvement | Improve TestCheckUtils.isTestCode test detection | palantir/gradle-baseline#958 |
Improvement | Implement Error Prone Slf4jLevelCheck to validate that slf4j level checks agree with contained logging. |
palantir/gradle-baseline#960 |
2.20.1
Type | Description | Link |
---|---|---|
Fix | Suppress error-prone PreferCollectionConstructors on jdk13 | palantir/gradle-baseline#968 |
2.21.0
Type | Description | Link |
---|---|---|
Feature | Users can opt-in to format their files using our fork of google-java-format (palantir-java-format) | palantir/gradle-baseline#936 |
2.22.0
Automated release, no documented user facing changes
2.23.0
Type | Description | Link |
---|---|---|
Improvement | Implement error prone ReverseDnsLookup for unexpected reverse dns lookups Calling address.getHostName may result in a DNS lookup which is a network request, making the invocation significantly more expensive than expected depending on the environment. This check is intended to be advisory - it's fine to @SuppressWarnings("ReverseDnsLookup") in certain cases, but is usually not recommended. |
palantir/gradle-baseline#970 |
2.24.0
Type | Description | Link |
---|---|---|
Fix | The deprecated verifyZeroInteractions now gets rewritten to verifyNoMoreInteractions , which has the same behaviour. |
palantir/gradle-baseline#975 |
Improvement | ReadReturnValueIgnored: Check that read operation results are not ignored | palantir/gradle-baseline#978 |
Improvement | Stop migrating source sets to safe-logging, unless they already have the requisite library (com.palantir.safe-logging:preconditions ). |
palantir/gradle-baseline#981 |
Improvement | For users who opted into palantir-java-format, we now reflow strings and reorder imports. | palantir/gradle-baseline#982 |
2.25.0
Type | Description | Link |
---|---|---|
Fix | checkstyle Indentation rule is disabled when palantir-java-format is enabled | palantir/gradle-baseline#987 |
Improvement | Load palantir-java-format dynamically from the same configuration set up by com.palantir-java-format which is also used to determine the version used by IntelliJ. |
palantir/gradle-baseline#989 |
2.26.0
Type | Description | Link |
---|---|---|
Improvement | Run ./gradlew formatDiff to reformat the relevant sections of any uncommitted changed Java files (relies on git diff -U0 HEAD under the hood) |
palantir/gradle-baseline#988 |
2.27.0
Type | Description | Link |
---|---|---|
Improvement | Slf4jLogsafeArgs fixes safe-log wrapped throwables | palantir/gradle-baseline#1001 |
Improvement | DangerousParallelStreamUsage checks for Collection.parallelStream() and StreamSupport utility methods with parallel=true. |
palantir/gradle-baseline#1005 |
Improvement | DangerousThrowableMessageSafeArg disallows Throwables in SafeArg values. Throwables must be logged without an Arg wrapper as the last parameter, otherwise unsafe data may be leaked from the unsafe message or the unsafe message of a cause. |
palantir/gradle-baseline#997 |
Improvement | Implement a suggested fix for CatchBlockLogException | palantir/gradle-baseline#998 |
2.28.0
Type | Description | Link |
---|---|---|
Improvement | Implement FinalClass error prone check, replacing the checkstyle implementation |
palantir/gradle-baseline#1008 |
Improvement | Error prone validation to avoid redundant modifiers | palantir/gradle-baseline#1010 |
2.28.1
Type | Description | Link |
---|---|---|
Fix | Fix RedundantModifier interpretation of implicit modifiers |
palantir/gradle-baseline#1014 |
2.28.2
Type | Description | Link |
---|---|---|
Fix | Fix RedundantModifier failures types nested in interfaces | palantir/gradle-baseline#1017 |
2.28.3
Type | Description | Link |
---|---|---|
Fix | Fix error-prone mathcing literal null as a subtype. The most common issue this fixes is failures on SafeArg.of("name", null) assuming that the null literal value parameter may be a throwable. |
palantir/gradle-baseline#1020 |
2.29.0
Type | Description | Link |
---|---|---|
Improvement | Error prone RedundantModifier check supports interface static methods and fields. | palantir/gradle-baseline#1021 |
Fix | Ignore module-info.java files to support projects with Jigsaw. | palantir/gradle-baseline#1023 |
Improvement | Error Prone StrictCollectionIncompatibleType to guard collection usage |
palantir/gradle-baseline#1027 |
Improvement | Drop RedundantModifier to SUGGESTION and FinalClass to WARNING These checks don't imply bugs, and automation will fix failing cases automatically, so it's not necessary to block compilation. FinalClass moved to warning rather than suggestion because there are a few edge cases (e.g. dependent projects using mockito without inline mock maker) where releases can run into issues if the bots don't fix findings in time. |
palantir/gradle-baseline#1028 |
2.30.0
Type | Description | Link |
---|---|---|
Improvement | InvocationHandlers which delegate to another object must catch and unwrapInvocationTargetException , otherwise an UndeclaredThrowableException will be throwneach time the delegate throws an exception. |
palantir/gradle-baseline#1032 |
2.31.0
Type | Description | Link |
---|---|---|
Improvement | Add a refaster rule to migrate InvocationTargetException.getTargetException to getCause. | palantir/gradle-baseline#1039 |
Fix | Fix using errorprone when running under Windows. | palantir/gradle-baseline#1045 |
2.32.0
Type | Description | Link |
---|---|---|
Fix | Checkstyle no longer complains about single-line javadoc produced by palantir-java-format. | palantir/gradle-baseline#1051 |
Improvement | PreferAssertj disallows assert statements in test code.Tests should use more specific AssertJ checks, which cannot be disabled by turning off asserts. Arguably the assert keyword should never be used, preferring preconditions. This way production environments cannot reach code paths that are impossible to test. |
palantir/gradle-baseline#1052 |
2.33.0
Type | Description | Link |
---|---|---|
Improvement | Implement Slf4jThrowable check to ensure throwable args are logged last |
palantir/gradle-baseline#1054 |
2.34.0
Type | Description | Link |
---|---|---|
Improvement | Adds an ErrorProne rule, JooqResultStreamLeak , which ensures that result streams and cursors returned from jOOQ results are closed in a try-with-resources block. |
palantir/gradle-baseline#1055 |
2.35.0
Type | Description | Link |
---|---|---|
Improvement | Refaster rule to remove unnecessary supplier creation | palantir/gradle-baseline#1059 |
Improvement | Add Refaster rule to convert Stream.of() -> Stream.empty() | palantir/gradle-baseline#1061 |
2.35.1
Type | Description | Link |
---|---|---|
Fix | Revert "Refaster rule to remove unnecessary supplier creation (#1059)" The refaster rule breaks the common pattern: Suppliers.memoize(supplier::get) . |
palantir/gradle-baseline#1063 |
2.35.2
Type | Description | Link |
---|---|---|
Fix | Allow declaring that conversion to palantir-java-format has been started, which ensures that conflicting checkstyle rules are removed. | palantir/gradle-baseline#1064 |
2.36.0
Type | Description | Link |
---|---|---|
Fix | Replace refaster StreamEmpty with error prone StreamOfEmpty to allow refactors to retain type arguments. |
palantir/gradle-baseline#1068 |
Improvement | RedundantMethodReference check to avoid unnecessary method references | palantir/gradle-baseline#1069 |
Improvement | PreferAssertj iterable-map fix retains map type parameters | palantir/gradle-baseline#1071 |
2.37.0
Type | Description | Link |
---|---|---|
Improvement | refaster will automatically fix up assertions between primitives (a == b) to provide better error messages | palantir/gradle-baseline#1078 |
Improvement | Error prone AssertjPrimitiveComparison for primitive comparisonsPrefer using AssertJ fluent comparisons over logic in an assertThat statement for better failure output. assertThat(a == b).isTrue() failures report 'expected true' where assertThat(a).isEqualTo(b) provides the expected and actual values. |
palantir/gradle-baseline#1079 |
2.38.0
Type | Description | Link |
---|---|---|
Improvement | We now run error-prone 2.3.4, to benefit from smarter static analysis, and hopefully pick up the claimed performance Improvements: > 40% speedup when run against Google's codebase with errors enabled. |
palantir/gradle-baseline#1082 |
2.39.0
Type | Description | Link |
---|---|---|
Improvement | Baseline now depends on mockito-errorprone to get Mockito error-prone checks. |
palantir/gradle-baseline#1085 |
2.40.0
Type | Description | Link |
---|---|---|
Improvement | Error prone CatchSpecificity and ThrowSpecificity to avoid unnecessarily broad throwables.Prefer more specific catch types than Exception and Throwable. When methods are updated to throw new checked exceptions they expect callers to handle failure types explicitly. Catching broad types defeats the type system. By catching the most specific types possible we leverage existing compiler functionality to detect unreachable code. |
palantir/gradle-baseline#1074 |
Improvement | For repos that opted into palantir-java-format, the arguments of SafeArg.of (when it's a last argument) are no longer unexpectedly split onto the next line. |
palantir/gradle-baseline#1075 |
2.40.1
Type | Description | Link |
---|---|---|
Fix | The PreferJavaTimeOverload error-prone check is turned off as it produces noisy false positives relating to custom AssertJ utilities. |
palantir/gradle-baseline#1094 |
2.40.2
Type | Description | Link |
---|---|---|
Fix | Disable ThrowSpecificty and CatchSpecificity fixes by default | palantir/gradle-baseline#1098 |
2.41.0
No documented user facing changes
2.42.0
Type | Description | Link |
---|---|---|
Improvement | Improve NonComparableStreamSort to validate that stream types implement comparable, as opposed to validating that casting to comparable does not cause a compiler error.This commit reduces the severity to WARNING because it's possible that the check will flag code that happens to work today, but we strongly recommend against sorting streams of a type that is not directly comparable without a custom comparator because it is likely to break later due to lack of enforcement by the type system. |
palantir/gradle-baseline#1070 |
Improvement | You may apply specific error-prone refactors including those which are not enabled by default by providing a comma delimited list of check names to the -PerrorProneApply option. |
palantir/gradle-baseline#1109 |
Fix | Migrate baseline error-prone checks to use jdk13 compatible qualifiers | palantir/gradle-baseline#1110 |
2.43.0
Automated release, no documented user facing changes
To enable or disable this check, please contact the maintainers of Excavator.
Check the box to generate changelog(s)
- Generate changelog entry
excavator is a bot for automating changes across repositories.
Changes produced by the roomba/latest-baseline-oss check.
Release Notes
0.66.0
[improvement] Ignore DesignForExtension for ParameterizedTest (#673)
0.66.1
1.0.0
1.1.0
1.1.1
-PerrorProneApply
.1.2.0
1.3.0
It's possible to restore caching by adding
com.palantir.baseline.restore-test-cache = true
to yourgradle.properties
.1.4.0
1.5.0
1.6.0
1.6.1
1.7.0
./gradlew format -Pcom.palantir.baseline-format.eclipse
.1.8.0
() -> {}
1.8.1
1.8.2
EnableRuleMigrationSupport
inJUnit5RuleUsage
errorprone-rule1.9.0
checkImplicitDependencies
task will no longer suggest a fix of the current project.1.10.0
execute
oversubmit
when the result is ignored1.10.1
1.11.0
InputStreamSlowMultibyteRead
error prone check at ERROR severity1.12.0
baseline-idea
plugin now generates configuration more closely aligned with Gradle defaults.UnusedMethod
andUnusedVariable
.stream.sorted().findFirst()
intostream.min(Comparator.naturalOrder())
DangerousStringInternUsage
: Disallow String.intern() invocations1.12.1
UnusedMethod
andUnusedVariable
which automaticall remove code with side effects.1.13.0
LogSafePreconditionsConstantMessage
Slf4jLogsafeArgs
in test codeDuration#getNanos
mistakes and bans URL in equals methods1.14.0
OptionalOrElseThrowThrows
to prevent throwing from orElseThrow1.15.0
1.16.0
1.17.0
TypeParameterUnusedInFormals
errorprone check is disabled when compiling on Java 13, to workaround an error-prone bug.1.17.1
1.17.2
1.18.0
dependencies are ignored due to false positives as these dependencies
will not appear as dependencies in the generated byte-code, but are in
fact necessary dependencies to compile a given module.
1.19.0
PreconditionsConstantMessage
on gradle plugins2.0.0
2.1.0
2.1.1
2.2.0
project
) as can interfere with publishing.2.2.1
2.2.2
runtimeClasspath
configuration by default.2.3.0
{}
in safelog exception messages2.4.0
StrictUnusedVariable
check will catch any unused arguments (e.g. AuthHeaders) to public methods. If you need to suppress this, rename your variable to have an underscore prefix (e.g.s/foo/_foo/
) or just run./gradlew classes -PerrorProneApply
to auto-fix2.4.1
module-info.class
when checking class uniqueness2.4.2
src/*/resources
directory anymore.2.4.3
2.5.0
2.6.0
PreferAssertj
to assist migration to AssertJ from legacy test frameworks. It may be necessary to add a dependency onorg.assertj:assertj-core
in modules which do not already depend on AssertJ. If there's a technical reason that AssertJ cannot be used,PreferAssertj
may be explicitly disabled to prevent future upgrades from attempting to re-run the migration.2.7.0
StrictUnusedVariable
now ignores variables prefixed with_
and the suggested fix will rename all unused parameters in public methods instead of removing them@RunWith(Suite.class)
that references JUnit5 classes, as this can cause tests to silently not run!2.8.0
2.8.1
2.9.0
_
prefixbaselineErrorProne { patchChecks += 'PreferAssertj' }
2.9.1
StrictUnusedVariable
correctly converts previously suppressed variablesunused
to_
2.9.2
StrictUnusedVariable
will preserve side effects2.10.0
checkJUnitDependencies
task detects misconfigured JUnit dependencies which could result in some tests silently not running.2.10.1
2.11.0
2.11.1
2.11.2
assertThat
imports2.12.0
UnusedVariable
error prone rule by default2.13.0
@TestTemplate
annotation is now used to detect whether a class is test code.2.14.0
2.15.0
No documented user facing changes
2.16.0
isEqualTo
checks intohasValue
checks2.17.0
2.18.0
2.19.0
2.20.0
UnnecessaryParentheses
by defaultThrowError
to discourage throwing Errors in production codeErrors are often handled poorly by libraries resulting in unexpected
behavior and resource leaks. It's not obvious that 'catch (Exception e)'
does not catch Error.
This check is intended to be advisory - it's fine to
@SuppressWarnings("ThrowError")
in certain cases, but is usually notrecommended unless you are writing a testing library that throws
AssertionError.
Slf4jLevelCheck
to validate that slf4j level checks agree with contained logging.2.20.1
2.21.0
2.22.0
Automated release, no documented user facing changes
2.23.0
Calling address.getHostName may result in a DNS lookup which is a network request,
making the invocation significantly more expensive than expected depending on the
environment.
This check is intended to be advisory - it's fine to
@SuppressWarnings("ReverseDnsLookup") in certain cases, but is usually not
recommended.
2.24.0
verifyZeroInteractions
now gets rewritten toverifyNoMoreInteractions
, which has the same behaviour.com.palantir.safe-logging:preconditions
).2.25.0
com.palantir-java-format
which is also used to determine the version used by IntelliJ.2.26.0
./gradlew formatDiff
to reformat the relevant sections of any uncommitted changed Java files (relies ongit diff -U0 HEAD
under the hood)2.27.0
DangerousParallelStreamUsage
checks forCollection.parallelStream()
andStreamSupport
utility methods with parallel=true.Throwables must be logged without an Arg wrapper as the last parameter, otherwise unsafe data may be leaked from the unsafe message or the unsafe message of a cause.
2.28.0
FinalClass
error prone check, replacing the checkstyle implementation2.28.1
RedundantModifier
interpretation of implicit modifiers2.28.2
2.28.3
The most common issue this fixes is failures on
SafeArg.of("name", null)
assuming that the null literal value parameter may be a throwable.
2.29.0
StrictCollectionIncompatibleType
to guard collection usageThese checks don't imply bugs, and automation will fix failing cases automatically, so it's not necessary to block compilation.
FinalClass moved to warning rather than suggestion because there are a few edge cases (e.g. dependent projects using mockito without inline mock maker) where releases can run into issues if the bots don't fix findings in time.
2.30.0
InvocationTargetException
, otherwise anUndeclaredThrowableException
will be throwneach time the delegate throws an exception.
2.31.0
2.32.0
assert
statements in test code.Tests should use more specific AssertJ checks, which cannot be disabled by turning off asserts. Arguably the
assert
keyword should never be used, preferring preconditions. This way production environments cannot reach code paths that are impossible to test.2.33.0
Slf4jThrowable
check to ensure throwable args are logged last2.34.0
JooqResultStreamLeak
, which ensures that result streams and cursors returned from jOOQ results are closed in a try-with-resources block.2.35.0
2.35.1
The refaster rule breaks the common pattern:
Suppliers.memoize(supplier::get)
.2.35.2
2.36.0
StreamEmpty
with error proneStreamOfEmpty
to allow refactors to retain type arguments.2.37.0
AssertjPrimitiveComparison
for primitive comparisonsPrefer using AssertJ fluent comparisons over logic in an assertThat
statement for better failure output. assertThat(a == b).isTrue()
failures report 'expected true' where assertThat(a).isEqualTo(b)
provides the expected and actual values.
2.38.0
> 40% speedup when run against Google's codebase with errors enabled.
2.39.0
mockito-errorprone
to get Mockito error-prone checks.2.40.0
CatchSpecificity
andThrowSpecificity
to avoid unnecessarily broad throwables.Prefer more specific catch types than Exception and Throwable.
When methods are updated to throw new checked exceptions they expect
callers to handle failure types explicitly. Catching broad types defeats
the type system. By catching the most specific types possible we
leverage existing compiler functionality to detect unreachable code.
SafeArg.of
(when it's a last argument) are no longer unexpectedly split onto the next line.2.40.1
PreferJavaTimeOverload
error-prone check is turned off as it produces noisy false positives relating to custom AssertJ utilities.2.40.2
2.41.0
No documented user facing changes
2.42.0
NonComparableStreamSort
to validate that stream types implement comparable, as opposed to validating that casting to comparable does not cause a compiler error.This commit reduces the severity to WARNING because it's
possible that the check will flag code that happens to work
today, but we strongly recommend against sorting streams of
a type that is not directly comparable without a custom
comparator because it is likely to break later due to lack
of enforcement by the type system.
not enabled by default by providing a comma delimited list of check
names to the
-PerrorProneApply
option.2.43.0
Automated release, no documented user facing changes
To enable or disable this check, please contact the maintainers of Excavator.