Skip to content

Adopt the de-event-sourcing storage API of CoreJvm - #204

Open
alexander-yevsyukov wants to merge 14 commits into
masterfrom
de-event-sourcing
Open

Adopt the de-event-sourcing storage API of CoreJvm#204
alexander-yevsyukov wants to merge 14 commits into
masterfrom
de-event-sourcing

Conversation

@alexander-yevsyukov

@alexander-yevsyukov alexander-yevsyukov commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Part of the de-event-sourcing delivery train: the Phase H rollout of the new
core-jvm storage SPI (2.0.0-SNAPSHOT.522) to the Datastore storage vendor.
Reference implementation: SpineEventEngine/jdbc-storage#181 (the same phase,
which settled the vendor conventions).

What changed

  • DatastoreStorageFactory implements the new 3-arg
    createRecordStorage(context, spec, group): a storage belonging to a
    StorageGroup — a per-entity history — is allocated a distinct kind composed
    of the group name and the record type (Kind.of(recordType, group), e.g.
    spine.test.storage.StgProject-Event). Without the group in the kind
    identity, the event journals of all entity types — and the event log — would
    conflate, as would an entity's state history with its latest-state storage.
  • Custom layouts for grouped storages: the new
    organizeRecords(stateType, recordType, layout) builder overload registers a
    RecordLayout — a custom kind, an ancestor structure, or both — for the
    grouped storage addressed by the (group, record type) pair. The single-type
    organizeRecords and the custom storages keep applying to ungrouped storages
    only. RecordLayout, FlatLayout, and EntityGroupLayout gained
    Kind-accepting constructors.
  • Concurrency: wrapperFor(...) moved to computeIfAbsent, and the testlib
    factory keeps its wrappers in a concurrent set — the state history storage
    may be created lazily on delivery worker threads.
  • Test fallout: DsAggregateStorageTest and DsAggregateStorageTruncationTest
    are removed together with their deleted core-jvm bases;
    DsRecordStorageTest is retargeted at DelegatingRecordStorageTest.
  • New Kotlin specs against the Datastore emulator: the grouped-kind allocation
    contract, the EntityEventStorage and EntityStateHistoryStorage
    round-trips (incl. EntityStateKey message IDs, stateAt tie-breaks,
    trim/truncate), and the concurrent storage creation.
  • Local dependencies advanced (CoreJvm .522 — the train target;
    Validation .462, CoreJvmCompiler .081, Compiler .065); the
    Testcontainers 2.0.5 pin (Upgrade Testcontainers to 2.0.5 #202) is restored after the config update had
    reverted it — the lasting fix belongs in the config repo.
  • Gradle 10 deprecations addressed in the repo-owned build scripts
    (by extra -> extra.set(...), by registering -> register<Type>(name));
    serialVersionUID fields annotated with @Serial.

Reviewer notes

  • gcloud-jvm has zero @Apply usages — the Phase H grep gate passes with no
    aggregate migration.
  • DsRecordStorage.deleteRecord() documents always returning true, deviating
    from the RecordStorage.delete contract ("false if not found"); the new
    journal spec asserts the documented vendor behavior, and the decision point
    is recorded in .agents/tasks/de-event-sourcing-rollout.md as a follow-up.
  • A Kotlin K2 quirk prevents Kotlin test sources from resolving
    io.spine.server.storage.datastore.record.RecordId, so the
    EntityGroupLayout test fixture is written in Java.
  • ./gradlew build dokkaGenerate is green: 319 datastore tests (301 passed,
    18 conditionally skipped), 18/18 testlib.

🤖 Generated with Claude Code

alexander-yevsyukov and others added 12 commits August 5, 2026 16:46
The branch's `Update config` commit overwrote the repo-local
Testcontainers pin (2.0.5, PR #202) with config's `1.21.4`, breaking
the compilation of `testlib` against the Testcontainers 2.x API.
Re-apply the pin, now in config's KDoc style with the 2.x
`testcontainers-` artifact renames spelled out — the shape intended
for the `config` repo, where the lasting fix belongs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`Compiler` -> `2.0.0-SNAPSHOT.065`,
`CoreJvmCompiler` -> `2.0.0-SNAPSHOT.081`,
`Validation` -> `2.0.0-SNAPSHOT.462`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`DsAggregateStorageTest` and `DsAggregateStorageTruncationTest`
extended the `AggregateStorageTest` and `AggregateHistoryTruncationTest`
fixtures, removed from core-jvm along with the event-sourced aggregate
machinery. The Datastore-backed latest state of an aggregate is now
served by the record storage covered by `DsRecordStorageTest`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Retarget `DsRecordStorageTest` at `DelegatingRecordStorageTest` —
the new name of the published `RecordStorageDelegateTest` base.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Use `var` in the batch-write loop and drop a redundant `@NonNull`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Allocate a distinct Datastore kind per the combination of a record
specification and a `StorageGroup`, as the new CoreJvm storage SPI
expects of vendors. Without the group in the kind identity, the event
journals of all entity types — and the event log — would share one
kind (`sourceType` is `Event` for each), and the state history of an
entity type would collide with its latest-state storage.

 - `Kind.of(recordType, group)` composes grouped kind names from the
   group name and the record type, e.g.
   `spine.test.storage.StgProject_Event`.
 - `DatastoreStorageFactory` implements the 3-arg
   `createRecordStorage`; grouped storages take a flat layout under
   the grouped kind by default, and never a custom storage.
 - A grouped storage — the event journal or the state history of an
   entity — can be organized with a custom layout (a custom kind, an
   ancestor structure, or both) via the new
   `organizeRecords(stateType, recordType, layout)` overload,
   registered in `RecordLayouts` by the (group name, record type)
   pair; the single-type `organizeRecords` keeps applying to the
   ungrouped storages only. `RecordLayout`, `FlatLayout`, and
   `EntityGroupLayout` gained `Kind`-accepting constructors.
 - `wrapperFor(...)` uses `computeIfAbsent`, and the testlib factory
   keeps its wrappers in a concurrent set: the state history storage
   may be created lazily on delivery worker threads.
 - New specs cover the vendor allocation contract, the journal and
   the state-history round-trips against the Datastore emulator, and
   the concurrent storage creation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace the deprecated `val name by registering(Type::class)` task
delegate in the root build script with `register<Type>(name)`.
Together with the `by extra` -> `extra.set(...)` migration in
`version.gradle.kts`, `--warning-mode all` now reports no deprecation
warnings from the repo-owned build scripts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Also refresh the copyright year and the license URL scheme in the
touched files.
Copilot AI lite review requested due to automatic review settings August 5, 2026 22:56

@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: 8d1d34d982

ℹ️ 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".

Comment thread datastore/src/main/java/io/spine/server/storage/datastore/Kind.java Outdated

Copilot AI 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.

Pull request overview

Rolls the Datastore storage vendor forward to the Phase H core-jvm storage SPI, introducing group-aware (per-entity-history) storage allocation and updating the vendor’s record layouts/tests accordingly, while also advancing local dependency pins and modernizing repo-owned Gradle/build tooling.

Changes:

  • Implement grouped-storage support by deriving distinct Datastore Kinds from (StorageGroup, record type) and allowing custom layouts for grouped storages.
  • Update/replace Datastore emulator test suites to cover grouped histories (event journals/state history), including concurrent storage creation.
  • Refresh build tooling and CI wiring (Gradle deprecation cleanups, dependency pins, version-guard workflows and related buildSrc enhancements).

Reviewed changes

Copilot reviewed 194 out of 201 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
version.gradle.kts Bumps published version and switches to extra.set(...).
testlib/src/main/java/io/spine/testing/server/storage/datastore/TestDatastoreStorageFactory.java Makes wrapper tracking concurrent-safe for lazy/concurrent storage creation.
gradlew.bat Wrapper script comment text change (Gradle-managed).
gradlew Wrapper script comment text change (Gradle-managed).
gradle/wrapper/gradle-wrapper.properties Updates Gradle wrapper distribution URL.
docs/dependencies/pom.xml Regenerates dependency report POM with updated versions.
datastore/src/test/kotlin/io/spine/server/storage/datastore/record/given/HistoryStorageTestEnv.kt Adds shared test fixtures for grouped history storage specs.
datastore/src/test/kotlin/io/spine/server/storage/datastore/record/ConcurrentHistoryCreationSpec.kt Adds concurrency spec for grouped history storage creation.
datastore/src/test/java/io/spine/server/storage/datastore/record/given/ProjectChildJournalLayout.java Adds grouped journal layout fixture using Kind-accepting layout constructors.
datastore/src/test/java/io/spine/server/storage/datastore/record/DsRecordStorageTest.java Retargets record-storage test base to new framework fixture.
datastore/src/test/java/io/spine/server/storage/datastore/record/DsAggregateStorageTruncationTest.java Removes obsolete aggregate truncation suite (core-jvm base removed).
datastore/src/test/java/io/spine/server/storage/datastore/record/DsAggregateStorageTest.java Removes obsolete aggregate storage suite (core-jvm base removed).
datastore/src/test/java/io/spine/server/storage/datastore/KindTest.java Extends Kind tests to cover (recordType, StorageGroup) constructor.
datastore/src/main/java/io/spine/server/storage/datastore/record/RecordId.java Adds @Serial annotation for serialVersionUID.
datastore/src/main/java/io/spine/server/storage/datastore/record/DsRecordStorage.java Minor refactors and annotation cleanup in record storage implementation.
datastore/src/main/java/io/spine/server/storage/datastore/record/DsEntityComparator.java Adds @Serial annotation for serialVersionUID.
datastore/src/main/java/io/spine/server/storage/datastore/ProjectId.java Adds @Serial annotation for serialVersionUID.
datastore/src/main/java/io/spine/server/storage/datastore/Kind.java Adds grouped-kind construction API: Kind.of(recordType, group).
datastore/src/main/java/io/spine/server/storage/datastore/DsIdentifier.java Adds @Serial annotation for serialVersionUID.
datastore/src/main/java/io/spine/server/storage/datastore/config/RecordLayouts.java Adds grouped-storage layout registry + lookup with grouped-kind fallback.
datastore/src/main/java/io/spine/server/storage/datastore/config/RecordLayout.java Adds Kind-accepting constructor for non-type-derived kinds.
datastore/src/main/java/io/spine/server/storage/datastore/config/FlatLayout.java Adds Kind-accepting constructor for grouped-kind flat layouts.
datastore/src/main/java/io/spine/server/storage/datastore/config/EntityGroupLayout.java Adds Kind-accepting constructor for grouped ancestor/child layouts.
buildSrc/src/test/kotlin/io/spine/gradle/VersionGradleFileSpec.kt Adds tests for parsing version declarations including extra.set.
buildSrc/src/test/kotlin/io/spine/gradle/VersionComparatorSpec.kt Adds tests for semantic-ish version ordering logic.
buildSrc/src/test/kotlin/io/spine/gradle/report/pom/DependencyWriterSpec.kt Extends dependency-report tests to validate resolved-version reporting.
buildSrc/src/test/kotlin/io/spine/gradle/publish/MavenMetadataSpec.kt Adds Jackson XML round-trip test for Maven metadata parsing model.
buildSrc/src/test/kotlin/io/spine/gradle/publish/IncrementGuardTest.kt Updates tests for new Version Guard/base-branch comparison behavior.
buildSrc/src/test/kotlin/io/spine/gradle/fs/SpineTempDirSpec.kt Adds tests for new shared per-JVM temp directory behavior.
buildSrc/src/test/kotlin/io/spine/gradle/fs/LazyTempPathSpec.kt Adds tests for updated temp-path creation semantics.
buildSrc/src/main/resources/dokka/styles/custom-styles.css Updates copyright year.
buildSrc/src/main/kotlin/write-manifest.gradle.kts Updates Gradle API usage (register(...)) and comment phrasing.
buildSrc/src/main/kotlin/uber-jar-module.gradle.kts Updates Gradle API usage and fixes “fat JAR” wording.
buildSrc/src/main/kotlin/test-module.gradle.kts Updates copyright year.
buildSrc/src/main/kotlin/Strings.kt Minor documentation wording update.
buildSrc/src/main/kotlin/pmd-settings.gradle.kts Updates copyright year.
buildSrc/src/main/kotlin/module-testing.gradle.kts Documentation wording polish.
buildSrc/src/main/kotlin/kmp-publish.gradle.kts Updates copyright year.
buildSrc/src/main/kotlin/kmp-module.gradle.kts Skips forcing on Dokka configs + modernizes Kotlin DSL usage and test task wiring.
buildSrc/src/main/kotlin/jvm-module.gradle.kts Skips forcing on Dokka configs + modernizes task registration DSL.
buildSrc/src/main/kotlin/jacoco-kotlin-jvm.gradle.kts Removes deprecated JaCoCo script plugin (superseded by Kover pipeline).
buildSrc/src/main/kotlin/jacoco-kmm-jvm.gradle.kts Removes deprecated JaCoCo script plugin (superseded by Kover pipeline).
buildSrc/src/main/kotlin/io/spine/gradle/VersionComparator.kt Adds semantic-ish comparator for version strings.
buildSrc/src/main/kotlin/io/spine/gradle/testing/TestKitCoverage.kt Uses centralized JaCoCo agent coordinates and updates docs.
buildSrc/src/main/kotlin/io/spine/gradle/testing/Multiproject.kt Fixes wording (“dependent”).
buildSrc/src/main/kotlin/io/spine/gradle/testing/Logging.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/TaskName.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/StringExtensions.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/RunGradle.kt Documentation wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/RunBuild.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/SpineLicense.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ProjectMetadata.kt Reworks metadata fallback logic away from deprecated property delegation.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomXmlWriter.kt Minor doc phrasing fix.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/PomFormatting.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/ModuleDependency.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/MarkupExtensions.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/InceptionYear.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/pom/DependencyScope.kt Fixes punctuation/grammar in enum KDoc.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/Template.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/Tasks.kt Minor doc wording adjustments.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/ProjectDependencies.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/MarkdownReportRenderer.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt Improves license report task inputs and opts task out of build cache.
buildSrc/src/main/kotlin/io/spine/gradle/report/license/Configuration.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/SiblingCoverage.kt Exposes helper as internal and expands doc comment.
buildSrc/src/main/kotlin/io/spine/gradle/report/coverage/KoverConfig.kt Improves aggregation wiring and credits forked compiler exec data in root report.
buildSrc/src/main/kotlin/io/spine/gradle/repo/RepoSlug.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/repo/Credentials.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/publish/StandardJavaPublicationHandler.kt Minor KDoc wording fix.
buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt Multiple small KDoc wording fixes.
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingRepos.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublishingExts.kt KDoc wording and minor comment cleanup.
buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationHandler.kt KDoc punctuation fix.
buildSrc/src/main/kotlin/io/spine/gradle/publish/ProtoExts.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/publish/MavenMetadata.kt Adds Maven metadata XML model and fetch/parse helper.
buildSrc/src/main/kotlin/io/spine/gradle/publish/IncrementGuard.kt Changes guard to run via Version Guard workflow (not check) + adds base-compare gating.
buildSrc/src/main/kotlin/io/spine/gradle/publish/CloudRepo.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/publish/CloudArtifactRegistry.kt Fixes wording (“publisher”).
buildSrc/src/main/kotlin/io/spine/gradle/ProjectExtensions.kt Minor KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/kotlin/KotlinConfig.kt Scopes opt-ins more accurately (JVM-only ExperimentalPathApi).
buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/Publish.kt Fixes “NPM” spelling in KDoc.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/task/IntegrationTest.kt Improves grammar in KDoc.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Protobuf.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/McJs.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/JsPlugins.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/plugin/Idea.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsExtension.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsEnvironment.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javascript/JsContext.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/JavadocTag.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/JavadocConfig.kt KDoc wording and formatting cleanups.
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/ExcludeInternalDoclet.kt Minor wording fix (“fully qualified”).
buildSrc/src/main/kotlin/io/spine/gradle/javadoc/Encoding.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/javac/Javac.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/javac/ErrorProne.kt Minor doc wording (“Command-line”).
buildSrc/src/main/kotlin/io/spine/gradle/java/Tasks.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPagesExtension.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/Update.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/github/pages/AuthorEmail.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/git/UserInfo.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/git/Repository.kt Fixes “temporary” wording and other KDoc edits.
buildSrc/src/main/kotlin/io/spine/gradle/git/Branch.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/fs/SpineTempDir.kt Introduces shared per-JVM temp dir namespace with shutdown cleanup.
buildSrc/src/main/kotlin/io/spine/gradle/fs/LazyTempPath.kt Creates temp dirs under shared SpineTempDir base path.
buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Publish.kt KDoc and comment wording fixes.
buildSrc/src/main/kotlin/io/spine/gradle/dart/task/IntegrationTest.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/task/DartTasks.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/task/Build.kt KDoc wording and spelling fix (“compatibility”).
buildSrc/src/main/kotlin/io/spine/gradle/dart/plugin/Protobuf.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/plugin/DartPlugins.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/DartExtension.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/DartEnvironment.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/dart/DartContext.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/gradle/ConfigTester.kt Minor KDoc wording and punctuation fixes.
buildSrc/src/main/kotlin/io/spine/gradle/Clean.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/checkstyle/CheckStyleConfig.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/Build.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/gradle/base/Tasks.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/docs/MarkdownDocument.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/TestKitTruth.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/Testcontainers.kt Restores/clarifies Testcontainers 2.x coordinates and adds missing module constants.
buildSrc/src/main/kotlin/io/spine/dependency/test/SystemLambda.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/OpenTest4J.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/Kover.kt Bumps Kover version pin.
buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/Jacoco.kt Adds Jacoco.agent coordinate constant for reuse.
buildSrc/src/main/kotlin/io/spine/dependency/test/Hamcrest.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/test/AssertK.kt KDoc punctuation fix.
buildSrc/src/main/kotlin/io/spine/dependency/storage/QueryDsl.kt Adds QueryDSL dependency coordinates (for JDBC storage tests/tooling).
buildSrc/src/main/kotlin/io/spine/dependency/storage/PostgreSql.kt Adds PostgreSQL JDBC driver coordinates.
buildSrc/src/main/kotlin/io/spine/dependency/storage/MySql.kt Adds MySQL Connector/J coordinates.
buildSrc/src/main/kotlin/io/spine/dependency/storage/HsqlDb.kt Adds HSQLDB coordinates.
buildSrc/src/main/kotlin/io/spine/dependency/storage/Hikari.kt Adds HikariCP coordinates.
buildSrc/src/main/kotlin/io/spine/dependency/storage/H2.kt Adds H2 coordinates.
buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt Advances Validation dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt Advances ToolBase dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/Time.kt Advances Time dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/local/Spine.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/local/Reflect.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt Minor wording fix in suppression comment.
buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt Advances Logging dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt Advances CoreJvmCompiler dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt Advances CoreJvm dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt Advances Compiler dependency version and KDoc wording.
buildSrc/src/main/kotlin/io/spine/dependency/local/Change.kt Advances Change dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/BaseTypes.kt Advances BaseTypes dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/local/Base.kt Advances Base dependency version.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Slf4J.kt Minor KDoc reflow/wording.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Roaster.kt Removes outdated Java version note.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Protobuf.kt KDoc wording polish.
buildSrc/src/main/kotlin/io/spine/dependency/lib/KotlinX.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/JavaX.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/JavaPoet.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/JavaJwt.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Jackson.kt Advances Jackson version.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Coroutines.kt Fixes typo in link text (“project”).
buildSrc/src/main/kotlin/io/spine/dependency/lib/BouncyCastle.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/Asm.kt Minor KDoc wording fix.
buildSrc/src/main/kotlin/io/spine/dependency/lib/AppEngine.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/lib/ApacheHttp.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/kotlinx/Serialization.kt Fixes spacing in KDoc.
buildSrc/src/main/kotlin/io/spine/dependency/kotlinx/KotlinX.kt Updates copyright year.
buildSrc/src/main/kotlin/io/spine/dependency/Dependency.kt Adds Configuration.isDokka to prevent breaking Dokka by forcing versions.
buildSrc/src/main/kotlin/io/spine/dependency/build/ErrorProne.kt Updates Error Prone version and documents Java 17 compatibility constraint.
buildSrc/src/main/kotlin/io/spine/dependency/boms/BomsPlugin.kt Excludes Dokka configs from version forcing and minor KDoc fix.
buildSrc/src/main/kotlin/io/spine/dependency/boms/Boms.kt Updates copyright year.
buildSrc/src/main/kotlin/DokkaExts.kt Minor KDoc wording polish.
buildSrc/src/main/kotlin/dokka-setup.gradle.kts Disables Dokka Javadoc publication for KMP modules.
buildSrc/src/main/kotlin/DocumentationSettings.kt Updates copyright year.
buildSrc/src/main/kotlin/detekt-code-analysis.gradle.kts KDoc wording polish.
buildSrc/src/main/kotlin/DependencyResolution.kt Excludes Dokka configurations from version forcing and minor KDoc fix.
buildSrc/src/main/kotlin/config-tester.gradle.kts Comment wording polish.
buildSrc/src/main/kotlin/BuildSettings.kt Updates copyright year.
buildSrc/src/main/kotlin/BuildExtensions.kt Adds excludeJetBrainsAnnotations() helper and various doc fixes.
buildSrc/settings.gradle.kts Updates copyright year.
buildSrc/quality/checkstyle.xml Updates copyright year in header.
buildSrc/quality/checkstyle-suppressions.xml Updates copyright year in header.
buildSrc/build.gradle.kts Bumps Kover version and minor KDoc wording updates.
build.gradle.kts Modernizes task registration DSL for copyCredentials.
.idea/misc.xml Removes IDE-local config file from repo tracking.
.idea/live-templates/README.md Minor whitespace fix in instructions.
.gitignore Keeps .idea/misc.xml ignored and adds ignores for Claude local artifacts.
.github/workflows/revalidate-versions.yml Adds workflow to revalidate open PRs when base branch version advances.
.github/workflows/publish.yml Adds explicit error reporting step on publication failure.
.github/workflows/increment-guard.yml Enhances Version Guard workflow (base fetch, status publishing, more triggers).
.claude/settings.json Adjusts Claude Code settings (plans dir, allowed permissions).
.agents/tasks/de-event-sourcing-rollout.md Adds rollout task notes for the Phase H migration (agent task doc).
Files not reviewed (1)
  • .idea/misc.xml: Generated file

alexander-yevsyukov and others added 2 commits August 6, 2026 00:04
Join the group name and the record type with a dash rather than an
underscore in `Kind.of(recordType, group)`. The underscore is a legal
character in Protobuf type names, so the grouped kind of one entity
type could equal the plain type-name kind of another — e.g. the event
journal of `Order` and the latest-state storage of a sibling type
`Order_Event` would both land in `pkg.Order_Event`. A dash cannot
occur in a type name, making grouped kinds structurally disjoint from
the ungrouped ones.

Addresses the Codex review of #204.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Guard both parameters of `RecordLayouts.find(recordType, group)` with
`checkNotNull`, consistently with the sibling declarations.

Addresses the Copilot review of #204.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@alexander-yevsyukov alexander-yevsyukov self-assigned this Aug 5, 2026
@alexander-yevsyukov alexander-yevsyukov moved this to 🏗 In progress in v2.0 Aug 5, 2026
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.97%. Comparing base (f4ade19) to head (5c6ec48).

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #204      +/-   ##
============================================
+ Coverage     90.76%   90.97%   +0.20%     
- Complexity      466      475       +9     
============================================
  Files            62       62              
  Lines          1625     1662      +37     
  Branches         90       92       +2     
============================================
+ Hits           1475     1512      +37     
  Misses          121      121              
  Partials         29       29              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@alexander-yevsyukov alexander-yevsyukov changed the title Adopt the de-event-sourcing storage API of core-jvm (Phase H) Adopt the de-event-sourcing storage API of CoreJvm Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

2 participants