* Initial pnpm change
* Install/update in pnpm sort of works
* Attempt to fix install
* fix pnpm
* Refactor build process to use RSPack instead of Webpack across multiple extensions and modes. Update package.json scripts for development and production builds, and adjust webpack configuration files to accommodate new plugin imports and settings.
* Update RSPack dependencies to version 2.0.0 across the project, enhancing compatibility and performance. Refactor webpack configuration in multiple extensions and modes to utilize the new library structure for UMD output. Adjust package.json scripts and settings for improved build processes.
* Implement migration guide for OHIF 3.13, detailing the transition from Webpack to Rspack v2, the shift to pnpm workspaces, and the increase in minimum Node.js version to 24. Include new build commands, plugin replacements, and updates to package configurations across the monorepo.
* Fix some dev:fast bugs
* Move netlify to top level and remove webpack builds
* Update version script to deal with lerna missing
* chore(tests): Update multiple screenshot test images for various specs
* feat(screenshot-reviewer): Add screenshot review tool and update package.json scripts
* fix(DICOMSRDisplayTool): Improve actor presence check in viewport
* chore(tests): Update multiple screenshot assets for various specs
* chore(tests): Integrate waitForPaintToSettle and waitForViewportsRendered in multiple specs for improved rendering stability
* chore(tests): Update screenshot assets for SEGHydration and SEGNoHydration specs
* test: update progressive loading screenshots
* jest 30 test fixes for compatibility with pnpm cs3d
* Use correct setDisplaySets instead of setDataId
* fix: Naming change for LegacyVolumeViewport3D
* Update to allow tolerance for contour tests
* update
* fix
* refactor: Replace instanceof checks with utility functions for viewport type validation
* fix: Update createSegmentationForViewport to handle undefined displaySetInstanceUID gracefully
* bun lock
* chore(pnpm): align workspace setup to cornerstone3D and address PR review
- .npmrc / pnpm-workspace.yaml: mirror cs3d (node-linker hoisted,
strict-peer-dependencies=false, link/prefer workspace packages,
minimumReleaseAge, frozenLockfile); sync axios 1.17.0 + tmp override
- root: packageManager pnpm@11.4.0, engines pnpm >=11, wire preinstall.js
- restore preinstall.js (token/private-repo + CLAUDE->AGENTS symlink)
- playwright.yml: keep base CS3D-integration workflow, switch only the
package manager (bun/yarn -> pnpm) and node 20 -> 24
- webpack.base.js: revert prod devtool to source-map (drop hidden-source-map)
- remove @percy/cypress; .netlify + cli templates engines pnpm >=11
- Dockerfile pin pnpm@11; document tests/globalSetup.ts warmup
- drop dicom-sr -> measurement-tracking edge (breaks pnpm cyclic dep)
* chore(pnpm): regenerate lockfile and restore cs3d:* dev scripts
- Regenerate pnpm-lock.yaml against the resolved workspace (cycle removed,
cs3d 4.22.10, workspace:* internal deps).
- Restore cs3d:checkout/check/build/watch/install/link/unlink helper scripts
(dropped when taking the PR's root scripts), converted yarn -> pnpm since
the local cornerstone3D checkout is now pnpm too.
* Merge base branch issues
* Link ohif app
* ci: pin pnpm to 11.4.0 in action-setup (was version: latest)
version: latest floats across runs and breaks reproducibility. Pin to the repo's packageManager version (pnpm@11.4.0) in both playwright and build-docs workflows.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* fix: Accidental commit of .npmrc config
* Fix build issues
* build fix
* Dependency fixes
* fix: Dependency bug in app on extensions/modes
* Fix output configuration
* Replace percy screenshots with native cypress
* Remove percy screenshot entirely
* fix: Build issues
* force click to prevent canvas cover issues
* Enable swiftshader
* Update launch of electron
* fix: Broken size calculation
* Empty change to force a re-build
* fix(cypress): generate ui-next tailwind classes; drop unsupported electron arg
Tailwind only scanned @ohif/ui-next via ../../node_modules/@ohif/ui-next, which no longer resolves under the pnpm layout, so ui-next-unique classes (e.g. toolbar split-button sizing) were never generated. Those buttons' hit-boxes collapsed, producing Cypress 'covered by element' failures on toolbar interactions. Scan ui-next by direct filesystem path like ui/extensions/modes.
Also stop pushing --enable-unsafe-swiftshader into Electron's launchOptions.args (Electron ignores it and warns); it is supplied via ELECTRON_EXTRA_LAUNCH_ARGS in CI. The arg is still pushed for non-electron chromium (local chrome).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(e2e): disable dev-server overlay during coverage runs
The rspack dev-server client overlay injects an iframe (id=rspack-dev-server-client-overlay) that intercepts pointer events, causing Playwright/Cypress clicks on toolbar buttons to time out (e.g. MicroscopyPanel). Disable the overlay when COVERAGE=true (e2e/Playwright webServer) while keeping it for normal local dev.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(microscopy): provide dicom-microscopy-viewer runtime assets
The microscopy viewer is loaded at runtime via peerImport('dicom-microscopy-viewer'), which fetches the copied asset served at /dicom-microscopy-viewer/. Two issues prevented those assets from reaching dist, so the viewer never initialized and drawing produced no measurement row:
1) dicom-microscopy-viewer was declared in no workspace package.json (only under libs/@cornerstonejs), so it was not installed at root node_modules and the pluginConfig copy source did not exist. Declare it (0.48.6, matching libs) in the microscopy extension.
2) createCopyPluginToDist appended the public/dist folder name to entries that specify an explicit directory, breaking the dicom-microscopy-viewer public entry (looked for .../dynamic-import/public). Use an explicit directory as-is; only append the folder name for package-derived entries.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Update to pnpm 11.5.2 and cs3d 5.0.2
* Lock file
* fix: Update to newer versions of actions to try to fix hang
* Remove unnecessary version
* fix: Tests that are flaky
* PR comments
* Incorrect run name
* docs: Explain pluginConfig tooling
* Updated notes on pluginConfig and PR comments
* fix: resolve plugins in rsbuild build and fix directory-based asset copy
rsbuild.config.ts: merge getPluginResolveAliases() and an @ohif/app$ alias into resolve.alias, and add resolve.modules (root, platform/app, platform/ui node_modules) so extensions resolve their shared @ohif/* imports. Brings the rsbuild (dev:fast) path to parity with webpack.pwa.js / webpack.base.js.
writePluginImportsFile.js: treat a 'directory' on an extension/mode entry as the package root and copy its public/ and dist/ subdirs instead of the whole directory; public-section entries keep copying their directory verbatim via a new literalDirectory flag.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* refactor: share resolve alias/modules between webpack and rsbuild configs
Extract the resolve.alias (@ohif/app, @, @components, ...) and the node_modules search paths into .webpack/resolveConfig.js, the single source of truth consumed by both webpack.base.js (and every per-package webpack.prod/.dev.js that merges it) and rsbuild.config.ts. getModules(srcDir) appends the building package's own source root, preserving the previous per-package behavior. Ends the drift where the rsbuild path kept missing aliases/module paths that webpack.base.js already had.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add a timeout on git fetch and avoid all the unnecessary mirrros
* PR comments and tests
* Remove cache to prevent corrupting the cache key/setup.
* Fix stale/corrupted pnpm installer
---------
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat: Add initial cli tool structure
* feat: add copying template files
* feat: Add mode template and command
* feat: Add readme template generation
* feat: Add documentation to extension template
* feat: Enhance documentation of the template mode
* fix: cli module type
* feat: Add config-based mode and extension registration (#2660)
* feat: Add ohif cli add/remove extension/mode (#2661)
* Basic working CLI for add-extension and remove-extension
* Basic cli for add/remove extension/mode, lots more to do.
* Cleanup and harden]
* feat: Add list of tasks to add-mode
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* feat: Add git initialization for the mode or extension template (#2662)
* fix: package json file to include templates
* feat: Add git initialization for the mode or extension template
* feat: Add more checks of git and target dir
* feat: refactore library utilities
* feat: Add the list command to print extensions and modes (#2664)
* feat: Add the list command to print extensions and modes
* Add todo
* Feat/ohif cli validation + auto install (#2671)
* WIP
* Working mode keyword verification
* Validation
* auto install extensions based on modes
* WIP remove unused extensions on removeMove
* Working add-mode, remove-mode automatic extension management.
* If extension is in used by a mode, don't allow the CLI to uninstall it
* Cleanup addExtension
* cleanup removeExtension and addMode
* Cleanup removeMode
* Update existing extensions with the needed keywords/peer deps
* Fix broken config
* Feat/cli search (#2677)
* feat: refactor pretty print for console
* feat: add search for modes and extensions
* fix: ugly colors
* Feat/ohif cli error handling publishing (#2679)
* WIP
* fix: webpack imports
* wip
* fix: react router dom private routes
* from last commit
* wip
* fix: webpack prod builds
* WIP
* Working regsitration with new IDs
* Stable
Co-authored-by: Alireza <ar.sedghi@gmail.com>
* verify extensions when constructing modes. (#2681)
* verify extensions when constructing modes.
* Add version to unit tests so it conforms to schema
* Update ohif utils exposed via @ohif/core
* Fix import
* fix tests
* feat: ohif-cli link local modes/extensions for development (#2682)
* feat: enable cli to work with project root
* feat: add initial link package
* feat: add link and unlink extension
* feat: add link and unlink mode
* erro handling for link-package
* feat: add comment on ohif-cli linking for development (#2686)
* Docs/ohif cli (#2687)
* feat: Add documentation for templates
* feat: Add more documentation
* Fix/core publish (#2685)
* versions
* wip
* remove webpack clean output
* fix publish
* use next as dist tag for v3 for now
* fix webpack pro recipe for output
* fix: lerna publish next
* fix(cli): fix issues when trying to link an extension or a mode (#2725)
The generated package.json doesn't contain keywords property which is
required by the linkPackage function. The module apth wasn't correclty
handled too, and when there is no pluginOptions, it fails while reading
the file or while generating a default configuration.
* make dicom pdf and video work after cli merge
* add axios dependency
* comment out the chdir for now
* create id and version based on user inputs
* customizable path for extension and modes
* fix template to make the template mode load
* fix the questions to loop if path is not desirable
* fix templates
* correct package json order
* unify the package creation for extension and mode
* bump versions for each package
* bump extension versions to 3.0
* add gitignore to templates
* fix version requirements when ^
* update docs
* update docs and fix tests
* try to fix the tests
* bump node version
* remove the version from extensions
* remove the version from modes
* remove version from extensionManager
* fix eslint
* revert husky version
* fix eslint
* fix node version for new eslint
* fix documentatoin removing version
* fix cicle ci image version
* fix circle ci node image
* fix circle ci node image
* add back the video and pdf
Co-authored-by: Matthis Duclos <matthis.duclos@gmail.com>
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
* fix: Use same config for branch deploys as for deploy previews
* chore: remove unnecessary duplicate build-deploy-preview.sh file
* fix: Attempt to workaround Netlify cache issues for Lerna repos
* chore: Remove useless debug file
* fix: try to make Gatsby less slow
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* ci: use sudo for global command
* Inline personal access token w/ env var
* ci: workaround for sudo limitations
* ci: test docs-publish
* Require unit tests for dry run
* ci: Make sure our docs publish is executable
* Try to correct path issue
* Try repo prefix
* Try as yarn command
* Need a workspace to attach to from previous step
* Add before we call our bash script
* See if we can enforce commands being available -- or just install locally?
* Try again
* Try SSH
* Include username in gh https url
* Note regarding failure on PR branches
* Remove docs publish from PR workflow
* init
* more shifting
* Move @babel dependencies up to workspace root
* Begin updating dependent libraries to use sync'd webpack builds w/ watches
* Commit changes before a long weekend
* Split packages into platform and extensions
* Consolidate how/where we specify file/module type entrypoints
* Make it possible to pass in extensions as App props
* Resolve viewer's modules
* Target for UMD bundle
* Add Webpack Stylus loader
* Provide WebPack build options for microscopy, vtk, and ui
* Better entrypoint for extensions
* Push changes up to switch PCs
* Fix ESM symlink build for Viewers
* Shift docs to root
* Specify additional lerna config props
* Begin providing basic readme info
* Rename example extension folder
* Shift links to bottom of doc
* First attempt at a netlify deploy preview
* Attempt to fix deploy preview build
* push workspace enabled to initial command; remove second yarn install; use npx to call gitbook cli commands
* Try to use global gitbook-cli
* Export node_modules path
* More agressive with modifying PATH
* Follow deploy log output advice
* try again to set bin path
* Try swapping bash with a new shell
* Try bash -l instead of exec bash
* Annd let's try again
* and again
* We may have figured it out johnny, boy
* We need to pull cornerstone-wado-image-loader files from hoisted node_modules
* Attempt to fix ticks/escapes
* Change copy syntax; try running tests on viewers from root for circleci
* Lower version to match circleci image
* Try alternative jest-canvas-mock location and version file syntax
* Run version command instead of calling node directly
* Try alternative jest transform
* Set path and enable workspaces
* Add codecov flags
* Use cpx so our copying finishes?
* Get all platform unit tests to run
* Run and report individually and in parallel
* Try once relying on codecov yaml to split w/ flags
* Add projects to split by flags
* Generate separate reports
* Trigger codecov after everything has finished running; these may not support flags
* Use recommended flags from issue comments for codecov
* Fix typo
* Remove clear flag
* Shift back to calling codecov from root
* Generate example for codecov issue
* Try fixing paths
* Simplify
* Try using codecov orb
* Bump circleci version
* Upload core and viewer
* Use full string paths
* Remove individual codecov calls
* Fix dir
* Combine files before upload
* Escape anchors
* tryfix syntax
* Escape string literal
* Combine lines to reduce path
* long paths
* Use home alias
* Fix filename
* Try to see the contents of our cat'd file
* Also upload `core`
* Try running with aliased folder
* Fix path; split PR and Merge unit tests into separate jobs
* Set default threshold
* Fix typo
* Changing to scoped package names
* Adding note
* Catch more updates
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.0
- @ohif/extension-dicom-html@0.0.4-alpha.0
- @ohif/extension-dicom-microscopy@0.0.9-alpha.0
- @ohif/extension-dicom-pdf@0.0.8-alpha.0
- @ohif/extension-vtk@0.1.4-alpha.0
- @ohif/core@0.11.1-alpha.0
- @ohif/i18n@0.2.3-alpha.0
- @ohif/ui@0.2.18-alpha.0
- @ohif/viewer@0.0.22-alpha.0
* Clean up primary readme
* Support for dev and dev:* commands
* Shift build command; satisfy default PWA build
* Remove old scripts
* Clean up UI to set webpack scripts
* Tidy up project links
* Clean duplicate code in UI project
* Update UI project's docs
* Clean up ui and i18n config
* Reduce duplicate code in `@ohif/core`
* Fix @ohif/ui versions
* bump @ohif/core versions
* Redux testkit dep
* Remove unused/duplicate config files for projects/packages
* ohif-core --> @ohif/core
* Safer publish command
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.1
- @ohif/extension-dicom-html@0.0.4-alpha.1
- @ohif/extension-dicom-microscopy@0.0.9-alpha.1
- @ohif/extension-dicom-pdf@0.0.8-alpha.1
- @ohif/extension-vtk@0.1.4-alpha.1
- @ohif/core@0.11.1-alpha.1
- @ohif/i18n@0.2.3-alpha.1
- @ohif/ui@0.2.18-alpha.1
- @ohif/viewer@0.0.22-alpha.1
* test version bump
* Add global prettier config
* chore(release): publish %s [skip ci]
- @ohif/viewer@0.0.22-alpha.2
* test lerna publish
* Update package.jsons
* Fix build scripts
* catch changes
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.2
- @ohif/extension-dicom-html@0.0.4-alpha.2
- @ohif/extension-dicom-microscopy@0.0.9-alpha.2
- @ohif/extension-dicom-pdf@0.0.8-alpha.2
- @ohif/extension-vtk@0.1.4-alpha.2
- @ohif/core@0.11.1-alpha.2
- @ohif/i18n@0.2.3-alpha.2
- @ohif/ui@0.2.18-alpha.2
- @ohif/viewer@0.0.22-alpha.3
* fix eslint issues caused by eslint 6 and our react-app config
* Publish with canary tag
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.3
- @ohif/extension-dicom-html@0.0.4-alpha.3
- @ohif/extension-dicom-microscopy@0.0.9-alpha.3
- @ohif/extension-dicom-pdf@0.0.8-alpha.3
- @ohif/extension-vtk@0.1.4-alpha.3
- @ohif/core@0.11.1-alpha.3
- @ohif/i18n@0.2.3-alpha.3
- @ohif/ui@0.2.18-alpha.3
- @ohif/viewer@0.0.22-alpha.4
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.4
- @ohif/extension-dicom-html@0.0.4-alpha.4
- @ohif/extension-dicom-microscopy@0.0.9-alpha.4
- @ohif/extension-dicom-pdf@0.0.8-alpha.4
- @ohif/extension-vtk@0.1.4-alpha.4
- @ohif/core@0.11.1-alpha.4
- @ohif/i18n@0.2.3-alpha.4
- @ohif/ui@0.2.18-alpha.4
- @ohif/viewer@0.0.22-alpha.5
* Simplify build
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.5
- @ohif/extension-dicom-html@0.0.4-alpha.5
- @ohif/extension-dicom-microscopy@0.0.9-alpha.5
- @ohif/extension-dicom-pdf@0.0.8-alpha.5
- @ohif/extension-vtk@0.1.4-alpha.5
- @ohif/core@0.11.1-alpha.5
- @ohif/i18n@0.2.3-alpha.5
- @ohif/ui@0.2.18-alpha.5
- @ohif/viewer@0.0.22-alpha.6
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.6
- @ohif/extension-dicom-html@0.0.4-alpha.6
- @ohif/extension-dicom-microscopy@0.0.9-alpha.6
- @ohif/extension-dicom-pdf@0.0.8-alpha.6
- @ohif/extension-vtk@0.1.4-alpha.6
- @ohif/core@0.11.1-alpha.6
- @ohif/i18n@0.2.3-alpha.6
- @ohif/ui@0.2.18-alpha.6
- @ohif/viewer@0.0.22-alpha.7
* Split version and publish
* chore(release): publish %s [skip ci]
- @ohif/extension-cornerstone@0.0.39-alpha.7
- @ohif/extension-dicom-html@0.0.4-alpha.7
- @ohif/extension-dicom-microscopy@0.0.9-alpha.7
- @ohif/extension-dicom-pdf@0.0.8-alpha.7
- @ohif/extension-vtk@0.1.4-alpha.7
- @ohif/core@0.11.1-alpha.7
- @ohif/i18n@0.2.3-alpha.7
- @ohif/ui@0.2.18-alpha.7
- @ohif/viewer@0.0.22-alpha.8
* Try simplify netlify build
* react-viewerbase --> @ohif/ui
* add test for stylus loader
* Try new way to specify publish path
* Use an output folder that won't be ignored
* Try move command
* fiddle with paths
* Dig for some information
* Make sure we're in root for our commands
* Remove discovery
* Setup script-tag example
* Fix typo
* Move config folder
* Update cornerstone extension to use shared/root webpack configs
* capture changes
* Update extension webpack configs
* Don't check in docz output
* Fix babel runtime resolution issue
* Simplify ui build steps
* Push in progress
* Shift directories
* Get viewer dev path to work
* Fix viewer commonjs build
* Fix build pwa config for viewers
* Make sure our package specific command can be called from root
* Update notes
* Fix imports and misc. merge notes
* Bump wado-image-loader version
* Switch up commands to remove webworkers copy
* Fix CI config
* Fix more broken package references
* Add react-dropzone
* Persist so e2e test can use
* Fix lockfile
* Use cypress orb to simplify CI
* Fix config
* Try again
* Install yarn latest for orb
* Install yarn a different way
* Wait on correct port
* Run tests in viewer project
* Fix cypress config
* Make Cypress happier - use default location
* Simplify e2e testing
* Capture UI changes since fork
* Catch core up
* Grab latest deps after merge
* Fix broken import
* Make sure cornerstone-wado-image-loader resolves to 3+
* Note regarding orbs
* Fix refresh on 404 routes
* Fix odd error for cornerstone-wado-image-loader
* Different target for UMD
* Simplify dev script
* Try to get fancy with netlify output
* Let's do it again
* Try to fix measurementTools issue
* See if we can get our lerna magic to work on merge to monorepo branch