Skip to content

W-23708419: Simplify TCK test runner configuration - #153

Merged
mlischetti merged 2 commits into
masterfrom
simplify-tck-runner
Aug 4, 2026
Merged

W-23708419: Simplify TCK test runner configuration#153
mlischetti merged 2 commits into
masterfrom
simplify-tck-runner

Conversation

@mlischetti

@mlischetti mlischetti commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Simplifies TCK test runner configuration and aligns CLI/Node TCK execution behavior.

Problems

  1. Dual-version TCK loop: CI ran two separate TCK steps per artifact (one for 2.12.2-SNAPSHOT, one for 2.13.0-SNAPSHOT), doubling TCK CI time with version overrides hidden in workflow YAML.
  2. CLI/Node TCK asymmetry: CLI TCK ran on every PR via build-foundation, while Node TCK only ran on master. This made PR CI slower without proportional value.

Solution

1. Single TCK version in gradle.properties

Split weaveVersion (runtime) from weaveTCKVersion (test suite):

weaveVersion=2.12.2-SNAPSHOT          # runtime at latest stable release
weaveTCKVersion=2.13.0-SNAPSHOT       # TCK at latest for forward compatibility

Changes:

  • gradle.properties — replaced weaveTestSuiteVersion + weaveSuiteVersion with single weaveTCKVersion
  • native-cli/build.gradlegenVersions exposes ComponentVersion.weaveTCKVersion
  • TCKCliTest.scala — loads test suites using weaveTCKVersion
  • native-lib/build.gradle — uses weaveTCKVersion for staging TCK suites
  • CI actions (cli/node) — removed dual-version TCK steps → single step per artifact

2. Master-only TCK execution (CLI + Node)

Make CLI TCK behavior consistent with Node: both now run only on master.

Changes:

  • build-foundation/action.yml — added -PskipTCKTests=true flag (matches existing -PskipNodeTests pattern)
  • native-cli-integration-tests/build.gradle — added test exclusion filter to skip TCKCliTest when flag is set
  • Other integration tests (NativeCliTest) still run on every PR
  • CLI TCK still runs explicitly on master via "Run CLI TCK Conformance" step

Benefits

  • Halves TCK CI time (one run per artifact instead of two)
  • Faster PR builds (TCK runs only on master, not every PR)
  • Centralizes version control in gradle.properties (not workflow YAML)
  • Clarifies intent — runtime version vs. test-suite version are explicit
  • Consistent TCK behavior — CLI and Node both master-only

Testing

  • Property validation confirms -PskipTCKTests=true excludes TCKCliTest
  • Property validation confirms TCKCliTest runs when flag is absent
  • CI runs green with simplified workflow

Test plan

Verify CI passes on this PR with the simplified workflow and master-only TCK execution.

🤖 Generated with Claude Code

Consolidate the dual-version TCK loop in CI to a single run per artifact,
controlled by gradle.properties. Previously CI ran separate steps for
2.12.2-SNAPSHOT and 2.13.0-SNAPSHOT, passing -PweaveTestSuiteVersion to
override the version at runtime. This simplified approach:

- Splits weaveVersion (runtime: 2.12.2-SNAPSHOT) from weaveTCKVersion
  (test suite: 2.13.0-SNAPSHOT) in gradle.properties
- Exposes weaveTCKVersion via ComponentVersion.scala at compile time
- Updates TCKCliTest to load test suites using weaveTCKVersion
- Removes the separate CI steps (halves TCK CI time)
- Removes the runtime property override mechanism from build.gradle

The runtime runs at the latest stable release (2.12.2) while TCK tests
run against the latest suite (2.13.0) for forward compatibility.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@mlischetti
mlischetti requested a review from a team as a code owner August 4, 2026 13:11
@mlischetti mlischetti changed the title Simplify TCK test runner configuration W-23708419: Simplify TCK test runner configuration Aug 4, 2026
@mlischetti
mlischetti force-pushed the simplify-tck-runner branch from f27be0e to b85c42f Compare August 4, 2026 13:40
CLI TCK was running on every PR via build-foundation while Node TCK
only runs on master via the explicit "Run Node.js TCK Conformance" step.
This made PR CI slower without providing proportional value — the TCK
suite is comprehensive and best suited for master branch validation.

Changes:
- Add -PskipTCKTests=true flag to build-foundation action (matching
  existing -PskipNodeTests pattern)
- Add test exclusion filter in native-cli-integration-tests/build.gradle
  to exclude TCKCliTest class when flag is set
- Other integration tests (NativeCliTest) still run on every PR
- CLI TCK still runs explicitly on master via "Run CLI TCK Conformance"
  step in .github/actions/cli/action.yml

This aligns CLI and Node TCK behavior: both now run only on master.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@mlischetti
mlischetti merged commit c002460 into master Aug 4, 2026
5 checks passed
@mlischetti
mlischetti deleted the simplify-tck-runner branch August 4, 2026 14:29
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.

2 participants