This issue summary is a work in progress. Some of the issues in the Requirements section will get de-scoped and more issues still need to be added.
Purpose
- Start supporting non-destructive upgrades
Target date
July 2025
Not included
- API stability
Requirements
Jump to:
Stabilize
Stabilize server-side data model
👉 #3520449: [META] Production-ready data storage
Stabilize client-side data model
- #3489772: [PP-1] Add a param converter and DTO for XB data model
- #3467954: META: Evolve XB UI's data model to allow non-SDC components' inputs, DynamicPropSource support, etc.
- #3493943: SDC+JS Component Sources: split default values into `resolved` and `source`
- #3504421: Rename `PropSourceComponent.field_data` to `.propSources`
Stabilize default/example value handling
Stabilize auto-saving
- #3512017: Changing a value in Page form then publishing, Auto-save shows a change when there is not one
- #3509267: [PP-1] Only auto-save JavaScriptComponent/AssetLibrary config entities when there are actual changes
- #3492059: [META] Conflict-free concurrent editing
- #3475672: Research: Possible backend implementations of auto-save, drafts, and publishing
Config data integrity and dependencies
👉 #3520449: [META] Production-ready data storage
Validation
👉 #3520449: [META] Production-ready data storage
👉 #3520484: [META] Production-ready ComponentSource plugins (the "discovery" subset)
Prove upgrade paths
👉 #3520449: [META] Production-ready data storage
👉 #3501290: Introduce unit test coverage for both ComponentSource plugins (Block + SDC) (the test coverage)
Graceful errors
👉 #3517941: [META] Robust component instance error handling during hydration+rendering
Performance
- #3515510: Improve backend API performance: add caching to shape matching
- #3515828: Zooming the canvas needs perf. improvements
- #3492061: Include the preview HTML in the layout controller payload
Security hardening
Test coverage
- #3469432: [later phase] Comprehensive test coverage that the casted value each primitive Drupal core @DataType plugin actually does what it says
- #3464042: Add ComponentAuditabilityTest
- #3512848: Provide visibility into field types with different matching SDC prop shapes depending on field storage settings
- #3497669: Extend test coverage for checkboxes + radios
Miscellaneous
👉 #3501290: Introduce unit test coverage for both ComponentSource plugins (Block + SDC)
- #3513560: Rename DummyPropsEditForm to something reflecting its status
- #3476903: Safari browser Issue: Component canvas is not behaving as expected
Critical features
Node integration
- #3512854: Determine core bug(s) and missing metadata that explain unmatched field type properties; make the reported % reflect reality
- #3515624: Prove any prop shape can be made to work if a contrib module implements `hook_storage_prop_shape_alter()` and populates it
- #3456008: [later phase] Support matching enum SDC prop shapes against DynamicPropSources, not only generating StaticPropSources
- #3513567: Replace the default edit form if XB is enabled for an entity
Selective publishing and reverting
Granular permissions
- #3452581: [META] XB Permissions
- #3516432: Update all XB routes to respect content entity update/field edit access of edited XB field
Component capabilities and prop types
👉 #3501290: Introduce unit test coverage for both ComponentSource plugins (Block + SDC)
- #3515074: Shape matching MUST work with the resolved equivalents of $refs AND must be compatible with core's upcoming $ref resolving in SDCs
- #3467959: SDC and code component props should be able to receive HTML, editable in formatted text fields+widgets
- #3467890: [later phase] Support `{type: object, …}` prop shapes with single level that require *multiple* field types: use `field_union`? — OUT OF SCOPE: nested components/component reuse
- #3494545: [later phase] SDC must be able to specify minimum dimensions for a prop receiving an image
UI translation
UI polish
Drag and drop
- #3498598: [PP-1] Scrolling on drag in layers menu doesn't work in Firefox
- #3512455: Implement new drag-and-drop solution that removes the need to drop items into the preview iFrame
- #3515836: Drag overlay is misplaced when dragging quickly
- #3503605: When dragging in Layers, collapsed layers should expand on hover
- #3470603: Scroll-wheel is not working while dragging
- #3509494: The sorting logic works only when elements are listed vertically
- #3508454: Adding components to the canvas is hard
- #3470612: Block dragging components from the desktop view to the mobile view
- #3502766: [PP-1] Drag and drop in Layers is difficult to drop into bottom position
Accurate previews
UI consistency
- #3508433: The placement of the component preview is sometimes not next to the hovered component name in the library
- #3479977: Selecting a component in the preview should expand the layer in the layers panel
- #3510439: After emptying a region, the region renders an empty slot until refreshing the page
Helpful error messages
- #3500385: Display validation errors in "page data" (content entity form)
- #3500795: [PP-1] Implement client-side validation of block settings
Comments
Comment #2
effulgentsia commentedComment #3
effulgentsia commentedComment #4
effulgentsia commentedComment #5
effulgentsia commentedAdding another level of hierarchy
Comment #6
effulgentsia commentedComment #7
effulgentsia commentedComment #8
effulgentsia commentedComment #9
effulgentsia commentedComment #10
effulgentsia commentedComment #11
effulgentsia commentedComment #12
effulgentsia commentedThe issue summary now lists 80 of the 110 issues tagged "stable blocker". I still need to go through these 30.
Comment #13
wim leersListed on https://drupal.org/project/experience_builder now 👍
Comment #14
wim leersMany (most?) of these are now listed in dedicated meta issues:
@effulgentsia: I propose to remove individual issues on this meta issue that are covered by one of those meta issues.
Comment #15
wim leers#3520449: [META] Production-ready data storage's beta blockers are done, see #3520449-61: [META] Production-ready data storage.
Discussed with @effulgentsia who created this issue originally, and he agrees it makes sense to simplify this issue to omit the issues that were worked on in other meta issues. I'll also omit issues that are considered stable blockers but not beta blockers — when @effulgentsia first created this, we only had/were using the tag, which we ended up discovering lacking the necessary nuance. All -tagged issues should be considered to be in scope for #3517885: Milestone 1.0.0: Production Sites instead.
(More to come. The envisioned end result: a single meta (this one) that provides a jumping point towards all the beta-blocking work.)
Comment #16
wim leersOf course, copy/pasted the wrong thing 😅
Comment #17
wim leersI missed a few spots in #15 and #16.
Comment #18
wim leersAnd now did the same with #3520484 — see #3520484-65: [META] Production-ready ComponentSource plugins.
Comment #19
wim leersContent (type) template support has been descoped by @lauriii from
beta1, and has been moved to1.0.0.Comment #20
wim leersDid the same for #3517941: [META] Robust component instance error handling during hydration+rendering.
Comment #21
larowlan♻️
Comment #22
wim leersThe last beta blocker landed an hour ago: #3535453: Create an Image SDC that can be included by other SDCs 🥳