Skip to content

Update dependencies and simplify build tooling - #513

Draft
remcoder wants to merge 2 commits into
developfrom
codex/512-update-dependencies
Draft

Update dependencies and simplify build tooling#513
remcoder wants to merge 2 commits into
developfrom
codex/512-update-dependencies

Conversation

@remcoder

@remcoder remcoder commented Sep 11, 2026

Copy link
Copy Markdown
Member

Ref #512. Update or remove dependencies in isolated, validated steps. Scope and acceptance criteria live in the issue; this draft tracks implementation progress.

Progress

  • Establish artifact baseline; retarget development, test CI, Firebase builds, and publishing to Node 24.21.0 via .nvmrc. All emitted artifacts remain byte-identical to the original Node 22.12 baseline.
  • Upgrade node-resolve 16.0.1 → 16.0.3, Rollup 4.59.0 → 4.63.1, and rollup-plugin-dts 6.2.1 → 6.4.1 individually. All emitted artifacts remain byte-identical.
  • Evaluate Rolldown 1.2.8: not a drop-in replacement; decision pending below.
  • Evaluate Vite for the demo server and opportunities to remove redundant dependencies.
  • Continue remaining dependency updates after the build/server decisions.

Rolldown decision — awaiting maintainer review

The existing rollup-plugin-dts fails under Rolldown (addWatchFile loses its receiver). A migration needs a compatible declaration plugin or another declaration pipeline. Rolldown was trialled locally and removed from this PR after the assessment; the working build remains on Rollup.

JavaScript build Raw bytes Gzip bytes (level 9)
Current Rollup 194,229 53,106
Rolldown with existing runtime plugins 232,770 57,479
Rolldown native transform/minify, ES2015 target 197,608 54,192

The native candidate adds 3,379 raw / 1,086 gzipped bytes (+2.0% gzipped). Different code generation/minification changes the output. Both candidates retain the five runtime exports and sole external import (three); all seven extracted shader/GUI-style literals match the reference. This is not full behavioral or browser validation of the candidate.

An initial single-process timing was ~267 ms for Rollup JavaScript versus ~19 ms for native Rolldown; declarations took ~1,008 ms on Rollup and failed on Rolldown. These are exploratory timings, not a controlled benchmark or evidence of end-to-end speedup.

Next proposed simplification: Vite for demo development (already present through Vitest), replacing live-server and potentially concurrently by serving source directly. Keep the library build separate. Review copyfiles separately for replacement with Node's built-in file APIs. Avoid upgrading tools we intend to remove.

Validation and decisions

Each retained dependency upgrade was validated individually on Node 22.12. The complete current state also passes 992 tests with 100% coverage, type-checking, lint, packed-consumer tests (four TypeScript resolution modes), demo asset copying, and TypeDoc on Node 24.21.0 / npm 11.19.0. Production JavaScript, declarations, and copied demo assets are byte-identical across the runtime change. Browser checking remains with the maintainer.

rollup-plugin-dts 6.5.1 was previously tested but not retained because its optional Babel 8 dependency exceeded the old Node 22.12 baseline. Node 24.21.0 removes that constraint; the PR still uses ~6.4.1 pending the Rolldown/declaration-pipeline decision. Node 26 exposes an existing localStorage test incompatibility before upgrades.

Review gate: pause for maintainer review whenever production artifacts change; passing tests alone does not approve changed output. Baseline library JavaScript: 194,229 bytes raw / 53,106 bytes gzipped.

Assisted by Codex - GPT-6.

@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit 7e3860f):

https://gcode-preview--pr513-codex-512-update-dep-dpnszh9r.web.app

(expires Sun, 11 Oct 2026 13:17:34 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 59bd114ae4847b32c2bba0b68620b9069a3e3531

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.

1 participant