You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs!: polish 7.x release and Starterkit messaging
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.
Copy file name to clipboardExpand all lines: README.md
+22-12Lines changed: 22 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@
4
4
5
5
## Emulsify is an open-source toolset for creating and implementing design systems on your website
6
6
7
-
### Storybook development, Vite build, and Drupal 11.3 / Drupal 12.x theme
7
+
### Storybook, Emulsify Core 4, and a Vite-based build workflow for Drupal 11.3+
8
8
9
-
**Emulsify Drupal** provides a [Storybook](https://storybook.js.org/) component library, a [Vite](https://vite.dev/) development environment, and a starter kit theme that supports Drupal 11.3.x and Drupal 12.x.
9
+
**Emulsify Drupal** provides a [Storybook](https://storybook.js.org/) component library, Emulsify Core 4 tooling, and a [Vite](https://vite.dev/)-based build workflow for Drupal 11.3+ with Drupal 12 forward compatibility. Until Drupal 12 beta or stable recommended-project releases are available, Drupal core development branch coverage is experimental.
10
10
11
-
The current 7.x series no longer depends on `stable9`; Emulsify now ships its own complete template layer instead of inheriting one from a Drupal base theme.
11
+
The current 7.x series no longer depends on `stable9`; Emulsify now ships its own complete template layer instead of inheriting one from a Drupal parent theme.
12
12
13
13
## Documentation
14
14
@@ -20,6 +20,7 @@ The current 7.x series no longer depends on `stable9`; Emulsify now ships its ow
@@ -82,17 +83,26 @@ Do not enable `whisk` directly. It is a generation-only starter source.
82
83
83
84
The generated favicon workflow is built around one portable SVG source stored in theme settings.
84
85
85
-
1. Save the theme settings form to generate or update the package during normal admin changes.
86
-
2. After configuration import or deploy, regenerate missing package files with `drush emulsify_tools:favicon-generate [theme_name]` before public traffic reaches the environment.
87
-
3. Use `drush emulsify_tools:favicon-status [theme_name]` to inspect dependency, package, and portable-source status, or use the theme settings UI for package and source diagnostics.
88
-
4. Use `drush emulsify_tools:favicon-reset [theme_name]` if you need to remove generated assets and restore the theme default favicon behavior.
86
+
Emulsify Drupal owns the theme-facing parts of that workflow: the theme settings form, config defaults and schema, admin previews, frontend head tags, generated asset references in `<theme>.settings`, and sanitized SVG storage for config portability.
89
87
90
-
Runtime generation remains a lock-protected fallback if a request reaches an environment before deployment tasks regenerate the package. Fallback failures are logged and do not break page rendering.
88
+
1. Configure the package in the theme settings form for `emulsify` or an Emulsify child theme.
89
+
2. Save the theme settings form to generate or update the package during normal admin changes.
90
+
3. Review package and portable-source diagnostics in the theme settings UI.
91
+
92
+
Emulsify Tools owns deployment-oriented Drush operations for those same
93
+
settings. After configuration import or deploy, use the Emulsify Tools favicon
94
+
commands to generate, inspect, or reset environment-local package files before
95
+
public traffic reaches the environment. See the Emulsify Tools README for the
96
+
full command documentation.
97
+
98
+
Runtime page requests never generate favicon files. If the configured package is missing, Emulsify skips favicon head tags until the theme settings form or the Emulsify Tools generate command creates the package.
91
99
92
100
Generated favicon packages require the PHP `gd` extension and the `Imagick` extension for SVG rasterization. If either extension is unavailable, the uploaded SVG can still be stored in configuration, but PNG and ICO package generation will fail until those extensions are installed.
93
101
94
102
The theme settings UI surfaces the current portable-source and package status. Portable SVG copies larger than 256 KB are flagged because very large config payloads are awkward to review and deploy.
95
103
104
+
See [docs/favicon-generation.md](./docs/favicon-generation.md) for generated files, package location, generator limits, and deployment expectations.
105
+
96
106
## Contributing
97
107
98
108
### [Code of Conduct](https://github.com/emulsify-ds/emulsify-drupal/blob/main/CODE_OF_CONDUCT.md)
@@ -117,13 +127,13 @@ To facilitate automatic semantic release versioning, we utilize the [Conventiona
117
127
118
128
### Release Readiness
119
129
120
-
Run the release guard before merging packagingor starterkit changes:
130
+
Run the release guard before merging packaging, starterkit, favicon settings, or release metadata changes, and before preparing a 7.x release:
121
131
122
132
```bash
123
133
npm run release:check
124
134
```
125
135
126
-
Use `npm run release:check -- --skip-smoke` when you only want the static metadata, README, duplicate-script, and schema checks.
136
+
Use `npm run release:check -- --skip-smoke` when you only want the static metadata, README, duplicate-script, and schema checks. The static checks verify that favicon settings stay aligned across `FaviconSettings::DEFAULTS`, `config/install/emulsify.settings.yml`, and `config/schema/emulsify.schema.yml`.
Copy file name to clipboardExpand all lines: UPGRADE.md
+34-12Lines changed: 34 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,38 +2,60 @@
2
2
3
3
Emulsify 7.x is a breaking release. Plan the upgrade as a theme-platform change, not a patch-level update.
4
4
5
+
## Known Breaking Changes
6
+
7
+
- Drupal 10 support is removed.
8
+
- Drupal 11.3+ is required.
9
+
- Drupal 12 compatibility is forward-looking until Drupal 12 beta or stable releases are available.
10
+
- The Stable9 parent theme is removed.
11
+
- Emulsify now uses `base theme: false`.
12
+
- The `drupal/components` dependency is removed.
13
+
-`drupal/emulsify_tools:^2.0` is required.
14
+
- Generated child theme frontend workflow moved from Webpack to Vite.
15
+
- Generated child themes use Emulsify Core 4.
16
+
- Whisk is now a Starterkit source and should not be enabled directly.
17
+
- Favicon handling now uses a generated package workflow.
18
+
- Favicon generation happens on theme settings save or through Emulsify Tools Drush commands, not on normal page requests.
19
+
- Hook implementations moved to Drupal 11.3+ `#[Hook]` attributes.
20
+
- Legacy 6.x procedural hook include behavior is removed.
21
+
5
22
## Requirements
6
23
7
-
- Drupal 11.3 through Drupal 12.x is supported.
8
-
- Drupal 10 is no longer supported.
24
+
- Drupal 11.3+ is supported.
25
+
- Drupal 12 forward compatibility is included through the `^11.3 || ^12` core constraint.
26
+
- Drupal core development branch coverage is experimental until Drupal 12 beta or stable releases are available.
27
+
- Drupal 10 is no longer supported in 7.x.
9
28
-`drupal/emulsify_tools:^2.0` is required by both `composer.json` and `emulsify.info.yml`.
10
29
11
30
## Package Changes
12
31
13
32
- The old `drupal/components` dependency is gone.
14
-
- Frontend workflow references should move from Webpack-era commands and docs to the Vite-based workflow shipped in 7.x.
15
-
-`whisk` remains a starter source only. Do not enable it as a runtime base theme.
33
+
- Frontend workflow references should move from Webpack-based build workflow commands and docs to the Vite-based build workflow shipped in 7.x.
34
+
-`whisk` remains a starter source only. Do not enable it as a runtime parent theme.
16
35
17
36
## Theme Architecture Changes
18
37
19
-
-`stable9` is no longer the base theme. Emulsify now ships its own full template layer.
38
+
-`stable9` is no longer the parent theme. Emulsify now ships its own full template layer.
20
39
- Generated child themes should keep `emulsify` as their parent theme.
21
40
- If you generated a child theme in the 6.x era, review any copied Twig overrides against the 7.x template surface before carrying them forward.
22
41
- The current template parity inventory is documented in [docs/template-map.md](docs/template-map.md).
23
42
24
43
## Recommended Upgrade Path
25
44
26
-
1. Update the site to Drupal 11.3 or any Drupal 12 release.
45
+
1. Update the site to Drupal 11.3 or a newer Drupal 11 release before moving to Emulsify 7.x.
27
46
2. Require `drupal/emulsify_tools:^2.0`.
28
-
3. Update the Emulsify base theme to 7.x.
47
+
3. Update the Emulsify parent theme to 7.x.
29
48
4. Regenerate or review custom child themes so they inherit from `emulsify`, not `stable9` or `whisk`.
30
-
5. Move frontend build and local-development docs, scripts, and team habits from Webpackterminology to Vite.
31
-
6. Run the release-readiness checks before merge: `npm run release:check`.
49
+
5. Move frontend build and local-development docs, scripts, and team habits from Webpack-based build workflow terminology to the Vite-based build workflow.
50
+
6. Run the release-readiness checks before merge or release: `npm run release:check`. The static release gate verifies that favicon defaults, install config, and schema keys stay in sync.
32
51
33
52
## Favicon Migration Notes
34
53
35
54
- Favicon settings now store a portable sanitized SVG source in theme config.
36
-
- Generated favicon packages are environment-local build artifacts. After config import or deploy, regenerate them with `drush emulsify_tools:favicon-generate [theme_name]`.
37
-
- Use `drush emulsify_tools:favicon-status [theme_name]` to inspect the current package and source state.
38
-
- Use `drush emulsify_tools:favicon-reset [theme_name]` to remove generated assets and return to the default theme favicon behavior.
55
+
- Emulsify Drupal owns the theme settings UI, config defaults and schema, admin previews, frontend head tags, generated asset references, and portable source storage.
56
+
- Configure or update favicons in the theme settings form for `emulsify` or an Emulsify child theme.
57
+
- Generated favicon packages are environment-local build artifacts. After config import or deploy, use Emulsify Tools to regenerate them with `drush emulsify_tools:favicon-generate [theme_name]`.
58
+
- Emulsify Tools owns the full favicon Drush command documentation for `emulsify_tools:favicon-generate`, `emulsify_tools:favicon-status`, and `emulsify_tools:favicon-reset`.
59
+
- Runtime page requests do not generate missing favicon package files.
39
60
- PNG and ICO generation require the PHP `gd` extension and the `Imagick` extension.
61
+
- Generated files, package location, source limits, and deployment expectations are documented in [docs/favicon-generation.md](docs/favicon-generation.md).
0 commit comments