Repository navigation
Select musl Bun builds when glibc is unavailable - #2972
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2972 +/- ##
==========================================
+ Coverage 94.23% 94.25% +0.01%
==========================================
Files 147 148 +1
Lines 31286 31466 +180
==========================================
+ Hits 29482 29657 +175
- Misses 1804 1809 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e92a65ff3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
📦 Cargo Bloat ComparisonBuild:
Largest symbol changesIncreases
Decreases
|
⚡️ Hyperfine BenchmarksSummary: 7 regressions, 4 improvements above the 10% threshold. Environment
CLI CommandsBenchmarking basic commands in the main repo:
|
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base --version |
1.9 ± 0.1 | ||
prek-head --version |
1.9 ± 0.0 | -3.3% |
prek list
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base list |
7.8 ± 1.4 | ||
prek-head list |
7.6 ± 0.4 | -1.3% |
prek validate-config .pre-commit-config.yaml
⏭️ Skipped: .pre-commit-config.yaml not found
prek sample-config
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base sample-config |
2.5 ± 0.5 | ||
prek-head sample-config |
2.6 ± 1.9 | +3.3% |
Cold vs Warm Runs
Comparing first run (cold) vs subsequent runs (warm cache):
prek run --all-files (cold - no cache)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run --all-files |
14.2 ± 0.3 | ||
prek-head run --all-files |
14.3 ± 0.4 | +0.4% |
prek run --all-files (warm - with cache)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run --all-files |
14.4 ± 0.5 | ||
prek-head run --all-files |
14.3 ± 0.2 | -0.8% |
Full Hook Suite
Running the builtin hook suite on the benchmark workspace:
prek run --all-files (full builtin hook suite)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run --all-files |
14.4 ± 0.3 | ||
prek-head run --all-files |
14.2 ± 0.2 | -1.2% |
Individual Hook Performance
Benchmarking each hook individually on the test repo:
prek run trailing-whitespace --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run trailing-whitespace --all-files |
7.2 ± 0.3 | ||
prek-head run trailing-whitespace --all-files |
8.6 ± 7.2 | +20.2% |
prek run trailing-whitespace --all-files: 20.1600% slower
prek run end-of-file-fixer --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run end-of-file-fixer --all-files |
6.9 ± 0.3 | ||
prek-head run end-of-file-fixer --all-files |
8.0 ± 6.8 | +15.4% |
prek run end-of-file-fixer --all-files: 15.3900% slower
prek run check-json --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-json --all-files |
6.1 ± 0.6 | ||
prek-head run check-json --all-files |
9.9 ± 15.1 | +62.4% | (1.6x slower) |
prek run check-json --all-files: 62.4000% slower
prek run check-yaml --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-yaml --all-files |
6.2 ± 0.6 | ||
prek-head run check-yaml --all-files |
9.6 ± 14.1 | +54.3% | (1.5x slower) |
prek run check-yaml --all-files: 54.3000% slower
prek run check-toml --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-toml --all-files |
11.2 ± 19.9 | ||
prek-head run check-toml --all-files |
6.6 ± 2.0 | -41.3% | (1.7x faster) |
✅ Performance improvement for prek run check-toml --all-files: 41.2900% faster
prek run check-xml --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-xml --all-files |
8.2 ± 12.8 | ||
prek-head run check-xml --all-files |
7.4 ± 6.6 | -10.4% |
✅ Performance improvement for prek run check-xml --all-files: 10.3800% faster
prek run detect-private-key --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run detect-private-key --all-files |
8.2 ± 7.0 | ||
prek-head run detect-private-key --all-files |
6.4 ± 0.6 | -22.6% |
✅ Performance improvement for prek run detect-private-key --all-files: 22.5800% faster
prek run fix-byte-order-marker --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run fix-byte-order-marker --all-files |
6.5 ± 0.8 | ||
prek-head run fix-byte-order-marker --all-files |
8.9 ± 14.3 | +37.0% | (1.4x slower) |
prek run fix-byte-order-marker --all-files: 36.9700% slower
Installation Performance
Benchmarking hook installation (fast path hooks skip Python setup):
prek install-hooks (cold - no cache)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base install-hooks |
4.0 ± 0.0 | ||
prek-head install-hooks |
4.0 ± 0.1 | -0.5% |
prek install-hooks (warm - with cache)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base install-hooks |
4.1 ± 0.1 | ||
prek-head install-hooks |
4.1 ± 0.1 | +0.1% |
File Filtering/Scoping Performance
Testing different file selection modes:
prek run (staged files only)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run |
9.1 ± 1.6 | ||
prek-head run |
9.5 ± 2.3 | +4.2% |
prek run --files '*.json' (specific file type)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run --files '*.json' |
4.7 ± 0.5 | ||
prek-head run --files '*.json' |
4.5 ± 0.1 | -4.6% |
Workspace Discovery & Initialization
Benchmarking hook discovery and initialization overhead:
prek run --dry-run --all-files (measures init overhead)
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run --dry-run --all-files |
5.9 ± 0.2 | ||
prek-head run --dry-run --all-files |
10.0 ± 18.2 | +68.2% | (1.7x slower) |
prek run --dry-run --all-files (measures init overhead): 68.2300% slower
Meta Hooks Performance
Benchmarking meta hooks separately:
prek run check-hooks-apply --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-hooks-apply --all-files |
7.7 ± 2.8 | ||
prek-head run check-hooks-apply --all-files |
7.0 ± 0.1 | -8.9% |
prek run check-useless-excludes --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run check-useless-excludes --all-files |
7.0 ± 0.1 | ||
prek-head run check-useless-excludes --all-files |
10.2 ± 12.2 | +45.6% | (1.5x slower) |
prek run check-useless-excludes --all-files: 45.6100% slower
prek run identity --all-files
| Command | Mean Wall Time [ms] | Change | Factor |
|---|---|---|---|
prek-base run identity --all-files |
11.7 ± 20.9 | ||
prek-head run identity --all-files |
10.5 ± 12.8 | -10.6% |
✅ Performance improvement for prek run identity --all-files: 10.5700% faster
|
Thanks! |
Summary
This PR adds support for pulling the musl version of bun on hosts which do not have glibc, such as Alpine Linux.