chore: deprecate POSTHOG_NO_RELEASE_BIND in the dsym upload - #791
Merged
Conversation
The script uploads symbol sets bound to the release it creates. The symbol id is the Mach-O LC_UUID, so two releases collide only when they ship a byte-identical binary. The unbound path also lost release attribution for embedded targets, because the upload covers every extension dSYM while it creates one release. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jg6r6rFUBnowrXssZyU7yR
This was referenced Sep 1, 2026
Contributor
This was referenced Sep 1, 2026
ablaszkiewicz
marked this pull request as ready for review
September 1, 2026 13:38
Contributor
|
Reviews (1): Last reviewed commit: "chore: remove POSTHOG_NO_RELEASE_BIND fr..." | Re-trigger Greptile |
Member
|
print a deprecate/no-op warning if POSTHOG_NO_RELEASE_BIND is set so people know about this after upgrading |
dustinbyrne
approved these changes
Sep 1, 2026
dustinbyrne
reviewed
Sep 1, 2026
Review asked for a deprecation warning so people learn about the removal after upgrading, instead of the variable going silent. The script keeps ignoring it and uploads dSYMs bound to the release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0177eam86deHk8HZYMKcJtbD
The pod's API is untouched and the default path behaves identically. Only opt-in users of the experimental variable see the warning and the bound upload, which review judged patch-sized. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0177eam86deHk8HZYMKcJtbD
Contributor
Author
|
@marandaneto deprecated it instead of getting rid of it as you suggested |
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.

Related PRs
Event mode is live today, and it is opt-in. These PRs settle where it stays and where it goes.
Deprecating the mobile knobs. The symbol id on these paths is already a content hash, so two releases collide only when they ship a byte-identical artifact. An ordinary release that changes code gets its own symbol set and never collides. The dSYM path also lost release attribution for embedded targets, because one upload covers every target while it creates one release. Review asked for deprecation instead of removal, so every knob stays accepted as a warned no-op.
Making it the default.
React Native. Scopes the mode to the Hermes upload and defaults it to event. That is the one path where two releases really do ship the same artifact.
Problem
LC_UUID.PRODUCT_BUNDLE_IDENTIFIER.$app_namespace, so its crashes matched no release.Changes
POSTHOG_NO_RELEASE_BINDsees a build-log warning naming the deprecation and the fix. The script ignores the variable and uploads symbol sets bound to the release it creates.dsym uploadno longer receives--no-release-bind.POSTHOG_SKIP_ON_CONFLICT.How did you test this code?
bash build-tools/upload-symbols.test.shpasses.--no-release-bindis not forwarded. It catches the flag forwarding coming back, which would fail the Xcode phase against a CLI that removes the flag for real.🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Written with Claude Code (Opus 5); the warning added with Claude Code (Fable 5) per the review comment. Skills invoked:
/writing-pr-descriptions,/writing-tests.This replaces #789. That PR also carried a fix for a zero-padded
CFBundleVersion, which follows in a separate PR. PostHog/posthog#92401 keepsdsym upload --no-release-bindparseable as a hidden no-op, which covers a build that upgrades the CLI before this pod.