Skip to content

Rename integration tests to XIgTest and update embed-code to v1.2.5 - #336

Merged
alexander-yevsyukov merged 12 commits into
masterfrom
claude/brave-kare-937953
Oct 20, 2026
Merged

alexander-yevsyukov merged 12 commits into
masterfrom
claude/brave-kare-937953

Conversation

@alexander-yevsyukov

@alexander-yevsyukov alexander-yevsyukov commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

Integration test names follow XIgTest

.agents/guidelines/testing.md names an integration suite XIgTest. The suites under tests/ used the legacy *ITest suffix, or a plain *Test. This PR renames 41 of them with git mv:

  • 36 *ITest suites in tests/consumer, tests/runtime and tests/validating.
  • 5 *Test suites: JavaMessageSmokeTest and JavaMessageJavaApiSmokeTest (Java) in tests/validating, and ExternalMessageValidatorTest, PackedMessageValidatorTest and ValidatorTest in tests/validator.

The KDoc links in the testFixtures test environments now use the new names. On the "Testing strategy" page, the naming rule now reads XSpec for unit tests and XIgTest for integration tests. I also dropped that page's reference to ExternalConstraintITest.kt, which was deleted in ec27f92.

Two things were deliberately left as they are:

  • The *Spec suites under tests/, which already use a guideline suffix.
  • The abstract base class ValidationOfConstraintTest, which is not a suite.

No build script, workflow or test filter matches on these names.

embed-code binaries updated to v1.2.5

The binaries in docs/_bin are now the assets of embed-code-go v1.2.5. Each file matches the SHA-256 digest published with the release. Upstream no longer keeps binaries in bin/, so the assets map to files here as follows. This is the same layout SpineEventEngine/documentation uses.

Release asset File under docs/_bin/
embed-code-linux.zip embed-code-linux
embed-code-macos-arm64.zip embed-code-macos
embed-code-macos-x64.zip embed-code-macos-x86_64 (new)
embed-code-windows.exe embed-code-windows.exe

embed-code-macos is now a native Apple silicon build; the old x86_64 binary failed with "Bad CPU type" on Macs without Rosetta. Since v1.2.3 the tool exits with status 1 on any embedding error, and that exposed two problems:

  • Stale embed in "Build and release". publish.yml now hands publishing off to the shared publishing.yml workflow in config. Master fixed this embed in the meantime (9bcc3df), and this branch keeps master's version.
  • code-includes in _settings/embed-code.yml. The tool now ignores this option, so I removed it and updated the docs pages that described it.

Version and docs

  • validationVersion: 2.0.0-SNAPSHOT.466 → 2.0.0-SNAPSHOT.467, after merging master, where Keep LaunchSpineCompiler up to date and its output deterministic #335 had already used .466. The dependency reports are regenerated with a full build.
  • The embeds now show .467: in "Build and release", and in "Adding to build" (which also picks up CoreJvm .097). Re-embedding also updated the RequiredField snippets in "Adding a built-in option" and "The validation model" to match views.proto on master. Both were produced by running embed-code v1.2.5 against the pinned _examples and _time submodules, after :docs:updatePluginVersions. That matches how CI's checkSamples runs.

Notes for reviewers

  • _script/embed-code and _script/check-samples pick the macOS binary by uname -m: embed-code-macos on arm64, embed-code-macos-x86_64 on Intel. GitHub Actions still uses embed-code-linux.

Verification

  • ./gradlew build dokkaGenerate passes after the merge. The IgTest suites ran 513 tests with no failures.
  • ./gradlew :docs:checkSamples passes with v1.2.5.
  • Pre-PR reviewers: kotlin-engineer APPROVE; spine-code-review and review-docs APPROVE WITH CHANGES, with no must-fix items. Their should-fix items are KDoc lines over 100 characters that were already too long and grew with the rename, plus wording in the new docs text.

🤖 Generated with Claude Code

alexander-yevsyukov and others added 5 commits October 19, 2026 21:48
Follow the naming convention in `.agents/guidelines/testing.md`, where an
integration suite is `XIgTest`:

- 36 `*ITest` suites in `tests/consumer`, `tests/runtime`, and
  `tests/validating`.
- 5 `*Test` suites: `JavaMessageSmokeTest` and `JavaMessageJavaApiSmokeTest`
  in `tests/validating`; `ExternalMessageValidatorTest`,
  `PackedMessageValidatorTest`, and `ValidatorTest` in `tests/validator`.

Update the KDoc links in the `testFixtures` test environments, and the
naming convention and file references in the "Testing strategy" page,
dropping the stale `ExternalConstraintITest.kt` reference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the binaries in `docs/_bin` with the assets of the upstream
`SpineEventEngine/embed-code-go` release v1.2.5. Upstream no longer keeps
binaries under `bin/`; it publishes them as release assets, which map to
the files here as follows, matching the layout of
`SpineEventEngine/documentation`:

- `embed-code-linux.zip` -> `embed-code-linux`
- `embed-code-macos-arm64.zip` -> `embed-code-macos`
- `embed-code-macos-x64.zip` -> `embed-code-macos-x86_64` (new)
- `embed-code-windows.exe` (name kept)

Each file matches the SHA-256 digest published with the release.
`embed-code-macos` is now a native Apple silicon binary; the previous
x86_64 one failed with "Bad CPU type" on Macs without Rosetta.

Since v1.2.3 every embedding error exits with status 1, which surfaced
a stale embed in "Build and release": `publish.yml` now delegates to the
shared `publishing.yml` workflow from `config`, so the page embeds the
publish command from there. Drop the `code-includes` option, which the
tool no longer supports, and update the documentation pages describing
the binaries, the update procedure, and the embedding configuration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-embed the plugin versions from the example projects after
`:docs:updatePluginVersions`: Validation `2.0.0-SNAPSHOT.466` and
CoreJvm `2.0.0-SNAPSHOT.097`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 19, 2026 21:23
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T21:26:16.635785Z 6301e66 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6301e66b55

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Bundled executables need cross-platform validation, and the Intel Mac script-selection regression remains unresolved.

1 open issue
What changed in this PR

Standardizes Validation integration-test names and updates documentation tooling to embed-code v1.2.5.

Changes:

  • Renames 41 suites to XIgTest and updates KDoc links and testing guidance.
  • Updates embedding configuration, release instructions, and generated examples.
  • Bumps Validation to .466 and refreshes dependency reports; merge order with #335 determines whether .467 is needed.
File Description
version.gradle.kts Bumps Validation to .466.
tests/​validator/​src/​test/​kotlin/​io/​spine/​tools/​validation/​test/​ValidatorIgTest.kt Renames validator suite.
tests/​validator/​src/​test/​kotlin/​io/​spine/​tools/​validation/​test/​PackedMessageValidatorIgTest.kt Renames packed-message suite.
tests/​validator/​src/​test/​kotlin/​io/​spine/​tools/​validation/​test/​ExternalMessageValidatorIgTest.kt Renames external-message suite.
tests/​validating/​src/​testFixtures/​kotlin/​io/​spine/​test/​options/​setonce/​SetOnceViolationTestEnv.kt Updates KDoc suite links.
tests/​validating/​src/​testFixtures/​kotlin/​io/​spine/​test/​options/​goes/​GoesViolationTestEnv.kt Updates KDoc suite links.
tests/​validating/​src/​testFixtures/​kotlin/​io/​spine/​test/​options/​goes/​GoesOneWayTestEnv.kt Updates KDoc suite links.
tests/​validating/​src/​testFixtures/​kotlin/​io/​spine/​test/​options/​goes/​GoesMutualTestEnv.kt Updates KDoc suite links.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​ValidateIgTest.kt Renames validation suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​setonce/​SetOnceViolationIgTest.kt Renames violation suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​setonce/​SetOnceIntegerIgTest.kt Renames integer suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​setonce/​SetOnceIgTest.kt Renames suite and updates KDoc links.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​setonce/​SetOnceFieldsIgTest.kt Renames suite and updates KDoc link.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequireIgTest.kt Renames require suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredStringIgTest.kt Renames string suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredRepeatedNumberIgTest.kt Renames repeated-number suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredRepeatedEnumIgTest.kt Renames repeated-enum suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredRepeatedBytesIgTest.kt Renames repeated-bytes suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredNumberIgTest.kt Renames number suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMessageIgTest.kt Renames message suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMapWithStringsIgTest.kt Renames string-map suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMapWithNumbersIgTest.kt Renames number-map suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMapWithMessagesIgTest.kt Renames message-map suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMapWithBytesIgTest.kt Renames bytes-map suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredMapEnumIgTest.kt Renames enum-map suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredIgTest.kt Renames required-option suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredEnumIgTest.kt Renames enum suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​required/​RequiredBytesIgTest.kt Renames bytes suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​NumberConstraintsIgTest.kt Renames numeric-constraints suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​goes/​GoesViolationIgTest.kt Renames violation suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​goes/​GoesOneWayIgTest.kt Renames one-way dependency suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​goes/​GoesMutualIgTest.kt Renames mutual-dependency suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​DistinctIgTest.kt Renames distinct-option suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​CustomOptionsLoadingIgTest.kt Renames option-loading suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​ChoiceIgTest.kt Renames choice-option suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​options/​AssumedRequiredIgTest.kt Renames assumed-required suite.
tests/​validating/​src/​test/​kotlin/​io/​spine/​test/​JavaMessageSmokeIgTest.kt Renames Kotlin smoke suite.
tests/​validating/​src/​test/​java/​io/​spine/​test/​JavaMessageJavaApiSmokeIgTest.java Renames Java smoke suite.
tests/​runtime/​src/​test/​kotlin/​io/​spine/​validation/​MessageExtensionsIgTest.kt Renames runtime extensions suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​ValidateRuleIgTest.kt Renames validate-rule suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​RequiredRuleIgTest.kt Renames required-rule suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​PatternRuleIgTest.kt Renames pattern-rule suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​MinRuleIgTest.kt Renames minimum-rule suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​DistinctRuleIgTest.kt Renames distinct-rule suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​CurrencyOptionIgTest.kt Renames custom-option suite.
tests/​consumer/​src/​test/​kotlin/​io/​spine/​validation/​test/​ChoiceRuleIgTest.kt Renames choice-rule suite.
docs/​dependencies/​pom.xml Updates reported project version.
docs/​dependencies/​dependencies.md Refreshes dependency reports.
docs/​content/​docs/​validation/​user/​01-getting-started/​adding-to-build.md Refreshes plugin-version examples.
docs/​content/​docs/​validation/​developer/​testing-strategy.md Documents suite naming and removes stale reference.
docs/​content/​docs/​validation/​developer/​documentation/​tooling.md Documents binaries and release downloads.
docs/​content/​docs/​validation/​developer/​documentation/​procedures.md Updates binary replacement instructions.
docs/​content/​docs/​validation/​developer/​documentation/​embedded-examples.md Documents unfiltered source-file support.
docs/​content/​docs/​validation/​developer/​build-and-release.md Refreshes version and publishing embed.
docs/​_settings/​embed-code.yml Removes ignored code-includes option.

Review effort: Balanced

alexander-yevsyukov and others added 6 commits October 19, 2026 22:30
`embed-code-macos` is now an Apple silicon binary, so on Intel Macs
`_script/embed-code` and the local branch of `_script/check-samples`
failed with "Bad CPU type in executable" while the bundled
`embed-code-macos-x86_64` was never used. Both scripts now pick the
binary by `uname -m`; the Linux binary is still used on GitHub Actions.

Update the documentation pages that name the macOS binary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…37953

# Conflicts:
#	docs/content/docs/validation/developer/build-and-release.md
#	docs/dependencies/dependencies.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Re-embed the version in "Build and release" and "Adding to build" after
the re-bump. The run also brings the `RequiredField` snippets in "Adding
a built-in option" and "The validation model" in line with `views.proto`,
which gained `option (is).java_type = "FieldView"` on `master`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`master` made "CodeMatters Open-Source" the default copyright profile.
Apply its notice to the source files this branch changes: the renamed
`*IgTest` suites and the `testFixtures` test environments.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.57%. Comparing base (b649bf0) to head (e468146).

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #336   +/-   ##
=========================================
  Coverage     93.57%   93.57%           
  Complexity      367      367           
=========================================
  Files            86       86           
  Lines          2117     2117           
  Branches        159      159           
=========================================
  Hits           1981     1981           
  Misses           92       92           
  Partials         44       44           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Bundled executable checksums still need independent confirmation against the upstream release before approval.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

Wrap `(required)` in backticks in the `@DisplayName` of the
`Required{String,Bytes,Enum,Message}IgTest` suites, two of which were
missing only the opening backtick, and use `null` instead of 'null' in
`JavaMessageJavaApiSmokeIgTest`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@alexander-yevsyukov
alexander-yevsyukov merged commit 59f6427 into master Oct 20, 2026
11 checks passed
@alexander-yevsyukov
alexander-yevsyukov deleted the claude/brave-kare-937953 branch October 20, 2026 14:26
@github-project-automation github-project-automation Bot moved this from In Review to ✅ Done in v2.0 Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants