Skip to content

Sync v1.28.1 release bookkeeping#3677

Open
enyst wants to merge 1 commit into
mainfrom
chore/sync-v1-28-1-bookkeeping
Open

Sync v1.28.1 release bookkeeping#3677
enyst wants to merge 1 commit into
mainfrom
chore/sync-v1-28-1-bookkeeping

Conversation

@enyst

@enyst enyst commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary

  • update the default sdk_ref in run-eval.yml from v1.28.0 to v1.28.1
  • sync package versions and uv.lock to 1.28.1, matching the already-published patch release

Context

The v1.28.1 patch release was published from rel-1.28.1, but that release PR was closed unmerged. This PR lands the bookkeeping that would normally come through the release PR without using a rel-* branch.

Validation

  • uv run pre-commit run --files .github/workflows/run-eval.yml openhands-agent-server/pyproject.toml openhands-sdk/pyproject.toml openhands-tools/pyproject.toml openhands-workspace/pyproject.toml uv.lock

This PR was created by an AI agent (OpenHands) on behalf of the user.

@enyst can click here to continue refining the PR


Agent Server images for this PR

GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server

Variants & Base Images

Variant Architectures Base Image Docs / Tags
java amd64, arm64 eclipse-temurin:17-jdk Link
python amd64, arm64 nikolaik/python-nodejs:python3.13-nodejs22-slim Link
golang amd64, arm64 golang:1.21-bookworm Link

Pull (multi-arch manifest)

# Each variant is a multi-arch manifest supporting both amd64 and arm64
docker pull ghcr.io/openhands/agent-server:dc35ee3-python

Run

docker run -it --rm \
  -p 8000:8000 \
  --name agent-server-dc35ee3-python \
  ghcr.io/openhands/agent-server:dc35ee3-python

All tags pushed for this build

ghcr.io/openhands/agent-server:dc35ee3-golang-amd64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-golang-amd64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-golang-amd64
ghcr.io/openhands/agent-server:dc35ee3-golang_tag_1.21-bookworm-amd64
ghcr.io/openhands/agent-server:dc35ee3-golang-arm64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-golang-arm64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-golang-arm64
ghcr.io/openhands/agent-server:dc35ee3-golang_tag_1.21-bookworm-arm64
ghcr.io/openhands/agent-server:dc35ee3-java-amd64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-java-amd64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-java-amd64
ghcr.io/openhands/agent-server:dc35ee3-eclipse-temurin_tag_17-jdk-amd64
ghcr.io/openhands/agent-server:dc35ee3-java-arm64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-java-arm64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-java-arm64
ghcr.io/openhands/agent-server:dc35ee3-eclipse-temurin_tag_17-jdk-arm64
ghcr.io/openhands/agent-server:dc35ee3-python-amd64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-python-amd64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-python-amd64
ghcr.io/openhands/agent-server:dc35ee3-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim-amd64
ghcr.io/openhands/agent-server:dc35ee3-python-arm64
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-python-arm64
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-python-arm64
ghcr.io/openhands/agent-server:dc35ee3-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim-arm64
ghcr.io/openhands/agent-server:dc35ee3-golang
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-golang
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-golang
ghcr.io/openhands/agent-server:dc35ee3-golang_tag_1.21-bookworm
ghcr.io/openhands/agent-server:dc35ee3-java
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-java
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-java
ghcr.io/openhands/agent-server:dc35ee3-eclipse-temurin_tag_17-jdk
ghcr.io/openhands/agent-server:dc35ee3-python
ghcr.io/openhands/agent-server:dc35ee38336466719c743acc72155a6ed859c378-python
ghcr.io/openhands/agent-server:chore-sync-v1-28-1-bookkeeping-python
ghcr.io/openhands/agent-server:dc35ee3-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim

About Multi-Architecture Support

  • Each variant tag (e.g., dc35ee3-python) is a multi-arch manifest supporting both amd64 and arm64
  • Docker automatically pulls the correct architecture for your platform
  • Individual architecture tags (e.g., dc35ee3-python-amd64) are also available if needed

Co-authored-by: openhands <openhands@all-hands.dev>
@github-actions

Copy link
Copy Markdown
Contributor

Python API breakage checks — ✅ PASSED

Result:PASSED

Action log

@github-actions

Copy link
Copy Markdown
Contributor

REST API breakage checks (OpenAPI) — ✅ PASSED

Result:PASSED

Action log

@all-hands-bot all-hands-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

⚠️ QA Report: PASS WITH ISSUES

Release bookkeeping behavior was verified end-to-end: local installs, workflow-dispatch default parsing, and the live agent-server /server_info endpoint all move from 1.28.0/v1.28.0 on main to 1.28.1/v1.28.1 on this PR.

Does this PR achieve its stated goal?

Partially. Yes, the functional bookkeeping goal is met: after applying the PR, all four editable distributions install as 1.28.1, run-eval.yml exposes sdk_ref default v1.28.1, /server_info reports every package version as 1.28.1, and PyPI confirms 1.28.1 exists for all four packages. However, the PR is not merge-ready as a way to “land” that bookkeeping because CI currently rejects package version changes from this non-release branch/title, and the PR-description validator also fails on human-only template fields.

Phase Result
Environment Setup uv sync --frozen succeeded; no tests/linters/pre-commit were run locally.
CI Status ⚠️ Check package versions and Validate PR description are failing; several build/tool checks were still pending when refreshed.
Functional Verification ✅ Package metadata, workflow default, live server info, and PyPI release availability match 1.28.1.
Functional Verification

Test 1: Installed package metadata and run-eval workflow default

Step 1 — Establish baseline on origin/main:
Ran git switch --detach origin/main && uv sync --frozen && uv run --frozen python ... to query installed distributions via importlib.metadata and parse the workflow YAML with yaml.BaseLoader:

Installed distribution versions:
openhands-sdk=1.28.0
openhands-tools=1.28.0
openhands-workspace=1.28.0
openhands-agent-server=1.28.0
run-eval workflow_dispatch sdk_ref default=v1.28.0

This confirms the base branch still exposes the old release bookkeeping values.

Step 2 — Apply the PR changes:
Checked out chore/sync-v1-28-1-bookkeeping at dc35ee38336466719c743acc72155a6ed859c378 and re-ran uv sync --frozen.

Step 3 — Re-run with the PR in place:
Ran the same metadata/workflow query:

Installed distribution versions:
openhands-sdk=1.28.1
openhands-tools=1.28.1
openhands-workspace=1.28.1
openhands-agent-server=1.28.1
run-eval workflow_dispatch sdk_ref default=v1.28.1

This shows the user-visible installed package metadata and manual workflow default now match the intended patch release.

Test 2: Live agent-server /server_info reports synchronized versions

Step 1 — Establish baseline on origin/main:
Started the server with uv run --frozen python -m openhands.agent_server --host 127.0.0.1 --port 8765 and requested GET /server_info:

{"version":"1.28.0","sdk_version":"1.28.0","tools_version":"1.28.0","workspace_version":"1.28.0"}

This confirms the running server exposes the old package versions to clients on the base branch.

Step 2 — Apply the PR changes:
Checked out the PR branch, synced the environment, restarted the same server command, and hit the same endpoint.

Step 3 — Re-run with the PR in place:
The live endpoint returned:

{"version":"1.28.1","sdk_version":"1.28.1","tools_version":"1.28.1","workspace_version":"1.28.1"}

This confirms the actual server users/clients would call now reports synchronized 1.28.1 versions across server, SDK, tools, and workspace packages.

Test 3: Referenced patch release exists on PyPI

After applying the PR, queried the PyPI JSON API for each package at 1.28.1:

openhands-sdk 1.28.1 PyPI status=200
openhands-tools 1.28.1 PyPI status=200
openhands-workspace 1.28.1 PyPI status=200
openhands-agent-server 1.28.1 PyPI status=200

This supports the PR description’s claim that the bookkeeping matches an already-published patch release.

CI failure evidence

Check package versions currently fails with:

Package version changes are only allowed in release PRs. Detected changes: openhands-sdk (1.28.0 -> 1.28.1), openhands-tools (1.28.0 -> 1.28.1), openhands-workspace (1.28.0 -> 1.28.1), openhands-agent-server (1.28.0 -> 1.28.1). Use the Prepare Release workflow so the PR title is 'Release vX.Y.Z' or the branch is 'rel-X.Y.Z'.

Validate PR description currently fails with:

The first visible line of the PR description must be `HUMAN:`.
Add a short human-written note between `HUMAN:` and the human-tested checkbox.
Keep the `- [ ] A human has tested these changes.` checkbox in the PR description.
Keep the `AGENT:` marker from the PR template.
Keep the `## Why` section from the PR template.
Keep the `## How to Test` section from the PR template.

Issues Found

  • 🟠 Issue: Check package versions blocks these version bumps because the PR is intentionally not using the release PR title/branch convention. A maintainer needs to either route this through the expected release naming/branch path or adjust/override the guard for this bookkeeping-only case.
  • 🟠 Issue: Validate PR description is failing on human-only template fields. Per repo guidance, an AI agent should not fill the HUMAN: note or human-tested checkbox; a human maintainer needs to update the PR description in their own words.

This QA review was created by an AI agent (OpenHands) on behalf of the user.

[project]
name = "openhands-sdk"
version = "1.28.0"
version = "1.28.1"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🟠 Important: Functional QA confirms this installs and reports as 1.28.1, but CI currently rejects package version changes on this non-release branch/title (Package version changes are only allowed in release PRs). Please either satisfy the existing release PR convention or intentionally adjust/override the guard for this bookkeeping-only path so the PR can actually land.

@github-actions

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report •
FileStmtsMissCoverMissing
TOTAL31551667278% 
report-only-changed-files is enabled. No files were changed during this commit :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants