Skip to content

0.1.0: prove upgrade from v0.0.5 #115

Description

@suraciii

Goal

Prove and preserve the upgrade path from the latest public version, v0.0.5, to v0.1.0.

Problem

The exact v0.0.5 SQLite Reminder schema uses entity_type and entity_key. The current candidate migration fixture uses the new grain_type and grain_key names. A real v0.0.5 database can therefore fail before the candidate creates the new Reminder index.

The current external release proof starts only candidate-version processes. It does not prove an upgrade from the latest public version.

Scope

  • Migrate the exact v0.0.5 Reminder columns to the v0.1.0 schema.
  • Preserve State, Reminder, and Member data during the migration.
  • Use a real v0.0.5 process to write a clean temporary database.
  • Use the candidate, and later the exact v0.1.0 tag, to read and update the same data.
  • Document the required generated-code and public API migration.

Acceptance

  • The old-schema fixture matches the exact v0.0.5 tag.
  • Migration is transactional, repeatable, and fails on an unsupported mixed schema.
  • External proof resolves exact v0.0.5 without a local replacement.
  • Candidate and tagged modes both run the same upgrade proof.
  • Process coordination uses observable readiness and no fixed sleep.
  • A mutation that removes the legacy-column migration fails focused proof.
  • make external and make ci pass.

References

  • design/release.md
  • design/release-0.1.0.md
  • docs/compatibility.md
  • docs/release-0.1.0.md
  • store/sqlite.go
  • store/migration_test.go
  • examples/shadow/cmd/conformance/external_release_test.go

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions