Skip to content

[pull] main from TryGhost:main#1049

Merged
pull[bot] merged 2 commits into
code:mainfrom
TryGhost:main
Apr 10, 2026
Merged

[pull] main from TryGhost:main#1049
pull[bot] merged 2 commits into
code:mainfrom
TryGhost:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 10, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

ref https://linear.app/ghost/issue/PLA-17/

## Summary

- Replaced yarn v1 with pnpm as the monorepo package manager
- Using `shamefully-hoist=true` to match yarn v1's flat `node_modules`
layout for compatibility
- All scripts, CI workflows, Docker configs, and documentation updated
- Fixed phantom dependencies exposed by pnpm's stricter resolution

This is an initial set of changes where we're leveraging a blank `shamefullyHoistDependencies`. I'll follow up with a few additional PRs that are more incremental, with a smaller blast radius, in order to more fully leverage `pnpm` in this repo. Already, though, we're seeing dramatic speedups.

I've already bumped Ghost-CLI to `1.29.1.` which is compatible with `pnpm`. The community Docker container will need an update to enable core pack for this version and I'll coordinate that separately. 

With a clean Docker container we're already seeing dramatic speedups:
┌───────────┬─────────┬──────┬─────────┐                                                                                                                          
  │   Step    │ yarn v1 │ pnpm │ Speedup │
  ├───────────┼─────────┼──────┼─────────┤                                                                                                                          
  │ git clone │     15s │  16s │   ~same │                                    
  ├───────────┼─────────┼──────┼─────────┤
  │ setup     │    146s │  22s │    6.6x │                                                                                                                          
  ├───────────┼─────────┼──────┼─────────┤
  │ Total     │    161s │  39s │    4.1x │                                                                                                                          
  └───────────┴─────────┴──────┴─────────┘
ref f186b6a
- fixed `pnpm run nx build` → `pnpm nx build` in the publish workflow —
`pnpm run nx` looks for a nonexistent `nx` script in package.json, while
`pnpm nx` correctly invokes the binary from node_modules

The `publish_packages` job now runs on PRs too — on PRs it builds each package to verify the publish pipeline works; on main it continues to do the full version check → build → publish → CDN purge flow. This is to prevent failures on merge to main, like we had in the above commit.
@pull pull Bot locked and limited conversation to collaborators Apr 10, 2026
@pull pull Bot added the ⤵️ pull label Apr 10, 2026
@pull pull Bot merged commit 17b5b5a into code:main Apr 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant