Skip to content

Release/1.7.0 - Remove Non-Library Deps and Upgrade to Node 24 - #957

Open
pdavies88 wants to merge 10 commits into
developfrom
chore/dep-upgrade-2026-09
Open

pdavies88 wants to merge 10 commits into
developfrom
chore/dep-upgrade-2026-09

Conversation

@pdavies88

@pdavies88 pdavies88 commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Description of the Change

  • Dropped Node 20/22 — Node 24 is now the floor (enforced via devEngines)
  • Removed Linaria (vanilla-extract → plain CSS in component-library)
  • Removed Storybook
  • Removed wp/10up-theme; WordPress deps now live with their consumers
  • Replaced ESLint 8 (EOL) + @10up/eslint-config with oxlint via Vite+ (vp lint)
  • Replaced lint-staged configs with vp staged
  • Moved to wp-vite-plugins
  • Raised PHP floor to 8.2 (composer + plugin header)
  • Pinned WordPress to 7.1.1 in wp-env (was tracking latest release)
  • Regenerated package-lock.json (was missing integrity hashes + platform binaries)
  • Updated CI/CD pipelines — Node 24, npm 11, pinned action versions, npm cache
  • Dropped excess CI/CD pipelines — one Build Test, one unit tests, PHP 8.2 + 8.4
  • Fixed Next.js Bundle Analysis workflows (artifact collision, deprecated set-output)
  • Fixed pre-commit phpcs falling back to the PEAR standard
  • Updated PHPUnit expectations for WP 7.x core block output

Release Order

  1. Release 1.x: chore/dep-upgrade-2026-09 → develop (prerelease @next) → trunk → merge the Version Packages PR.
    • core 1.7.0, next 1.6.0, block-primitives 1.0.0, plugin 1.4.0, plus patch bumps for packages that depend on core
  2. Cut release/1.x from trunk at that commit, and push it.
  3. Merge trunk into chore/nextjs-16-upgrade. This removes the changesets 1.x already used. If you skip it, the 2.0 changelog will say linaria is both "deprecated" and "removed", and core would try to release 1.7.0 a second time.
  4. Release 2.x by the same route.
    • next 2.0.0, block-primitives 2.0.0, next-redis-cache-provider 3.0.0

One rule for release/1.x: only release the three packages that got a new major version in 2.x from it (next, block-primitives and next-redis-cache-provider). core, epio-search and the plugin share one version line across both branches, so a core patch cut from release/1.x would clash with version numbers that trunk publishes.

Before either release

  • Both branches need green CI. The bundle-analysis and PHPUnit fixes haven't been confirmed by a real run yet.
  • Keep the earlier checklist: update the branch protection check names, and tell the team about wp-env destroy and the Node 24 floor for local dev.

How to test the Change

Changelog Entry

Added - New feature
Changed - Existing functionality
Deprecated - Soon-to-be removed feature
Removed - Feature
Fixed - Bug fix
Security - Vulnerability
Developer - Non-functional update

Credits

Props @pdavies88

Checklist:

github-actions Bot and others added 5 commits April 8, 2026 18:08
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Visual/config alignment with the new main site:
- Title/url -> headstartwp.fueled.com; GA4 (production-only) replaces GTM
- Navbar 'About HeadstartWP' CTA; hero lavender wash + lattice treatment
- Footer: 3 nav columns + Fueled bottom band mirroring the main site
- IBM Plex Sans / Plex Sans Condensed typography, new primary ramp

Brand reference pass:
- Org-standard Fueled CTA banner (per 10up/classifai) in root+package READMEs
- Root README docs links -> headstartwp.fueled.com
- philosophy.md says HeadstartWP (pre-rename prose); Fueled credited once
- Pages-router quick-tutorial: 'At Fueled (formerly 10up), ...'
- Unchanged by design: github.com/10up URLs, js1.10up.com demo backend,
  @10up/next-redis-cache-provider package name, __10up__HEADLESS_CONFIG

Naming: guide section 'Documentation' -> 'Developer Guide' (navbar,
footer, home grid); /learn route unchanged.
@changeset-bot

changeset-bot Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1c5d2be

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@headstartwp/core Minor
@headstartwp/next Minor
@headstartwp/headstartwp Minor
@headstartwp/block-primitives Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
headstartwp-app-router Ready Ready Preview Sep 23, 2026 7:05pm UTC
headstarwp Ready Ready Preview Sep 23, 2026 7:05pm UTC

Request Review

@pdavies88

Copy link
Copy Markdown
Contributor Author

@chriseagle so this branch and #958 which is a superset of this branch are the first step imo.

Remove any extra dependencies not core to the library ie: linaria, vanilla extract, storybook

Update all packages to their latest stable minor

#958 takes some larger important steps. Moves us off of 10up-toolkit to WP-Vite-plugins and updates Next to v16. Still keeping everything on React 18.3 to support the Pages Router but this basically does everything but upgrade to React 19 which to me is the first logical step as we'd still support everything and then have the packages in an updated spot to go to 19 and the focus is exclusively on 19 upgrades

…nsumers

The theme was a private, unpublished dev fixture that nothing depended on,
but it declared 19 @wordpress/* packages at exact versions while importing
only three (i18n, blocks, block-editor). Those 16 unused pins dictated
dependency resolution for the entire monorepo: @wordpress/editor@14.40.2
pulled core-data@7.40.2 -> block-editor@15.13.2 -> dataviews@12.0.1, whose
private-API opt-in is rejected by @wordpress/private-apis >= 1.54.0. That is
what broke @headstartwp/block-primitives' test suite.

WordPress packages now live only where they are imported. block-primitives
already declares exactly the four it uses (block-editor, components, data,
blob) and resolves them on the current generation, where dataviews no longer
depends on private-apis at all.

- remove wp/10up-theme and its dev:primitives turbo filter
- drop the now-unnecessary @wordpress/private-apis override
- repoint the staged phpcs hook at wp/headless-wp, which is where
  10up/phpcs-composer actually lives; the theme had no phpcs at all
- stop mounting the theme in wp/headless-wp/.wp-env.json
- declare @types/react, @types/react-dom and @types/jest at the root so the
  root tsconfig's typeRoots and Next's own type resolution do not depend on
  npm hoisting happening to place them there

Lockfile drops from 1975 to 1482 packages; @WordPress entries from 452 to 76.
React stays on 18.3.1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VMatBaQUrPS9AhSJmkF2vF
@pdavies88 pdavies88 changed the title Chore/dep upgrade 2026 09 Release/1.7.0 Sep 23, 2026
@pdavies88
pdavies88 changed the base branch from trunk to develop September 23, 2026 19:09
@pdavies88 pdavies88 changed the title Release/1.7.0 Release/1.7.0 - Remove Non-Library Deps and Upgrade to Node 24 Sep 25, 2026

This branch was successfully deployed

2 active deployments
Preview – headstartwp-app-router — 1c5d2be8 Deployed Sep 23, 2026 by vercel[bot]
Preview – headstarwp — 1c5d2be8 Deployed Sep 23, 2026 by vercel[bot]
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.

3 participants