Skip to content

[codex] Restore release symbol artifacts with line tables#26202

Merged
nornagon-openai merged 5 commits into
mainfrom
nornagon/codex/release-symbol-line-tables
Jun 8, 2026
Merged

[codex] Restore release symbol artifacts with line tables#26202
nornagon-openai merged 5 commits into
mainfrom
nornagon/codex/release-symbol-line-tables

Conversation

@nornagon-openai

Copy link
Copy Markdown
Collaborator

Summary

  • Restore separate release symbol archives for macOS, Linux, and Windows binaries.
  • Build release binaries with line-tables-only debuginfo instead of full debuginfo.
  • Strip Unix distribution binaries after extracting symbols, preserve Windows PDBs, and keep symbol archives available to the release job.
  • Strip the packaged Linux bwrap binary before hashing it so the embedded digest matches the distributed bytes.

Root cause

The first symbol-artifact implementation enabled CARGO_PROFILE_RELEASE_DEBUG=full. In the June 2 release runs, macOS ARM primary builds reached the 90-minute timeout while still inside Cargo build. After the symbol changes were reverted, the same primary build completed in about 22 minutes. The archive step itself completed in tens of seconds when reached.

Rust's line-tables-only debuginfo level preserves function names and source locations for symbolication without emitting the heavier variable and type information from full debuginfo.

Validation

  • Ran just fmt from codex-rs.
  • Ran just test-github-scripts from the repository root: 23 tests passed.
  • Ran bash -n and shellcheck on .github/scripts/archive-release-symbols-and-strip-binaries.sh.
  • Parsed both modified workflows as YAML and ran git diff --check.
  • Built a macOS release smoke binary with line-tables-only, archived its dSYM through the restored script, stripped the production binary, and verified that atos resolves symbol_smoke_function to main.rs:2.
  • Ran Linux archive-script control-flow coverage with stubbed objcopy and strip commands.
  • Ran Windows PDB archive staging coverage and verified underscore-emitted Rust PDB names are staged under shipped hyphenated binary names.

Follow-up

The release workflow only runs for tags or manual dispatches, so CI cannot dry-run the full release matrix on this PR. The next release run will verify runner time and memory behavior under line-tables-only.

Comment thread .github/workflows/rust-release-windows.yml Outdated
Comment thread .github/workflows/rust-release.yml Outdated
@nornagon-openai nornagon-openai marked this pull request as ready for review June 3, 2026 17:19
Comment thread .github/workflows/rust-release.yml
…e-symbol-line-tables

# Conflicts:
#	.github/workflows/rust-release.yml
@nornagon-openai nornagon-openai requested a review from a team as a code owner June 4, 2026 16:35
…e-symbol-line-tables

# Conflicts:
#	.github/workflows/rust-release-windows.yml
#	.github/workflows/rust-release.yml
@nornagon-openai nornagon-openai enabled auto-merge (squash) June 5, 2026 15:10
…e-symbol-line-tables

# Conflicts:
#	.github/workflows/rust-release.yml
@nornagon-openai nornagon-openai merged commit 6d0e313 into main Jun 8, 2026
46 checks passed
@nornagon-openai nornagon-openai deleted the nornagon/codex/release-symbol-line-tables branch June 8, 2026 17:16
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants