Skip to content

Release and Versioning

bijux-canon-agent derives its version from the repository-wide v<version> tag. A release binds role contracts, lifecycle rules, provider adapters, configuration, trace schema, CLI and HTTP behavior, and terminal outcome semantics to one tagged source state.

flowchart LR
    C[Agent contracts and changelog] --> T[Repository release tag]
    T --> B[Build wheel and source distribution]
    B --> G[Verify version, imports, and entry point]
    G --> P[PyPI]
    G --> H[GHCR release bundle]
    G --> R[GitHub Release assets]

What constitutes an agent release change

Changed surface Release significance
role input, output, veto, or error handoff contract change
lifecycle transition or stop rule orchestration authority change
convergence strategy or threshold terminal-behavior change
provider adapter or model metadata integration and reproducibility change
configuration field or default deployment-policy change
trace header, entry, hash, or replay status audit and compatibility change
final result path or reconstruction artifact-custody change
CLI bootstrap, option, exit, or HTTP envelope public interface change

Describe the caller-visible effect in packages/bijux-canon-agent/CHANGELOG.md. State whether historical traces can still be loaded or upgraded, whether result reconstruction remains comparable, and whether configuration or credential handling changed.

Version and artifact guards

Hatch VCS resolves the package version from Git. Dirty or untagged source can produce local or development versions; publication rejects them unless the workflow explicitly permits that posture. Built wheel and source distribution versions must match the resolved tag.

Changing fallback metadata does not publish a release. The tag, changelog, installed metadata, CLI version, trace version fields, and filenames must agree.

Focused release evidence

make test PACKAGE=bijux-canon-agent
make lint PACKAGE=bijux-canon-agent
make quality PACKAGE=bijux-canon-agent
make api PACKAGE=bijux-canon-agent
make build PACKAGE=bijux-canon-agent

Inspect the built distributions for the full package, py.typed, license, README, canonical bijux-canon-agent entry point, and required configuration or example assets. Install the wheel in isolation and prove one offline run can produce a result and trace that reconstruct to the same outcome.

Live provider success is not a release gate for deterministic semantics unless the release explicitly changes that provider integration. When it does, record the tested provider/model identity and treat service availability separately from package correctness.

Compatibility and publication

bijux-agent and agentic-flows preserve earlier surfaces through explicit compatibility packages. New lifecycle, trace, role, and provider meaning begins in canonical packages; aliases must not acquire a competing orchestration policy.

The same staged distributions feed PyPI, GHCR release bundles, and GitHub Release assets. Multiple publication destinations preserve custody, not independent agent behavior.

A release is incomplete when a historical trace can no longer explain its terminal outcome and the incompatibility is absent from the changelog and migration guidance.