Repository navigation
Open
Labels
on holdThere is a blocker, we need to wait.There is a blocker, we need to wait.scope: schedulerChanges related to the scheduler.Changes related to the scheduler.testtype: enhancementIt’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.
Description
Summary
Add the Scheduler to test/benchmark once #24028 lands, so its benchmarks run in a real browser with the benchmark CLI of @mui/internal-benchmark, compared against a baseline commit and reported on the dashboard.
Why
The Scheduler benchmarks (packages/x-scheduler-internals*/src/**/*.bench.ts) are pure-function microbenchmarks run with vitest bench in jsdom. They don't run in CI, they aren't compared against a baseline (the October comparisons in #23961, #23962, #23963, #23964 and #23984 were done by hand), and they don't measure what users actually experience: mounting a view, scrolling, dragging. A browser run with the production build is more representative, and test/benchmark gives us the baseline comparison and the dashboard for free.
Scope
-
test/benchmark/src/scheduler/<Component>/withscenarios.tsx+<Component>.bench.tsx, following the charts layout, and asrc/smoke/scheduler.bench.tsxwith one case per component for pull requests. - Component scenarios we don't measure today: Event Calendar month view with 1,000 events (system and display timezone), Week view with recurring events, Event Timeline with 10,000 events and a scroll gesture, a drag interaction.
- Port the existing pure-function benches (day grid, time axis, dependency engine, store, recurring edits) to
benchmark(), and removebench:jsdomif nothing else uses it. - Add
@mui/x-scheduler,@mui/x-scheduler-premiumand their peers totest/benchmark/package.json. - Extend the CI job: include
packages/x-scheduler*in the change gate, runscheduler/on master, and run the scheduler files on pull requests that touch the scheduler packages. - Event datasets generated inside the benchmarks (no imports from
docs/), and a license key in the Premium pages so the watermark doesn't add a render.
Notes
- Blocked by [test][charts] Port the benchmarks to the benchmark CLI #24028.
- The Timeline is Premium, so check how the Charts Premium benchmarks handle the license key.
Metadata
Metadata
Assignees
Labels
on holdThere is a blocker, we need to wait.There is a blocker, we need to wait.scope: schedulerChanges related to the scheduler.Changes related to the scheduler.testtype: enhancementIt’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.It’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.
Activity