From 6461695e7d3e597df938051c705920be90a33a42 Mon Sep 17 00:00:00 2001 From: Ramesh Padmanabhaiah <22363102+codeforester@users.noreply.github.com> Date: Mon, 5 Oct 2026 22:51:23 +0530 Subject: [PATCH] Align demo with base-cli 0.5.0 --- .github/workflows/compatibility.yml | 6 +++--- .github/workflows/published-release-assets.yml | 8 ++++---- CHANGELOG.md | 6 ++++++ README.md | 9 +++++---- docs/compatibility.md | 12 ++++++------ docs/optional-integrations.md | 3 +++ docs/should-i-use-base-cli.md | 10 +++++----- docs/use-in-your-project.md | 2 +- pyproject.toml | 4 ++-- tests/test_optional_scenarios.py | 2 +- uv.lock | 10 +++------- 11 files changed, 39 insertions(+), 33 deletions(-) diff --git a/.github/workflows/compatibility.yml b/.github/workflows/compatibility.yml index 25642e7..2165d73 100644 --- a/.github/workflows/compatibility.yml +++ b/.github/workflows/compatibility.yml @@ -8,7 +8,7 @@ on: workflow_dispatch: inputs: upcoming_base_cli: - description: "Optional pip requirement suffix for an upcoming build, for example ==0.4.4rc1" + description: "Optional pip requirement suffix for an upcoming build, for example ==0.5.1rc1" required: false type: string @@ -29,9 +29,9 @@ jobs: python-version: ["3.10", "3.13"] base_cli: - name: minimum released - spec: "==0.4.3" + spec: "==0.5.0" - name: latest supported - spec: ">=0.4.3,<0.5" + spec: ">=0.5.0,<0.6" steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 - name: Set up Python diff --git a/.github/workflows/published-release-assets.yml b/.github/workflows/published-release-assets.yml index 2133009..f42af5a 100644 --- a/.github/workflows/published-release-assets.yml +++ b/.github/workflows/published-release-assets.yml @@ -32,10 +32,10 @@ jobs: matrix: python-version: ["3.10", "3.13"] base_cli: - - name: minimum-0.4.3 - spec: "==0.4.3" + - name: minimum-0.5.0 + spec: "==0.5.0" - name: latest-supported - spec: ">=0.4.3,<0.5" + spec: ">=0.5.0,<0.6" steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 with: @@ -120,7 +120,7 @@ jobs: run: | { printf 'Release tag: %s\n' "$RELEASE_TAG" - printf 'Declared Base-CLI range: base-cli>=0.4.3,<0.5\n\n' + printf 'Declared Base-CLI range: base-cli>=0.5.0,<0.6\n\n' find release-dist/compatibility-evidence -name compatibility.txt -print -exec cat {} \; } > release-dist/COMPATIBILITY.txt sha256sum release-dist/*.whl release-dist/*.tar.gz release-dist/COMPATIBILITY.txt > release-dist/SHA256SUMS.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7ba3a..f56b246 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and versions are tracked in the repo-root `VERSION` file. ## [Unreleased] +### Changed + +- Align the reference consumer, compatibility matrix, release evidence, and + documentation with the Base-CLI 0.5.0 API line; successful telemetry spans + now assert the 0.5.0 `status=OK` lifecycle contract. + ## [0.1.0] - 2026-09-02 ### Added diff --git a/README.md b/README.md index ff9f476..f3aada2 100644 --- a/README.md +++ b/README.md @@ -47,8 +47,9 @@ python -m pip install \ ``` Verify the artifact against `SHA256SUMS.txt` on the same GitHub Release. The -wheel depends on the released `base-cli>=0.4.3,<0.5` API line; it does not -install Base or require a Base workspace. +The published `v0.1.0` wheel depends on the released `base-cli>=0.4.3,<0.5` +API line. The current source and next demo release target the +`base-cli>=0.5.0,<0.6` line; neither installs Base or requires a Base workspace. The default environment is `dev`. Select another fixture environment with the framework lifecycle option: @@ -142,8 +143,8 @@ python -m pip install ".[dev]" ``` The package requires Python 3.10 or newer and pins the supported Base-CLI line -to `>=0.4.3,<0.5`. This checkout targets demo release `v0.1.0`; demo release -versioning remains separate from framework versioning. +to `>=0.5.0,<0.6`. This checkout targets the next demo release after `v0.1.0`; +demo release versioning remains separate from framework versioning. ## Documentation diff --git a/docs/compatibility.md b/docs/compatibility.md index 2cd2ddf..ab3136d 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -4,12 +4,12 @@ The demo is a consumer of the published `base-cli` package, not a source checkout consumer. Its declared support range is visible in `pyproject.toml`: ```text -base-cli>=0.4.3,<0.5 +base-cli>=0.5.0,<0.6 ``` The [Compatibility workflow](../.github/workflows/compatibility.yml) builds a -wheel from this repository, installs the minimum released Base-CLI (`0.4.3`) -and the latest release in the supported `<0.5` line, then installs the demo +wheel from this repository, installs the minimum released Base-CLI (`0.5.0`) +and the latest release in the supported `<0.6` line, then installs the demo wheel without dependencies before running the tests. It covers Python 3.10 and 3.13, the ends of the supported interpreter range used by this repository. @@ -20,9 +20,9 @@ quickstart appear healthy. The update policy is intentionally explicit: -- `0.4.3` is the minimum compatibility floor and changes only with a support +- `0.5.0` is the minimum compatibility floor and changes only with a support decision. -- `<0.5` keeps the demo on the released 0.4 API line until a future issue +- `<0.6` keeps the demo on the released 0.5 API line until a future issue evaluates the next minor API boundary. - A pull request or release should update the range, tests, and this document together when the supported Base-CLI line changes. @@ -30,6 +30,6 @@ The update policy is intentionally explicit: ## Upcoming builds Run the workflow manually and provide a pip requirement suffix such as -`==0.4.4rc1` in the `upcoming_base_cli` input. The `upcoming` job is explicitly +`==0.5.1rc1` in the `upcoming_base_cli` input. The `upcoming` job is explicitly non-blocking, so it provides early compatibility evidence without turning an unreleased framework build into the supported release gate. diff --git a/docs/optional-integrations.md b/docs/optional-integrations.md index db73071..d75c3bf 100644 --- a/docs/optional-integrations.md +++ b/docs/optional-integrations.md @@ -55,6 +55,9 @@ Without the extra, the command reports `telemetry=unavailable (install records the span in an in-memory exporter and prints its name/status; it does not attach argv, configuration, paths, or secrets. +Successful invocations report `status=OK`; failed invocations report an error +status while preserving the command's primary exit result. + The focused tests run in both modes: the normal CI job exercises the minimal fallbacks, while the optional-integration CI job installs all three extras and exercises the enabled adapters. diff --git a/docs/should-i-use-base-cli.md b/docs/should-i-use-base-cli.md index 1c6df82..ae8e25e 100644 --- a/docs/should-i-use-base-cli.md +++ b/docs/should-i-use-base-cli.md @@ -2,9 +2,9 @@ ## Status and compatibility -As of this guide, the newest published Base-CLI release is `0.4.3`; the package -is pre-1.0 and classified as Beta. The demo currently tests the released -`>=0.4.3,<0.5` line. This is not a promise that every future pre-1.0 minor line +As of this guide, the target Base-CLI release is `0.5.0`; the package is pre-1.0 +and classified as Beta. The demo tests the released `>=0.5.0,<0.6` line. This +is not a promise that every future pre-1.0 minor line is compatible: Base-CLI's published policy treats patch releases as compatible and allows a minor release before 1.0 to be a compatibility boundary. Read the [API stability policy](https://github.com/basefoundry/base-cli/blob/main/docs/api-stability.md) @@ -48,8 +48,8 @@ and domain policy, but its entry point and tests now follow Base-CLI's invocation model. The consuming team must maintain its supported dependency range, lock or otherwise reproduce the environment, and run compatibility tests when upgrading. Before 1.0, a minor framework upgrade may require a -compatibility review or code changes; this demo's `<0.5` bound deliberately -does not follow a future 0.5 line automatically. +compatibility review or code changes; this demo's `<0.6` bound deliberately +does not follow a future 0.6 line automatically. ## Alternatives and trade-offs diff --git a/docs/use-in-your-project.md b/docs/use-in-your-project.md index edf34b2..7a0bf3c 100644 --- a/docs/use-in-your-project.md +++ b/docs/use-in-your-project.md @@ -7,7 +7,7 @@ invocation lifecycle. Install the released framework line used by this demo: ```bash -python -m pip install "base-cli>=0.4.3,<0.5" "click>=8.1,<9" +python -m pip install "base-cli>=0.5.0,<0.6" "click>=8.1,<8.6" ``` Save this as `hello.py`: diff --git a/pyproject.toml b/pyproject.toml index 1a86836..1f9a1b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ description = "Reference consumer and learning application for the base-cli fram readme = "README.md" requires-python = ">=3.10" dependencies = [ - "base-cli>=0.4.3,<0.5", + "base-cli>=0.5.0,<0.6", "click>=8.1,<8.6", ] @@ -26,7 +26,7 @@ rich = [ "rich>=13.7,<15", ] yaml = [ - "base-cli[yaml]>=0.4.3,<0.5", + "base-cli[yaml]>=0.5.0,<0.6", ] telemetry = [ "opentelemetry-api>=1.24,<2", diff --git a/tests/test_optional_scenarios.py b/tests/test_optional_scenarios.py index f23849f..752f69c 100644 --- a/tests/test_optional_scenarios.py +++ b/tests/test_optional_scenarios.py @@ -114,7 +114,7 @@ def test_telemetry_sdk_records_the_base_cli_lifecycle_span(tmp_path: Path) -> No assert result.returncode == 0, result.stderr assert "recorded_spans=1" in result.stdout assert "span=base_cli.run" in result.stdout - assert "status=UNSET" in result.stdout + assert "status=OK" in result.stdout def test_rich_human_renderer_runs_on_a_real_terminal(tmp_path: Path) -> None: diff --git a/uv.lock b/uv.lock index a32f7c9..ab27cff 100644 --- a/uv.lock +++ b/uv.lock @@ -22,15 +22,11 @@ wheels = [ [[package]] name = "base-cli" -version = "0.4.3" +version = "0.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/85/aa/cb963f3a1e26b84e44992d2dd08a31539bd94454b4d26104f30e9d3d375a/base_cli-0.4.3.tar.gz", hash = "sha256:d9d05ff479c2f0ff03334a69f4f20cb17b2e1844d94e8727f837e5b8dfe3fc95", size = 320272, upload-time = "2026-08-29T04:19:08.582Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/d3/8ad3a107480e55b9ac956a84460616d9152c4ca7055c50acec12ca40785e/base_cli-0.4.3-py3-none-any.whl", hash = "sha256:b4bf684d164b9fdf31d1d0176dfcb5359cedf9b22434d6f6a5483243e27c9b89", size = 123477, upload-time = "2026-08-29T04:19:07.27Z" }, -] [package.optional-dependencies] yaml = [ @@ -67,8 +63,8 @@ yaml = [ [package.metadata] requires-dist = [ - { name = "base-cli", specifier = ">=0.4.3,<0.5" }, - { name = "base-cli", extras = ["yaml"], marker = "extra == 'yaml'", specifier = ">=0.4.3,<0.5" }, + { name = "base-cli", specifier = ">=0.5.0,<0.6" }, + { name = "base-cli", extras = ["yaml"], marker = "extra == 'yaml'", specifier = ">=0.5.0,<0.6" }, { name = "build", marker = "extra == 'dev'", specifier = ">=1.2,<2" }, { name = "click", specifier = ">=8.1,<8.6" }, { name = "opentelemetry-api", marker = "extra == 'telemetry'", specifier = ">=1.24,<2" },