Skip to content

feat!: update to Node.js 24 and modernize tooling (MAPCO-9810)#54

Merged
almog8k merged 7 commits intov3.xfrom
chore/update-ci-and-deps
Feb 5, 2026
Merged

feat!: update to Node.js 24 and modernize tooling (MAPCO-9810)#54
almog8k merged 7 commits intov3.xfrom
chore/update-ci-and-deps

Conversation

@almog8k
Copy link
Copy Markdown
Contributor

@almog8k almog8k commented Feb 5, 2026

Summary

  • Update minimum Node.js version from v20 to v24 (breaking change)
  • Migrate to ESLint 9 flat config with @map-colonies/eslint-config v6
  • Update TypeScript to 5.8, Jest to 30, and other dependencies
  • Modernize CI/CD workflows to use shared workflows
  • Add release-please for automated releases
  • Add dependabot for automated dependency updates

BREAKING CHANGES

  • Node.js 24 required - Minimum Node.js version updated from v20 to v24

Changes

CI/CD Modernization

  • Remove legacy workflow files (publish_package.yaml, release-on-tag-push.yaml)
  • Remove local init-npm action in favor of shared workflows
  • Update pull_request.yml to use MapColonies/shared-workflows actions
  • Add new publish.yaml workflow with OIDC and npm provenance support
  • Add release-please.yml workflow for automated releases

ESLint 9 Migration

  • Remove .eslintrc.json in favor of eslint.config.mjs (flat config)
  • Update to @map-colonies/eslint-config v6
  • Fix all linting errors:
    • Change HttpStatus to StatusCodes import (naming convention)
    • Replace lodash default import _ with named imports
    • Add GeometryCollection case to vertices.ts switch
    • Add undefined case to httpClient switch for exhaustiveness
    • Remove unused eslint-disable directives

Type System Improvements

  • Add @types/geojson for proper GeoJSON type imports
  • Create src/models/types.ts with local BBox2d type
  • Update all geo files to import types from geojson package instead of @turf/turf
  • Replace internal turf path imports (@turf/helpers/dist/js/lib/geojson) with local types

Code Fixes

  • Fix for await on sync generator in geoHash.ts
  • Consolidate duplicate imports in metricsManager.ts
  • Mark fileMetrics as readonly in MetricsManager

Configuration Updates

  • Update .nvmrc to v24
  • Add "type": "commonjs" to package.json
  • Update build script to use tsc-alias
  • Add prepare: "husky" script
  • Add Husky hooks for commitlint and pretty-quick
  • Add release-please configuration files

Dependency Updates

  • ESLint: ^9.39.0
  • TypeScript: ^5.8.3
  • Jest: ^30.0.4
  • @types/jest: ^30.0.0
  • @types/node: ^24.0.15
  • Husky: ^9.1.7
  • Prettier: ^3.6.2
  • And other devDependency updates

@almog8k almog8k force-pushed the chore/update-ci-and-deps branch from 1f08718 to fe09a22 Compare February 5, 2026 07:50
@almog8k almog8k changed the base branch from 3.x to master February 5, 2026 07:55
@almog8k almog8k changed the title feat!: update to Node.js 24 feat: update to Node.js 24, ci and deps(MAPCO-9810) Feb 5, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 5, 2026

🎫 Related Jira Issue: MAPCO-9810

@almog8k almog8k changed the title feat: update to Node.js 24, ci and deps(MAPCO-9810) feat!: update to Node.js 24 and modernize tooling (MAPCO-9810) Feb 5, 2026
@almog8k almog8k changed the base branch from master to v3.x February 5, 2026 08:32
BREAKING CHANGE: Minimum Node.js version updated from v20 to v24

- Migrate to ESLint 9 flat config with @map-colonies/eslint-config v6
- Update TypeScript to 5.8, Jest to 30, and other dependencies
- Modernize CI/CD to use MapColonies/shared-workflows
- Add release-please for automated releases
- Add dependabot for automated dependency updates
- Fix all linting errors and improve type imports
- Add local BBox2d type to avoid internal turf imports
@almog8k almog8k force-pushed the chore/update-ci-and-deps branch from fe09a22 to 3c8b2ab Compare February 5, 2026 08:32
@almog8k almog8k merged commit 38730ad into v3.x Feb 5, 2026
4 checks passed
@almog8k almog8k deleted the chore/update-ci-and-deps branch February 5, 2026 09:32
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