ohif-viewer/pnpm-workspace.yaml
Bill Wallace 256b8347e7
fix(docs): remove stray tool-call tags breaking the MDX build (#6081)
This is a fix to pnpm deployment which needs testing as the final part of origin/master release
No functional changes

* fix(docs): remove stray tool-call tags breaking the MDX build

platform/docs/docs/migration-guide/3p12-to-3p13/build-tooling.md ended with
two orphan closing tags (leftover tool-call serialization artifacts):

  </content>
  </invoke>

Docusaurus compiles Markdown as MDX (JSX-aware), so the orphan closing tag
failed the docs build:

  MDX compilation failed ... Unexpected closing slash in tag, expected an
  open tag first (build-tooling.md line 402)

This was the remaining blocker for build-and-deploy-docs once the
--no-frozen-lockfile change let the install step succeed. A scan of the docs
tree found no other such artifacts. Verified locally: docusaurus build now
generates static files with no MDX errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Update lockfile and avoid freshness check on every command

* fix(release): keep workspace:* in the repo, concretize only at publish

The release flow rewrote internal @ohif/* dependency specifiers to the concrete
version and committed them, so pnpm-lock.yaml (which records workspace links)
drifted from the manifests on every version bump. The resulting
ERR_PNPM_OUTDATED_LOCKFILE broke every frozen install: Netlify (viewer-dev),
the docs deploy, pnpm's pre-run deps check, and post-merge installs.

Keep workspace:* everywhere in the committed repo and move the concrete-version
substitution to publish time only:

- publish-version.mjs: bump each package's own `version` field only; stop
  rewriting @ohif/* dependency/peerDependency specifiers.
- publish-package.mjs: publish with `pnpm publish --no-git-checks` instead of
  `npm publish`. pnpm rewrites workspace:* to the exact version in the published
  tarball; npm would publish the literal "workspace:*", which npm/yarn consumers
  cannot resolve.
- One-time: revert the 25 workspace manifests' @ohif/* specifiers to workspace:*
  (version fields untouched) and regenerate pnpm-lock.yaml to match.

Because internal deps are workspace:* (links, not versions in the lockfile),
version bumps no longer change pnpm-lock.yaml, so it stays in sync and frozen
installs keep working.

Verified: `pnpm install --frozen-lockfile` passes, and `pnpm pack` of @ohif/core
emits a tarball whose @ohif/ui dependency is the exact version (3.13.0-beta.92),
not workspace:*.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs(ci): correct build-docs install comment for workspace:* release flow

publish-version.mjs no longer rewrites @ohif/* deps to concrete versions, so
the old comment was stale. Internal deps stay workspace:* and the lockfile
stays consistent; pnpm publish concretizes only the published tarball.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci(docs): use --frozen-lockfile now that the lockfile no longer drifts

With internal deps as workspace:* the lockfile stays in sync across version
bumps, so the docs deploy can install frozen -- failing fast on genuine
lockfile drift instead of silently reconciling. The --no-frozen-lockfile
workaround is no longer needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: use --frozen-lockfile in CI install steps now that the lockfile is stable

Internal @ohif/* deps are workspace:* so pnpm-lock.yaml no longer drifts; the
UNIT_TESTS/BUILD/NPM_PUBLISH installs can run frozen and fail fast on genuine
drift. Kept --no-frozen-lockfile only where it is still required: the Dockerfile
(platform/docs is excluded from the build context) and the playwright CS3D-version
step (mutates @cornerstonejs versions before installing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test: stability of seg load mpr test

* Better drag fix for crosshairs

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:59:04 -04:00

88 lines
2.8 KiB
YAML

packages:
- platform/*
- extensions/*
- modes/*
# Mirror the cornerstone3D pnpm setup (libs/@cornerstonejs) which is known-good.
nodeLinker: hoisted
strictPeerDependencies: false
linkWorkspacePackages: true
preferWorkspacePackages: true
minimumReleaseAge: 2880
# Exempt the cornerstone3D packages from the release-age check: they are pinned
# to an exact version (5.0.0) that may be newer than the cutoff. Mirrors the
# bunfig.toml `minimumReleaseAgeExcludes` list (pnpm supports glob patterns).
minimumReleaseAgeExclude:
- '@cornerstonejs/*'
frozenLockfile: true
# Skip the pre-`pnpm run` frozen deps-check; installs set freshness explicitly.
verifyDepsBeforeRun: false
# Equivalent of the bun `audit --ignore=...` flags. These GHSAs are accepted
# risk: minimatch/picomatch advisories reached only via build/CI tooling, never
# fed user-supplied expressions. Kept in sync with the .circleci SECURITY_AUDIT
# job and the root `audit` script.
auditConfig:
ignoreGhsas:
- GHSA-3ppc-4f35-3m26 # CVE-2026-26996 - minimatch (build/CI only, no CLI use)
- GHSA-7r86-cg39-jmmj # CVE-2026-27903 - minimatch (same)
- GHSA-23c5-xmqv-rm74 # CVE-2026-27904 - minimatch (same)
- GHSA-c2c7-rcm5-vvqj # CVE-2026-33671 - picomatch (build/CI only)
allowBuilds:
'@scarf/scarf': true
'@swc/core': true
core-js: true
core-js-pure: true
cypress: true
protobufjs: true
sharp: true
overrides:
# Synced from origin/master's package.json `resolutions` block during the
# merge. Keep this list aligned with master so security/version pins from
# upstream PRs land here too.
commander: 8.3.0
cross-env: 7.0.3
cross-spawn: 7.0.6
dcmjs: 0.49.4
path-to-regexp: 0.1.13
nth-check: 2.1.1
trim-newlines: 5.0.0
glob-parent: 6.0.2
trim: 1.0.1
package-json: 8.1.1
rollup: 2.80.0
body-parser: 1.20.3
axios: 1.17.0
core-js: 3.45.1
'@babel/runtime-corejs2': 7.26.10
tapable: 2.2.2
'@cornerstonejs/codec-openjpeg': 1.3.0
node-forge: 1.4.0
qs: 6.14.1
lodash: 4.18.1
lodash-es: 4.18.1
diff: 5.2.2
webpack: 5.105.0
tar: 7.5.11
serialize-javascript: 7.0.4
svgo: 3.3.3
flatted: 3.4.2
handlebars: 4.7.9
protobufjs: 7.5.7
tmp: 0.2.6
shell-quote: 1.8.4
# fast-uri <=3.1.1 reaches the tree only via platform/docs
# (@docusaurus/plugin-pwa > workbox-build > ajv). 3.1.2 patches both
# GHSA-q3j6-qgpj-74h6 (path traversal) and GHSA-v39h-62p7-jpjc (host confusion).
fast-uri: 3.1.2
'@babel/plugin-transform-modules-systemjs': 7.29.4
# pnpm-branch-only overrides (kept across merges from master).
sharp: 0.34.5
# Force a single modern tslib for the whole workspace. Without this, rxjs@6
# pulls in tslib@1, which gets hoisted to root node_modules and shadows the
# tslib@2 that modern packages (e.g. react-remove-scroll) need for
# __spreadArray.
tslib: ^2.8.1