Skip to content

v0.52.0 - Toolchain Modernization (2026-03-28)

What Changed?

This release modernizes the development toolchain without affecting any public API or production behavior. The test runner has been migrated from Jest/ts-jest to Vitest, and TypeScript has been upgraded to v6. Build configuration, dependency management, and git hygiene have also been improved.


What's New

Main Feature: Vitest Migration

What it does: Replaces Jest and ts-jest with Vitest as the test runner. Vitest natively supports TypeScript and ESM, eliminating the need for a separate tsconfig.test.json workaround.

How to use it: No changes required for users. For contributors, task test now runs Vitest instead of Jest.


Added

  • vitest.config.ts — Vitest configuration with globals, node environment, and v8 coverage
  • task test:coverage — Run tests and open coverage report in browser
  • scripts/hooks/docs_api.sh — Auto-commit docs/api/ when TypeDoc output changes (runs as part of task docs:api)

Changed

  • Test runner: Jest/ts-jest → Vitest v4
  • TypeScript: v5.9 → v6.0 with module: ESNext and moduleResolution: bundler
  • Rollup config: Removed commonjs() plugin (no longer needed with ESM output); comments translated to English
  • package.json: Added "type": "module"; removed @rollup/plugin-commonjs
  • tsconfig.json: Removed allowJs, checkJs, stale include paths (flamewright, afterglow)
  • .gitignore: Reorganized into project / Node / Python / macOS sections; untracked generated artifacts (gaslamp.bundle.js, docs/bundle-analysis.html)
  • biome.json: Migrated schema to v2.4.8
  • Task workflow: dev:validate merged into validate; docs:build moved into dev:deploy

Fixed

  • Lint errors in __tests__/v2/convert.test.ts (literal keys, optional chain, non-null assertion)
  • Unused import ClockSmith in __tests__/clocksmith.test.ts

Is It Safe to Upgrade?

  • Breaking Changes: No
  • Backward Compatible: Yes

No public API changes. All changes are limited to the development toolchain and configuration files.


Release Details

  • Date: 2026-03-28
  • Version: v0.52.0
  • gaslamp: 108
  • pilotlamp: 66
  • Commits:
    • 2e3788fe chore(rollup): remove commonjs plugin, add type module, clean up config
    • 5b6857d0 chore(tsconfig): remove unused options and stale include paths
    • 9c6e7802 feat(test): migrate from Jest/ts-jest to Vitest
    • 238df1a2 chore(deps): upgrade TypeScript to v6 with ESNext/bundler module resolution
    • 5fac47fa chore(deps): update npm and uv packages, apply audit fixes
    • adb07ab9 fix(test): apply biome lint fixes
    • 5e9b2d21 chore(biome): migrate schema to v2.4.8
    • b78b2a4a chore: reorganize .gitignore
    • e8c2a646 chore: untrack gaslamp bundle artifacts
    • a769b2f5 feat(task): add test:coverage task
    • eeb80938 refactor(task): unify validate tasks
    • 5c629264 refactor(docs): move docs/api auto-commit to task docs:api

Known Issues

  • 14 npm audit vulnerabilities (7 low, 7 high) remain in rollup-plugin-filesize dependency chain. These are dev-only and do not affect production GAS output.

Next Steps

  • Migrate Rollup input from build/src/index.js to src/index.ts directly, eliminating the intermediate build/ step