From 37dbb52fbf6bc8c7f996a3ec29c87686b5666576 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 28 Sep 2026 11:22:16 -0700 Subject: [PATCH] ci: open release PRs ready for review --- .github/RELEASING.md | 6 +++--- release-please-config.json | 4 ++-- tests/test_release_please.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/RELEASING.md b/.github/RELEASING.md index 12f11dd9e6..b444fae9b8 100644 --- a/.github/RELEASING.md +++ b/.github/RELEASING.md @@ -4,11 +4,11 @@ Release tags are created manually by authorized maintainers. Merging a release p ## Prepare the release pull request -`.github/workflows/release-please.yml` maintains a draft release pull request after pushes to `main`. Maintainers can also run the workflow manually on `main`. Release Please uses conventional commit messages to propose the next version and release notes, following the `openai-python` configuration. Review the proposed version, especially for breaking changes before 1.0. +`.github/workflows/release-please.yml` maintains a release pull request ready for review after pushes to `main`. Maintainers can also run the workflow manually on `main`. Release Please uses conventional commit messages to propose the next version and release notes, following the `openai-python` configuration. Review the proposed version, especially for breaking changes before 1.0. The bot updates `pyproject.toml`, the editable `openai-agents` version in `uv.lock`, the source-checkout fallback in `src/agents/version.py`, `.release-please-manifest.json`, and `CHANGELOG.md`. Installed packages continue to read their version from package metadata. The configuration selects the project's lockfile entry by package name, so dependency versions remain unchanged and lockfile regeneration does not remove a required marker comment. The TOML selector uses `name.value` because the pinned Release Please updater wraps parsed values with source-position metadata; verify that selector when upgrading the action. -Release Please does not regenerate the public API snapshot. Before marking the release PR ready for review: +Release Please does not regenerate the public API snapshot. Before merging the release PR: 1. Check out the bot's release PR branch in a clean checkout and bring it up to date with `main`. Review the complete diff, including the proposed version and changelog. 2. Set `RELEASE_VERSION` to the proposed `project.version` and regenerate the snapshot with the existing commands: @@ -21,7 +21,7 @@ Release Please does not regenerate the public API snapshot. Before marking the r ``` The generator records the checked-out source commit and freezes the API surface for the proposed version. Review the generated `tests/fixtures/released_api_contract.json` diff, then commit and push it to the release PR branch using the maintainer’s own GitHub credentials. This push triggers the repository’s normal pull-request CI for the completed candidate. Do not merely replace its version string: new exports and signatures must be captured too. If the bot or another maintainer updates the candidate's source or version, regenerate and review the snapshot again before merging. -3. Run the required verification and wait for CI on the final candidate. The initial bot PR may fail the snapshot-version test until step 2 is complete. Mark the PR ready for review only after the snapshot and metadata agree. +3. Run the required verification and wait for CI on the final candidate. The initial bot PR may fail the snapshot-version test until step 2 is complete. Merge the PR only after the snapshot and metadata agree and the required checks and code-owner review pass. ### Standalone manual release diff --git a/release-please-config.json b/release-please-config.json index 9565c31207..e206762d87 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -8,9 +8,9 @@ "include-component-in-tag": false, "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": false, - "draft-pull-request": true, + "draft-pull-request": false, "pull-request-title-pattern": "release: ${version}", - "pull-request-header": "Automated release PR. Before marking ready for review, regenerate tests/fixtures/released_api_contract.json, review the release notes, and run the required checks. See .github/RELEASING.md. Tags and GitHub Releases are published manually.", + "pull-request-header": "Automated release PR. Before merging, regenerate tests/fixtures/released_api_contract.json, review the release notes, and run the required checks. See .github/RELEASING.md. Tags and GitHub Releases are published manually.", "extra-files": [ { "type": "toml", diff --git a/tests/test_release_please.py b/tests/test_release_please.py index 3f940e8a3d..bdb1bf8014 100644 --- a/tests/test_release_please.py +++ b/tests/test_release_please.py @@ -37,7 +37,7 @@ def test_release_metadata_tracks_only_the_editable_project() -> None: ] assert config["include-v-in-tag"] is True assert config["include-component-in-tag"] is False - assert config["draft-pull-request"] is True + assert config["draft-pull-request"] is False def test_release_bot_does_not_execute_pr_code_or_publish() -> None: