Repository navigation
feat(error-tracking): link Python, Ruby and PHP deploys to releases - #416
Merged
Merged
Conversation
Add the error-tracking-link-releases skill (python, ruby, php variants) and a link-releases task to the error-tracking flow. The seed queues it for Python, Ruby and PHP server apps; the task raises the SDK to a release-aware version, resolves the release in the production deploy job only, and passes its ID to the running app as POSTHOG_RELEASE_ID. Local runs, tests and pull-request builds stay as they are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🧙 Wizard CIRun the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands: Test all apps:
Test all apps in a directory:
Test an individual app:
Show more apps
Test against a wizard branch:
Add Results will be posted here when complete. |
hpouillot
approved these changes
Sep 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull requests — release linking for Python, Ruby and PHP spans three repos:
error-tracking-link-releasesskill and thelink-releasesflow task (this PR)Problem
Python, Ruby and PHP ship readable stack traces, so
wizard error-trackingskips the upload subgraph on them, and their exceptions carry no release. PostHog now links releases for these SDKs: the production deploy resolves a release (PostHog/resolve-releaseorposthog-cli release resolve) and the app starts with its ID inPOSTHOG_RELEASE_ID(releases, Python, Ruby, PHP).Changes
error-tracking-link-releaseswithpython,rubyandphpvariants, built from thelink-releases/<language>.mdandreleases.mddocs. It covers:posthog7.59.0,posthog-ruby3.25.0,posthog/posthog-php4.14.0), refreshed for one package only, never lowered to satisfy an old local interpreter, and not crossed into a new major version under existing codePostHog/resolve-release@v1on GitHub Actions andposthog-cli release resolveelsewhere (the CLI installer on images without Node), never failing a deployEnvironmentFile, PHP-FPMclear_env, and Laravelconfig:cache.envand.env.exampleas they arelink-releasesin theerror-trackingflow.Gemfilebeside a mobile app does not count. The task runs aftercapture-exceptions, and afterwire-ciwhen both apply.POSTHOG_CLI_API_KEY,POSTHOG_PROJECT_ID), and how to verify.@PostHog/team-error-trackingowns the skill, like the upload skill.How it was tested
npm test(219 passed) andnpm run build: 3 skill zips and thelink-releasesprompt.wizard error-tracking --ci --local-context-millruns against the three fixtures in the workbench PR. After each run, a runtime check deploys the result the way its pipeline does and reads the events the SDK sends to a fake PostHog.docker runposthog==7.59.0-e POSTHOG_RELEASE_IDondocker run$release_idset; empty ID sends noneruby:3.3-slim) → SSH → systemdposthog-ruby3.20.0 → 3.26.1EnvironmentFilebefore the restartcurland the CLI, a realrelease resolvesucceeds, and$release_idmatches it; without the key the deploy still passes and sends noneposthog/posthog-php4.14.1build-args→ final-stageARG/ENV, plusenv[POSTHOG_RELEASE_ID]in the pool$release_idset through the FPM workers; empty ID sends none; control without the pool line sends noneIn every run, the resolve step lands only in the production deploy job, test and pull-request jobs and local scripts are unchanged, and
actionlintis clean. A seed-only run on a React Native app with a CocoaPodsGemfilequeues nolink-releases.Note
Outside this change: in one of two Laravel runs,
capture-exceptionswroteuse Throwable;into the non-namespacedbootstrap/app.php. PHP emits a warning, Laravel turns it into anErrorException,artisan config:cachefails, and the container restarts in a loop. The other run wrote\Throwable. This needs its own follow-up in the Laravel error-tracking guidance.🤖 Generated with Claude Code