ci: enforce agent-server REST API deprecation policy#2232
Conversation
Co-authored-by: openhands <openhands@all-hands.dev>
API breakage checks (Griffe)Result: Passed |
Agent server REST API breakage checks (OpenAPI)Result: Passed |
all-hands-bot
left a comment
There was a problem hiding this comment.
Taste Rating: 🟡 Acceptable - Solid infrastructure that solves a real problem (API stability). Mirrors the SDK Griffe pattern well. Two improvement opportunities noted below.
|
@OpenHands Investigate the problem solved by this PR and tell me: is there a library that can do this for us? |
|
I'm on it! enyst can track my progress at all-hands.dev |
|
I investigated what this PR is doing (a custom CI policy check that compares the current agent-server OpenAPI schema to the previous PyPI release, enforcing “deprecation-before-removal” for operations and requiring a MINOR+ version bump for breaking REST API changes) and looked for existing libraries/tools that could replace it. Conclusion: there are good existing tools that can handle OpenAPI diffing / breaking-change detection, but none that cleanly replaces the entire workflow/policy end-to-end.
So: we could potentially swap our hand-rolled diff logic for |
Co-authored-by: openhands <openhands@all-hands.dev>
|
@OpenHands this PR has been merged. But look at this comment: #2232 (comment) Make a new branch from main and adapt the workflow to use oasdiff. Once done, review your work and open PR. |
|
I'm on it! enyst can track my progress at all-hands.dev |
SummaryI've completed the task of adapting the agent-server REST API workflow to use oasdiff. Here's what was done: Changes Made
PRCreated: #2240 Title: The changes use oasdiff as requested, while preserving the custom policy enforcement that requires deprecation before removal and MINOR version bumps for breaking changes. |
Adds a REST (OpenAPI) deprecation/breakage policy for openhands-agent-server.
Note: this covers REST OpenAPI only; WebSocket/SSE endpoints are out of scope.
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:3316d56-pythonRun
All tags pushed for this build
About Multi-Architecture Support
3316d56-python) is a multi-arch manifest supporting both amd64 and arm643316d56-python-amd64) are also available if needed