From 70cbda8a73b838eda11d0c0e372391416d0cb209 Mon Sep 17 00:00:00 2001 From: Jon Saad-Falcon <41205309+jonsaadfalcon@users.noreply.github.com> Date: Sat, 11 Apr 2026 13:19:19 -0700 Subject: [PATCH] chore: derive __version__ from metadata, bump GHA action versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - openjarvis.__version__ now comes from importlib.metadata.version("openjarvis") instead of a hardcoded string, so it stays in sync with pyproject.toml on every release. Tests assert against openjarvis.__version__ rather than a literal. - Bump actions/checkout@v4 → @v6 and astral-sh/setup-uv@v4 → @v8 across every workflow ahead of the 2026-06-02 Node.js 20 deprecation on GitHub Actions runners. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/claude-issues.yml | 2 +- .github/workflows/claude-review.yml | 2 +- .github/workflows/desktop.yml | 4 ++-- .github/workflows/docs.yml | 4 ++-- .github/workflows/frontend.yml | 2 +- .github/workflows/pypi-publish.yml | 4 ++-- .github/workflows/track-clones.yml | 2 +- src/openjarvis/__init__.py | 8 +++++++- tests/cli/test_cli.py | 3 ++- tests/sdk/test_sdk.py | 3 ++- 11 files changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9b4f9cf..34aea630 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v5 @@ -22,7 +22,7 @@ jobs: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v8 - name: Install dependencies run: uv sync --extra dev @@ -33,7 +33,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v5 @@ -54,7 +54,7 @@ jobs: restore-keys: rust-${{ runner.os }}- - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v8 - name: Install dependencies run: uv sync --extra dev @@ -71,7 +71,7 @@ jobs: run: working-directory: rust steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/claude-issues.yml b/.github/workflows/claude-issues.yml index 7d5d67c3..07680c8d 100644 --- a/.github/workflows/claude-issues.yml +++ b/.github/workflows/claude-issues.yml @@ -31,7 +31,7 @@ jobs: contains(github.event.comment.body, '@claude') && github.actor != 'claude[bot]') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/claude-review.yml b/.github/workflows/claude-review.yml index 0df5e1ac..51ea9d47 100644 --- a/.github/workflows/claude-review.yml +++ b/.github/workflows/claude-review.yml @@ -34,7 +34,7 @@ jobs: contains(github.event.comment.body, '@claude') && github.actor != 'claude[bot]') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Read review instructions id: review diff --git a/.github/workflows/desktop.yml b/.github/workflows/desktop.yml index 9975efb6..bc2469ac 100644 --- a/.github/workflows/desktop.yml +++ b/.github/workflows/desktop.yml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install system dependencies run: | @@ -113,7 +113,7 @@ jobs: runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install system dependencies (Linux) if: matrix.platform == 'ubuntu-22.04' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a6f3cfe4..85a25c00 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -28,7 +28,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v5 @@ -36,7 +36,7 @@ jobs: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v8 - name: Install dependencies run: uv sync --extra docs diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index b6590a76..d71a52e3 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -24,7 +24,7 @@ jobs: run: working-directory: frontend steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 11adf81e..46c4090b 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -17,10 +17,10 @@ jobs: runs-on: ubuntu-latest environment: pypi steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install uv - uses: astral-sh/setup-uv@v4 + uses: astral-sh/setup-uv@v8 - name: Build package run: uv build diff --git a/.github/workflows/track-clones.yml b/.github/workflows/track-clones.yml index d1a80ebe..3738099d 100644 --- a/.github/workflows/track-clones.yml +++ b/.github/workflows/track-clones.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: token: ${{ secrets.TRAFFIC_TOKEN }} diff --git a/src/openjarvis/__init__.py b/src/openjarvis/__init__.py index 914e6474..8339f46a 100644 --- a/src/openjarvis/__init__.py +++ b/src/openjarvis/__init__.py @@ -2,8 +2,14 @@ from __future__ import annotations -__version__ = "0.1.0" +from importlib.metadata import PackageNotFoundError +from importlib.metadata import version as _pkg_version from openjarvis.sdk import Jarvis, JarvisSystem, MemoryHandle, SystemBuilder +try: + __version__ = _pkg_version("openjarvis") +except PackageNotFoundError: # pragma: no cover — uninstalled source tree + __version__ = "0.0.0+unknown" + __all__ = ["Jarvis", "JarvisSystem", "MemoryHandle", "SystemBuilder", "__version__"] diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py index c5d1ac16..03e1faeb 100644 --- a/tests/cli/test_cli.py +++ b/tests/cli/test_cli.py @@ -7,6 +7,7 @@ from unittest import mock from click.testing import CliRunner +import openjarvis from openjarvis.cli import cli @@ -19,7 +20,7 @@ class TestCLI: def test_version(self) -> None: result = CliRunner().invoke(cli, ["--version"]) assert result.exit_code == 0 - assert "0.1.0" in result.output + assert openjarvis.__version__ in result.output def test_ask_requires_query(self) -> None: result = CliRunner().invoke(cli, ["ask"]) diff --git a/tests/sdk/test_sdk.py b/tests/sdk/test_sdk.py index dafc574d..70c20832 100644 --- a/tests/sdk/test_sdk.py +++ b/tests/sdk/test_sdk.py @@ -6,6 +6,7 @@ from unittest.mock import MagicMock, patch import pytest +import openjarvis from openjarvis.core.config import JarvisConfig from openjarvis.sdk import Jarvis, MemoryHandle @@ -38,7 +39,7 @@ class TestJarvisInit: def test_version_property(self): j = Jarvis(config=JarvisConfig()) - assert j.version == "0.1.0" + assert j.version == openjarvis.__version__ j.close() def test_engine_key_override(self):