Skip to content

Bump Node.js and TypeScript to version 22/ES2022#1806

Merged
fjakobs merged 5 commits into
mainfrom
bump-nodejs-typescript-to-22
Nov 18, 2025
Merged

Bump Node.js and TypeScript to version 22/ES2022#1806
fjakobs merged 5 commits into
mainfrom
bump-nodejs-typescript-to-22

Conversation

@fjakobs

@fjakobs fjakobs commented Nov 16, 2025

Copy link
Copy Markdown
Contributor

Summary

This PR upgrades the project to use Node.js 22 and TypeScript 5.9.3 with ES2022 target, ensuring consistency across all configurations and CI/CD pipelines.

Changes

GitHub Actions Workflows

  • Updated all workflows to use Node.js 22.x:
    • push.yml: 18.x → 22.x
    • unit-tests.yml: 18.x → 22.x
    • create-build-artifacts.yml: 18 → 22
    • release-pr.yml: 18.x → 22.x
    • update-cli-version.yml: 18.x → 22.x
  • Note: publish-to-openvsx.yml and publish-to-vscode.yml already used 22.x

TypeScript Configuration

  • Updated all tsconfig files to target ES2022:
    • tsconfig_base.json: Added ES2022 target and lib
    • packages/databricks-vscode/tsconfig.json: Updated lib to ES2022
    • packages/databricks-vscode-types/tsconfig.json: Inherits ES2022 from base
    • packages/databricks-vscode/scripts/tsconfig.json: Updated to ES2022
    • packages/databricks-vscode/eslint-local-rules/tsconfig.json: Added ES2022 target
    • packages/databricks-vscode/src/test/e2e/tsconfig.json: Updated to ES2022

TypeScript Upgrade

  • Upgraded TypeScript from 5.3.3 to 5.9.3
    • Initially targeted ES2023, but downgraded to ES2022 due to ts-node 10.9.2 limitations
    • ES2022 is fully compatible with Node.js 22

Code Fixes

Fixed compilation errors revealed by stricter TypeScript 5.9 type checking:

  • JobRunStatus.ts: Added declare keyword for property override
  • PipelineRunStatus.ts: Added declare keyword for property override
  • ConfigurationDataProvider.ts: Moved components initialization to constructor to fix initialization order

Dependency Updates

  • path-scurry: Added resolution to force v2.0.1 across all packages
    • Fixes type incompatibility in older versions without compromising type safety
    • Removed need for skipLibCheck

Benefits

  • ✅ Aligns with Node.js 22 capabilities (package.json already required >=22.0)
  • ✅ Consistent Node.js and TypeScript versions across all environments
  • ✅ Stricter type checking catches potential bugs
  • ✅ ES2022 features available (array methods, improved Promise APIs, etc.)
  • ✅ Full type safety maintained (no skipLibCheck needed)

Test Plan

  • yarn install completes successfully
  • yarn run build completes with no errors
  • All GitHub Actions workflows reference Node.js 22

🤖 Generated with Claude Code

fjakobs and others added 4 commits November 16, 2025 17:39
Update all GitHub Actions workflows to use Node.js 22, completing the migration started in #1773. This ensures consistency across all CI/CD pipelines and aligns with the package.json requirement of Node.js >=22.0.

Updated workflows:
- create-build-artifacts.yml: 18 → 22
- push.yml: 18.x → 22.x
- release-pr.yml: 18.x → 22.x
- unit-tests.yml: 18.x → 22.x
- update-cli-version.yml: 18.x → 22.x

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update all TypeScript configuration files to target ES2023, aligning with Node.js 22 capabilities and the package.json requirement of Node.js >=22.0.

Changes:
- tsconfig_base.json: Update target from ES2020 to ES2023, add explicit lib
- packages/databricks-vscode/tsconfig.json: Update lib to ES2023, keep DOM
- packages/databricks-vscode-types/tsconfig.json: Remove lib (inherit from base)
- packages/databricks-vscode/scripts/tsconfig.json: Update target and lib to ES2023
- packages/databricks-vscode/eslint-local-rules/tsconfig.json: Add ES2023 target
- packages/databricks-vscode/src/test/e2e/tsconfig.json: Update target from ES2021 to ES2023

Benefits:
- Enables ES2023 features (array methods, improved Promise APIs, etc.)
- Ensures consistency across all TypeScript configurations
- Better alignment with Node.js 22 runtime capabilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update TypeScript from 5.3.3 to 5.9.3 and adjust configuration to target
ES2022 (highest version supported by ts-node 10.9.2). Fix compilation
errors revealed by stricter type checking in TypeScript 5.9.

Changes:
- package.json: Upgrade typescript from ^5.3.3 to ^5.5.0 (installed 5.9.3)
- All tsconfig files: Update target from ES2023 to ES2022
- tsconfig_base.json: Add skipLibCheck to avoid third-party lib errors
- JobRunStatus.ts: Add declare keyword for data property override
- PipelineRunStatus.ts: Add declare keyword for data property override
- ConfigurationDataProvider.ts: Move components initialization to constructor
  to fix property initialization order errors

Benefits:
- ES2022 target compatible with Node.js 22
- Stricter type checking catches potential bugs
- Successful build with no errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add path-scurry ^2.0.0 to yarn resolutions to fix type incompatibility
in older path-scurry versions without compromising type safety.

Changes:
- package.json: Add path-scurry ^2.0.0 to resolutions
- yarn.lock: Update to path-scurry 2.0.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update the minimum VS Code version requirement from 1.86.0 to 1.101.0
and explicitly add Node.js >=22.0 requirement to the databricks-vscode
package engines field.

Changes:
- packages/databricks-vscode/package.json: Update vscode engine to ^1.101.0
- packages/databricks-vscode/package.json: Add node engine >=22.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/vscode

Inputs:

  • PR number: 1806
  • Commit SHA: 2e53fdd7e24e5347af449a3dd0c61cc8b2e4cd79

Checks will be approved automatically on success.

@fjakobs fjakobs requested a review from ilia-db November 16, 2025 16:46
@fjakobs fjakobs enabled auto-merge (squash) November 16, 2025 16:46
@fjakobs fjakobs disabled auto-merge November 18, 2025 12:34
@fjakobs fjakobs merged commit 5563d38 into main Nov 18, 2025
7 of 8 checks passed
@fjakobs fjakobs deleted the bump-nodejs-typescript-to-22 branch November 18, 2025 12:34
@github-actions github-actions Bot mentioned this pull request Dec 15, 2025
ilia-db added a commit that referenced this pull request Dec 15, 2025
## packages/databricks-vscode
##  (2025-12-15)

* [WIP] Fix e2e tests (#1812)
([f468d9f](f468d9f)),
closes
[#1812](#1812)
* Bump Node.js and TypeScript to version 22/ES2022 (#1806)
([5563d38](5563d38)),
closes
[#1806](#1806)
* Update Databricks CLI to v0.280.0 (#1819)
([a5bdf87](a5bdf87)),
closes
[#1819](#1819)



## packages/databricks-vscode-types
##  (2025-12-15)

* Bump Node.js and TypeScript to version 22/ES2022 (#1806)
([5563d38](5563d38)),
closes
[#1806](#1806)

---------

Co-authored-by: releasebot <noreply@github.com>
Co-authored-by: Ilia Babanov <ilia.babanov@databricks.com>
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.

2 participants