Skip to content

v0.3.0

Choose a tag to compare

@state303 state303 released this 12 Aug 14:57
0059df2

0.3.0 (2026-08-12)

Features

  • Add a canonical release-import convergence contract (#49).
    • Record an explicit import-contract revision per entity (artist=1, label=1, master=1, release=2).
    • Require master.main_release_id to reference a release owned by that same master and keep each main release unique.
    • Clear stale main-release references before a release moves to another master so interrupted imports can converge safely.

Bug fixes

  • Publish a strict legacy Liquibase adoption contract for Java releases 1.0.0 through 1.2.1 (#49).
    • Bind V001-V007 to released changeset identities, canonical SQL hashes, permitted execution states, and PostgreSQL schema fingerprints.
    • Fail closed on partial, unknown, or catalog-mismatched histories.
  • Validate the published jOOQ dependency node against the declared Java API version instead of a hardcoded version (#51).
  • Wait for the final PostgreSQL server instead of the temporary initialization server in release contract tests (#53).

Verification

  • PostgreSQL 15.13 and 18.4 tests cover clean V009 application, rollback on invalid existing relationships, and interrupted A-to-B master reassignment convergence.
  • Go race and vet checks, the Gradle Java build, packaged migration inventory, and Docker residue verification passed.

Upgrade note

V009 validates existing data while adding unique constraints, a composite foreign key, and a trigger. Invalid relationships abort the migration without a partial schema change. Production-scale index-build duration, lock time, and temporary disk usage have not been measured; test on a production-sized copy and use a backed-up maintenance window.