Skip to content

Release: Version 2.0#10

Open
callinmullaney wants to merge 33 commits into
mainfrom
release-2
Open

Release: Version 2.0#10
callinmullaney wants to merge 33 commits into
mainfrom
release-2

Conversation

@callinmullaney
Copy link
Copy Markdown
Collaborator

@callinmullaney callinmullaney commented May 3, 2026

This PR does the following:

  • Prepares Emulsify Tools for the 2.0 release.
  • Updates compatibility to Drupal ^11.3, PHP ^8.4, and Drush 13+.
  • Adds support for theme-defined Twig namespaces via components.namespaces in theme .info.yml files.
  • Adds Twig switch, case, default, and endswitch tags.
  • Refactors bem() and add_attributes() to use a shared TwigAttributeManager.
  • Modernizes the Emulsify subtheme generation command while preserving the drush emulsify alias.
  • Adds starter recipe archive extraction support for generated themes.
  • Adds favicon migration and repair tooling for Emulsify 7.x, including:
    • a post-update to backfill installed theme favicon settings
    • Drush commands/services for repairing child theme favicon config
    • optional support for applying frontend favicon packages to admin pages
  • Adds repository maintenance updates, including PR/issue templates, semantic release workflow updates, PHP compatibility linting, PHPStan config, PHPUnit config, and test fixtures.
  • Adds unit coverage for Twig helpers, switch tags, namespace registration, favicon repair/backfill logic, admin favicon handling, archive extraction, and subtheme generation.

Related Issue(s)

  • N/A

Notes:

  • This is a breaking release.
  • Drupal 10 support has been removed.
  • Existing favicon config values are preserved during repair/backfill operations.
  • Admin theme favicon support is opt-in for supported Emulsify-based themes.

Functional Testing:

  • Install the module on a Drupal 11.3+ site using PHP 8.4+.
  • Confirm the module installs cleanly and database updates run successfully.
  • Run drush emulsify my_theme and confirm a child theme is generated.
  • Add components.namespaces entries to an Emulsify-based theme and confirm templates resolve with syntax like @atoms/button/button.twig.
  • Confirm bem() and add_attributes() still merge attributes and classes correctly.
  • Confirm {% switch %}, {% case %}, {% default %}, and {% endswitch %} render expected Twig output.
  • Run the favicon repair command and confirm missing child theme favicon config/schema keys are added without overwriting existing values.
  • Enable the admin theme favicon option and confirm admin pages use the generated frontend favicon package.
  • Run the unit test suite and PHP compatibility checks.

Security

  • SVG favicon source backfilling uses sanitization before storing portable favicon source data.
  • No other known security concerns.

Accessibility

  • No direct accessibility changes are included.
  • Favicon and metadata changes should be visually/semantically neutral.

Marc Berger and others added 30 commits September 5, 2024 16:46
Add Twig switch/case extension
Update package metadata for the v2 compatibility baseline.

BREAKING CHANGE: Drupal core support now starts at 10.6 and 11.3.
Update package metadata for the Drupal 11.3 baseline and rely on Drush 13 command autowiring.

BREAKING CHANGE: Drupal core support now starts at 11.3, PHP support now starts at 8.3, and the Drush command requires Drush 13+.
Add an admin-theme favicon manager that can reuse the default frontend theme's generated Emulsify favicon package on admin routes.

Expose a theme settings toggle, persist enabled frontend themes in module config, and alter admin page attachments to replace conflicting favicon links and theme metadata.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant