Skip to content

Release: Emulsify 7.x#344

Open
callinmullaney wants to merge 58 commits into
mainfrom
7.x
Open

Release: Emulsify 7.x#344
callinmullaney wants to merge 58 commits into
mainfrom
7.x

Conversation

@callinmullaney
Copy link
Copy Markdown
Collaborator

@callinmullaney callinmullaney commented Sep 15, 2025

This PR does the following:

  • Prepares Emulsify Drupal for the 7.x release line with Drupal ^11.3 || ^12 support.
  • Removes the Stable9 base theme dependency and adds parent-owned template coverage for Drupal core template parity.
  • Updates the Emulsify parent theme to use emulsify_tools:^2.0 and removes the direct drupal/components dependency.
  • Updates Whisk to remain a hidden, generation-only starterkit source while generated child themes use emulsify as their runtime parent theme.
  • Upgrades the generated Whisk starter theme to Emulsify Core ^4.0.0 and replaces Webpack references with the Vite-based build flow.
  • Adds generated favicon package support to theme settings, including SVG upload, preview behavior, platform-specific browser/iOS/Android settings, manifest generation, and page-level head tag attachments.
  • Adds favicon defaults, schema entries, admin preview CSS/JS, generation services, and smoke tests for package generation/portability.
  • Refactors legacy hook includes into Drupal 11.3-style hook classes using #[Hook] attributes.
  • Adds readiness tooling for render parity, no-Stable9 checks, starterkit generation, reference-page rendering, normalized HTML comparison, and release validation.
  • Updates browser support config, npm package metadata, Husky setup, and semantic-release dependencies for the 7.0.0 release.

Related Issue(s)

  • N/A

Notes:

  • This is a major release PR.
  • Drupal 10 support is removed.
  • Whisk should not be enabled directly; it is only used as the starterkit source for generated themes.
  • Favicon generation requires the PHP extensions needed to rasterize SVG assets, including Imagick and GD.

Functional Testing:

  • Install this branch in a clean Drupal 11.3+ site.
  • Confirm Composer resolves drupal/core:^11.3 || ^12 and drupal/emulsify_tools:^2.0.
  • Enable the Emulsify theme and confirm the site renders without Stable9 as a base theme.
  • Generate a child theme from Whisk and confirm the generated theme uses emulsify as its base theme.
  • In the generated child theme, run npm install, npm run build, and npm run develop.
  • Confirm Vite-generated assets are created and Storybook still starts successfully.
  • Configure a generated favicon package from theme settings using an SVG source.
  • Confirm favicon assets, manifest output, and related head tags are generated and attached to the page.
  • Confirm the favicon preview UI updates in the theme settings form.
  • Run the readiness/smoke scripts or GitHub Actions checks for template parity, no-Stable9 readiness, starterkit generation, and favicon generation.

Security

  • SVG favicon uploads are sanitized before package generation.
  • Unsafe SVG nodes, event handlers, and external references are stripped from the stored/generated favicon source.
  • No other known security concerns.

Accessibility

  • Parent-owned template coverage is intended to preserve Drupal core template behavior while removing the Stable9 runtime dependency.
  • Favicon and build-tooling changes should be visually/semantically neutral.

@callinmullaney callinmullaney self-assigned this Sep 15, 2025
@callinmullaney callinmullaney added the 🚧 Work in Progress The PR is a work in progress. label Sep 15, 2025
Comment thread whisk/package.json Outdated
callinmullaney and others added 25 commits April 13, 2026 08:46
Co-authored-by: josue2591 <josuegv2591@gmail.com>
chore: remove components dependency from whisk
fix(theme): fall back to stored favicon svg
Callin Mullaney and others added 30 commits May 6, 2026 12:17
…cleanup

fix(theme): align add_attributes with helper semantics
* origin/main:
  docs: clarify readiness scripts
  chore: defer starterkit scope to 7.x
  docs: add 7.x preparation guide
  chore: minimize release tooling churn
  feat: add views display type template suggestion
  fix: type field hook suggestion argument
  test: cover current Drupal minors in readiness workflow
  test: add baseline template parity check
  fix: align baseline templates with stable9 parity
  fix: keep starterkit generation out of 6.x release
  fix: refine hook class migration
  feat: project dependency updates
  docs: comment theme readiness scripts
  fix: normalize stable9-only form classes
  fix: harden 6.x theme readiness checks

# Conflicts:
#	.browserslistrc
#	.github/scripts/render-parity.sh
#	.github/scripts/render-reference-pages.sh
#	.github/scripts/setup-fixture-site.sh
#	.github/scripts/smoke-without-stable9.sh
#	.github/scripts/template-parity.sh
#	.github/workflows/theme-readiness.yml
#	README.md
#	includes/field.inc
#	package.json
#	src/Hook/FieldHooks.php
#	src/Hook/FormHooks.php
#	src/Hook/ViewsHooks.php
#	templates/form/form.html.twig
#	templates/layout/page.html.twig
#	templates/misc/status-messages.html.twig
#	whisk/whisk.info.emulsify.yml
#	whisk/whisk.info.yml
Move favicon form work into a dedicated class.

Remove runtime fallback generation from page attachments.

Attach only existing favicon packages at runtime.

Add lifecycle docs and smoke coverage for the policy.
Clarify Drupal 11.3+ support and Drupal 12 forward compatibility.

Document known breaking changes and favicon deployment ownership.

Use child theme and parent theme language consistently.
Expand release checks for hooks, favicon settings, and Starterkit output.

Verify generated child themes and upload smoke artifacts on failure.

Refresh template parity language for the parent-theme removal.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚧 Work in Progress The PR is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants