Skip to content

Revert "fix(ci): stop re-labeling unrelated PRs for old Field defaults"#3406

Closed
enyst wants to merge 2 commits into
mainfrom
revert-pr-3329-release-conflict
Closed

Revert "fix(ci): stop re-labeling unrelated PRs for old Field defaults"#3406
enyst wants to merge 2 commits into
mainfrom
revert-pr-3329-release-conflict

Conversation

@enyst
Copy link
Copy Markdown
Member

@enyst enyst commented May 27, 2026

Summary

Validation

  • uv run pre-commit run --files .github/scripts/check_sdk_api_breakage.py .github/workflows/api-breakage.yml AGENTS.md tests/cross/test_check_sdk_api_breakage.py
  • git merge-tree --write-tree --name-only --messages HEAD origin/rel-1.24.0 exits cleanly

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:d9f8a55-python

Run

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

All tags pushed for this build

ghcr.io/openhands/agent-server:d9f8a55-golang-amd64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-golang-amd64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-golang-amd64
ghcr.io/openhands/agent-server:d9f8a55-golang_tag_1.21-bookworm-amd64
ghcr.io/openhands/agent-server:d9f8a55-golang-arm64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-golang-arm64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-golang-arm64
ghcr.io/openhands/agent-server:d9f8a55-golang_tag_1.21-bookworm-arm64
ghcr.io/openhands/agent-server:d9f8a55-java-amd64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-java-amd64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-java-amd64
ghcr.io/openhands/agent-server:d9f8a55-eclipse-temurin_tag_17-jdk-amd64
ghcr.io/openhands/agent-server:d9f8a55-java-arm64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-java-arm64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-java-arm64
ghcr.io/openhands/agent-server:d9f8a55-eclipse-temurin_tag_17-jdk-arm64
ghcr.io/openhands/agent-server:d9f8a55-python-amd64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-python-amd64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-python-amd64
ghcr.io/openhands/agent-server:d9f8a55-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim-amd64
ghcr.io/openhands/agent-server:d9f8a55-python-arm64
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-python-arm64
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-python-arm64
ghcr.io/openhands/agent-server:d9f8a55-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim-arm64
ghcr.io/openhands/agent-server:d9f8a55-golang
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-golang
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-golang
ghcr.io/openhands/agent-server:d9f8a55-golang_tag_1.21-bookworm
ghcr.io/openhands/agent-server:d9f8a55-java
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-java
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-java
ghcr.io/openhands/agent-server:d9f8a55-eclipse-temurin_tag_17-jdk
ghcr.io/openhands/agent-server:d9f8a55-python
ghcr.io/openhands/agent-server:d9f8a551bc309e18717569ed4b735d82c99b6223-python
ghcr.io/openhands/agent-server:revert-pr-3329-release-conflict-python
ghcr.io/openhands/agent-server:d9f8a55-nikolaik_s_python-nodejs_tag_python3.13-nodejs22-slim

About Multi-Architecture Support

  • Each variant tag (e.g., d9f8a55-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., d9f8a55-python-amd64) are also available if needed

#3329)"

This reverts commit 38e698b.

Co-authored-by: openhands <openhands@all-hands.dev>
@enyst enyst marked this pull request as ready for review May 27, 2026 15:14
Copy link
Copy Markdown
Collaborator

all-hands-bot commented May 27, 2026

Review complete.

This review was performed through OpenHands Cloud Automation. You can log in and view the conversation here.

Copy link
Copy Markdown
Collaborator

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

Choose a reason for hiding this comment

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

Review: Revert "fix(ci): stop re-labeling unrelated PRs for old Field defaults"

This is a clean, surgical revert of PR #3329. The motivation is clear and well-documented: the field_default_changes_since_base logic introduced a merge conflict on the release PR #3401, and the fastest safe path to unblock the release is to revert.

What was reverted

PR #3329 added a "two-view" comparison to the API breakage workflow:

  • View 1 (vs PyPI baseline): for compatibility reporting
  • View 2 (vs PR base ref via git archive): for deciding whether to add/remove the release-note-required label, so unrelated follow-up PRs wouldn't be re-labeled for defaults that were already changed on main

This revert removes that entire mechanism — the _get_base_ref, _git_archive_directory, _load_from_git_ref, _collect_field_default_changes_since_ref helpers; the field_defaults_only/emit_diagnostics parameters throughout; and the corresponding YAML workflow sections and tests.

Assessment

Correctness — all additions from #3329 are properly removed. The inlined (f"origin/{ref}", ref) tuple that replaces the now-deleted _git_ref_candidates() helper is functionally identical. No orphaned callsites or references remain.

Test coverage — the four tests that exercised _collect_field_default_changes_since_ref and the updated _write_field_default_change_report signature are correctly removed along with the functions they tested. No tests for live code were dropped.

AGENTS.md — the guidance line for the two-view approach is cleanly removed, keeping the doc consistent with the code.

⚠️ Known regression — unrelated PRs that don't change any Field(default=...) value themselves may again be re-labeled release-note-required if they branch off a main that already contains an unreleased default change. This was the problem #3329 fixed. It is an acceptable short-term regression to unblock the release; a re-implementation after the release cycle is recommended.

Verdict

Approved. The revert is correct, complete, and well-scoped. Merge when CI is green.


This review was generated by an AI agent (OpenHands) on behalf of the user through OpenHands Automation. View conversation

Copy link
Copy Markdown
Collaborator

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

Choose a reason for hiding this comment

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

🟢 Good taste — surgical revert, no new blocking issues found.

[RISK ASSESSMENT]

  • [Overall PR] ⚠️ Risk Assessment: 🟡 MEDIUM — CI automation behavior is intentionally rolled back, but SDK/runtime behavior is untouched and the release-unblock trade-off is clearly documented.

VERDICT:Worth merging

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


Was this automated review useful? React with 👍 or 👎 to this review to help us measure review quality.
Workflow run: https://github.com/OpenHands/software-agent-sdk/actions/runs/26520252889

@enyst enyst closed this May 27, 2026
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