Skip to content

Commit 0f81046

Browse files
claudeMiaoDX
authored andcommitted
release: bump version to 0.2.0
Milestone release covering the work since v0.1.1: - MCP server with batch evaluation and base64 screenshots - LeRobot evaluation plugin and VectorEnvAdapter (make_env integration) - HuggingFace Space deployment for demo reports - G1-native demo with multi-policy controller support - Showcase repo init script (groot-n16, sonic-locomotion) - Locomotion controllers, WBC grasp re-integration, ONNX plumbing - Visual report pass/fail indicators and Pages deployment hardening - Extensive docs: development workflow, related work, Harness Engineering
1 parent 41bfa37 commit 0f81046

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

CLAUDE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,25 @@ When reviewing a PR (as an agent or on behalf of one), **push fixes directly to
5353

5454
Do NOT create a new branch or a new PR for review fixes.
5555

56+
### Release process
57+
58+
Releases are cut by pushing to the `release` branch, which triggers `.github/workflows/release.yml` to tag, create a GitHub Release, and publish to PyPI via OIDC trusted publishing.
59+
60+
**Important:** The `release` branch has **unrelated git history** (no common ancestor with `main`). It exists only as a deploy pointer. GitHub UI cannot merge unrelated histories, so **never open a PR targeting `release`**. Use this flow:
61+
62+
1. Bump the version in **both** `pyproject.toml` and `src/roboharness/__init__.py` on a feature branch (e.g. `claude/release-<slug>`). Use semver — minor bump for feature milestones, patch for fix-only rollups.
63+
2. Open a PR targeting **`main`** (never `release`). Write release notes in the PR description summarizing what landed since the last tag.
64+
3. After CI is green and the PR is merged into `main`, force-push `release` to `main`'s tip:
65+
```bash
66+
git fetch origin main
67+
git push origin +origin/main:release # or: git push --force origin main:release
68+
```
69+
This is a force-push by design — `release` is a deploy pointer, not a history-preserving branch. Requires explicit user authorization each time.
70+
4. The push triggers the workflow: reads version from `pyproject.toml`, tags `vX.Y.Z`, generates release notes (`gh release create --generate-notes`), builds, publishes to PyPI.
71+
5. Verify the GitHub Release, the `vX.Y.Z` tag, and the PyPI artifact before closing out.
72+
73+
If a duplicate PR targeting `release` was auto-created on push, close it — the `main`-targeted PR is the canonical one.
74+
5675
## CI failure investigation
5776

5877
When a CI check fails, **always read the actual logs/error messages** before diagnosing. Do not stop at the status summary (`conclusion: failure`). Specifically:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "roboharness"
7-
version = "0.1.1"
7+
version = "0.2.0"
88
description = "A Visual Testing Harness for AI Coding Agents in Robot Simulation"
99
readme = "README.md"
1010
license = "MIT"

src/roboharness/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Roboharness: A Visual Testing Harness for AI Coding Agents in Robot Simulation."""
22

3-
__version__ = "0.1.1"
3+
__version__ = "0.2.0"
44

55
from roboharness.core.capture import CaptureResult
66
from roboharness.core.checkpoint import Checkpoint, CheckpointStore

0 commit comments

Comments
 (0)