Skip to content

Bumped @tryghost/errors to 3.1.0 and @tryghost/logging to 4.1.0#27534

Closed
9larsons wants to merge 4 commits intomainfrom
bump-tryghost-errors-logging-v4
Closed

Bumped @tryghost/errors to 3.1.0 and @tryghost/logging to 4.1.0#27534
9larsons wants to merge 4 commits intomainfrom
bump-tryghost-errors-logging-v4

Conversation

@9larsons
Copy link
Copy Markdown
Contributor

Note

Stacked on #27533 (catalog migration). Will rebase to main once #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.

Package From To
@tryghost/errors 1.3.13 3.1.0
@tryghost/logging 2.5.5 4.1.0

API review

@tryghost/errors: identical public API (29 error classes + utils). Only runtime-visible behavior change is that error.id is now crypto.randomUUID() (v4 random) instead of uuid.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 to logging's pipeline.

Tree consolidation

Resolves the dual-copy concern flagged in #27517 (Wave 2): @tryghost/zip@3 had been pulling @tryghost/errors@3 transitively while ghost/core still 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 — clean
  • cd ghost/core && pnpm test:unit — 6141 passing
  • cd ghost/core && pnpm test:integration — 244 passing
  • cd ghost/core && pnpm test:e2e — 1573 passing
  • cd ghost/core && pnpm test:legacy — 451 passing
  • cd ghost/core && pnpm lint — clean
  • cd e2e && pnpm test:types && pnpm lint — clean
  • Only pnpm-workspace.yaml and pnpm-lock.yaml touched — no app package.jsons changed, so no version bumps required
  • CI green

- @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.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • 6.x

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 33844e51-2aa1-4379-8e02-11a7594c0398

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bump-tryghost-errors-logging-v4

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- 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
@9larsons 9larsons force-pushed the bump-tryghost-errors-logging-v4 branch from a506f96 to fed36ff Compare April 23, 2026 13:49
@sonarqubecloud
Copy link
Copy Markdown

Base automatically changed from catalog-tryghost-framework-pins to main April 23, 2026 14:15
@9larsons
Copy link
Copy Markdown
Contributor Author

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 @tryghost/errors / @tryghost/logging bumps in their original pin locations (ghost/core/package.json, e2e/package.json, root pnpm.overrides) instead of catalog entries.

@9larsons
Copy link
Copy Markdown
Contributor Author

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.

@9larsons 9larsons closed this Apr 23, 2026
@9larsons 9larsons mentioned this pull request Apr 23, 2026
8 tasks
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.

1 participant