From 0b6a36db75e3c7e5bc30f4c951112fce3abf79dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 8 Apr 2026 13:46:25 -0700 Subject: [PATCH 1/2] =?UTF-8?q?ci:=20fix=20version=20reading=20=E2=80=94?= =?UTF-8?q?=20use=20--print-version=20flag=20instead=20of=20inline=20Pytho?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/update_versions.py | 24 +++++++++++++++++++++++- .github/workflows/publish.yml | 17 ++--------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/.github/update_versions.py b/.github/update_versions.py index 822777be..971a9a00 100644 --- a/.github/update_versions.py +++ b/.github/update_versions.py @@ -1,5 +1,6 @@ import pathlib import re +import sys import click from packaging.version import Version @@ -9,6 +10,12 @@ "livekit-protocol": "livekit-protocol/livekit/protocol/version.py", } +TAG_PREFIXES = { + "livekit": "rtc", + "livekit-api": "api", + "livekit-protocol": "protocol", +} + def _esc(*codes: int) -> str: return "\033[" + ";".join(str(c) for c in codes) + "m" @@ -117,7 +124,22 @@ def do_prerelease(package: str, prerelease_type: str) -> None: default="patch", help="Type of version bump.", ) -def bump(package: str, pre: str, bump_type: str) -> None: +@click.option( + "--print-version", + is_flag=True, + default=False, + help="Print current version and tag prefix, don't bump.", +) +def bump(package: str, pre: str, bump_type: str, print_version: bool) -> None: + if print_version: + vf = pathlib.Path(PACKAGES[package]) + version = read_version(vf) + tag_prefix = TAG_PREFIXES[package] + # Output as key=value for easy parsing + print(f"version={version}") + print(f"tag_prefix={tag_prefix}") + return + if pre == "none": do_bump(package, bump_type) else: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3daafc57..04102d41 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -40,12 +40,6 @@ permissions: pull-requests: write id-token: write -env: - # Map PyPI package names to tag prefixes - # livekit -> rtc, livekit-api -> api, livekit-protocol -> protocol - TAG_PREFIX_MAP: '{"livekit":"rtc","livekit-api":"api","livekit-protocol":"protocol"}' - VERSION_FILE_MAP: '{"livekit":"livekit-rtc/livekit/rtc/version.py","livekit-api":"livekit-api/livekit/api/version.py","livekit-protocol":"livekit-protocol/livekit/protocol/version.py"}' - jobs: # ── Step 1: Create a version bump PR ────────────────────────── bump: @@ -109,17 +103,10 @@ jobs: env: INPUT_PACKAGE: ${{ inputs.package }} run: | - pkg="$INPUT_PACKAGE" - version_file=$(echo '${{ env.VERSION_FILE_MAP }}' | jq -r --arg pkg "$pkg" '.[$pkg]') - version=$(python -c " - import re, pathlib - m = re.search(r'__version__\s*=\s*[\"'\''](.*?)[\"'\'']', pathlib.Path('${version_file}').read_text()) - print(m.group(1)) - ") - tag_prefix=$(echo '${{ env.TAG_PREFIX_MAP }}' | jq -r --arg pkg "$pkg" '.[$pkg]') + eval "$(python .github/update_versions.py --package "$INPUT_PACKAGE" --print-version)" echo "version=$version" >> "$GITHUB_OUTPUT" echo "tag_prefix=$tag_prefix" >> "$GITHUB_OUTPUT" - echo "Package: $pkg, New version: $version, Tag: ${tag_prefix}-v${version}" + echo "Package: $INPUT_PACKAGE, New version: $version, Tag: ${tag_prefix}-v${version}" - name: Close existing release PRs for this package env: From ac29dd621b47b72ac81601a066866df7874770e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 8 Apr 2026 13:49:42 -0700 Subject: [PATCH 2/2] ci: remove unused sys import --- .github/update_versions.py | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/update_versions.py b/.github/update_versions.py index 971a9a00..691fd8a5 100644 --- a/.github/update_versions.py +++ b/.github/update_versions.py @@ -1,6 +1,5 @@ import pathlib import re -import sys import click from packaging.version import Version