Update dependencies and simplify build tooling - #513
Draft
remcoder wants to merge 2 commits into
Draft
Conversation
|
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ref #512. Update or remove dependencies in isolated, validated steps. Scope and acceptance criteria live in the issue; this draft tracks implementation progress.
Progress
.nvmrc. All emitted artifacts remain byte-identical to the original Node 22.12 baseline.Rolldown decision — awaiting maintainer review
The existing
rollup-plugin-dtsfails under Rolldown (addWatchFileloses 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.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.1pending 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.