Skip to content

trunk-merge/pr-1137/4988dac1-8ba4-4f75-afd9-7f353f252346#1138

Closed
trunk-io[bot] wants to merge 9 commits into
mainfrom
trunk-merge/pr-1137/4988dac1-8ba4-4f75-afd9-7f353f252346
Closed

trunk-merge/pr-1137/4988dac1-8ba4-4f75-afd9-7f353f252346#1138
trunk-io[bot] wants to merge 9 commits into
mainfrom
trunk-merge/pr-1137/4988dac1-8ba4-4f75-afd9-7f353f252346

Conversation

@trunk-io

@trunk-io trunk-io Bot commented Jul 8, 2026

Copy link
Copy Markdown
Trunk Merge Pull Request Banner

This pull request was created and is being managed by Trunk Merge.

This pull request is based on the main branch at SHA 3f8ab75626154aecee598888f02c1334d172a8f9.

See more details here.

When CI completes, this pull request will be closed automatically.

Pull Requests Being Tested

This pull request is testing the changes from pull request 1137.

claude and others added 9 commits July 7, 2026 18:21
The precompiled *-linux gems are glibc-only. Since 0.13.0 the native
extension references __res_init (a glibc-exclusive resolver symbol), so
loading the gem on musl-based distros like Alpine fails with:

  LoadError: Error relocating .../rspec_trunk_flaky_tests.so:
  __res_init: symbol not found

Cross-compiling the extension against musl produces a .so that links
against musl's libc and drops the glibc-only symbol references.

- Build x86_64-linux-musl and aarch64-linux-musl gems in the release
  workflow (rake-compiler-dock/oxidize-rb already support these targets).
- Add a test-musl-gem job that installs each musl gem inside an official
  ruby:*-alpine container and requires + exercises the native extension
  (env_parse) to catch __res_init-style relocation regressions. Gate
  publishing on it. setup-ruby has no Alpine support, so the artifact is
  downloaded on the host and run via docker.
- Advertise the musl platforms in the load-error message, gem README, and
  the dev Gemfile.lock PLATFORMS list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
Replace the synthetic env_parse call with the same RSpec smoke specs that
test-ruby-gem runs, executed inside an Alpine container against the
precompiled musl gem. This exercises the full runtime on musl — native
extension load, quarantine lookup over TLS/DNS, result serialization, and
upload — rather than just confirming the extension loads.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
Replace the bare x86_64-linux/aarch64-linux builds with explicit
-linux-gnu and -linux-musl variants, and drop Ruby 3.0 from the build and
test matrices (required_ruby_version >= 3.1).

Shipping bare -linux alongside -linux-musl is a combination the
rake-compiler-dock maintainers warn against — it triggers bundler
resolution failures on some rubygems/bundler versions. The explicit
gnu/musl split resolves unambiguously, but requires rubygems 3.3.22+ /
bundler 2.3.21+, which first ships with Ruby 3.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
…t comment

- Revert Gemfile.lock PLATFORMS to the original set; the cross-gem build
  containers are glibc x86_64 hosts that cross-compile, so bundler only
  needs x86_64-linux (the alias for -gnu) there — the added musl/gnu
  entries weren't necessary.
- Correct the inaccurate comment on the musl smoke-test step (it described
  the old gnu-on-musl load failure, not what this test does).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
Add an `alpine` input to the shared test_ruby_gem_uploads action. When set,
it skips the host (ruby/setup-ruby + bundler) steps and instead runs the
smoke specs inside a ruby:*-alpine container via docker against the
precompiled musl gem. test-musl-gem now just calls the action with
alpine: true, gated on the musl matrix entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RumF5roNQnj2XsBS6erPVn
@codecov-commenter

codecov-commenter commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.77%. Comparing base (3f8ab75) to head (b89e756).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1138      +/-   ##
==========================================
+ Coverage   82.52%   82.77%   +0.25%     
==========================================
  Files          70       70              
  Lines       15588    15588              
==========================================
+ Hits        12864    12903      +39     
+ Misses       2724     2685      -39     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@trunk-staging-io

trunk-staging-io Bot commented Jul 8, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic BadgeStatic Badge

Failed Test Failure Summary Logs
variant_quarantine_test should be quarantined when run with variant A test expected the sum of 2 + 2 to be 5, but it was 4, indicating a failing assertion. Logs ↗︎
client::tests::retries_on_ok_500 Logs ↗︎

View Full Report ↗︎Docs

@trunk-io

trunk-io Bot commented Jul 8, 2026

Copy link
Copy Markdown
Author

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

@trunk-io trunk-io Bot closed this Jul 8, 2026
@trunk-io trunk-io Bot deleted the trunk-merge/pr-1137/4988dac1-8ba4-4f75-afd9-7f353f252346 branch July 8, 2026 04:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants