Skip to content

[Task] Establish the shenyu-plugin-store build, test, E2E, and release baseline #7294

Open

Description

@Aias00

Background

apache/shenyu-plugin-store is the target repository for optional ShenYu plugins, but its current master branch is not yet a reliable migration target:

  • it has no Maven wrapper even though the PR template requires ./mvnw clean install;
  • it has no GitHub Actions workflow;
  • a clean root build fails because nested aggregator POMs resolve shenyu-plugin-store through the wrong relative path;
  • shenyu-plugin-tars explicitly skips Surefire tests;
  • plugin code is coupled to classes that may be removed from apache/shenyu (Motan already references removed enum/DTO members);
  • artifact publication ownership and the supported ShenYu compatibility range are not documented.

This issue is the blocking foundation for all plugin-by-plugin migrations.

Scope

Repository build contract

  • Add and commit Maven Wrapper files.
  • Fix aggregator parent resolution so a clean checkout builds from the repository root.
  • Separate the plugin-store release version from the consumed ShenYu core/API version.
  • Import or depend on a released ShenYu BOM/API contract without relying on an unpublished reactor.
  • Run Checkstyle, Apache RAT, compilation, unit tests, and packaging from one documented command.
  • Remove all module-level test skips unless a documented profile isolates an external integration test.

CI and compatibility

  • Add GitHub Actions for JDK 17 build/test/RAT/checkstyle.
  • Add a compatibility matrix for the supported ShenYu minor line(s).
  • Add a reusable per-plugin E2E job contract: build the plugin and starter, launch a gateway with the external artifact, configure the plugin, exercise one success path and one failure/config-refresh path, and collect logs.
  • Define how external middleware containers/services are provisioned and cached.
  • Require unit tests for plugin code and starter auto-configuration.

Release and governance

  • Document Maven coordinates, versioning, release cadence, and the cutover rule that prevents the same artifact from being published by both repositories.
  • Add dependency, LICENSE/NOTICE, source/javadoc, signing, and reproducible-release checks required by ASF releases.
  • Document the two-repository PR sequence and rollback procedure.
  • Add a plugin inventory/compatibility table to the README.

Acceptance Criteria

  • A clean checkout passes ./mvnw clean verify on JDK 17.
  • CI executes build, unit tests, Checkstyle, RAT, and packaging for every PR.
  • No migrated plugin silently skips unit tests.
  • A reusable E2E workflow is documented and proven with at least one existing plugin.
  • Plugin-store artifacts compile against the declared released ShenYu API/BOM.
  • Publication ownership and version compatibility rules are documented.
  • The contribution and PR templates reference commands that exist in this repository.

References

Activity

  1. github-actions commented on Sep 26, 2026

    @github-actions
    Contributor

    👋 Hello @Aias00

    A new issue has been opened by @Aias00:

    Please review when you have time. Thank you! 🙏

  2. sunnysabor commented on Oct 2, 2026

    @sunnysabor
    Contributor

    Progress update: I opened apache/shenyu-plugin-store PR #5 for the root build baseline and JDK 17 CI slice. The latest PR branch passes ./mvnw -B -ntp clean verify in the fork workflow across all 8 reactor modules (46 tests, Checkstyle, and RAT): run 36955295605.

    This is only the build/CI foundation. The broader E2E, compatibility, release, and governance acceptance criteria in this issue remain open; I am sharing the PR because #7295 depends on this build baseline.

  3. Aias00 commented on Oct 2, 2026

    @Aias00
    ContributorAuthor

    The current CI setup is comprehensive and meets the project's present needs. We do not need further CI adjustments at this time, so this issue is being closed for now.

  4. reopened this on Oct 8, 2026
  5. self-assigned this
    on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions