Problem/Motivation

Once #3340712: Add Single Directory Components as a new experimental module has landed this issue will track the necessary work to get the module to beta and then a stable state.

Docs: https://www.drupal.org/docs/develop/theming-drupal/using-single-director...

Proposed resolution

Current status

- Currently (as of Drupal 10.0.x), Single Directory Components is proposed for core inclusion with experimental status and located in core/modules/sdc.
- Issues with SDC are still tracked and addressed in https://www.drupal.org/project/sdc first, then carried to the open MR.
- Drupal 10.1's first alpha release is scheduled for the week of Week of April 24, 2023. We are hoping to get #3340712: Add Single Directory Components as a new experimental module merged before that.
- Consensus to add SDC as an experimental module is gathered in #3313520: Single-directory components in core.

Release Plan

In terms of the release schedule for Drupal 10, if this module is not included as an experimental module by May 2023 (when 10.1.0-beta1 will be released), then it will need to wait until 10.2. This will also delay the schedule for a future stable version. Normally for Experimental modules, the module gets to Beta, which triggers including it in a release as an Experimental module. Then at a later date, it becomes Stable and gets the Experimental status removed.

Roadmap for Beta (experimental status)

Here is a list of sub-issues that we currently have for that phase, all of which are must-haves to make "Beta" quality, so we can keep it as a live Experimental module in a full Drupal release:

Tasks originally proposed for this phase that made it into the patch before initial commit, or have since been finished:

Roadmap for Stable

The schedule for stable release is not planned until SDC is in core as experimental.

To get this module to be ready for a stable release, here are some issues we'll need to resolve/finish, all of which are must-haves to make "Stable" quality:

Non-stable-blocking issues

Comments

e0ipso created an issue. See original summary.

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes
larowlan’s picture

I would remove the 'Claro must use at least one SDC component' from the stable list. That would require many sites to have it enabled without the option of disabling it if they weren't using it. Fine for Olivero, Umami as both of them can be opinionated.

e0ipso’s picture

Issue summary: View changes

Good point @larowlan.

Removed Claro from the list of requirements for stable.

e0ipso’s picture

Issue summary: View changes

Updated the date to be more precise about how much time is left. About 1 month and a half to cross the finish line!

e0ipso’s picture

Issue summary: View changes
mherchel’s picture

Issue summary: View changes

Updating issue summary to add the issue for Olivero to use SDC: #3347235: Create new SDC component for Olivero (tabs)

markconroy’s picture

Issue summary: View changes

Updating issue summary to add the issue for Umami (theme) to use SDC: #3347672: Create new SDC component for Umami (Common Card)

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes
mherchel’s picture

mherchel’s picture

mherchel’s picture

Issue summary: View changes
mherchel’s picture

Issue summary: View changes

Removing "Remove the experimental status" as a stable blocker. The plan is to fold SDC directly into core, and thus it will not be able to be experimental.

mherchel’s picture

mherchel’s picture

mherchel’s picture

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes

Added a follow up derived from technical review.

e0ipso’s picture

Issue summary: View changes

Added another follow up from technical review.

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes

Dedupe issue in the list.

e0ipso’s picture

Issue summary: View changes

Added a new follow up for the class_aliases.

e0ipso’s picture

Initial MR has been merged. The first big step is done.

e0ipso’s picture

I created #3354860: Mark SDC as beta so it can be included in 10.1 to discuss marking SDC as beta stability before 10.1.0-alpha1 is tagged. This will mean that SDC will be available as an experimental module in 10.1.

e0ipso’s picture

There was a video call meeting with the Front-end Framework Manager team where we went over each one of the remaining tickets. We confirmed that the tickets marked as stable blockers are indeed that, and not beta blockers.

The attendants to the meeting where:

  • @lauriii
  • @ckrina
  • @bnjmnm
  • @n0d_
  • @mherchel
  • @e0ipso

This was documented in comment #129 of #3340712: Add Single Directory Components as a new experimental module, but referencing here for convenience.

dww’s picture

Issue summary: View changes
e0ipso’s picture

e0ipso’s picture

Issue summary: View changes

I found a bug while using the beta: #3357382: Unable to override library auto-definition to add external CSS & JS. There is a workaround listed in the issue.

e0ipso’s picture

Issue summary: View changes

Added an issue for a warning related to the locale module upon cache clears. I have only been able to reproduce this using Umami so far. #3357383: _locale_parse_js_file cannot open SDC JavaScript files

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

mherchel’s picture

Issue summary: View changes
mherchel’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes

Updated the roadmap to add links to the meta issues to add components to Olivero and Umami, replacing the links to specific component migrations.

bbrala’s picture

Version: 11.x-dev » 10.1.x-dev

Changing target branch to 10.1.x.

Plan is to create a merge request here for 10.2.x and then create seperate issues per namespace or if needed per file so we can discuss where those classes should end up in core when the module exists experimental status.

Should probably do that here: #3352256: Move code from the experimental SDC module to core

mherchel’s picture

mherchel’s picture

mherchel’s picture

e0ipso’s picture

Issue summary: View changes

#3352063: Allow schema references in Single Directory Component prop schemas will require the promotion of justinrainbow/json-schema to a runtime dependency (currently require-dev). We'll need to vet the library in #3365985: Promote justinrainbow/json-schema from dev-dependency to full dependency, and it is unclear if we want to do so.

I don't think this should be a blocker for stability, but a nice-to-have. Thoughts?

mherchel’s picture

I would love to have it as a runtime dependency. We had several folks who didn't realize that it needed to be installed for SDC to output helpful error messages. Having it as a runtime dependency would improve the DX.

e0ipso’s picture

e0ipso’s picture

mherchel’s picture

dieterholvoet’s picture

Component: theme system » single directory components
e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes

Added another stable blocker #3375843: Allow other Twig node visitors to modify 'display_start' and 'display_end'. So great that people are trying this!

e0ipso’s picture

rodrigoaguilera’s picture

Issue summary: View changes

There is now umami SDC components so removing it from stable blockers

e0ipso’s picture

Removing #3374901: SDC stylesheets should be added in the "theme" aggregate group (as opposed to "default" group) to correct CSS source order from the list. After some investigation, we notice this one is not specific about SDC.

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

e0ipso’s picture

#3385283: Components without props throw error is now fixed. One less blocker!

e0ipso’s picture

Issue summary: View changes

I don't think we can make #3364672: [META] Create Single Directory Components for the Olivero theme a stable blocker without changing Olivero's policy that prevents depending on experimental modules. My thinking is that we want to make SDC stable, and then start using it in Olivero.

Based on this I am moving it to the non-stable blocker section.

e0ipso’s picture

xmacinfo’s picture

Any dependency between Olivero and SDC must be optional so that a user is not obligated to enable SDC just to use Olivero or take Olivero as a base theme.

e0ipso’s picture

@xmacinfo all users will be using SDC when this issue lands. It will no longer be a module to be enabled, but something that Drupal allows, like support for postgres, Form API, or the render cache. You'll still be free to use it or not.

xmacinfo’s picture

You'll still be free to use it or not.

If I build a theme based on the Olivero SDC variant, will I be able to override some or all SDC components included in Olivero once SDC is incorporated in Drupal (not a module anymore)?

Example:

base theme: olivero

e0ipso’s picture

Issue summary: View changes

Added a new stable blocker. This is a follow up that is 11.x only to remove some leftovers due to the BC dance.

#3409456: Remove SDC deprecated code before 11.0.0

e0ipso’s picture

@xmacinfo correct! Take a look at the official documentation for the specific details.

xmacinfo’s picture

Overriding an SDC component with another one makes sense.

But, actually, my question is more like:

Can I override the need for a SDC component. In other words, override SDC altogether.

For example, I create a new theme based on Olivero, but I want to use regular templates instead on a component. Can this be done or will I be locked in SDC?

If Olivero switches to SDC, will I need to create a new Olivero without SDC?

e0ipso’s picture

@xmacinfo I think we should move this chat over to #3364672: [META] Create Single Directory Components for the Olivero theme and leave this to the stabilization discussions. Would that work for you?

e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Issue summary: View changes
e0ipso’s picture

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

wim leers’s picture

#3352256: Move code from the experimental SDC module to core is in … does that mean this can be closed? 😄

e0ipso’s picture

I think the necessary follow ups after #3352256: Move code from the experimental SDC module to core have all been addressed. They were all included in #3409456: Remove SDC deprecated code before 11.0.0.

I am inclined to close this issue as well.

andypost’s picture

mherchel’s picture

is in … does that mean this can be closed? 😄

Yeah, this should be closed. i'm assigning credit to everyone (I don't see any unhelpful comments), but I'll leave it to the maintainers to close.

mherchel’s picture

Status: Active » Reviewed & tested by the community
xmacinfo’s picture

Before closing for good, this ticket should link to the official SDC documentation (in a comment or a section of the IS).

penyaskito’s picture

Issue summary: View changes
Status: Reviewed & tested by the community » Fixed
Issue tags: -Needs framework manager review, -Needs product manager review, -Needs frontend framework manager review

Don't think we need that link (this is about changing stability, not making it into core), but here it is anyway: https://www.drupal.org/docs/develop/theming-drupal/using-single-director...

Thanks everyone!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.