From 9972dab0737445d6810fb0ba16781b96f77ce060 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 10 Aug 2026 21:55:51 +0000 Subject: [PATCH 1/3] =?UTF-8?q?release:=20v0.1.0=20=E2=80=94=20publish=20b?= =?UTF-8?q?oth=20gems=20to=20RubyGems=20via=20trusted=20publishing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stamp the 0.1.0 changelog and add a publish job to the release workflow: OIDC trusted publishing (rubygems/configure-rubygems-credentials), core gem first, then the ruby_llm adapter that depends on it. Requires a trusted publisher configured on rubygems.org for each gem name before the tag is pushed. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CR1TdyJmDqq5dTqypCwYkw --- .github/workflows/release.yml | 29 ++++++++++++++++++++++++++--- CHANGELOG.md | 5 +++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 11f70d9..6c79acd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,9 @@ name: Release -# Builds every gem in the repo and attaches them to a GitHub release. -# Publishing to RubyGems stays a deliberate manual step: -# gem push pkg/-.gem +# Builds every gem in the repo, attaches them to a GitHub release, and +# publishes to RubyGems via trusted publishing (OIDC — no stored API key). +# Requires a trusted publisher configured on rubygems.org for EACH gem +# name in this repo, pointing at this repository and this workflow file. on: push: tags: [ "v*" ] @@ -30,3 +31,25 @@ jobs: with: files: pkg/*.gem generate_release_notes: true + + publish: + if: startsWith(github.ref, 'refs/tags/') + needs: build + runs-on: ubuntu-latest + permissions: + id-token: write # OIDC exchange with rubygems.org + contents: read + steps: + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3" + bundler-cache: true + - uses: rubygems/configure-rubygems-credentials@v1 + - name: Publish the core, then the adapter that depends on it + run: | + gem build activeagents-telemetry.gemspec + gem push activeagents-telemetry-*.gem + cd adapters/ruby_llm + gem build activeagents-telemetry-ruby_llm.gemspec + gem push activeagents-telemetry-ruby_llm-*.gem diff --git a/CHANGELOG.md b/CHANGELOG.md index fc4f8a8..383f251 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +## [0.1.0] - 2026-08-10 + +First public release of both gems: `activeagents-telemetry` (the shared +core) and `activeagents-telemetry-ruby_llm` (the RubyLLM adapter). + ### Added - Feature parity with the ActiveAgent framework's built-in telemetry, so the From a28c71d43020f14587dc2d52194f3f61b5a017c3 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 10 Aug 2026 22:21:52 +0000 Subject: [PATCH 2/3] release: allow publishing via workflow_dispatch Tag refs can't be pushed from every environment; the publish job now also runs on manual dispatch. RubyGems rejects re-pushes of an existing version, so a duplicate dispatch cannot double-publish. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CR1TdyJmDqq5dTqypCwYkw --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c79acd..6b984e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,10 @@ jobs: generate_release_notes: true publish: - if: startsWith(github.ref, 'refs/tags/') + # Tag pushes release; workflow_dispatch covers environments where tags + # can't be pushed directly (gem push is idempotent-failing, so an + # accidental re-run can't double-publish a version). + if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' needs: build runs-on: ubuntu-latest permissions: From 8fa109e69fef19eabd356fd5ff804c768a71f602 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 10 Aug 2026 22:34:30 +0000 Subject: [PATCH 3/3] =?UTF-8?q?release:=20fix=20configure-rubygems-credent?= =?UTF-8?q?ials=20ref=20=E2=80=94=20no=20v1=20tag=20exists,=20docs=20pin?= =?UTF-8?q?=20@main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CR1TdyJmDqq5dTqypCwYkw --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6b984e4..067dc9c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,7 +48,8 @@ jobs: with: ruby-version: "3.3" bundler-cache: true - - uses: rubygems/configure-rubygems-credentials@v1 + # The action publishes no v1 tag; @main is the ref its docs pin. + - uses: rubygems/configure-rubygems-credentials@main - name: Publish the core, then the adapter that depends on it run: | gem build activeagents-telemetry.gemspec