Bumped @tryghost/errors to 3.1.0 and @tryghost/logging to 4.1.0#27534
Bumped @tryghost/errors to 3.1.0 and @tryghost/logging to 4.1.0#27534
Conversation
- @tryghost/debug (7 workspaces) -> catalog: - @tryghost/errors (ghost/core + root pnpm.overrides) -> catalog: - @tryghost/logging (ghost/core, e2e, root pnpm.overrides) -> catalog: - one source of truth for three @tryghost/* packages that were pinned identically across the monorepo; future framework bumps become a single-line catalog edit rather than seven (debug) or three (logging) coordinated package.json changes - extends the pattern already in use for eslint in pnpm-workspace.yaml - set up before wave 4 (@tryghost/errors 3.1.0 + @tryghost/logging 4.1.0) so that wave lands cleanly - root pnpm.overrides can reference catalog entries too (pnpm 10.x), so the override for errors tightens from ^1.3.7 to the catalog's 1.3.13 — no behaviour change since every consumer was already resolving to 1.3.13 - patch-bumped the four published apps whose package.json was touched: portal 2.68.16, comments-ui 1.4.9, signup-form 0.3.17, sodo-search 1.8.14
The comment implied catalog entries and renovate's grouping rule had to stay in sync; they don't. Renovate groups by package name and picks up any @tryghost/* dep regardless of where it's declared, and the concern (does this package belong in the renovate group?) applies to every @tryghost/* pin anywhere in the repo, not just catalog ones.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- ghost-cli installs Ghost outside the pnpm workspace, where
catalog: specifiers can't resolve - pnpm fails with
ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER
- two places were leaking catalog: refs into the tarball:
1) component tarballs packed with `npm pack` kept the workspace
package.json verbatim; switched to `pnpm pack` which
substitutes workspace: and catalog: with concrete versions
2) the root pnpm.overrides merged into the packaged package.json
still contained catalog: entries; resolve them via
pnpm-workspace.yaml before merging
- wave 4 of the @tryghost/framework catch-up; thanks to the catalog migration landing first, both bumps collapse to one-line edits in pnpm-workspace.yaml - @tryghost/errors: identical public API (29 error classes + utils). only runtime-visible change is that error.id is now crypto.randomUUID (v4) instead of uuid.v1 - same hex format and length, so any snapshot matchers against the UUID pattern still work. also drops the uuid + @stdlib/utils-copy deps - @tryghost/logging: source diff is entirely formatting (trailing commas, multi-line destructuring); transitive deps bunyan-loggly, fs-extra, and lodash get patch-level bumps, and the sibling framework packages logging depends on (elasticsearch, http-stream, pretty-stream, request, validator) move to their v2/v3/v5 lines - also consolidates @tryghost/errors onto a single tree version, resolving the dual-copy concern flagged in wave 2 (zip@3 brought in errors@3 while ghost/core still pinned errors@1) - pnpm-lock.yaml shrinks by ~1450 lines as uuid, @stdlib/utils-copy, and their transitive trees drop out
a506f96 to
fed36ff
Compare
|
|
Blocked on #27535. The catalog migration (#27533) that this PR was stacked on is being reverted — see #27535 for context. Once the revert merges I'll rebase this PR against main and redo the |
|
Closing - reworking on a fresh branch off main now that the catalog migration (#27533) has been reverted. Will open a replacement that bumps the versions in the original pin locations. |



Note
Stacked on #27533 (catalog migration). Will rebase to
mainonce #27533 merges.Summary
Wave 4 of the TryGhost/Framework monorepo catch-up. Thanks to the catalog migration landing first, both bumps are one-line edits.
@tryghost/errors@tryghost/loggingAPI review
@tryghost/errors: identical public API (29 error classes +utils). Only runtime-visible behavior change is thaterror.idis nowcrypto.randomUUID()(v4 random) instead ofuuid.v1()(v1 time-based). Same hex format and length, so any snapshot matchers against the UUID regex still match.@tryghost/logging: source diff against old version is 100% formatting (trailing commas, multi-line destructuring). No logger API changes. Transitive deps get patch-level bumps (bunyan-loggly,fs-extra,lodash), and the sibling framework packages logging depends on (elasticsearch,http-stream,pretty-stream,request,validator) move to their current major lines — these are all internal tologging's pipeline.Tree consolidation
Resolves the dual-copy concern flagged in #27517 (Wave 2):
@tryghost/zip@3had been pulling@tryghost/errors@3transitively whileghost/corestill pinned@tryghost/errors@1. With this PR the tree consolidates on a single@tryghost/errors@3.1.0.The lockfile shrinks by ~1450 lines as
uuid,@stdlib/utils-copy, and their trees drop out of the errors package.Test plan
pnpm install— cleancd ghost/core && pnpm test:unit— 6141 passingcd ghost/core && pnpm test:integration— 244 passingcd ghost/core && pnpm test:e2e— 1573 passingcd ghost/core && pnpm test:legacy— 451 passingcd ghost/core && pnpm lint— cleancd e2e && pnpm test:types && pnpm lint— cleanpnpm-workspace.yamlandpnpm-lock.yamltouched — no apppackage.jsons changed, so no version bumps required