Skip to content

Phase 06: CI, Release, And Migration

Status: authorized after Phase 05 integration examples are accepted.

Purpose

Make Cite2Site reproducible, releasable, and safely evolvable. A release is not only a package version: it is a verified agreement among authority records, CLI contracts, schemas, generated projections, migration policy, and docs.

Required Reading

Read AGENTS.md, DOCUMENTATION_STANDARD.md, CI validation, the project plan, status matrix, all active schemas, and the release/migration sections of the specifications.

Scope

Complete remote CI evidence, package build checks, release checklist, changelog, threat/privacy checklist, schema migration policy, and migration fixtures. Close the baseline CI gate only when its remote execution is observed.

Non-Goals

  • Do not introduce breaking schema changes without a versioned migration path.
  • Do not mark a release ready solely because local tests pass.
  • Do not make Git mandatory for cited artifacts; Git may version the citation repository and release source.

Required Changes

  • Ensure CI covers a clean install, unit tests, compile, CLI help, smoke flow, documentation links, JSON fixtures, source cleanliness, and deterministic export checks where implemented.
  • Add package build and installation-from-artifact checks.
  • Define supported schema versions, compatibility window, migration command or documented procedure, backup behavior, and refusal behavior.
  • Add changelog and release checklist covering security, privacy, documentation truth labels, dependency review, and rollback plan.
  • Record the first observed remote CI run and any platform-specific constraints in the status matrix.

Required Tests

  • Migration fixtures for every supported previous schema.
  • Corrupt/unknown-version fixtures that fail with stable diagnostics and do not rewrite authority history.
  • Clean-checkout smoke on every supported Python version.
  • Package artifact install and CLI execution test.
  • Deterministic export and documentation validation in CI.

Acceptance Criteria

The phase is accepted only when CI is remotely observed green, a release can be built and installed from a clean checkout, migrations are tested and reversible or explicitly refuse, and all release documents identify current behavior without promising future work.