binaries-linux-gnu: add Go-module skeleton#3
Merged
Conversation
Adds go.mod + linux_gnu_x86_64.go for the per-platform binaries Go module that mirrors upstream's go-server-core-binaries-linux-gnu. The .so file is intentionally not committed — the release workflow (added in a follow-up PR) drops it onto tag-reachable release commits. Package name matches upstream so the wrapper's import via //go:embed-bytes-by-symbol resolves correctly under the consumer- side `replace` in figma/figma's go.mod.
8 tasks
jmcfarland-figma
approved these changes
May 14, 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.
Summary
Adds the per-platform binaries Go-module skeleton (
binaries-linux-gnu/{go.mod, linux_gnu_x86_64.go}) that future release tags will drop a rebuiltlibstatsig_ffi.sointo. Mirrors the upstreamstatsig-io/go-server-core-binaries-linux-gnushape so the wrapper's import resolves under a consumer-sidereplacedirective.Why
This fork needs to ship a rebuilt
.socarrying fixes that haven't landed upstream yet (including the exposure-dedupe memory leak tracked in upstream PR statsig-io#47). To distribute it via Go modules (matching upstream's existing distribution mechanism), we need a fork-owned Go module that embeds the rebuilt binary. This PR is the bare module shape; the.soitself is dropped on tag-reachable commits by the release workflow (separate PR).What changed
binaries-linux-gnu/go.mod: declaresmodule github.com/figma/statsig-server-core/binaries-linux-gnu.binaries-linux-gnu/linux_gnu_x86_64.go://go:embed linux_gnu_x86_64.soplusGetBinaryData()andGetSignatureData()shims.Invariants worth calling out
package go_server_core_binaries_linux_gnu(with underscores): MUST match upstream's package name; the wrapper resolves the package by symbol, not URL..sois intentionally NOT in this PR. At HEAD on main, this module won't compile, which is expected. It only becomes a valid Go module at tagged release commits (created by the release workflow in the follow-up PR).Action required from a repo admin before merge
These are admin-only and cannot be done in this PR:
Test plan
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com