apache / apache/shenyu

[Task] Add cross-repo compatibility test strategy

Open
#6,367 1 comment 0 reactions 0 assignees View on GitHub
status: volunteer wanted
Dominant language
Java
Stars
8.8k
Forks
3.1k
Avg merge
7d 1h
Merged PRs (30d)
85

Description

### Description

## Background

Once Java client code is split into `shenyu-client-java`, normal unit tests in either repository are not enough to guarantee compatibility. We need a strategy for cross-repo compatibility testing.

The goal is to define how main repo changes and client repo changes are tested together before release.

## Tasks

- [ ] Identify the minimum cross-repo compatibility scenarios.
- [ ] Define how main repo CI can test against a selected client artifact version.
- [ ] Define how client repo CI can test against a selected main repo admin/bootstrap version.
- [ ] Decide whether tests should run on every PR, nightly, or before release.
- [ ] Define required Docker/Testcontainers/local process setup.
- [ ] Define compatibility matrix dimensions: client version, main repo version, JDK version.
- [ ] Propose a minimal first implementation plan.

## Suggested Scenarios

- Client registers Spring MVC metadata to admin.
- Client sends heartbeat and admin keeps the instance alive.
- Bootstrap receives route data and can proxy a request.
- New admin accepts old client registration.
- New client can register with the current stable admin.

## Expected Output

A test strategy document or design proposal.

## Acceptance Criteria

- The proposal distinguishes PR-level tests from release-level tests.
- The proposal includes a minimal implementable first phase.
- The proposal identifies expected runtime cost and CI impact.

### Task List

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

No files or existing test entry points are named. Start by locating the main repository and shenyu-client-java CI and integration-test entry points, then map the listed registration, heartbeat, bootstrap, and version-pair scenarios. Done means a strategy document that separates PR and release coverage, defines a minimal first phase, and estimates runtime and CI impact.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java
Domain
ci-cd, testing
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.