-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Labels
Description
Summary
Currently, when we release a new version (e.g., v1.2.0), the agent-server Docker images are tagged with complex versioned tags like v1.2.0_python-nodejs-python3.12-nodejs22 but not with simpler version-based tags like 1.2.0-python.
Current Behavior
When a git tag like v1.2.0 is pushed:
- The workflow triggers and passes
--versioned-tagtobuild.py - Images are tagged with the format:
v{SDK_VERSION}_{BASE_IMAGE_SLUG}(e.g.,v1.2.0_python-nodejs-python3.12-nodejs22) - Images are also tagged with commit-based tags like
{SHORT_SHA}-python - Images on main branch get
main-python,latest-pythontags
Proposed Enhancement
Add simpler, more intuitive version tags for releases:
1.2.0-python(orv1.2.0-python)1.2.0-java(orv1.2.0-java)1.2.0-golang(orv1.2.0-golang)
This would make it easier for users to:
- Pull specific versions by simply using
ghcr.io/openhands/agent-server:1.2.0-python - Understand which version they're using without parsing complex base image slugs
- Follow common Docker image tagging conventions
Implementation Considerations
The build.py script already has infrastructure for custom tags via custom_tag_list. We could:
- Option A: Modify the
versioned_tagproperty to also generate simpler tags when triggered by a git tag - Option B: Add an additional tag format specifically for release tags that follows the pattern
{VERSION}-{VARIANT} - Option C: Keep the existing complex versioned tags but add these simpler tags alongside them
Related Files
.github/workflows/server.yml- Lines 240-244 handle--versioned-tagflag for git tagsopenhands-agent-server/openhands/agent_server/docker/build.py- Lines 382-383 define theversioned_tagformat
Additional Context
Users looking for agent-server images currently see:
- ✅
latest-python- Clear what this is - ✅
main-python- Clear what this is - ❓
v1.2.0_python-nodejs-python3.12-nodejs22- Not immediately clear, hard to remember - ❌
1.2.0-python- This is what users would expect but doesn't exist
Having consistent, predictable version tags would improve user experience and align with Docker image tagging best practices.