From d66bfcfb11aed362a3b5ea9c583d101db0e565ad Mon Sep 17 00:00:00 2001 From: Jon Harrell <4829245+jharrell@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:05:59 -0500 Subject: [PATCH 01/10] feat: initial stlc build Stainless-Generated-From: e188349b22adaa0b17bdfc37d0f2ab59f8037929 --- .github/workflows/release-please.yml | 20 ++++++++++++++++++++ .stats.yml | 2 -- release-please-config.json | 4 ++-- scripts/mock | 15 ++++++++------- scripts/utils/upload-artifact.sh | 2 +- 5 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/release-please.yml diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..011200c8 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,20 @@ +name: Release Please +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + if: github.repository == 'openlayer-ai/openlayer-python' + runs-on: ubuntu-latest + + steps: + - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1 + id: release + with: + token: ${{ secrets.RELEASE_PLEASE_TOKEN }} diff --git a/.stats.yml b/.stats.yml index 60080a09..e8ba8c9f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,3 +1 @@ configured_endpoints: 32 -openapi_spec_hash: 72e2dd8871904fe6c130d1c81b033d5a -config_hash: f75dd97d47c446f8fdc8bcb36f445eea diff --git a/release-please-config.json b/release-please-config.json index 83a417a7..af5fcf5d 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -2,11 +2,11 @@ "packages": { ".": {} }, - "$schema": "https://raw.githubusercontent.com/stainless-api/release-please/main/schemas/config.json", + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "include-v-in-tag": true, "include-component-in-tag": false, "versioning": "prerelease", - "prerelease": true, + "prerelease": false, "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": false, "pull-request-header": "Automated Release PR", diff --git a/scripts/mock b/scripts/mock index 984e1c00..474f5a99 100755 --- a/scripts/mock +++ b/scripts/mock @@ -12,14 +12,15 @@ fi if [[ -n "$1" && "$1" != '--'* ]]; then URL="$1" shift +elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then + URL="$STAINLESS_OPENAPI_SPEC_URL" else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 + # Embedded OpenAPI spec (base64-encoded, gzipped) + EMBEDDED_SPEC="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" + SPEC_TMPFILE="$(mktemp)" + trap 'rm -f "$SPEC_TMPFILE"' EXIT + echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" + URL="$SPEC_TMPFILE" fi echo "==> Starting mock server with URL ${URL}" diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh index dbcbd064..806a696f 100755 --- a/scripts/utils/upload-artifact.sh +++ b/scripts/utils/upload-artifact.sh @@ -20,7 +20,7 @@ UPLOAD_RESPONSE=$(curl -v -X PUT \ if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then echo -e "\033[32mUploaded build to Stainless storage.\033[0m" - echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python/$SHA/$FILENAME'\033[0m" + echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python-staging/$SHA/$FILENAME'\033[0m" else echo -e "\033[31mFailed to upload artifact.\033[0m" exit 1 From e2ca5fe7b11ab0a2a254846e4ca269a1692e3363 Mon Sep 17 00:00:00 2001 From: Jon Harrell <4829245+jharrell@users.noreply.github.com> Date: Tue, 25 Aug 2026 09:19:13 -0500 Subject: [PATCH 02/10] ci: add stlc promote and back-sync workflows --- .github/workflows/stlc-promote.yml | 80 ++++++++++ .github/workflows/stlc-sync.yml | 225 +++++++++++++++++++++++++++++ 2 files changed, 305 insertions(+) create mode 100644 .github/workflows/stlc-promote.yml create mode 100644 .github/workflows/stlc-sync.yml diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml new file mode 100644 index 00000000..2f310d05 --- /dev/null +++ b/.github/workflows/stlc-promote.yml @@ -0,0 +1,80 @@ +# NOTE(stlc migration, 2026-08-25): repo names below point at the +# stainless-sdks placeholder repos used to validate the migration. +# At cutover, replace: +# - the production repo with openlayer-ai/openlayer-python +# - the staging/config repo owner with your own org after transfer +name: Promote SDKs + +# Promote staging to production by fast-forwarding production main up to staging, +# preserving SHAs so the trunks stay identical and linear (nothing to heal on the +# next stlc build). Manual dispatch by design: a maintainer promotes the accumulated +# batch to cut a release; release-please then opens its version PR on production. +on: + workflow_dispatch: {} + +permissions: + contents: read + +jobs: + promote: + # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. + runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} + if: github.repository == 'stainless-sdks/openlayer-python-staging' + # Optional gate: add required reviewers to this environment to approve each + # promote. With none it only scopes secrets and adds no gate. Remove if unused. + environment: production + env: + PRODUCTION_REPO: stainless-sdks/openlayer-python-prod + GH_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }} + steps: + - name: Check out staging + uses: actions/checkout@v6 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Fetch production main + run: | + git remote add production \ + "https://x-access-token:${GH_TOKEN}@github.com/${PRODUCTION_REPO}.git" + git fetch production main + + - name: Check whether production already has staging's content + id: diff + run: | + # After a release, production has release-please commits staging lacks, so compare trees. + MERGED=$(git merge-tree --write-tree production/main origin/main) || MERGED=conflict + PRODUCTION_TREE=$(git rev-parse 'production/main^{tree}') + if [ "$MERGED" = "$PRODUCTION_TREE" ]; then + echo "Production already contains staging's content. Nothing to promote." + echo "synced=true" >> "$GITHUB_OUTPUT" + else + echo "synced=false" >> "$GITHUB_OUTPUT" + fi + + - name: Promote staging to production (fast-forward) + if: steps.diff.outputs.synced == 'false' + run: | + # Refuse unless production is an ancestor of staging: otherwise the trunks + # have forked (production advanced without a back-sync) and FF is unsafe. + if ! git merge-base --is-ancestor production/main origin/main; then + echo "::error title=Promote blocked::production/main is not an ancestor of staging main. Back-sync production into staging first." + exit 1 + fi + git push production origin/main:refs/heads/main + echo "Fast-forwarded production/main to staging/main." + + - name: Alert on failure + if: failure() + env: + ALERT_WEBHOOK_URL: ${{ secrets.STLC_ALERT_WEBHOOK_URL }} + run: | + run_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + msg="stlc promote failed in ${{ github.repository }}. A stalled promote or back-sync lets custom-code tracking drift, which later builds refuse on — investigate before the next build. Run: $run_url" + echo "::error title=stlc workflow failed::$msg" + { echo "### ⚠️ stlc workflow failed"; echo ""; echo "$msg"; } >> "$GITHUB_STEP_SUMMARY" + if [ -n "${ALERT_WEBHOOK_URL:-}" ]; then + curl -sS -X POST -H 'Content-Type: application/json' \ + -d "$(jq -n --arg text "$msg" '{text:$text}')" "$ALERT_WEBHOOK_URL" \ + || echo "::warning::Alert webhook POST failed" + fi diff --git a/.github/workflows/stlc-sync.yml b/.github/workflows/stlc-sync.yml new file mode 100644 index 00000000..4efde22a --- /dev/null +++ b/.github/workflows/stlc-sync.yml @@ -0,0 +1,225 @@ +# NOTE(stlc migration, 2026-08-25): repo names below point at the +# stainless-sdks placeholder repos used to validate the migration. +# At cutover, replace: +# - the production repo with openlayer-ai/openlayer-python +# - the staging/config repo owner with your own org after transfer +name: Sync SDK repos + +# Keeps the staging and production trunks in sync and the config repo's +# tracking files fresh. Each job self-routes by repo + event, so this one file +# can live in both repos and only the right job runs. The dispatch jobs are +# eager-only (the polls cover them) and no-op when their token isn't set. +on: + schedule: + # back-sync poll: a cheap pure-git check, twice hourly so an unsynced production + # change (e.g. a community PR between releases) can't hold codegen for long. + - cron: '7,37 * * * *' + workflow_dispatch: {} + repository_dispatch: + types: [prod-released] + release: + types: [published] + push: + # main only. stlc preview/integrated/codegen branches never push to main. + branches: [main] + +jobs: + back-sync: + # Fast-forward production main back onto staging so the trunks stay identical. + # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. + runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} + if: >- + github.repository == 'stainless-sdks/openlayer-python-staging' && + (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch') + permissions: + contents: write + concurrency: + group: stlc-back-sync + cancel-in-progress: true + env: + PRODUCTION_REPO: stainless-sdks/openlayer-python-prod + steps: + - name: Check out staging + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Fetch production main + env: + PRODUCTION_REPO_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }} + run: | + # Public production reads with no credential; a private production + # repo needs PRODUCTION_REPO_TOKEN (the same token the promote uses). + if [ -n "${PRODUCTION_REPO_TOKEN:-}" ]; then + git remote add production "https://x-access-token:${PRODUCTION_REPO_TOKEN}@github.com/${PRODUCTION_REPO}.git" + else + git remote add production "https://github.com/${PRODUCTION_REPO}.git" + fi + # actions/checkout persists this repo's token as an auth header, which + # outranks the remote URL credential; blank it for this fetch only. + git -c "http.https://github.com/.extraheader=" fetch production main + + - name: Check whether production has content staging lacks + id: diff + run: | + # Content compare: would merging production into staging change its tree? + # If not, staging already has production's content (release-please commits). + MERGED=$(git merge-tree --write-tree origin/main production/main) || MERGED=conflict + STAGING_TREE=$(git rev-parse 'origin/main^{tree}') + if [ "$MERGED" = "$STAGING_TREE" ]; then + echo "Staging already has production's content. Nothing to pull back." + echo "behind=false" >> "$GITHUB_OUTPUT" + else + echo "behind=true" >> "$GITHUB_OUTPUT" + fi + + - name: Sync production to staging (fast-forward) + if: steps.diff.outputs.behind == 'true' + run: | + # Refuse unless staging is an ancestor of production: otherwise the + # trunks have forked and a fast-forward would be unsafe. + if ! git merge-base --is-ancestor origin/main production/main; then + echo "::error title=Back-sync blocked::staging main is not an ancestor of production/main." + exit 1 + fi + git push origin production/main:refs/heads/main + echo "Fast-forwarded staging/main to production/main." + + - name: Alert on failure + if: failure() + env: + ALERT_WEBHOOK_URL: ${{ secrets.STLC_ALERT_WEBHOOK_URL }} + run: | + run_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + msg="stlc back-sync (sync from production) failed in ${{ github.repository }}. A stalled back-sync lets custom-code tracking drift, which later builds refuse on — investigate before the next build. Run: $run_url" + echo "::error title=stlc workflow failed::$msg" + { echo "### ⚠️ stlc workflow failed"; echo ""; echo "$msg"; } >> "$GITHUB_STEP_SUMMARY" + if [ -n "${ALERT_WEBHOOK_URL:-}" ]; then + curl -sS -X POST -H 'Content-Type: application/json' \ + -d "$(jq -n --arg text "$msg" '{text:$text}')" "$ALERT_WEBHOOK_URL" \ + || echo "::warning::Alert webhook POST failed" + fi + + notify-back-sync: + # On a published release, tell staging to back-sync now instead of waiting for + # the poll. Dispatch-only: it cannot write production or staging contents. + runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} + if: >- + github.repository == 'stainless-sdks/openlayer-python-prod' && + (github.event_name == 'release' || github.event_name == 'workflow_dispatch') + permissions: + contents: read + env: + STAGING_REPO: stainless-sdks/openlayer-python-staging + steps: + - name: Dispatch back-sync to staging + env: + DISPATCH_TOKEN: ${{ secrets.STAGING_DISPATCH_TOKEN }} + REF_NAME: ${{ github.ref_name }} + run: | + set -euo pipefail + + if [ -z "${DISPATCH_TOKEN:-}" ]; then + echo "::notice::STAGING_DISPATCH_TOKEN not configured — skipping the eager back-sync notify. The staging repo's twice-hourly poll covers this." + exit 0 + fi + + payload=$(jq -n --arg ref "$REF_NAME" '{event_type:"prod-released",client_payload:{ref:$ref}}') + code=$(curl -sS -o /tmp/dispatch.txt -w '%{http_code}' -X POST \ + -H "Authorization: Bearer ${DISPATCH_TOKEN}" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/${STAGING_REPO}/dispatches" \ + -d "$payload") + if [ "$code" = "204" ]; then + echo "Back-sync dispatched to ${STAGING_REPO}." + else + echo "Dispatch failed (HTTP $code)" >&2; cat /tmp/dispatch.txt >&2; exit 1 + fi + + - name: Alert on failure + if: failure() + env: + ALERT_WEBHOOK_URL: ${{ secrets.STLC_ALERT_WEBHOOK_URL }} + run: | + run_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + msg="stlc release back-sync trigger failed in ${{ github.repository }} — the staging repo was NOT notified to back-sync this release (likely an expired STAGING_DISPATCH_TOKEN). Staging catches up on its next poll, but verify the token. Run: $run_url" + echo "::error title=stlc workflow failed::$msg" + { echo "### ⚠️ stlc workflow failed"; echo ""; echo "$msg"; } >> "$GITHUB_STEP_SUMMARY" + if [ -n "${ALERT_WEBHOOK_URL:-}" ]; then + curl -sS -X POST -H 'Content-Type: application/json' \ + -d "$(jq -n --arg text "$msg" '{text:$text}')" "$ALERT_WEBHOOK_URL" \ + || echo "::warning::Alert webhook POST failed" + fi + + seal-dispatch: + # When out-of-band custom code lands on staging main, tell the config repo to + # re-seal now instead of waiting for its scheduled sync. The loop guards skip + # stlc's own pushes, so the bot's commits can't trigger a re-seal loop. + runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} + if: >- + github.repository == 'stainless-sdks/openlayer-python-staging' && + github.event_name == 'push' + permissions: + contents: read + concurrency: + group: seal-dispatch-${{ github.ref }} + cancel-in-progress: false + env: + CONFIG_REPO: stainless-sdks/openlayer-config + steps: + - name: Loop-guard and send re-seal dispatch + env: + DISPATCH_TOKEN: ${{ secrets.CONFIG_DISPATCH_TOKEN }} + HEAD_MSG: ${{ github.event.head_commit.message }} + HEAD_AUTHOR_NAME: ${{ github.event.head_commit.author.name }} + SHA: ${{ github.sha }} + REPO: ${{ github.repository }} + run: | + set -euo pipefail + + # Loop guard 1: skip the stlc "Build SDK" squash commit (Stainless-Generated-From trailer). + if printf '%s' "$HEAD_MSG" | grep -q 'Stainless-Generated-From'; then + echo "Head commit is an stlc build — skipping re-seal dispatch." + exit 0 + fi + + # Loop guard 2: skip stlc-bot commits (e.g. a regeneration commit). + if [ "$HEAD_AUTHOR_NAME" = "stlc-bot" ]; then + echo "Head commit authored by stlc-bot — skipping re-seal dispatch." + exit 0 + fi + + if [ -z "${DISPATCH_TOKEN:-}" ]; then + echo "::notice::CONFIG_DISPATCH_TOKEN not configured — skipping the eager re-seal. The config repo's scheduled sync covers this." + exit 0 + fi + + payload=$(jq -n --arg sha "$SHA" --arg repo "$REPO" \ + '{event_type:"seal-custom-code",client_payload:{target:"all",sha:$sha,repo:$repo}}') + code=$(curl -sS -o /tmp/dispatch.txt -w '%{http_code}' -X POST \ + -H "Authorization: Bearer ${DISPATCH_TOKEN}" \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/repos/${CONFIG_REPO}/dispatches" \ + -d "$payload") + if [ "$code" = "204" ]; then + echo "Re-seal dispatched to ${CONFIG_REPO}." + else + echo "Dispatch failed (HTTP $code)" >&2; cat /tmp/dispatch.txt >&2; exit 1 + fi + + - name: Alert on failure + if: failure() + env: + ALERT_WEBHOOK_URL: ${{ secrets.STLC_ALERT_WEBHOOK_URL }} + run: | + run_url="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + msg="stlc seal-dispatch failed in ${{ github.repository }} — the config repo was NOT notified to re-seal (likely an expired CONFIG_DISPATCH_TOKEN). The config repo's scheduled sync is the backstop, but verify the token. Run: $run_url" + echo "::error title=stlc workflow failed::$msg" + { echo "### ⚠️ stlc workflow failed"; echo ""; echo "$msg"; } >> "$GITHUB_STEP_SUMMARY" + if [ -n "${ALERT_WEBHOOK_URL:-}" ]; then + curl -sS -X POST -H 'Content-Type: application/json' \ + -d "$(jq -n --arg text "$msg" '{text:$text}')" "$ALERT_WEBHOOK_URL" \ + || echo "::warning::Alert webhook POST failed" + fi From ed900047d74336d3cc66f0e9f240a70139e57140 Mon Sep 17 00:00:00 2001 From: stlc-bot Date: Tue, 25 Aug 2026 17:53:57 +0000 Subject: [PATCH 03/10] feat(stlc): add stlc workspace and CI automation Stainless-Generated-From: 713386fec53c76f8b7ffe9ee20a6b33f608a959d --- scripts/mock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mock b/scripts/mock index 474f5a99..099a4c9c 100755 --- a/scripts/mock +++ b/scripts/mock @@ -16,7 +16,7 @@ elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then URL="$STAINLESS_OPENAPI_SPEC_URL" else # Embedded OpenAPI spec (base64-encoded, gzipped) - EMBEDDED_SPEC="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" + EMBEDDED_SPEC="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" SPEC_TMPFILE="$(mktemp)" trap 'rm -f "$SPEC_TMPFILE"' EXIT echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" From f67de79156abc3f0b80b2c61e5a96695762a2809 Mon Sep 17 00:00:00 2001 From: Jon Harrell <4829245+jharrell@users.noreply.github.com> Date: Thu, 27 Aug 2026 09:38:39 -0500 Subject: [PATCH 04/10] chore(ci): point stlc workflows at openlayer-ai --- .github/workflows/stlc-promote.yml | 11 ++++------- .github/workflows/stlc-sync.yml | 19 ++++++++----------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml index 2f310d05..6b93d083 100644 --- a/.github/workflows/stlc-promote.yml +++ b/.github/workflows/stlc-promote.yml @@ -1,8 +1,5 @@ -# NOTE(stlc migration, 2026-08-25): repo names below point at the -# stainless-sdks placeholder repos used to validate the migration. -# At cutover, replace: -# - the production repo with openlayer-ai/openlayer-python -# - the staging/config repo owner with your own org after transfer +# NOTE(stlc migration): repo names below are set for openlayer-ai. CONFIG_REPO is +# left as a TODO -- set it to your config repo, then re-seal with `stlc build --push`. name: Promote SDKs # Promote staging to production by fast-forwarding production main up to staging, @@ -19,12 +16,12 @@ jobs: promote: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} - if: github.repository == 'stainless-sdks/openlayer-python-staging' + if: github.repository == 'openlayer-ai/openlayer-python-staging' # Optional gate: add required reviewers to this environment to approve each # promote. With none it only scopes secrets and adds no gate. Remove if unused. environment: production env: - PRODUCTION_REPO: stainless-sdks/openlayer-python-prod + PRODUCTION_REPO: openlayer-ai/openlayer-python GH_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }} steps: - name: Check out staging diff --git a/.github/workflows/stlc-sync.yml b/.github/workflows/stlc-sync.yml index 4efde22a..a5e10d45 100644 --- a/.github/workflows/stlc-sync.yml +++ b/.github/workflows/stlc-sync.yml @@ -1,8 +1,5 @@ -# NOTE(stlc migration, 2026-08-25): repo names below point at the -# stainless-sdks placeholder repos used to validate the migration. -# At cutover, replace: -# - the production repo with openlayer-ai/openlayer-python -# - the staging/config repo owner with your own org after transfer +# NOTE(stlc migration): repo names below are set for openlayer-ai. CONFIG_REPO is +# left as a TODO -- set it to your config repo, then re-seal with `stlc build --push`. name: Sync SDK repos # Keeps the staging and production trunks in sync and the config repo's @@ -29,7 +26,7 @@ jobs: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'stainless-sdks/openlayer-python-staging' && + github.repository == 'openlayer-ai/openlayer-python-staging' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch') permissions: contents: write @@ -37,7 +34,7 @@ jobs: group: stlc-back-sync cancel-in-progress: true env: - PRODUCTION_REPO: stainless-sdks/openlayer-python-prod + PRODUCTION_REPO: openlayer-ai/openlayer-python steps: - name: Check out staging uses: actions/checkout@v6 @@ -105,12 +102,12 @@ jobs: # the poll. Dispatch-only: it cannot write production or staging contents. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'stainless-sdks/openlayer-python-prod' && + github.repository == 'openlayer-ai/openlayer-python' && (github.event_name == 'release' || github.event_name == 'workflow_dispatch') permissions: contents: read env: - STAGING_REPO: stainless-sdks/openlayer-python-staging + STAGING_REPO: openlayer-ai/openlayer-python-staging steps: - name: Dispatch back-sync to staging env: @@ -158,7 +155,7 @@ jobs: # stlc's own pushes, so the bot's commits can't trigger a re-seal loop. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'stainless-sdks/openlayer-python-staging' && + github.repository == 'openlayer-ai/openlayer-python-staging' && github.event_name == 'push' permissions: contents: read @@ -166,7 +163,7 @@ jobs: group: seal-dispatch-${{ github.ref }} cancel-in-progress: false env: - CONFIG_REPO: stainless-sdks/openlayer-config + CONFIG_REPO: TODO-set-to-your-config-repo # e.g. openlayer-ai/openlayer-config steps: - name: Loop-guard and send re-seal dispatch env: From 9d69c124db800a4634dc046a23ee799e372dec25 Mon Sep 17 00:00:00 2001 From: Vinicius Mello Date: Thu, 3 Sep 2026 12:49:56 -0300 Subject: [PATCH 05/10] Build SDK Stainless-Generated-From: 568654108fa5bbaa786299400ad9fe8ce1397a53 --- scripts/mock | 2 +- scripts/utils/upload-artifact.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mock b/scripts/mock index 099a4c9c..474f5a99 100755 --- a/scripts/mock +++ b/scripts/mock @@ -16,7 +16,7 @@ elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then URL="$STAINLESS_OPENAPI_SPEC_URL" else # Embedded OpenAPI spec (base64-encoded, gzipped) - EMBEDDED_SPEC="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" + EMBEDDED_SPEC="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" SPEC_TMPFILE="$(mktemp)" trap 'rm -f "$SPEC_TMPFILE"' EXIT echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh index 806a696f..290a0088 100755 --- a/scripts/utils/upload-artifact.sh +++ b/scripts/utils/upload-artifact.sh @@ -20,7 +20,7 @@ UPLOAD_RESPONSE=$(curl -v -X PUT \ if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then echo -e "\033[32mUploaded build to Stainless storage.\033[0m" - echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python-staging/$SHA/$FILENAME'\033[0m" + echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python-staging-new/$SHA/$FILENAME'\033[0m" else echo -e "\033[31mFailed to upload artifact.\033[0m" exit 1 From 359eebf0fa213d19c5ee791ba9068ed3bedcc556 Mon Sep 17 00:00:00 2001 From: Vinicius Mello Date: Thu, 3 Sep 2026 13:12:36 -0300 Subject: [PATCH 06/10] ci(stlc): route promote/sync workflows to the openlayer-ai repo names The transferred staging repos live at openlayer-ai/openlayer--staging-new, but the shipped stlc-promote.yml / stlc-sync.yml gates named openlayer--staging (and openlayer-typescript-staging for TS), so every job was being skipped silently. Point the `github.repository ==` gates and STAGING_REPO at the real slugs and set CONFIG_REPO to the stlc config repo. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01XwEaNPPVYspSLwxPo3yquG --- .github/workflows/stlc-promote.yml | 4 +--- .github/workflows/stlc-sync.yml | 10 ++++------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml index 6b93d083..da5e22ff 100644 --- a/.github/workflows/stlc-promote.yml +++ b/.github/workflows/stlc-promote.yml @@ -1,5 +1,3 @@ -# NOTE(stlc migration): repo names below are set for openlayer-ai. CONFIG_REPO is -# left as a TODO -- set it to your config repo, then re-seal with `stlc build --push`. name: Promote SDKs # Promote staging to production by fast-forwarding production main up to staging, @@ -16,7 +14,7 @@ jobs: promote: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} - if: github.repository == 'openlayer-ai/openlayer-python-staging' + if: github.repository == 'openlayer-ai/openlayer-python-staging-new' # Optional gate: add required reviewers to this environment to approve each # promote. With none it only scopes secrets and adds no gate. Remove if unused. environment: production diff --git a/.github/workflows/stlc-sync.yml b/.github/workflows/stlc-sync.yml index a5e10d45..36966b03 100644 --- a/.github/workflows/stlc-sync.yml +++ b/.github/workflows/stlc-sync.yml @@ -1,5 +1,3 @@ -# NOTE(stlc migration): repo names below are set for openlayer-ai. CONFIG_REPO is -# left as a TODO -- set it to your config repo, then re-seal with `stlc build --push`. name: Sync SDK repos # Keeps the staging and production trunks in sync and the config repo's @@ -26,7 +24,7 @@ jobs: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'openlayer-ai/openlayer-python-staging' && + github.repository == 'openlayer-ai/openlayer-python-staging-new' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch') permissions: contents: write @@ -107,7 +105,7 @@ jobs: permissions: contents: read env: - STAGING_REPO: openlayer-ai/openlayer-python-staging + STAGING_REPO: openlayer-ai/openlayer-python-staging-new steps: - name: Dispatch back-sync to staging env: @@ -155,7 +153,7 @@ jobs: # stlc's own pushes, so the bot's commits can't trigger a re-seal loop. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'openlayer-ai/openlayer-python-staging' && + github.repository == 'openlayer-ai/openlayer-python-staging-new' && github.event_name == 'push' permissions: contents: read @@ -163,7 +161,7 @@ jobs: group: seal-dispatch-${{ github.ref }} cancel-in-progress: false env: - CONFIG_REPO: TODO-set-to-your-config-repo # e.g. openlayer-ai/openlayer-config + CONFIG_REPO: openlayer-ai/openlayer-public-api steps: - name: Loop-guard and send re-seal dispatch env: From df098d3946c6378b8a29990f33879d8582339ee4 Mon Sep 17 00:00:00 2001 From: Vinicius Mello Date: Thu, 3 Sep 2026 15:02:36 -0300 Subject: [PATCH 07/10] ci(stlc): route promote/sync workflows to the renamed staging repos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The staging repos were renamed openlayer--staging-new → openlayer--staging (legacy mirrors moved to -staging-old). Update the `github.repository ==` gates and STAGING_REPO accordingly so promote, back-sync and seal-dispatch keep running. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01XwEaNPPVYspSLwxPo3yquG --- .github/workflows/stlc-promote.yml | 2 +- .github/workflows/stlc-sync.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml index da5e22ff..514cba50 100644 --- a/.github/workflows/stlc-promote.yml +++ b/.github/workflows/stlc-promote.yml @@ -14,7 +14,7 @@ jobs: promote: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} - if: github.repository == 'openlayer-ai/openlayer-python-staging-new' + if: github.repository == 'openlayer-ai/openlayer-python-staging' # Optional gate: add required reviewers to this environment to approve each # promote. With none it only scopes secrets and adds no gate. Remove if unused. environment: production diff --git a/.github/workflows/stlc-sync.yml b/.github/workflows/stlc-sync.yml index 36966b03..40df31bf 100644 --- a/.github/workflows/stlc-sync.yml +++ b/.github/workflows/stlc-sync.yml @@ -24,7 +24,7 @@ jobs: # Runner comes from the STLC_RUNNER repo/org variable when set; defaults to GitHub-hosted. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'openlayer-ai/openlayer-python-staging-new' && + github.repository == 'openlayer-ai/openlayer-python-staging' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch') permissions: contents: write @@ -105,7 +105,7 @@ jobs: permissions: contents: read env: - STAGING_REPO: openlayer-ai/openlayer-python-staging-new + STAGING_REPO: openlayer-ai/openlayer-python-staging steps: - name: Dispatch back-sync to staging env: @@ -153,7 +153,7 @@ jobs: # stlc's own pushes, so the bot's commits can't trigger a re-seal loop. runs-on: ${{ vars.STLC_RUNNER || 'ubuntu-latest' }} if: >- - github.repository == 'openlayer-ai/openlayer-python-staging-new' && + github.repository == 'openlayer-ai/openlayer-python-staging' && github.event_name == 'push' permissions: contents: read From 1603ee2834d7a8013005b253ae73351846ce184f Mon Sep 17 00:00:00 2001 From: Vinicius Mello Date: Thu, 3 Sep 2026 15:04:19 -0300 Subject: [PATCH 08/10] Build SDK Stainless-Generated-From: 5370c6b0d5e6e251f5b1238b4f825c61e2e425fb --- scripts/utils/upload-artifact.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh index 290a0088..806a696f 100755 --- a/scripts/utils/upload-artifact.sh +++ b/scripts/utils/upload-artifact.sh @@ -20,7 +20,7 @@ UPLOAD_RESPONSE=$(curl -v -X PUT \ if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then echo -e "\033[32mUploaded build to Stainless storage.\033[0m" - echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python-staging-new/$SHA/$FILENAME'\033[0m" + echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/openlayer-python-staging/$SHA/$FILENAME'\033[0m" else echo -e "\033[31mFailed to upload artifact.\033[0m" exit 1 From 5a3ab1ac07e447ac0038906d55ddb7b92235d31f Mon Sep 17 00:00:00 2001 From: stlc-bot Date: Thu, 3 Sep 2026 21:53:46 +0000 Subject: [PATCH 09/10] Build SDK Stainless-Generated-From: 02e36337c65c1264c25b58d399b10c5c51bf0c41 --- scripts/mock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mock b/scripts/mock index 474f5a99..099a4c9c 100755 --- a/scripts/mock +++ b/scripts/mock @@ -16,7 +16,7 @@ elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then URL="$STAINLESS_OPENAPI_SPEC_URL" else # Embedded OpenAPI spec (base64-encoded, gzipped) - EMBEDDED_SPEC="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" + EMBEDDED_SPEC="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" SPEC_TMPFILE="$(mktemp)" trap 'rm -f "$SPEC_TMPFILE"' EXIT echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" From a8c1b9554e175444055c8fa71872b0341cd7fc89 Mon Sep 17 00:00:00 2001 From: Vinicius Mello Date: Wed, 9 Sep 2026 12:33:59 -0300 Subject: [PATCH 10/10] ci(stlc): promote via pull request; back-sync fast-forwards to descendants Production `main` is protected (PR + review) and should stay that way, so the promote no longer force-pushes main. It pushes staging's tip to `stlc/promote` on the production repo and opens/refreshes a PR listing the commits; the PR is the human review gate before publishing and must be merged with a merge commit. Back-sync now also fast-forwards when production is a strict descendant of staging with an identical tree (the merged promote PR), so codegen isn't held between the promote merge and the release commit. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01WL7jhZTnnSYDo5vECWpXUw --- .github/workflows/stlc-promote.yml | 42 ++++++++++++++++++++++++------ .github/workflows/stlc-sync.yml | 8 +++++- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml index 514cba50..ed15dd29 100644 --- a/.github/workflows/stlc-promote.yml +++ b/.github/workflows/stlc-promote.yml @@ -1,9 +1,12 @@ name: Promote SDKs -# Promote staging to production by fast-forwarding production main up to staging, -# preserving SHAs so the trunks stay identical and linear (nothing to heal on the -# next stlc build). Manual dispatch by design: a maintainer promotes the accumulated -# batch to cut a release; release-please then opens its version PR on production. +# Promote staging to production by opening a pull request on the production repo +# whose head is staging main (pushed to the `stlc/promote` branch). Production `main` +# stays fully protected; the PR is the human review gate before publishing. It must +# be merged with a MERGE COMMIT (never squash/rebase) so the trunks keep shared +# history; back-sync then fast-forwards staging to the merge commit. Manual dispatch +# by design: a maintainer promotes the accumulated batch to cut a release; +# release-please then opens its version PR on production. on: workflow_dispatch: {} @@ -47,17 +50,40 @@ jobs: echo "synced=false" >> "$GITHUB_OUTPUT" fi - - name: Promote staging to production (fast-forward) + - name: Promote staging to production (pull request) if: steps.diff.outputs.synced == 'false' + env: + PROMOTE_BRANCH: stlc/promote run: | # Refuse unless production is an ancestor of staging: otherwise the trunks - # have forked (production advanced without a back-sync) and FF is unsafe. + # have forked (production advanced without a back-sync) and the PR would be + # a real merge. Back-sync production into staging first. if ! git merge-base --is-ancestor production/main origin/main; then echo "::error title=Promote blocked::production/main is not an ancestor of staging main. Back-sync production into staging first." exit 1 fi - git push production origin/main:refs/heads/main - echo "Fast-forwarded production/main to staging/main." + # Publish staging's tip as a branch on production and open (or refresh) the + # promote PR. `main` is protected on production; the PR is the review gate. + git push --force production "origin/main:refs/heads/${PROMOTE_BRANCH}" + tip=$(git rev-parse --short origin/main) + { + echo "Promotes \`${PRODUCTION_REPO}\` \`main\` to the staging trunk (\`${tip}\`)." + echo + echo "**Merge with a merge commit — do not squash or rebase.** Squashing rewrites the commits and forks the trunks; the next back-sync and promote refuse until repaired by hand." + echo + echo "After merging, release-please opens the version PR on this repo; merging that one tags and publishes." + echo + echo "### Commits" + git log --format='- %h %s' production/main..origin/main + } > /tmp/promote-body.md + existing=$(gh pr list -R "$PRODUCTION_REPO" --head "$PROMOTE_BRANCH" --state open --json number --jq '.[0].number // empty') + if [ -n "$existing" ]; then + gh pr edit "$existing" -R "$PRODUCTION_REPO" --title "Promote staging to production (${tip})" --body-file /tmp/promote-body.md + echo "Refreshed promote PR #${existing} on ${PRODUCTION_REPO}." + else + gh pr create -R "$PRODUCTION_REPO" --base main --head "$PROMOTE_BRANCH" \ + --title "Promote staging to production (${tip})" --body-file /tmp/promote-body.md + fi - name: Alert on failure if: failure() diff --git a/.github/workflows/stlc-sync.yml b/.github/workflows/stlc-sync.yml index 40df31bf..e45a6fb1 100644 --- a/.github/workflows/stlc-sync.yml +++ b/.github/workflows/stlc-sync.yml @@ -61,7 +61,13 @@ jobs: # If not, staging already has production's content (release-please commits). MERGED=$(git merge-tree --write-tree origin/main production/main) || MERGED=conflict STAGING_TREE=$(git rev-parse 'origin/main^{tree}') - if [ "$MERGED" = "$STAGING_TREE" ]; then + if [ "$(git rev-parse origin/main)" != "$(git rev-parse production/main)" ] \ + && git merge-base --is-ancestor origin/main production/main; then + # Production is a strict descendant of staging — e.g. the merged promote PR + # (a merge commit with an identical tree) or a release commit. Fast-forward + # even when the trees match, so the trunks share history and codegen isn't held. + echo "behind=true" >> "$GITHUB_OUTPUT" + elif [ "$MERGED" = "$STAGING_TREE" ]; then echo "Staging already has production's content. Nothing to pull back." echo "behind=false" >> "$GITHUB_OUTPUT" else