Skip to content

Migrate first-party consumers and Homebrew to the Base Bash 2.0 contract #240

Closed

Description

@codeforester

Parent: #214

Train position: 25 of 26
Phase: P3 — Ecosystem trust and broad adoption

Problem

The v2 framework is intentionally incompatible with the 1.x API, but first-party consumers and distribution are coupled today: Base accepts only compatible 1.* libraries, Base and Base Demo pin v1.4.0 and v1.3.0 release commits in CI, and Homebrew's unversioned Base formula depends on the latest base-bash-libs formula. Publishing the v2 formula before a compatible Base release would break existing Homebrew Base installations.

Acceptance criteria

  • Inventory every first-party API use, version gate, full-SHA pin, fixture, workflow, formula, bottle, active document, and release contract across base, base-demo, homebrew-base, and every other Basefoundry repository discovered before cutover.
  • Migrate Base from its current case 1.* / minimum 1.3.0 gate and legacy function names to an explicit supported v2 contract, with no dependency on compatibility aliases.
  • Update every Base CI pin, Base Demo's Base and base-bash-libs pins, validators, fixtures, messages, documents, and end-to-end tests to the exact verified v2 artifact and compatible Base release.
  • Update Homebrew to the canonical v2.0.0 GA release asset—not the previously used automatic tag-archive URL—plus its checksum, version assertions, and bottles while retaining version_scheme 1; update and bottle the dependent Base formula in the same tap change so no stable formula combination exposes Base 1.x code to v2 libraries.
  • Validate source-checkout, Homebrew, vendor, and bundle paths against the same v2 release candidate on supported macOS and Linux environments.
  • Document and rehearse the publish order: v2 RC validation; Base migration and release preparation; base-bash-libs v2.0.0 GA; compatible Base release; atomic tap formula and bottle promotion; Base Demo pin and release update.
  • Document a rollback that moves the tap formulas and first-party pins back as compatible pairs without deleting, moving, or reusing published tags.
  • Remove stale active references to “compatible later 1.x,” the 1.3.0 minimum, v1.4.0/v1.3.0 pins, and pre-v2 API assertions.
  • Prove the coordinated cutover with green release, integration, and upgrade checks and record links to every cross-repository PR and release in this issue.

Dependencies

Activity

  1. added this to the 5/5 Framework milestone on Aug 2, 2026
  2. self-assigned this
    on Aug 2, 2026
  3. changed the title [-]Migrate first-party consumers and Homebrew to the Base Bash 3.0 contract[/-] [+]Migrate first-party consumers and Homebrew to the Base Bash 2.0 contract[/+] on Aug 2, 2026
  4. moved this from Backlog to In Progress in base-bash-libson Aug 5, 2026
  5. codeforester commented on Aug 6, 2026

    @codeforester
    CollaboratorAuthor

    Status update after the engineering train:

    The remaining acceptance items are the real GA asset/tag, downstream Base Demo/Homebrew updates, rollback rehearsal, and cross-repository verification.

  6. codeforester commented on Aug 14, 2026

    @codeforester
    CollaboratorAuthor

    Progress update (2026-08-14): the first consumer-side v2 cutover rehearsal is complete.

    • Merged base-demo PR Add issue branch policy workflow #213: ci: rehearse Base Bash v2 pins base-demo#213
    • Merged commit: b00ddb57241ba7cf2bb21c77ae3c87d00fb1d4a2
    • Validated on hosted macOS and Ubuntu jobs, including the Base source-provider job.
    • Rehearsal now pins Base and base-bash-libs to immutable commits and accepts both terminal and machine-readable history report formats.
    • No GA claim was made; Homebrew remains intentionally unchanged.

    Remaining #240/#215 gates are still real: publish the canonical v2.0.0 RC/GA asset with checksum, provenance, and SBOM; rehearse rollback; then update Base Demo and Homebrew to the canonical GA asset and complete cross-repository verification.

  7. codeforester commented on Aug 14, 2026

    @codeforester
    CollaboratorAuthor

    Follow-up: #215 PR #321 is merged at 290e4e6. The repository now has a deterministic, cross-platform scripts/release-artifact builder/verifier that emits the canonical archive, SPDX 2.3 SBOM, provenance statement, and checksum manifest, with hosted Ubuntu/macOS validation green.

    This advances the artifact-generation gate but does not publish v2.0.0 or change Homebrew. The remaining cutover work is still the immutable RC/GA promotion, rollback rehearsal, canonical Homebrew asset/formula update, and final Base/Base Demo cross-repository proof.

  8. codeforester commented on Aug 15, 2026

    @codeforester
    CollaboratorAuthor

    RC cutover and rollback rehearsal (2026-08-15)

    Completed the pre-GA consumer rehearsal against `v2.0.0-rc.1` at commit
    `c134fb8a3397e2cfee1d90845cec44f56dacae7b`:

    • Base PR #1934 merged with all hosted Python/pylint, integration, security, BATS, Ubuntu, macOS, and branch-policy checks green.
    • Base Demo PR Roadmap: make base-bash-libs a 5/5 professional Bash framework #214 merged with hosted validation, Ubuntu, source-checkout, and branch-policy checks green; local full validation passed with isolated caches.
    • Homebrew formula audit, source build, and v2 `base_` API smoke test passed in a disposable tap using the canonical RC archive.
    • RC Homebrew package was removed and stable v1.4.0 restored and verified.
    • Local vendored and reference-application rollback suites passed.

    Stable Homebrew was not changed because RC is not GA. The eventual v2 formula
    must consume the deterministic bundle layout and use the `base_` API; the
    v1.4 formula's source-archive assumptions are intentionally deferred to the GA
    handoff. Evidence ledger PR: #326.

  9. moved this from In Progress to Done in base-bash-libson Aug 15, 2026
  10. codeforester commented on Aug 15, 2026

    @codeforester
    CollaboratorAuthor

    First-party v2.0.0 cutover complete\n\nThe release train is complete and the evidence ledger is merged in PR #329.\n\n- base-bash-libs v2.0.0: release, GA commit b4243765726c133499feeabdc50154f99c0fec12, canonical archive SHA256 73d6f92fab8f1a8ded7f3b4312ebbe51aa8ec0c16eacf18c2d8fa23fb5664333.\n- Base: PR #1936 merged; v1.8.0 release at commit 26b9af5dee16efcb47e652513ce734b3ae9bc920; tracker Base #1935 is closed.\n- Base Demo: PR #217 merged at fb7a2b6fa662f9f6d2c91b522a183af1cebbaae1; tracker #215 is closed.\n- Homebrew: PR #85 merged; bottle release base-v1.8.0 published with Base 1.8.0 and base-bash-libs 2.0.0 bottles. Workflow run 31872508249 passed bottle builds, v2 API smoke tests, formula tests, and the controlled upgrade/rollback rehearsal.\n\nThe remaining 5/5 gate is #239: independent external adoption and a second maintainer/community review.

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions