Skip to content

Engineering Hygiene: OTP 28 upgrade, peer-app deps (E5), start-type handling (E2)#24

Merged
david-w-t merged 4 commits into
davidwt-com:mainfrom
david-w-t:develop
May 24, 2026
Merged

Engineering Hygiene: OTP 28 upgrade, peer-app deps (E5), start-type handling (E2)#24
david-w-t merged 4 commits into
davidwt-com:mainfrom
david-w-t:develop

Conversation

@david-w-t
Copy link
Copy Markdown
Contributor

Summary

  • OTP upgrade: bump CI to OTP 28 / rebar3 3.27 (matches local kerl install at 28.5)
  • E5 — replace legacy included_applications with peer-app dependencies. graphdb and dictionary are now real OTP applications started by application_master in dependency order via the applications: key. database_sup is now intentionally empty (placeholder for future database-level coordination work).
  • E2seerstone:start/2 and nref:start/2 now delegate non-normal start types ({takeover, _}, {failover, _}) to the normal start path instead of ?NYI-exiting. This is the correct behavior until distributed startup is needed.
  • E3 / E4 — explicitly marked DEFERRED in TASKS.md with trigger conditions documented (E3: first hot-upgrade deployment; E4: externally-visible API port added to seerstone).

Documentation refreshed: ARCHITECTURE.md §1 / §5 reflect 5-peer-app supervision tree; per-app CLAUDE.md files updated.

Test plan

  • rebar3 compile clean on OTP 28
  • rebar3 ct — 217 CT cases pass
  • rebar3 eunit — 103 EUnit cases pass
  • Compile order verified: nref → graphdb → dictionary → database → seerstone

🤖 Generated with Claude Code

david-w-t and others added 4 commits May 20, 2026 22:36
CI now pins OTP 28 (was 27) and rebar3 3.27 (was 3.24).
All 320 tests pass clean on OTP 28 / ERTS 16.4, zero warnings.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
graphdb and dictionary are now independent OTP applications started by
application_master in dependency order, not included_applications of
database. graphdb.app.src gains mnesia and nref as explicit deps;
database.app.src gains graphdb and dictionary as regular applications.
database_sup is now empty — kept as an attachment point for future
database-level services. ARCHITECTURE.md §5 supervision tree updated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
{takeover, Node} and {failover, Node} now delegate to the normal start
path rather than hitting ?NYI. Full distributed takeover/failover
semantics deferred until a distributed deployment is planned.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
E3 (code_change/3 hot upgrades): deferred until a versioned hot-upgrade
deployment is planned. E4 (start_phases): deferred until an externally-
visible API port is added to seerstone that requires phased startup to
close the bootstrap-window. Both retain their trigger conditions in TASKS.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@david-w-t david-w-t merged commit 377f6ef into davidwt-com:main May 24, 2026
1 check passed
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