diff --git a/.ai-context/STATUS.md b/.ai-context/STATUS.md index 1011be5e..ce7aaa2a 100644 --- a/.ai-context/STATUS.md +++ b/.ai-context/STATUS.md @@ -2,7 +2,7 @@ ## Current Release -Base `1.9.0` is the current release. The repo-root `VERSION` file is updated +Base `1.10.0` is the current release. The repo-root `VERSION` file is updated only during release-prep PRs, not on every ordinary PR. `DEVELOPMENT_VERSION` records the numeric next development line; an untagged source checkout reports that line with a Git revision and `.dirty` when applicable, while tagged and @@ -66,10 +66,10 @@ Recent trust and workspace updates are part of the current implementation: ## Active Development Direction -The `v1.9.0` release is complete. Future work is tracked in GitHub Issues, +The `v1.10.0` release is complete. Future work is tracked in GitHub Issues, with GitHub CLI install/auth polish for Ubuntu, Docker/service artifacts, broader prompt ergonomics, broader Linux distribution support, and broader -setup policy work remaining outside the shipped 1.9.0 release contract. +setup policy work remaining outside the shipped 1.10.0 release contract. The accepted product position is now a local operating contract for deterministic readiness and handoff within a project, from a single repository diff --git a/.github/workflows/base-check.yml b/.github/workflows/base-check.yml index ce80c878..3a823142 100644 --- a/.github/workflows/base-check.yml +++ b/.github/workflows/base-check.yml @@ -101,7 +101,7 @@ jobs: uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .base/base-bash-libs - name: Checkout base-cli source @@ -109,7 +109,7 @@ jobs: uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .base/base-cli - name: Set up Python diff --git a/.github/workflows/base-demo-e2e.yml b/.github/workflows/base-demo-e2e.yml index 3dc88c32..05f6330a 100644 --- a/.github/workflows/base-demo-e2e.yml +++ b/.github/workflows/base-demo-e2e.yml @@ -40,14 +40,14 @@ jobs: uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Check out base-bash-libs uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - name: Expose dependency checkouts as Base siblings @@ -94,9 +94,9 @@ jobs: printf 'base_commit=%s\n' "$(git rev-parse HEAD)" printf 'base_demo_ref=%s\n' "$BASE_DEMO_REF" printf 'base_demo_commit=%s\n' "$(git -C "$GITHUB_WORKSPACE/../base-demo" rev-parse HEAD)" - printf 'base_cli_ref=v0.4.3\n' + printf 'base_cli_ref=aa20cfe89bc3568ff19f8cc1414372feadb00fd4\n' printf 'base_cli_commit=%s\n' "$(git -C "$GITHUB_WORKSPACE/.dependencies/base-cli" rev-parse HEAD)" - printf 'base_bash_libs_ref=36fec50c446dcea8c521a1ba3e7fee2394f169c0\n' + printf 'base_bash_libs_ref=1333c0e7e4c3004663cda635e04965cb9d76511d\n' printf 'base_bash_libs_commit=%s\n' "$(git -C "$GITHUB_WORKSPACE/.dependencies/base-bash-libs" rev-parse HEAD)" - name: Set up Base diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 6631f788..55a4b1ab 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -29,7 +29,7 @@ jobs: uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Set up Python diff --git a/.github/workflows/ecosystem-release-bom.yml b/.github/workflows/ecosystem-release-bom.yml index fba5bba6..4c3af140 100644 --- a/.github/workflows/ecosystem-release-bom.yml +++ b/.github/workflows/ecosystem-release-bom.yml @@ -15,22 +15,22 @@ on: base_cli_version: description: Released base-cli version required: true - default: "0.4.3" + default: "0.5.1" type: string base_cli_ref: description: Immutable base-cli full commit to validate required: true - default: 8a93d22156ba75a99965f7c355f867acba630069 + default: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 type: string base_bash_libs_version: description: Released base-bash-libs version required: true - default: "2.1.0" + default: "2.2.2" type: string base_bash_libs_ref: description: Immutable base-bash-libs full commit to validate required: true - default: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + default: 1333c0e7e4c3004663cda635e04965cb9d76511d type: string base_demo_version: description: Released base-demo version diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index bce97977..e858c3e9 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Set up Python ${{ matrix.python-version }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index dec63468..7f91948b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 @@ -77,13 +77,13 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Set up Python @@ -121,13 +121,13 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Expose standalone Python package checkout as sibling @@ -173,13 +173,13 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Expose standalone Python package checkout as sibling @@ -265,13 +265,13 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Expose standalone Python package checkout as sibling @@ -321,7 +321,7 @@ jobs: fail-fast: false matrix: include: - - provider-ref: v0.4.3 + - provider-ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 name: Ubuntu source-checkout suite - provider-ref: main name: Moving provider source-checkout suite @@ -337,7 +337,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-bash-libs - ref: 36fec50c446dcea8c521a1ba3e7fee2394f169c0 + ref: 1333c0e7e4c3004663cda635e04965cb9d76511d path: .dependencies/base-bash-libs - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 @@ -415,7 +415,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: repository: basefoundry/base-cli - ref: v0.4.3 + ref: aa20cfe89bc3568ff19f8cc1414372feadb00fd4 path: .dependencies/base-cli - name: Set up Python diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a7caa32..08ef9718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ numeric next development line is tracked in `DEVELOPMENT_VERSION`. ## [Unreleased] +## [1.10.0] - 2026-10-10 + - PR policy examples now use only labels that Base manages or documents; the dead `breaking-change` mapping was removed and governance coverage checks for future unknown label triggers. diff --git a/DEVELOPMENT_VERSION b/DEVELOPMENT_VERSION index 81c871de..1cac385c 100644 --- a/DEVELOPMENT_VERSION +++ b/DEVELOPMENT_VERSION @@ -1 +1 @@ -1.10.0 +1.11.0 diff --git a/README.md b/README.md index 0f6d6655..fd7f41e7 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![Tests](https://github.com/basefoundry/base/actions/workflows/tests.yml/badge.svg) ![Lint](https://github.com/basefoundry/base/actions/workflows/pylint.yml/badge.svg) ![Platform: macOS + Ubuntu/Debian](https://img.shields.io/badge/platform-macOS%20%2B%20Ubuntu%2FDebian-lightgrey) -![Version](https://img.shields.io/badge/version-1.9.0-blue) +![Version](https://img.shields.io/badge/version-1.10.0-blue) [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) > Base is one command you install so every repo on your machine becomes easier to set up, run, and test. It reads a small manifest from each project and turns it into one consistent set of commands — setup, activate, build, test, doctor — whether you have one repository or twenty. Base doesn't replace the tools you already use; it gives them a common front door. @@ -491,8 +491,8 @@ installs from `~/work/base` (or a chosen path) and keeps profile integration opt-in. For a stable no-Homebrew install, pin the published release: ```bash -curl -fsSL https://raw.githubusercontent.com/basefoundry/base/v1.9.0/install.sh \ - | bash -s -- --branch v1.9.0 +curl -fsSL https://raw.githubusercontent.com/basefoundry/base/v1.10.0/install.sh \ + | bash -s -- --branch v1.10.0 ``` Contributor installs may explicitly follow `HEAD`/`main`. See the @@ -544,8 +544,8 @@ the numeric next development line. A clean tagged release or packaged install reports the clean `VERSION`, while a mutable Git checkout—including a dirty checkout based on a release tag—reports `DEVELOPMENT_VERSION-dev+g` and appends `.dirty` when local changes -are present. For example, Base `1.9.0` and mutable development code targeting -`1.9.0` cannot report the same identity. +are present. For example, Base `1.10.0` and mutable development code targeting +`1.10.0` cannot report the same identity. Project-specific onboarding should live in project installers that call Base internally. `basectl onboard [project]` can run Base's setup/check/doctor flow @@ -662,7 +662,7 @@ The Base control-plane surface remains `basectl`. ## Current Status -Base `1.9.0` is the current release. The implemented command surface covers +Base `1.10.0` is the current release. The implemented command surface covers setup, checks, diagnostics, project discovery, project activation, project test execution, manifest-declared mise trust/missing-tool checks plus `mise install` and `mise run` delegation, cleanup, updates, onboarding, repository baseline @@ -686,7 +686,7 @@ and dispatch contract, see [docs/execution-model.md](docs/execution-model.md). For ecosystem boundary and integration decisions, see [docs/tool-boundaries.md](docs/tool-boundaries.md). -The Base 1.9.0 release also owns the cross-repository compatibility BOM for the +The Base 1.10.0 release also owns the cross-repository compatibility BOM for the validated Base, base-cli, base-bash-libs, and base-demo combination on Ubuntu 24.04 and macOS 14. Release notes are tracked in [CHANGELOG.md](CHANGELOG.md), and upcoming work is tracked in GitHub Issues using the workflow in diff --git a/VERSION b/VERSION index f8e233b2..81c871de 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.9.0 +1.10.0 diff --git a/cli/python/base_cli_adapters/provider.py b/cli/python/base_cli_adapters/provider.py index aee38d76..4dbc6bf4 100644 --- a/cli/python/base_cli_adapters/provider.py +++ b/cli/python/base_cli_adapters/provider.py @@ -67,7 +67,7 @@ def provider_description() -> str: def compatibility_error(problem: str) -> BaseCliCompatibilityError: return BaseCliCompatibilityError( f"Base's selected base-cli {provider_description()} is incompatible: {problem}. " - "Install or upgrade base-cli to the release-pinned v0.4.3 provider, or set " + "Install or upgrade base-cli to the release-pinned v0.5.1 provider, or set " "BASE_CLI_SOURCE_DIR to a compatible source checkout. Source overrides take " "precedence over the installed package; repair or remove an incompatible override." ) diff --git a/cli/python/base_cli_adapters/tests/test_module_entrypoint.py b/cli/python/base_cli_adapters/tests/test_module_entrypoint.py index 0119a965..b0ef6e94 100644 --- a/cli/python/base_cli_adapters/tests/test_module_entrypoint.py +++ b/cli/python/base_cli_adapters/tests/test_module_entrypoint.py @@ -62,7 +62,7 @@ def test_entrypoint_reports_incompatible_selected_provider(tmp_path, module): assert completed.returncode == 1 assert "refresh_run_bundle_index" in completed.stderr assert str(provider_root) in completed.stderr - assert "v0.4.3" in completed.stderr + assert "v0.5.1" in completed.stderr assert "BASE_CLI_SOURCE_DIR" in completed.stderr assert "Traceback" not in completed.stderr assert not (tmp_path / "runs").exists() diff --git a/docs/adopter-golden-path.md b/docs/adopter-golden-path.md index a111696b..dc2312ff 100644 --- a/docs/adopter-golden-path.md +++ b/docs/adopter-golden-path.md @@ -237,7 +237,7 @@ follows: The full runtime verification was intentionally not reported as green: the existing local `base-demo` environment had stale `base-cli==0.4.2` state while -the manifest requires `0.4.3`, and the isolated home did not contain the +the manifest requires `0.5.1`, and the isolated home did not contain the project's mise-managed tools. The recovery is the documented setup/sync path, followed by `check --verify-project-runtime` and the project test. This keeps the recipe honest about the difference between deterministic Base-path smoke diff --git a/docs/base-cli.md b/docs/base-cli.md index 5e60fd05..c54baf9a 100644 --- a/docs/base-cli.md +++ b/docs/base-cli.md @@ -74,7 +74,7 @@ Python resolves the installed distribution normally. `BASE_CLI_SOURCE` reports the selected provider, and an explicit or sibling path that exists but is malformed fails loudly instead of silently selecting a different version. -The release-pinned provider, currently **v0.4.3**, is authoritative for released +The release-pinned provider, currently **v0.5.1**, is authoritative for released Base. Compatible moving source checkouts are also supported for development; their version string alone does not establish compatibility. CI runs the full source suite against both the pinned tag and current `base-cli` main, using diff --git a/docs/bootstrap.md b/docs/bootstrap.md index e86a5a62..0a5c574e 100644 --- a/docs/bootstrap.md +++ b/docs/bootstrap.md @@ -291,13 +291,13 @@ Use this path when you want the published release without Homebrew. Keep both the installer script and the cloned checkout on the same immutable release ref: ```bash -git clone --branch v1.9.0 https://github.com/basefoundry/base.git ~/work/base +git clone --branch v1.10.0 https://github.com/basefoundry/base.git ~/work/base ~/work/base/bin/basectl setup ~/work/base/bin/basectl update-profile exec "$SHELL" -l ``` -The stable checkout reports `basectl 1.9.0`. For future releases, replace the +The stable checkout reports `basectl 1.10.0`. For future releases, replace the release version and tag with the intended published release. ### Source Checkout Install Recipe @@ -329,8 +329,8 @@ or update Base and run setup/profile commands in one path. Pin the installer script and checkout together for a stable install: ```bash -curl -fsSL https://raw.githubusercontent.com/basefoundry/base/v1.9.0/install.sh \ - | bash -s -- --branch v1.9.0 +curl -fsSL https://raw.githubusercontent.com/basefoundry/base/v1.10.0/install.sh \ + | bash -s -- --branch v1.10.0 ``` Use the `HEAD` installer only for an intentional contributor or dogfood diff --git a/docs/command-reference.md b/docs/command-reference.md index 70b4253a..3a173028 100644 --- a/docs/command-reference.md +++ b/docs/command-reference.md @@ -1167,12 +1167,12 @@ See [docs/local-config.md](local-config.md). Inspect release readiness for a Base-managed repository with: ```bash -basectl release check --version 1.9.0 --bom path/to/release-bom.json -basectl release check --version 1.9.0 --bom path/to/release-bom.json --format json -basectl release plan --version 1.9.0 -basectl release notes --version 1.9.0 -basectl release publish --version 1.9.0 --bom path/to/release-bom.json --dry-run -basectl release publish --version 1.9.0 --bom path/to/release-bom.json --yes +basectl release check --version 1.10.0 --bom path/to/release-bom.json +basectl release check --version 1.10.0 --bom path/to/release-bom.json --format json +basectl release plan --version 1.10.0 +basectl release notes --version 1.10.0 +basectl release publish --version 1.10.0 --bom path/to/release-bom.json --dry-run +basectl release publish --version 1.10.0 --bom path/to/release-bom.json --yes ``` `basectl release check|plan|notes` are read-only. They validate the manifest diff --git a/docs/downstream-dependency-inputs.md b/docs/downstream-dependency-inputs.md index 5f7f9700..c6eb0c07 100644 --- a/docs/downstream-dependency-inputs.md +++ b/docs/downstream-dependency-inputs.md @@ -15,12 +15,12 @@ The strict, dependency-free validator is "installer_sha256": "f0522bf20b13e2f487767324f4688f1b1ed33b1c1bc1158a404f0e428ea3e993" }, "base-cli": { - "version": "0.4.3", - "commit": "8a93d22156ba75a99965f7c355f867acba630069" + "version": "0.5.1", + "commit": "aa20cfe89bc3568ff19f8cc1414372feadb00fd4" }, "base-bash-libs": { - "version": "2.1.0", - "commit": "36fec50c446dcea8c521a1ba3e7fee2394f169c0" + "version": "2.2.2", + "commit": "1333c0e7e4c3004663cda635e04965cb9d76511d" } } } diff --git a/docs/ecosystem-map.md b/docs/ecosystem-map.md index 435fee4b..dbca9b8c 100644 --- a/docs/ecosystem-map.md +++ b/docs/ecosystem-map.md @@ -75,7 +75,7 @@ evidence. ## Compatibility and release truth -Base's current published release is v1.9.0. Companion repositories publish on +Base's current published release is v1.10.0. Companion repositories publish on their own schedules. A coordinated Base release records exact component tags, full commits, platform evidence, and BOM results; a moving sibling checkout is useful development input but is not release evidence. Homebrew promotes a diff --git a/docs/product-requirements.md b/docs/product-requirements.md index e943b4fe..9a03f1a7 100644 --- a/docs/product-requirements.md +++ b/docs/product-requirements.md @@ -1,8 +1,8 @@ # Base Product Requirements Status: maintained product requirements document -Last reviewed: 2026-09-08 -Base era reviewed: 1.9.0 + Unreleased +Last reviewed: 2026-10-10 +Base era reviewed: 1.10.0 This document is the product-facing source of truth for what Base is trying to be, who it serves, which outcomes matter, and what boundaries should guide diff --git a/docs/release-bom.md b/docs/release-bom.md index 76f493b8..4d7521f3 100644 --- a/docs/release-bom.md +++ b/docs/release-bom.md @@ -4,9 +4,9 @@ Base owns the cross-repository compatibility BOM contract. Repository-local release policies remain authoritative for their own versioning, artifacts, and publication, while the BOM records the exact combination that was tested. -For the Base 1.9.0 release train, `basefoundry/base` is the release owner. A +For the Base 1.10.0 release train, `basefoundry/base` is the release owner. A component release is independent: publishing `base-cli` or `base-bash-libs` -does not automatically require a new Base release. Base 1.9.0 may consume an +does not automatically require a new Base release. Base 1.10.0 may consume an already-published compatible component release, or retain the previous compatible pin. If Base adopts a newer component, the Base release BOM must record that exact immutable tag and commit and the required compatibility @@ -84,12 +84,12 @@ Validate and fingerprint a BOM locally: ```bash bin/base-release-bom validate path/to/release-bom.json \ --repository basefoundry/base \ - --version 1.9.0 \ + --version 1.10.0 \ --commit bin/base-release-bom digest path/to/release-bom.json ``` -For Base 1.9.0, the release coordinator assembles rows for Base, base-cli, +For Base 1.10.0, the release coordinator assembles rows for Base, base-cli, base-bash-libs, and base-demo. The required release-stack combinations are tested on Ubuntu 24.04 and macOS 14; both must report `passed`. Each combination is a JSON object. Assembly writes canonical deterministic bytes and a matching @@ -98,21 +98,21 @@ the printed digest matches the attached BOM artifact: ```bash bin/base-release-bom assemble \ - --repository basefoundry/base --version 1.9.0 \ + --repository basefoundry/base --version 1.10.0 \ --commit \ --component /private/tmp/base-row.json \ --component /private/tmp/base-cli-row.json \ --component /private/tmp/base-bash-libs-row.json \ --component /private/tmp/base-demo-row.json \ - --combination '{"name":"base-1.9.0-release-stack-ubuntu-24.04","participants":["basefoundry/base","basefoundry/base-cli","basefoundry/base-bash-libs","basefoundry/base-demo"],"platform":"ubuntu-24.04","required":true,"result":"passed","evidence":"run://123"}' \ - --combination '{"name":"base-1.9.0-release-stack-macos-14","participants":["basefoundry/base","basefoundry/base-cli","basefoundry/base-bash-libs","basefoundry/base-demo"],"platform":"macos-14","required":true,"result":"passed","evidence":"run://124"}' \ - --output /private/tmp/base-ecosystem-1.9.0.json + --combination '{"name":"base-1.10.0-release-stack-ubuntu-24.04","participants":["basefoundry/base","basefoundry/base-cli","basefoundry/base-bash-libs","basefoundry/base-demo"],"platform":"ubuntu-24.04","required":true,"result":"passed","evidence":"run://123"}' \ + --combination '{"name":"base-1.10.0-release-stack-macos-14","participants":["basefoundry/base","basefoundry/base-cli","basefoundry/base-bash-libs","basefoundry/base-demo"],"platform":"macos-14","required":true,"result":"passed","evidence":"run://124"}' \ + --output /private/tmp/base-ecosystem-1.10.0.json ``` The release assistant can enforce the same gate: ```bash -basectl release check --version 1.9.0 \ +basectl release check --version 1.10.0 \ --manifest base_manifest.yaml \ --bom path/to/release-bom.json ``` diff --git a/docs/release-process.md b/docs/release-process.md index fca47d6c..933de3c9 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -56,8 +56,8 @@ Base keeps two related version identities during development: A clean exact `vX.Y.Z` checkout and a packaged install report `VERSION` without a development suffix. A dirty checkout, including one based on a release tag, reports the development identity with its revision and `.dirty`. This keeps a -published release such as `1.8.0` distinct from mutable `main` work targeting -`1.9.0`, including its prospective license state. +published release such as `1.9.0` distinct from mutable `main` work targeting +`1.10.0`. Stable consumer installs must use Homebrew or an explicit release tag. Source checkout and `main` installs are contributor or dogfood paths and must name the diff --git a/docs/technical-overview.md b/docs/technical-overview.md index 4fd23e56..8af8eb35 100644 --- a/docs/technical-overview.md +++ b/docs/technical-overview.md @@ -289,7 +289,7 @@ Run everything locally with `basectl test base` or `bin/base-test`. ## Current Status -Base **1.9.0** (September 2026) covers: first-mile `bootstrap.sh` +Base **1.10.0** (October 2026) covers: first-mile `bootstrap.sh` installation, setup, check, doctor, project discovery, workspace status/check/doctor/clone/pull/init/configure, `basectl onboard`, project activation (subshell), test execution, build targets, named commands, demo scripts, diff --git a/docs/testing.md b/docs/testing.md index 4c85ed10..b63057aa 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -71,7 +71,7 @@ scan all production packages, or invoke shell files live under the top-level `tests/` directory so they are not mistaken for tests of an installed Python distribution. -Base supports the release-pinned `base-cli` v0.4.3 provider and compatible moving +Base supports the release-pinned `base-cli` v0.5.1 provider and compatible moving source checkouts. CI runs a full Ubuntu source suite for each, plus installed and explicit-source capability checks. Moving-source compatibility is a development gate; the pinned release remains authoritative for release evidence. @@ -294,7 +294,7 @@ Keep the release pin intact in `requirements-dev.txt`. Clone an independent pinned checkout and run Base's complete suite with each provider explicitly: ```bash -git clone --branch v0.4.3 --depth 1 https://github.com/basefoundry/base-cli.git ../base-cli-pinned +git clone --branch v0.5.1 --depth 1 https://github.com/basefoundry/base-cli.git ../base-cli-pinned env -u BASE_HOME BASE_CLI_SOURCE_DIR=../base-cli-pinned/lib/python ./bin/base-test env -u BASE_HOME BASE_CLI_SOURCE_DIR=../base-cli/lib/python ./bin/base-test ``` diff --git a/requirements-dev.txt b/requirements-dev.txt index 684f4a6b..2d1602a2 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,6 @@ pylint==3.3.9 click==8.4.1 -base-cli==0.4.3 +base-cli==0.5.1 PyYAML==6.0.3 pytest==9.0.3 pytest-cov==7.1.0 diff --git a/tests/integration/base_workflows.bats b/tests/integration/base_workflows.bats index d28c54aa..ef519e7b 100755 --- a/tests/integration/base_workflows.bats +++ b/tests/integration/base_workflows.bats @@ -632,7 +632,7 @@ assert record["identity"] == {"project_root": str(root), "manifest_path": str(ma [ "$status" -eq 1 ] [[ "$output" == *"refresh_run_bundle_index must be callable"* ]] [[ "$output" == *"$TEST_BASE_HOME/../base-cli/lib/python"* ]] - [[ "$output" == *"v0.4.3"* ]] + [[ "$output" == *"v0.5.1"* ]] [[ "$output" == *"BASE_CLI_SOURCE_DIR"* ]] [[ "$output" != *"Traceback"* ]] diff --git a/tests/test_github_workflows.py b/tests/test_github_workflows.py index 99c65cba..626fd56f 100644 --- a/tests/test_github_workflows.py +++ b/tests/test_github_workflows.py @@ -20,7 +20,7 @@ BASE_PROJECT_CONFIG = REPO_ROOT / ".github" / "base-project.yml" IMPLEMENTATION_ISSUE_TEMPLATE = REPO_ROOT / ".github" / "ISSUE_TEMPLATE" / "implementation.yml" FULL_COMMIT_SHA_ACTION_REF = re.compile(r"^[^@]+@[0-9a-f]{40}$") -BASE_BASH_LIBS_GA_COMMIT = "36fec50c446dcea8c521a1ba3e7fee2394f169c0" +BASE_BASH_LIBS_GA_COMMIT = "1333c0e7e4c3004663cda635e04965cb9d76511d" def workflow_files() -> list[Path]: @@ -397,7 +397,7 @@ def test_base_demo_e2e_workflow_covers_the_external_project_loop() -> None: "basefoundry/base-bash-libs", ] assert BASE_BASH_LIBS_GA_COMMIT in str(steps) - assert "v0.4.3" in str(steps) + assert "aa20cfe89bc3568ff19f8cc1414372feadb00fd4" in str(steps) for command in ( "basectl setup --ci base-demo", @@ -666,7 +666,7 @@ def test_source_provider_matrix_keeps_pin_and_exercises_moving_compatibility() - job = load_workflow(TESTS_WORKFLOW)["jobs"]["ubuntu-source-checkout"] matrix = job["strategy"]["matrix"]["include"] assert matrix == [ - {"provider-ref": "v0.4.3", "name": "Ubuntu source-checkout suite"}, + {"provider-ref": "aa20cfe89bc3568ff19f8cc1414372feadb00fd4", "name": "Ubuntu source-checkout suite"}, {"provider-ref": "main", "name": "Moving provider source-checkout suite"}, ] assert job["strategy"]["fail-fast"] is False