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

zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 7edf7f6d58 [VL][CI] Show positive changes in Iceberg CI log (#13365)
7edf7f6d58 is described below

commit 7edf7f6d587a7c92e4f69767e3b13edb36dbf62f
Author: inf / Hazmi <[email protected]>
AuthorDate: Tue Oct 20 11:57:46 2026 +0300

    [VL][CI] Show positive changes in Iceberg CI log (#13365)
---
 .github/workflows/util/iceberg-upstream/compare.py |  5 +--
 .../test/python/test_compare.py                    | 51 ++++++++++++++++++++++
 2 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/util/iceberg-upstream/compare.py 
b/.github/workflows/util/iceberg-upstream/compare.py
index 5ffbf182c8..682f74bea3 100644
--- a/.github/workflows/util/iceberg-upstream/compare.py
+++ b/.github/workflows/util/iceberg-upstream/compare.py
@@ -372,13 +372,14 @@ def main():
         )
     for title, rows in (
         ("Regressions", result["regressions"]),
+        ("Improvements", result["improvements"]),
         ("Other changes (informational)", result["highlights"]),
         ("Whitelisted changes (ignored)", result["ignored_changes"]),
     ):
         if not rows:
             continue
         lines.extend(["", f"### {title}: {len(rows)}", ""])
-        for row in rows[:20]:
+        for row in rows:
             detail = row["reason"]
             if row.get("lost_native"):
                 detail += "; native nodes lost: " + ", 
".join(row["lost_native"])
@@ -387,8 +388,6 @@ def main():
             lines.append(
                 f"- `{row['class']}#{row['name']}`: {row['before']} → 
{row['after']} ({detail})"
             )
-        if len(rows) > 20:
-            lines.append("See the comparison artifact for the remaining 
changes.")
     text = "\n".join(lines) + "\n"
     print(text)
     if os.environ.get("GITHUB_STEP_SUMMARY"):
diff --git a/gluten-ut/src-iceberg-upstream/test/python/test_compare.py 
b/gluten-ut/src-iceberg-upstream/test/python/test_compare.py
index a3acbecb6b..e20a09a853 100644
--- a/gluten-ut/src-iceberg-upstream/test/python/test_compare.py
+++ b/gluten-ut/src-iceberg-upstream/test/python/test_compare.py
@@ -305,6 +305,57 @@ class ComparisonTest(unittest.TestCase):
                     diagnostic = json.loads((root / "diff.json").read_text())
                     self.assertTrue(diagnostic["validation_errors"])
 
+    def test_gate_prints_every_change_in_logs_and_summary(self):
+        base, current = report("PASSED_NATIVE"), report("PASSED_NATIVE")
+        expected = []
+        for method, before, after, reason in (
+            ("regression", "PASSED_FALLBACK", "FAILED", "STATUS_REGRESSION"),
+            ("improvement", "PASSED_FALLBACK", "PASSED_NATIVE", 
"STATUS_CHANGE"),
+            ("informational", "PASSED_FALLBACK", "PASSED_FALLBACK", 
"EVIDENCE_CHANGE"),
+            ("ignored", "PASSED_FALLBACK", "FAILED", "STATUS_REGRESSION"),
+        ):
+            for invocation in range(1, 22):
+                name = f"{method}()[{invocation}]"
+                base["tests"].extend(report(before, name)["tests"])
+                current["tests"].extend(report(after, name)["tests"])
+                if method == "informational":
+                    current["tests"][-1]["fallback"] = 
["IcebergScanTransformer"]
+                expected.append(
+                    f"- `org.apache.iceberg.TestScan#{name}`: {before} → 
{after} ({reason})"
+                )
+        with tempfile.TemporaryDirectory() as temporary:
+            root = Path(temporary)
+            (root / "base.json").write_text(json.dumps(base))
+            (root / "head.json").write_text(json.dumps(current))
+            config = root / "flaky.csv"
+            
config.write_text("class,method\norg.apache.iceberg.TestScan,ignored\n")
+            summary = root / "summary.md"
+            result = subprocess.run(
+                [
+                    sys.executable,
+                    str(SCRIPT),
+                    str(root / "base.json"),
+                    str(root / "head.json"),
+                    "--output",
+                    str(root / "diff.json"),
+                    "--flaky-tests",
+                    str(config),
+                ],
+                capture_output=True,
+                text=True,
+                env=dict(os.environ, GITHUB_STEP_SUMMARY=str(summary)),
+            )
+            self.assertEqual(1, result.returncode, result.stderr + 
result.stdout)
+            for output in (result.stdout, summary.read_text()):
+                self.assertIn("21 regressions, 21 improvements", output)
+                self.assertIn("### Improvements: 21", output)
+                self.assertEqual(
+                    sorted(expected),
+                    sorted(
+                        line for line in output.splitlines() if 
line.startswith("- ")
+                    ),
+                )
+
     def test_new_tests_cannot_add_failures(self):
         current = report("PASSED_NATIVE")
         current["tests"].extend(report("FAILED", "new")["tests"])


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to