Repository navigation
Release: Prepare Emulsify Wordpress 2.1.x release - #47
Merged
Merged
Conversation
added 5 commits
September 9, 2026 15:22
added 5 commits
October 22, 2026 21:08
* origin/codex/audit-wrapper-json-contract: fix(scripts): keep generated audit JSON output parseable
added 4 commits
October 22, 2026 22:18
added 5 commits
October 22, 2026 22:56
added 26 commits
October 29, 2026 09:40
Build the ZIP once in read-only readiness, then pass its checksum bundle to WordPress fixtures and publishing. Verify both transport digest and SHA-256 before use instead of rebuilding after tests. Disable persisted checkout credentials and remove PHP and Composer from publishing. Expose the write token only to the release commands.
Prevent accidental npm publication and remove the npm script that bypassed the guarded release runner. Verify a nonempty ZIP before semantic-release can create a tag, including during local dry runs.
Override commit and tag signing in fixture Git calls rather than changing maintainers' global configuration. The complete test suite passes even when both signing settings are enabled and the signing program fails.
Avoid requesting the unavailable Projects secret for fork or Dependabot pull requests. Keep the existing issue and manual triggers.
Centralize pushed-branch, attached-HEAD, push-token and tested-ZIP requirements. Remove the claim that unpushed commits can be dry-run. Describe partial release recovery, full readiness, artifact reuse, scoped credentials, dependency audit policy and local Husky installation.
Block readiness on the locked production Composer dependency audit. Generate an ephemeral Whisk lock snapshot before its informational audit so the check examines dependencies instead of failing with ENOLOCK.
Install hooks with Husky's current prepare command, including worktrees, and run commitlint from a real commit-msg hook with a quoted message path. Remove the ignored legacy config and deprecated pre-commit bootstrap. Actual npm installs and bad-message commits in a scratch clone and linked worktree exercised both the PHP lint hook and commit-message rejection.
Have the existing install emit its lock with a forwarded npm option so the advisory audit examines that exact dependency tree. Remove the extra lock-resolution step that could introduce an audit-only release gate. Require the lock option and audit ordering in the workflow contract.
Use the standalone WordPress fixture to test a rebuilt expired artifact. The historical draft at an existing release tag must still fail the unreleased-draft contract, so ordinary release readiness is not a usable recovery instruction there. Keep that publishing contract unchanged.
Use WordPress's assembled markup when parsed fragments contain child placeholders. Preserve leaf behavior and saved wrappers without rendering children again or dropping their final filters and short-circuited output. Generic child render filters run before later block-name processing, so capturing them cannot reconstruct the final bytes reliably. Document the full-content fallback instead of promising wrapper-free children.
Reuse global Timber context and resolve each block's post without setup(), preserving Query Loop globals and avoiding repeated the_post callbacks. Cache unchanged map normalization while retaining dynamic and late filters. Require real template files and fall back to WordPress markup on reentry, resetting the guard in finally. Document route-specific context migration and cover real WordPress children, post isolation and recursive content.
Try the optional front-page template for static or posts front pages. Separate posts pages use home then index, and protected static front pages retain password-form priority. Wire isolated controller tests into the existing template-extension smoke and exercise actual HTTP routing and fallbacks in the WordPress fixture.
Choose an archive template from the queried post type even without posts. Match WordPress's single-type array behavior and keep multiple types on generic fallbacks. Format day titles with the site's date_format option. Keep month and year formatting unchanged and cover empty type archives and configured day dates through controller and real WordPress tests.
Reject noncanonical standalone names because Emulsify CLI creates the target directory before this hook. Preserve JSON objects, rewrite nested patterns and fail staging atomically on invalid metadata.
Use the supported WordPress APIs and share asset roots, records, versions and manifest paths. Keep context keys while computing body classes once in the parent and resolving logout URLs on demand; JSON keys retain their nonce-sensitive value.
Reject HTML before starter writes rather than approximating PHP tag stripping. Exercise the WordPress generator against the fixture core formatting functions.
callinmullaney
marked this pull request as ready for review
October 29, 2026 18:00
|
🎉 This PR is included in version 2.1.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR does the following:
Prepares the WordPress 2.1.0 parity update against Emulsify Drupal 7.2.2 plus its 7.3.0 release work, adapted to WordPress-native integration.
site_header,main, andpage_titleTwig blocks while preserving existing block names, boundaries, WordPress hooks, and default output. Freshly generated themes inherit parent templates without shipping a page override..html.twigsupport, breadth-first grouped discovery, deterministic duplicates, skipped directories, and root containment. Each child root is searched completely before parent roots.bem()andadd_attributes()calls accidentally consuming unrelated context.Tested up toto 7.1 after successful packaged validation on 7.1.3. PHP and Timber dependency constraints remain unchanged.^4.5.0and documents its effective Node.js minimum of 24.13.0..agentsfiles, copy integrity, frontmatter, links, and documented commands.target-sizedisabled.theme.jsonstyles remain for maintainer review; no replacement page stylesheet is added.release:check -- --skip-smoke.Related Issue(s)
Notes:
2.0.0. Release preparation must update every derived version together and verify semantic-release computes the same version.>=24engine and.nvmrcvalue remain unchanged.templates/page.twigoverrides can stay. Search project CSS for the machine-name page wrapper before deleting one. Use@emulsify-tplto extend a parent template; extending the same path through@templatesrecurses.screen-reader-text, and focus styles. Drupal’s target-size stylesheet is deliberately not ported. The opt-in poster’s accessibility CSS stays inside its iframe document; existing page-leveltheme.jsonstyles are listed below.srcdocposter inherits the page’s CSP, including inline-style restrictions; see media embeds.Retained parent theme.json styles for maintainer review
These existing styles are unchanged. Presets and editor configuration under
settingsremain.1rempadding and associated WordPress global-padding rules.brand-primary-dark(#00202E).h1–h612,10,8,7,3,2.core/button0.5remand horizontal1rempadding.core/quote7, weight400, and margins.3, weight400, and top margin.The malformed button
border.colorobject and unresolvedspacing--mediumreferences remain untouched. Empty link border/spacing/typography objects emit no styles.Functional Testing:
c7171b4: CI run.npm ci --ignore-scripts, PHP lint/static analysis, documentation command checks, PR validation, generated-theme contracts, generation parity, and static release checks.npm run publish-test -- --no-ci; publishing correctly skips while no release version is prepared.theme.jsonstyles above remain appropriate or schedule their removal separately.2.1.0version surfaces, re-syncemulsify-wordpress-starterfromwhisk/including hidden guidance, and rerun readiness against the prepared committed files. Core 4.5.0 is published; confirm the fresh generated lockfile and semantic-release calculation.