You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/08/12 01:20:55 UTC

(skywalking) branch master updated: Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)

This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 679b5c6e18 Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)
679b5c6e18 is described below

commit 679b5c6e189e7a122a53238011d92e83f8954cf2
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Aug 11 18:20:49 2026 -0700

    Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)
    
    runtime-rule
    ------------
    Six test-scoped dependencies staged the plugin-side ITs (MalApplyRollbackIT,
    MalShapeBreakIT, StorageStackHarness, TwoNodeClusterHarness and friends) that
    were retired in favour of e2e. The ITs never reached master; the dependencies and
    their explanatory comments did, so the POM documented collaborators that do not
    exist - a reader following the comments to StorageStackHarness finds nothing.
    
    That coverage is not lost. It lives in test/e2e-v2/cases/runtime-rule/ - MAL over
    BanyanDB / PostgreSQL / Elasticsearch, LAL, meter, and the two-node cluster case -
    six jobs wired into skywalking.yaml. The changelog says so, so the next reader
    does not have to reconstruct it from an unmerged branch.
    
    server-testing scope
    --------------------
    server-testing ships test scaffolding (ModuleManagerTesting, MockModuleManager,
    the MAL/LAL/Hierarchy rule loaders) plus two empty org.junit stubs that let
    Testcontainers' GenericContainer hierarchy resolve without JUnit 4. Four modules
    declared it at compile scope - including the server-configuration parent, so all
    eight configuration-* children inherited it - which put those org.junit stubs on
    the runtime classpath that server-starter's copy-dependencies (includeScope
    runtime) packages into oap-libs. Shipping empty org.junit types is a hazard for
    anything that later puts real JUnit on an OAP classpath.
    
    Modules whose tests need the stubs now declare the dependency themselves instead
    of inheriting it transitively: meter-analyzer, library-client,
    storage-elasticsearch-plugin and storage-jdbc-hikaricp-plugin. Source greps
    cannot find these - a test that builds a Testcontainers GenericContainer forces
    javac to resolve TestRule through its superclass chain with no import to match -
    so the set was derived from which modules' tests touch org.testcontainers, and
    confirmed by a full build.
    
    library-banyandb-client also gains the direct library-util dependency its
    BanyanDBClient always needed: it was resolving StringUtil through
    server-testing -> library-module -> library-util, i.e. production code reaching a
    utility class through a test-support module. Its library-integration-test
    dependency moves to test scope as well (zero src/main references, two in
    src/test; the only compile-scope declaration of that artifact in the repo).
    
    No production code, no test code, no behaviour change.
---
 CLAUDE.md                                          |  3 +-
 docs/en/changes/changes.md                         |  2 +
 oap-server/analyzer/meter-analyzer/pom.xml         |  6 +++
 oap-server/server-admin/runtime-rule/pom.xml       | 51 ----------------------
 .../configuration-nacos/pom.xml                    |  1 +
 oap-server/server-configuration/pom.xml            |  1 +
 .../server-library/library-banyandb-client/pom.xml |  7 +++
 oap-server/server-library/library-client/pom.xml   |  6 +++
 .../library-elasticsearch-client/pom.xml           |  1 +
 .../storage-elasticsearch-plugin/pom.xml           |  6 +++
 .../storage-jdbc-hikaricp-plugin/pom.xml           |  6 +++
 11 files changed, 38 insertions(+), 52 deletions(-)

diff --git a/CLAUDE.md b/CLAUDE.md
index 3b738940e3..d582615594 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -275,7 +275,8 @@ Always use `--recurse-submodules` when cloning or update submodules manually.
   items). The changelog becomes the GitHub release body, which GitHub renders as GFM where a single
   newline continuing a bullet becomes a `<br>`, so prose-wrapped bullets show jagged mid-sentence breaks on
   the release page (verified on v10.4.0; the docs website reflows and hides the problem). See
-  `guides/How-to-release.md`.
+  `guides/How-to-release.md`. Append a new entry at the **end** of its section, never at the top —
+  the section reads in the order the changes landed.
 - `swip/` - SkyWalking Improvement Proposals
 
 ### SWIP vs. operator docs
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 6344bf007f..455b12a197 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -254,6 +254,8 @@
   `application.yml` overrides referencing `status-query` need to repoint
   to `status`. Routes are admin-host only — see the "Status API is
   admin-host only" entry above for the public REST retirement.
+* Drop six unused test-scoped dependencies from `runtime-rule` (`library-integration-test`, `library-banyandb-client`, `storage-banyandb-plugin`, `testcontainers`, `testcontainers:junit-jupiter`, `grpc-testing`). They staged the plugin-side ITs that were retired in favour of e2e; that coverage now lives in `test/e2e-v2/cases/runtime-rule/` (MAL over BanyanDB / PostgreSQL / Elasticsearch, LAL, meter, and the two-node cluster case). The module has no ITs today, and JUnit and Mockito are in [...]
+* Declare `server-testing` at `test` scope everywhere. It ships only test scaffolding (`ModuleManagerTesting`, `MockModuleManager`, the MAL/LAL/Hierarchy rule loaders) plus two empty `org.junit` stubs that let Testcontainers' `GenericContainer` hierarchy resolve without JUnit 4, but four modules declared it at compile scope — including the `server-configuration` parent, so all eight `configuration-*` children inherited it — which put those `org.junit` stubs on the runtime classpath that  [...]
 
 #### OAP Server
 * Fix LAL's `segmentId` and `spanId` extractor statements, which the grammar accepted and the parser never implemented. `LALParser.g4` declares `traceIdStatement`, `segmentIdStatement` and `spanIdStatement`, and the codegen already carried `setSegmentId`/`setSpanId` in its setter table, but `LALScriptParser.visitExtractorStatement` had a branch for only the first of the three. The remaining alternatives fell through to a line that assumed whatever was left had to be an `ifStatement`, so  [...]
diff --git a/oap-server/analyzer/meter-analyzer/pom.xml b/oap-server/analyzer/meter-analyzer/pom.xml
index 57d3fd200e..efd19219a1 100644
--- a/oap-server/analyzer/meter-analyzer/pom.xml
+++ b/oap-server/analyzer/meter-analyzer/pom.xml
@@ -50,6 +50,12 @@
             <groupId>org.javassist</groupId>
             <artifactId>javassist</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>server-testing</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/oap-server/server-admin/runtime-rule/pom.xml b/oap-server/server-admin/runtime-rule/pom.xml
index ca02c8aac3..1d14b5936e 100644
--- a/oap-server/server-admin/runtime-rule/pom.xml
+++ b/oap-server/server-admin/runtime-rule/pom.xml
@@ -97,57 +97,6 @@
             <artifactId>grpc-stub</artifactId>
             <version>${grpc.version}</version>
         </dependency>
-        <!--
-          IT-only deps. library-integration-test provides BanyanDBTestContainer + ITVersions
-          so the runtime-rule ITs share image/port/version constants with every other BanyanDB
-          IT in the repo. library-banyandb-client gives MalApplyRollbackIT / MalShapeBreakIT a
-          read-side verifyClient to inspect groups and measures independently of the
-          storage-plugin write path.
-        -->
-        <dependency>
-            <groupId>org.apache.skywalking</groupId>
-            <artifactId>library-integration-test</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.skywalking</groupId>
-            <artifactId>library-banyandb-client</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <!--
-          storage-banyandb-plugin gives us BanyanDBIndexInstaller, BanyanDBStorageDAO,
-          BanyanDBBatchDAO, and BanyanDBRuntimeRuleManagementDAO — the concrete services the
-          StorageStackHarness wires into the mocked ModuleManager so MeterSystem.create fires
-          real DDL against the Testcontainers BanyanDB.
-        -->
-        <dependency>
-            <groupId>org.apache.skywalking</groupId>
-            <artifactId>storage-banyandb-plugin</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <!--
-          grpc-testing provides InProcessServerBuilder / InProcessChannelBuilder used by the
-          two-node cluster harness. Keeps the in-memory gRPC transport real (deadlines, status
-          codes, cancellation) without a TCP loopback.
-        -->
-        <dependency>
-            <groupId>io.grpc</groupId>
-            <artifactId>grpc-testing</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/oap-server/server-configuration/configuration-nacos/pom.xml b/oap-server/server-configuration/configuration-nacos/pom.xml
index 69a103faee..8b33d08683 100644
--- a/oap-server/server-configuration/configuration-nacos/pom.xml
+++ b/oap-server/server-configuration/configuration-nacos/pom.xml
@@ -51,6 +51,7 @@
             <groupId>org.apache.skywalking</groupId>
             <artifactId>server-testing</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 </project>
diff --git a/oap-server/server-configuration/pom.xml b/oap-server/server-configuration/pom.xml
index b75c60e32f..e1a1bd907c 100644
--- a/oap-server/server-configuration/pom.xml
+++ b/oap-server/server-configuration/pom.xml
@@ -44,6 +44,7 @@
             <groupId>org.apache.skywalking</groupId>
             <artifactId>server-testing</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
     </dependencies>
 </project>
diff --git a/oap-server/server-library/library-banyandb-client/pom.xml b/oap-server/server-library/library-banyandb-client/pom.xml
index 5d80c319bb..a222671d7f 100644
--- a/oap-server/server-library/library-banyandb-client/pom.xml
+++ b/oap-server/server-library/library-banyandb-client/pom.xml
@@ -71,11 +71,18 @@
             <groupId>org.apache.skywalking</groupId>
             <artifactId>server-testing</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.skywalking</groupId>
             <artifactId>library-integration-test</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>library-util</artifactId>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
     <build>
diff --git a/oap-server/server-library/library-client/pom.xml b/oap-server/server-library/library-client/pom.xml
index 91c26d68b7..22368d1b46 100755
--- a/oap-server/server-library/library-client/pom.xml
+++ b/oap-server/server-library/library-client/pom.xml
@@ -91,5 +91,11 @@
             <artifactId>elasticsearch</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>server-testing</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/oap-server/server-library/library-elasticsearch-client/pom.xml b/oap-server/server-library/library-elasticsearch-client/pom.xml
index 47c8669982..335cd83459 100644
--- a/oap-server/server-library/library-elasticsearch-client/pom.xml
+++ b/oap-server/server-library/library-elasticsearch-client/pom.xml
@@ -56,6 +56,7 @@
             <groupId>org.apache.skywalking</groupId>
             <artifactId>server-testing</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.skywalking</groupId>
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
index d35fd484bb..0e5a15a990 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
@@ -39,5 +39,11 @@
             <artifactId>library-client</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>server-testing</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
index 17d6c7fdb7..7e030b22d0 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
@@ -54,5 +54,11 @@
             <artifactId>postgresql</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>server-testing</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>