Skip to content

docs: ScalaPB codegen CI + integration test completeness spec#95

Closed
ottobot-ai wants to merge 1 commit into
scasplte2:developfrom
ottobot-ai:feat/scalapb-ci-test-spec
Closed

docs: ScalaPB codegen CI + integration test completeness spec#95
ottobot-ai wants to merge 1 commit into
scasplte2:developfrom
ottobot-ai:feat/scalapb-ci-test-spec

Conversation

@ottobot-ai

Copy link
Copy Markdown
Collaborator

Summary

Spec for the remaining gaps in ScalaPB codegen configuration (card: ⚙️ ScalaPB: Configure codegen with DataUpdate mixins).

The core configuration (DataUpdate mixin, sbt-protoc, scalapb.gen) is already done on develop. This spec covers what's still missing.

What this spec defines

Task A — CI Fix: Add sbt proto/compile proto/test as a dedicated step in .github/workflows/ci.yml (the proto module is currently never tested in CI)

Task B — Integration Test Completeness: Add 4 missing tests to ScalaPBIntegrationTest.scala covering:

  • ArchiveStateMachine extends DataUpdate
  • CreateScript extends DataUpdate
  • InvokeScript extends DataUpdate
  • OttochainMessage union type extends DataUpdate (via OttochainMessage.Message.CreateStateMachine oneof)

Task C — Documentation: modules/proto/README.md documenting:

  • Build-time code generation strategy (not checked in)
  • Sequenced trait structural gap + ProtoAdapters Phase 1/2 migration boundary

Spec document

docs/design/scalapb-codegen-spec.md — includes exact Scala test code with correct generated type constructors (verified against actual generated sources in target/src_managed/).

Dependencies

Closes Trello card: https://trello.com/c/IMFiVKvx

Reviewer: @scasplte2

TDD-ready spec for the 3 remaining gaps in scalapb codegen:
- CI never runs proto/test (only sharedData/test)
- ScalaPBIntegrationTest covers 2/6 message types
- Sequenced trait gap in ProtoAdapters undocumented

Defines 4 new integration tests (T3-T6), exact CI workflow
change, and proto/README.md documenting generation strategy
and migration phase boundary.

Trello: https://trello.com/c/IMFiVKvx
ottobot-ai added a commit to ottobot-ai/ottochain that referenced this pull request Feb 24, 2026
- Add 4 missing integration tests (ArchiveStateMachine, CreateScript,
  InvokeScript, OttochainMessage union) to ScalaPBIntegrationTest.scala
- Verify all 6 DataUpdate message types compile with mixin correctly
- Fix CI: add proto/compile proto/test step before sharedData/test
  (proto module was previously invisible to CI)
- Add modules/proto/README.md documenting build-time generation strategy,
  DataUpdate mixin integration, and ProtoAdapters Phase 1/2 boundary

Spec: PR scasplte2#95 (docs/design/scalapb-codegen-spec.md)
TDD gate: all tests compile = DataUpdate mixin works for all 6 types

~1.5h @work effort (simple, per spec)

Closes Trello card: https://trello.com/c/IMFiVKvx (⚙️ ScalaPB: Configure codegen)
@ottobot-ai

Copy link
Copy Markdown
Collaborator Author

Moving to feature branch feat/proto-migration on ottobot-ai/ottochain for agent iteration. Will submit rollup PR to upstream when ready.

@ottobot-ai ottobot-ai closed this Feb 26, 2026
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.

1 participant