Skip to content

Conversation

@sarahdayan
Copy link
Member

@sarahdayan sarahdayan commented Feb 3, 2026

Summary

Migrates the documentation site from VuePress 1.9.10 to VuePress 2.0.0-rc.26.

Capture d’écran 2026-02-03 à 13 11 19 Capture d’écran 2026-02-03 à 13 11 12

Changes

  • Update vuepress from 1.9.10 to 2.0.0-rc.26
  • Add @vuepress/bundler-vite for Vite-based builds
  • Add @vuepress/theme-default (now a separate package)
  • Replace @vuepress/plugin-google-analytics v1 with v2
  • Add @vuepress/plugin-docsearch for Algolia search integration
  • Rewrite config.js for VuePress 2 ESM format
  • Update homepage frontmatter (actionTextactions array)
  • Convert deploy script to ESM
  • Remove NODE_OPTIONS=--openssl-legacy-provider hack

Files changed

  • website/package.json - updated dependencies
  • website/.vuepress/config.js - rewritten for VuePress 2 format
  • website/README.md - updated frontmatter
  • website/scripts/deploy-gh.js - converted to ESM
  • yarn.lock - updated

Note

VuePress 2 requires Node.js 20+, which aligns with PR #1021 (Node.js 20 update).

@sarahdayan sarahdayan force-pushed the chore/update-node-20 branch from d2ee3da to d148d82 Compare February 3, 2026 12:12
@sarahdayan sarahdayan force-pushed the chore/migrate-vuepress branch from 1738759 to 8749972 Compare February 3, 2026 12:13
Sarah Dayan and others added 2 commits February 3, 2026 15:35
Update testing and transpilation tooling:

Jest ecosystem:
- jest: 26.0.1 → 29.7.0
- babel-jest: 26.0.1 → 29.7.0
- jest-watch-typeahead: 0.6.0 → 2.2.2

Babel ecosystem (required for Jest 29 compatibility):
- @babel/core: 7.10.2 → 7.26.9
- @babel/preset-env: 7.10.2 → 7.26.9
- @babel/plugin-transform-runtime: 7.10.1 → 7.26.9
- @babel/runtime: ^7.6.3 → ^7.28.6

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Jest 29 changed snapshot serialization format:
- Object {} → {}
- Array [] → []

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@sarahdayan sarahdayan requested review from a team, FabienMotte, dhayab and shaejaz and removed request for a team February 3, 2026 14:51
Sarah Dayan and others added 7 commits February 3, 2026 15:52
Update build tooling for shipjs-lib:

- rollup: 2.14.0 → 4.34.8
- rollup-plugin-commonjs → @rollup/[email protected]
- rollup-plugin-node-resolve → @rollup/[email protected]

Updated rollup.config.js to use the new scoped plugin packages
and createRequire for JSON imports (ESM compatible).

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Update linting tooling:

ESLint:
- eslint: 7.2.0 → 8.57.1
- eslint-config-algolia: 16.0.0 → 20.0.0
- eslint-config-prettier: 6.11.0 → 8.10.0
- eslint-plugin-import: 2.20.2 → 2.31.0
- eslint-plugin-jest: 23.13.2 → 27.9.0
- eslint-plugin-prettier: 3.1.3 → 4.2.1
- eslint-plugin-jsdoc: added 46.10.1

Parser:
- babel-eslint → @babel/[email protected]

Updated .eslintrc.cjs to use @babel/eslint-parser and disable
removed/incompatible rules.

Note: Prettier remains at 2.x due to ESM compatibility issues
with Jest. Prettier 3.x upgrade can be done in a future PR.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Auto-fixed lint errors from ESLint 8 stricter rules:
- import/order: Sorted imports by group (builtin, external, internal)
- import/newline-after-import: Added newlines after imports
- no-else-return: Removed unnecessary else after return
- jest/prefer-to-be: Use toBe/toBeNull for primitive checks

Also fixed a buggy mock in updateVersionMonorepo.spec.js that was
attempting to spy on a non-existent property.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Modernize monorepo tooling by upgrading Lerna to v8. This update:
- Updates lerna.json configuration format for Lerna 8 compatibility
- Removes deprecated useWorkspaces option (Lerna 8 auto-detects workspaces)
- Adds $schema reference for better IDE support

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Convert require() to dynamic import() in updateChangelog.js
- Replace .toString() with 'utf-8' encoding parameter in readFileSync calls
- Fix 'require' to 'import' in updateChangelog.spec.js

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Exclude test directories from security-focused rules. Tests legitimately
use dynamic paths (e.g., __dirname + path.resolve) to load fixtures,
which triggers false positive "path injection" warnings.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Update .nvmrc and .node-version to Node 20
- Update engines field in root and shipjs package.json to >=20
- Update CircleCI config to use cimg/node:20.18

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@sarahdayan sarahdayan force-pushed the chore/update-node-20 branch from d148d82 to 39a93ec Compare February 3, 2026 14:54
Sarah Dayan and others added 3 commits February 3, 2026 15:54
- Update .nvmrc and .node-version to Node 20
- Update engines field in root and shipjs package.json to >=20
- Update CircleCI config to use cimg/node:20.18

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Update vuepress from 1.9.10 to 2.0.0-rc.26
- Add @vuepress/bundler-vite, @vuepress/theme-default
- Replace @vuepress/plugin-google-analytics v1 with v2
- Add @vuepress/plugin-docsearch for Algolia search
- Rewrite config.js for VuePress 2 ESM format
- Update homepage frontmatter (actionText → actions array)
- Convert deploy script to ESM
- Remove NODE_OPTIONS=--openssl-legacy-provider hack

VuePress 2 requires Node.js 20+.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Update Node version to 20.19 (required by @vitejs/[email protected])
- Add sass-embedded dependency (required by VuePress default theme)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@sarahdayan sarahdayan force-pushed the chore/migrate-vuepress branch from 8749972 to 25710b5 Compare February 3, 2026 14:54
Sarah Dayan and others added 7 commits February 3, 2026 16:04
Update build tooling for shipjs-lib:

- rollup: 2.14.0 → 4.34.8
- rollup-plugin-commonjs → @rollup/[email protected]
- rollup-plugin-node-resolve → @rollup/[email protected]

Updated rollup.config.js to use the new scoped plugin packages
and createRequire for JSON imports (ESM compatible).

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Update linting tooling:

ESLint:
- eslint: 7.2.0 → 8.57.1
- eslint-config-algolia: 16.0.0 → 20.0.0
- eslint-config-prettier: 6.11.0 → 8.10.0
- eslint-plugin-import: 2.20.2 → 2.31.0
- eslint-plugin-jest: 23.13.2 → 27.9.0
- eslint-plugin-prettier: 3.1.3 → 4.2.1
- eslint-plugin-jsdoc: added 46.10.1

Parser:
- babel-eslint → @babel/[email protected]

Updated .eslintrc.cjs to use @babel/eslint-parser and disable
removed/incompatible rules.

Note: Prettier remains at 2.x due to ESM compatibility issues
with Jest. Prettier 3.x upgrade can be done in a future PR.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Auto-fixed lint errors from ESLint 8 stricter rules:
- import/order: Sorted imports by group (builtin, external, internal)
- import/newline-after-import: Added newlines after imports
- no-else-return: Removed unnecessary else after return
- jest/prefer-to-be: Use toBe/toBeNull for primitive checks

Also fixed a buggy mock in updateVersionMonorepo.spec.js that was
attempting to spy on a non-existent property.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Update testing and transpilation tooling:

Jest ecosystem:
- jest: 26.0.1 → 29.7.0
- babel-jest: 26.0.1 → 29.7.0
- jest-watch-typeahead: 0.6.0 → 2.2.2

Babel ecosystem (required for Jest 29 compatibility):
- @babel/core: 7.10.2 → 7.26.9
- @babel/preset-env: 7.10.2 → 7.26.9
- @babel/plugin-transform-runtime: 7.10.1 → 7.26.9
- @babel/runtime: ^7.6.3 → ^7.28.6

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Convert require() to dynamic import() in updateChangelog.js
- Replace .toString() with 'utf-8' encoding parameter in readFileSync calls
- Fix 'require' to 'import' in updateChangelog.spec.js

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Exclude test directories from security-focused rules. Tests legitimately
use dynamic paths (e.g., __dirname + path.resolve) to load fixtures,
which triggers false positive "path injection" warnings.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Update .nvmrc and .node-version to Node 20
- Update engines field in root and shipjs package.json to >=20
- Update CircleCI config to use cimg/node:20.18

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@sarahdayan sarahdayan force-pushed the chore/update-node-20 branch from 39a93ec to db3b45e Compare February 3, 2026 15:06
Base automatically changed from chore/update-node-20 to main February 3, 2026 16:29
@sarahdayan sarahdayan merged commit 08878dc into main Feb 3, 2026
1 of 2 checks passed
@sarahdayan sarahdayan deleted the chore/migrate-vuepress branch February 3, 2026 16:47
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.

3 participants