Add a Gradle Plugin for codegen#1235
Merged
Merged
Conversation
b19eccd to
7687f8a
Compare
timocov
reviewed
Jun 10, 2026
timocov
reviewed
Jun 10, 2026
7687f8a to
cc09ab3
Compare
mtdowling
approved these changes
Jun 10, 2026
4c661c2 to
60f025e
Compare
timocov
approved these changes
Jun 11, 2026
60f025e to
7e4b3e6
Compare
timocov
approved these changes
Jun 12, 2026
…ied and decided api vs implementation based on modes
7e4b3e6 to
e556773
Compare
sugmanue
approved these changes
Jun 16, 2026
yasmewad
approved these changes
Jun 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What behavior changes?
Adds a Gradle plugin (
software.amazon.smithy.java.gradle.smithy-java) that replaces manualsmithy-base+afterEvaluateboilerplate with a single plugin application that auto-wires source sets, dependencies, and task ordering.Why is this change needed?
Every customer project currently duplicates ~30 lines of Gradle plumbing to wire generated code. This plugin makes the zero-config path a one-liner and provides an explicit DSL (
modes,generatedPluginOutputs) for customization.How was this validated?
./gradlew :mcp:mcp-schemas:sourcesJar :mcp:mcp-schemas:jar --rerun-tasks --configuration-cachepasses with correct service files in all artifacts. Configuration cache reuse confirmed on subsequent runs.What should reviewers focus on?
SmithyJavaPlugin.java(dependency wiring viaValueSource, service-file merge witheachFilesource-path filtering) andSmithyBuildModesValueSource.java(configuration cache tracked file read).Additional Links
N/A
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.