Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 25 additions & 19 deletions .github/workflows/release-prime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,35 +15,41 @@ on:
type: string

jobs:
await-sandboxes-release:
await-sdk-releases:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

# The CLI image installs the wheel with its dependencies resolved from PyPI, and
# release-sandboxes.yml runs independently of this workflow. Tagging or publishing
# before prime-sandboxes is installable would strand the release: the CLI tag
# already exists, so a rerun skips it, and every image build fails.
- name: Wait for the required prime-sandboxes version on PyPI
# SDK release workflows run independently. Publishing before a required SDK is
# installable would strand the release: reruns skip the existing CLI tag while
# every image build continues to fail dependency resolution.
- name: Wait for required SDK versions on PyPI
run: |
FLOOR=$(sed -nE 's/.*"prime-sandboxes>=([^"]+)".*/\1/p' packages/prime/pyproject.toml | head -n1)
if [ -z "$FLOOR" ]; then
echo "::error::Unable to parse the prime-sandboxes floor from packages/prime/pyproject.toml"
exit 1
fi
echo "Waiting for prime-sandboxes==$FLOOR to become installable"
for _ in $(seq 1 40); do
if python3 -m pip download --quiet --no-deps --no-cache-dir --dest /tmp/floor-check "prime-sandboxes==$FLOOR"; then
echo "prime-sandboxes $FLOOR is installable"
exit 0
for PACKAGE in prime-sandboxes prime-tunnel; do

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

while youre at it, maybe you could add the prime-traces and prime-evals pkgs here too 🙏

FLOOR=$(sed -nE "s/.*\"${PACKAGE}>=([^\"]+)\".*/\1/p" packages/prime/pyproject.toml | head -n1)
if [ -z "$FLOOR" ]; then
echo "::error::Unable to parse the $PACKAGE floor from packages/prime/pyproject.toml"
exit 1
fi
echo "Waiting for $PACKAGE==$FLOOR to become installable"
AVAILABLE=false
for _ in $(seq 1 40); do
if python3 -m pip download --quiet --no-deps --no-cache-dir --dest /tmp/floor-check "$PACKAGE==$FLOOR"; then
echo "$PACKAGE $FLOOR is installable"
AVAILABLE=true
break
fi
sleep 15
done
if [ "$AVAILABLE" != true ]; then
echo "::error::$PACKAGE $FLOOR is still not on PyPI after 10 minutes; check its release workflow"
exit 1
fi
sleep 15
done
echo "::error::prime-sandboxes $FLOOR is still not on PyPI after 10 minutes; check the Release prime-sandboxes workflow"
exit 1

tag-and-release:
needs: await-sandboxes-release
needs: await-sdk-releases
runs-on: ubuntu-latest
environment: pypi-prod
permissions:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ Tagging and publishing to PyPI is handled automatically by CI.

#### Version sync considerations:

When releasing `prime`, consider whether `prime-sandboxes` should also be bumped, as `prime` depends on `prime-sandboxes`. The packages can be released independently or together depending on what changed.
When releasing `prime`, consider whether `prime-sandboxes` or `prime-tunnel` should also be bumped, as `prime` depends on both. The packages can be released independently or together depending on what changed.

## License

Expand Down
2 changes: 1 addition & 1 deletion packages/prime-sandboxes/src/prime_sandboxes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
from .process import AsyncSandboxProcess
from .sandbox import AsyncSandboxClient, AsyncTemplateClient, SandboxClient, TemplateClient

__version__ = "0.2.40"
__version__ = "0.2.41"

# Deprecated alias for backward compatibility
TimeoutError = APITimeoutError
Expand Down
2 changes: 1 addition & 1 deletion packages/prime-tunnel/src/prime_tunnel/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Prime Tunnel SDK - Expose local services via secure tunnels."""

__version__ = "0.1.10"
__version__ = "0.1.11"

from prime_tunnel.core import Config, TunnelClient
from prime_tunnel.exceptions import (
Expand Down
4 changes: 2 additions & 2 deletions packages/prime/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ authors = [
{ name = "Prime Intellect", email = "contact@primeintellect.ai" }
]
dependencies = [
"prime-sandboxes>=0.2.40",
"prime-sandboxes>=0.2.41",
"prime-evals>=0.2.3",
"prime-traces>=0.0.1",
"prime-tunnel>=0.1.9",
"prime-tunnel>=0.1.11",
"httpx>=0.25.0",
"pydantic>=2.0.0",
"typer>=0.9.0,<0.26",
Expand Down
2 changes: 1 addition & 1 deletion packages/prime/src/prime_cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
Config,
)

__version__ = "0.6.31"
__version__ = "0.6.32"

__all__ = [
"APIClient",
Expand Down
3 changes: 2 additions & 1 deletion packages/prime/tests/test_tunnel_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ def test_prime_requires_runtime_sdks_with_cli_feature_support() -> None:
pyproject_path = Path(__file__).resolve().parents[1] / "pyproject.toml"
pyproject = tomllib.loads(pyproject_path.read_text(encoding="utf-8"))

assert "prime-sandboxes>=0.2.41" in pyproject["project"]["dependencies"]
assert "prime-evals>=0.2.3" in pyproject["project"]["dependencies"]
assert "prime-traces>=0.0.1" in pyproject["project"]["dependencies"]
assert "prime-tunnel>=0.1.9" in pyproject["project"]["dependencies"]
assert "prime-tunnel>=0.1.11" in pyproject["project"]["dependencies"]


def test_tunnel_start_cli_passes_labels_to_sdk(monkeypatch: pytest.MonkeyPatch) -> None:
Expand Down
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ dev-dependencies = [
"ty>=0.0.1a21",
"pre-commit>=3.5.0"
]
override-dependencies = ["prime-tunnel>=0.1.6"]

[tool.uv.exclude-newer-package]
# Fast-track trusted first-party / partner-published packages past the
Expand Down
1 change: 0 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading