Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f2475b2
[test] Port the benchmarks to the benchmark CLI
Janpot Oct 12, 2026
ac9dac8
[test] Restore the CLAUDE.md lint ignore; keep the benchmark reports …
Janpot Oct 12, 2026
3c9cab3
[test] Sample 30 rounds and for at most a minute per benchmark
Janpot Oct 12, 2026
3ae3190
[test] Replace the Vitest benchmarks with the benchmark CLI
Janpot Oct 13, 2026
bc7f83e
[scroll area] Measure every mounting Scroll Area before writing to any
Janpot Oct 13, 2026
8b7008d
[slider] Don't re-render every part when the thumbs register
Janpot Oct 13, 2026
ce2203e
[test] Benchmark Radio Group and Toggle Group mounts
Janpot Oct 13, 2026
1c3e0e5
[internal] Guess composite item indexes from render order
Janpot Oct 13, 2026
dc26c0d
[scroll area] Return undefined explicitly when there is no viewport
Janpot Oct 13, 2026
5ebfa54
[test] Replace the mount benchmarks with one smoke file covering ever…
Janpot Oct 13, 2026
a885246
[test] TEMPORARY: run the benchmarks A/A against HEAD~1
Janpot Oct 13, 2026
67cf792
Revert "[test] TEMPORARY: run the benchmarks A/A against HEAD~1"
Janpot Oct 13, 2026
55a43a0
[test] Create the smoke benchmarks' rows once per page load
Janpot Oct 13, 2026
875583a
[test] Give the smoke benchmarks 3 minutes to settle
Janpot Oct 13, 2026
1671d8c
[test] Pick up mui/mui-public#1898 at 115961d: per-file runtime and b…
Janpot Oct 13, 2026
6457883
[test] Share the smoke benchmarks' scaffolding in one helper
Janpot Oct 13, 2026
36e0f77
[test] Pick up mui/mui-public#1898 at a898de2
Janpot Oct 13, 2026
c0cb11b
[test] Pick up mui/mui-public#1898 at 565949e: the time limit include…
Janpot Oct 13, 2026
743c41f
[test] Pick up mui/mui-public#1898 at 201c1e8
Janpot Oct 13, 2026
f5548b5
[test] Run only the smoke benchmarks in the pull request job
Janpot Oct 13, 2026
503ef65
[test] Alarm the smoke benchmarks on regressions past 10%
Janpot Oct 13, 2026
a0290ec
[test] TEMPORARY: run the benchmarks A/A against HEAD~1
Janpot Oct 13, 2026
62c6d91
Revert "[test] TEMPORARY: run the benchmarks A/A against HEAD~1"
Janpot Oct 13, 2026
c6dfcb6
[test] Keep the smoke benchmarks' sampling in the smoke file
Janpot Oct 14, 2026
abbe718
Merge remote-tracking branch 'upstream/master' into janpot/benchmark-cli
Janpot Oct 14, 2026
a45f946
[test] Upload the benchmark report in its own step
Janpot Oct 14, 2026
0306ea1
[test] Pick up mui/mui-public#1898 at d5b3a2d
Janpot Oct 15, 2026
6e8b8be
Merge remote-tracking branch 'upstream/master' into janpot/benchmark-cli
Janpot Oct 20, 2026
339e791
[test] Move the library changes to their own pull requests
Janpot Oct 20, 2026
e1dad7b
[test] Use @mui/internal-benchmark 0.1.1-canary.7 and upload to produ…
Janpot Oct 20, 2026
f12ebf2
[benchmark] Bump @mui/internal-benchmark to 0.1.1-canary.8
Janpot Oct 20, 2026
86c3e2a
Merge remote-tracking branch 'upstream/master' into janpot/benchmark-cli
Janpot Oct 23, 2026
7538d51
[test] Import the benchmark types with a type-only import
Janpot Oct 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 26 additions & 23 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -249,37 +249,40 @@ jobs:
executor:
name: code-infra/mui-node-browser
playwright-img-version: v1.64.1-noble
# Building both sides is most of the setup time, and more logical CPUs leave the browser less to
# contend with while sampling. The `benchmark` CLI warns below 3.
resource_class: large
steps:
- checkout
- code-infra/install-deps
- run:
name: Build packages
command: pnpm release:build
- run:
name: Run baseline benchmarks at merge-base
environment:
PLAYWRIGHT_BROWSERS_PATH: /tmp/base-playwright-browsers
name: Resolve the baseline commit
# On a pull request the fork point, on master the previous commit.
command: |
set -e
if [ "$CIRCLE_BRANCH" = "master" ]; then
echo "On master branch; no baseline to compare against. Skipping baseline."
exit 0
fi
git fetch --no-tags origin master:refs/remotes/origin/master
BASE_SHA=$(git merge-base HEAD origin/master)
BASE_SHA=$(pnpm code-infra baseline --base-branch master)
echo "Baseline commit: $BASE_SHA"
git worktree add /tmp/base-worktree "$BASE_SHA"
cd /tmp/base-worktree
pnpm install --frozen-lockfile
pnpm exec playwright install chromium
pnpm release:build
BENCHMARK_BRANCH=master pnpm test:benchmark
echo 'export BENCHMARK_BASELINE_PATH=/tmp/base-worktree/test/performance/benchmarks/results.json' >> "$BASH_ENV"
echo "$BASE_SHA" > .benchmark-baseline-sha
- restore_cache:
name: Restore the packed-baseline cache
keys:
- benchmark-packed-v1-{{ checksum ".benchmark-baseline-sha" }}
- run:
name: Run head benchmarks
environment:
BENCHMARK_UPLOAD: 'true'
command: pnpm test:benchmark
name: Run benchmarks
no_output_timeout: 30m
# Only the smoke benchmarks, to keep a pull request's check short; the other benchmark files
# are left to a fuller run.
command: pnpm test:benchmark smoke --baseline "$(cat .benchmark-baseline-sha)"
- run:
name: Upload the benchmark report
# Also after a failed run, so the comment says what happened.
when: always
command: pnpm test:benchmark upload
- save_cache:
name: Save the packed-baseline cache
key: benchmark-packed-v1-{{ checksum ".benchmark-baseline-sha" }}
paths:
- test/benchmark/.benchmark/packed

workflows:
pipeline:
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,6 @@ next-env.d.ts
# Testing
test-results/

# Benchmark results
test/performance/benchmarks/results.json
# `benchmark` CLI output and generated pages
.benchmark/
test/benchmark/src/__bench__/
4 changes: 3 additions & 1 deletion .lintignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ routeTree.gen.ts

# TODO: fix lint violations and remove these ignores
/CHANGELOG.old.md
/CLAUDE.md
/CLAUDE.md
/test/benchmark/src/__bench__
.benchmark
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"typescript": "tsc -b tsconfig.json",
"types:check": "pnpm --filter @base-ui/react build && pnpm --filter @base-ui/react types:check",
"inline-scripts": "tsx ./scripts/inlineScripts.mts",
"test:benchmark": "pnpm -F ./test/performance benchmark",
"test:benchmark": "pnpm -F ./test/benchmark benchmark",
"use-react-18": "code-infra set-version-overrides --pkg react@18"
},
"devDependencies": {
Expand Down
214 changes: 179 additions & 35 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading