Skip to content

Stop using auto-parallelizable#1954

Open
CRogers wants to merge 4 commits intodevelopfrom
callumr/remove-auto-parallelizable
Open

Stop using auto-parallelizable#1954
CRogers wants to merge 4 commits intodevelopfrom
callumr/remove-auto-parallelizable

Conversation

@CRogers
Copy link
Contributor

@CRogers CRogers commented Jan 5, 2026

Before this PR

We use auto-parallelizable, an annotation processor we made that uses the worker api so forces Gradle to run tasks in parallel. At one point, using the worker api was necessary to indicate to Gradle that the task should be run in parallel. However, modern Gradle is way smarter and now you can just write a "normal task" and provided you don't do anything naughty (eg getProject() call inside a task action, or complex Gradle domain object input like Configuration) then it will run the task in parallel (these broadly correspond to the configuration cache rules). We now have errorprone checks in gradle-guide that should prevent most of these mistakes.

When rolling out javaCompiler, there are some failures (circle, PR) because auto-parallelizable packages an old version of goethe, which packages an old version of palantir-java-format, which does not work with a 25 compiler:

Caused by: java.lang.NoSuchMethodError: 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()'
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.JavaInput.buildToks(JavaInput.java:366)
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.JavaInput.buildToks(JavaInput.java:334)
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.JavaInput.<init>(JavaInput.java:272)
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.Formatter.getFormatReplacements(Formatter.java:297)
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.Formatter.formatSource(Formatter.java:284)
        at shadow.com.palantir.goethe.goethe.com.palantir.javaformat.java.Formatter.formatSource(Formatter.java:252)
        at com.palantir.goethe.DirectFormatterFacade.formatSource(DirectFormatterFacade.java:36)
        at com.palantir.goethe.Goethe.formatAsString(Goethe.java:54)
        at com.palantir.goethe.Goethe.formatAndEmit(Goethe.java:68)
        at com.palantir.gradle.autoparallelizable.Emitter.emit(Emitter.java:50)

After this PR

==COMMIT_MSG==
Stop using auto-parallelizable on tasks, instead use regular tasks.
==COMMIT_MSG==

Rely on our errorprones to ensure tasks are parallelisable, stop using this annotation processor.

Testing

Relying on the existing automated tests.

Possible downsides?

Technical breaking change, but no one seems to use these tasks directly thankfully, so should be fine.

Are Docs needed?

🤖 Generated with Claude Code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@changelog-app
Copy link

changelog-app bot commented Jan 5, 2026

Generate changelog in changelog/@unreleased

Type (Select exactly one)

  • Feature (Adding new functionality)
  • Improvement (Improving existing functionality)
  • Fix (Fixing an issue with existing functionality)
  • Break (Creating a new major version by breaking public APIs)
  • Deprecation (Removing functionality in a non-breaking way)
  • Migration (Automatically moving data/functionality to a new system)

Description

Stop using auto-parallelizable on tasks, instead use regular tasks.

Check the box to generate changelog(s)

  • Generate changelog entry

@changelog-app
Copy link

changelog-app bot commented Jan 6, 2026

Successfully generated changelog entry!

Need to regenerate?

Simply interact with the changelog bot comment again to regenerate these entries.


📋Changelog Preview

🐛 Fixes

  • Stop using auto-parallelizable on tasks, instead use regular tasks. (#1954)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant