Compute per-document site-plan facts in staged page compilation
Maintainers usually reply within 1 day
Nobody has claimed this yet.
- #3705 by @chubes4 — closed without merging
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- backend, performance
Research direction
Start with WordPressSitePlan::fromCompilerInput and trace how staged page compilation creates its receipt and how compose consumes it. Identify which listed facts depend only on one compiled document, then compare with whole compilation to preserve equivalent behavior. Done means those facts are computed in parallel during staged compilation, compose consumes them, cross-route facts remain in compose, and output stays byte-identical.
Written by the indexing model from the issue text.
Description
Problem
Slice 2 of #2089. In compose, WordPressSitePlan::fromCompilerInput costs 138 s on a 112-page real import. Of that, the parts that are per document, with no cross-route input, are:
WordPressSitePlan::documents: 16 sPresetBindingconstruction andbindStylesheet: 23 scanonicalEntityBindings: 10 s
Expected
Facts that depend only on one compiled document (its plan document entry, preset bindings for its route-owned stylesheets, and canonical entity bindings) are computed in the staged page compile, which already runs in parallel workers. They are carried in the receipt, and compose consumes them. Whole compilation computes the same facts inline. Output stays byte-identical. Anything that turns out to depend on cross-route state stays in compose.
- Dominant language
- PHP
- Stars
- 22
- Forks
- 3
- Avg merge
- 7h 3m
- Merged PRs (30d)
- 779
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Automattic/blocks-engine
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/blocks-engine#3734 ·
Maintainers usually reply within 1 day
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34)Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Automattic/blocks-engine#2161 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/blocks-engine#2061 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Automattic/blocks-engine#1701 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Automattic/blocks-engine#775 ·
Maintainers usually reply within 1 day
All issues in Automattic/blocks-engine
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
verbb/formie#3072 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
wp-graphql/wp-graphql-woocommerce#1026 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
taskforcesh/bullmq#5038 ·
Maintainers usually reply within 1 day