Skip to content

docs: add CHANGELOG.md and "Stability commitments" page for 1.0#83

Merged
doubleailes merged 1 commit into
mainfrom
changelog-and-1-0-promises
May 15, 2026
Merged

docs: add CHANGELOG.md and "Stability commitments" page for 1.0#83
doubleailes merged 1 commit into
mainfrom
changelog-and-1-0-promises

Conversation

@doubleailes
Copy link
Copy Markdown
Owner

Summary

Last two items on the Option A 1.0 checklist:

  1. ✅ Variant-index parity enforced — test(resolver): enforce variant-index parity in the rez differential #81.
  2. ✅ `intersection_priority` (Solver: implement VariantSelectMode::intersection_priority #63) — feat(resolver): implement VariantSelectMode::intersection_priority (closes #63) #82.
  3. This PR: `CHANGELOG.md`.
  4. This PR: "What 1.0 promises" doc page.

`CHANGELOG.md`

Follows Keep a Changelog conventions. Covers every rc release back to rc.1, plus a forthcoming 1.0.0 entry capturing the variant-index parity (#81) and `intersection_priority` (#82) work. Includes compare-links pointing at the conventional tag names.

Each entry is specific about which PRs / commits delivered the change so a reader can trace any line back to the concrete diff.

`engineering/stability.md`

New docs page articulating exactly what 1.0 commits us to:

  • Versioning — workspace + wheel bumped in lock-step; semver as of 1.0; the rc.x series carried no contract.
  • Stable API — explicit list of Python and Rust surface covered by semver, plus an equally explicit list of what isn't (the `solver_micro` benches, internal `rez_solver` submodule layout, `Reduction` / failure-detail wording, internal performance characteristics).
  • Supported Pythons — 3.9–3.13 today (one abi3-py39 wheel per platform/arch covers them all), 3.14 when pyo3 catches up.
  • Supported rez — `pyrer` doesn't import rez; the `PackageData.from_rez` helper is exercised against rez 3.3.0 (vendored submodule) via the 188-case differential.
  • Correctness contract — same `(name, version)` set as rez, same variant index, same status — divergence on any is a release blocker.
  • What's modelled vs not — single table mapping each rez feature to "supported" or "not supported, fall back to rez."
  • Performance is NOT in the contract — the `solver_micro` baselines catch internal regressions, not absolute numbers.
  • Breaking-change policy — RFC issue → addition with deprecation → one MINOR cycle → removal at MAJOR.
  • Regression reporting flow.

Links

  • README gets a new "Release notes & stability" section near the bottom pointing at both.
  • The Introduction page's "Next steps" list now links the stability page alongside Engineering notes.

Verification

  • `zola build`: clean, 17 pages, 8 sections, no orphans.
  • `zola check` reports two "broken external links" against `CHANGELOG.md` on `main`. Both 404 today because the file isn't on main yet; they resolve as soon as this PR merges. CI's docs job uses `zola-deploy-action` (build-only), not `zola check`, so this does not block the build.

1.0 path complete

After this merges, the Option A checklist for 1.0.0 is:

Item Status
Variant-index parity enforced #81
`intersection_priority` #82
`CHANGELOG.md` ✅ this PR
Stability / "what 1.0 promises" doc ✅ this PR

Tagging 1.0.0 is a single `chore(release)` commit away (version bump in `Cargo.toml` + the docs version pill + the Quick Start dep example — same shape as every previous rc bump).

🤖 Generated with Claude Code

Last two items on the Option A 1.0 checklist:

- A CHANGELOG.md following Keep a Changelog conventions, covering every
  rc release back to rc.1, plus a 1.0.0 entry capturing the
  variant-index parity (#81) and `intersection_priority` (#82) work.
  Includes compare-links pointing at the conventional tag names.

- A new docs page `engineering/stability.md` that articulates exactly
  what 1.0 commits us to:

  - Versioning: workspace + wheel bumped in lock-step; semver as of
    1.0; the rc.x series carried no contract.
  - Stable API: explicit list of the Python and Rust surface that's
    covered by semver, and an equally explicit list of what isn't
    (the `solver_micro` benches, the rez_solver submodule layout,
    `Reduction` / failure detail wording, internal performance
    characteristics).
  - Supported Pythons: 3.9–3.13 today (one abi3-py39 wheel per
    platform / architecture covers all of them), 3.14 when pyo3
    catches up.
  - Supported rez: doesn't import rez; the `PackageData.from_rez`
    helper is exercised against rez 3.3.0 (vendored submodule) and
    via the 188-case differential.
  - Correctness contract: same `(name, version)` set as rez, same
    variant index, same status — divergence on any is a release
    blocker.
  - What's modelled vs not: a single table mapping each rez feature
    to "supported" or "not supported, fall back to rez."
  - Performance is explicitly NOT in the contract — the
    `solver_micro` baselines catch regressions on internal hot
    paths, not absolute numbers.
  - Breaking-change policy: RFC issue → addition with deprecation →
    one MINOR cycle → removal at MAJOR.
  - Regression reporting flow.

The CHANGELOG entry for the `Unreleased` / `1.0.0` is intentionally
specific about which PRs land in 1.0 so a reader of the file can
trace each line back to a concrete change.

Linked from:
- README's new "Release notes & stability" section near the bottom.
- The introduction page's "Next steps" list.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@qodo-code-review
Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@doubleailes doubleailes merged commit a25f90c into main May 15, 2026
23 checks passed
@doubleailes doubleailes deleted the changelog-and-1-0-promises branch May 15, 2026 21:41
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