Skip to content

Add Gradle plugin for Roseau with DSL and publishing support#176

Open
Gu-ZT wants to merge 2 commits into
alien-tools:mainfrom
Gu-ZT:feat/gradle-plugin
Open

Add Gradle plugin for Roseau with DSL and publishing support#176
Gu-ZT wants to merge 2 commits into
alien-tools:mainfrom
Gu-ZT:feat/gradle-plugin

Conversation

@Gu-ZT

@Gu-ZT Gu-ZT commented Jun 20, 2026

Copy link
Copy Markdown

No description provided.

Gu-ZT and others added 2 commits June 20, 2026 19:43
Add a Gradle plugin (io.github.alien-tools.roseau) that provides a
DSL extension and a  task wired into the  lifecycle:

- RoseauExtension: DSL root with artifact coordinates, exclusions, reports,
  Maven repository configuration, and failure behavior.
- RoseauTask (@CacheableTask): resolves baseline artifacts via Gradle
  dependency resolution, runs Roseau.diff(), writes CSV/HTML/JSON/MD
  reports, and fails the build on breaking changes when configured.
- DSL support classes: ExcludeExtension (regex name + annotation-based
  exclusions), AnnotationExclusionSpec (annotation name + member-value
  matching), MavenRepositoryExtension, ReportSpec.
- Supports annotation exclusion (e.g. @API(status=INTERNAL)) via the
  excludes { annotation(...) { arg(...) } } DSL.
- Build: standalone Gradle build (gradle-plugin/) using java-gradle-plugin
  and maven-publish, depending on roseau-core.
- Tests: 3 functional tests using Gradle TestKit covering breaking change
  detection, report generation, and annotation-based exclusion.
- Test project fixture in src/test/resources/test-project/ for manual
  end-to-end verification.
- Docs: updated README, docs/index.md, docs/guides/gradle.md, and added
  docs/reference/gradle-plugin.md.

Co-Authored-By: Claude <noreply@anthropic.com>
…g with signing

Replace direct maven-publish + signing plugin approach with JReleaser:
- Publish artifacts to local staging directory instead of directly to Maven Central
- Let JReleaser handle signing (GPG) and deployment to Sonatype
- Add snapshot deploy job for main branch pushes
- Add full-release job for tag-triggered releases
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant