chore: refresh dependencies, pin CI actions and harden workflows - #166
Open
bnimit wants to merge 1 commit into
Open
chore: refresh dependencies, pin CI actions and harden workflows#166bnimit wants to merge 1 commit into
bnimit wants to merge 1 commit into
Conversation
Maintenance pass over the alpha branch. No source behaviour changes.
Dependencies
- Regenerate yarn.lock against the existing semver ranges. yarn audit goes
from 3 critical / 122 high / 98 moderate to zero. Notably protobufjs
8.0.0 -> 8.8.0 (critical RCE), vitest 4.0.18 -> 4.1.11 (critical), and
lodash-es, fast-xml-parser and uuid, all of which ship to consumers.
- Add a `vite` resolution. vitest 4.1.x widened its vite dependency to
`^6 || ^7 || ^8`, so a fresh resolve nests a second copy on vite 8 and
yarn 1's linker aborts with an invariant violation. Pinning to the 7.x
line restores the single deduped vite. Remove once we move to vite 8.
- Add a `lodash-es` resolution. @reearth/cesium-mvt-imagery-provider hard
pins lodash-es 4.17.21 and 1.6.2 is the newest release, so it cannot
dedupe on its own. Resolutions are not honoured for consumers of a
published package, so the durable fix is a release of
cesium-mvt-imagery-provider; this only cleans our own tree and CI audit.
- Reflow four files for prettier 3.9. Union-type formatting only.
peerDependencies
- cesium `1.118.x` -> `^1.137.0`. We build and test against 1.137+ while
declaring 1.118, so npm 7+ reports an unmet peer for every consumer on
a supported cesium. Nothing forced the old pin: resium and
cesium-mvt-imagery-provider both accept `1.x`.
CI
- Add `yarn build` to ci.yml. Only lint and test ran, so a type error that
breaks `tsc && vite build` could reach alpha and fail at release time.
- Pin every third-party action to a commit SHA with a version comment.
npm_release.yml in particular handed NPM_TOKEN to a mutable tag.
- Align release_alpha.yml and release_alpha_prepare.yml to checkout and
setup-node v6; they were still on v4 while the rest of the repo was v6.
- Drop the actions/labeler step and .github/labeler.yml. labeler matches
changed file paths, but the config listed conventional-commit keywords
("bug", "fix", "docs"), so it has only ever matched files with those
literal names and labelled nothing. It also blocks the v7 bump, which
fails config validation on the v5 schema change (run 33486136320).
Verified: yarn install --frozen-lockfile, yarn lint, yarn test (196
passed), yarn build all pass. Generated dist/index.d.ts is byte-identical
to the published 0.0.7-alpha.79.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Maintenance pass over
alpha. No source behaviour changes.yarn auditVerified locally:
yarn install --frozen-lockfile,yarn lint(0 errors, 0 warnings),yarn test(196 passed / 28 files),yarn buildall pass. Generateddist/index.d.tsis byte-identical to the published0.0.7-alpha.79, so the public type surface is unchanged.Dependencies
yarn.lockregenerated against the existing semver ranges — no range widening. Clearsprotobufjs8.0.0 → 8.8.0 (critical RCE),vitest4.0.18 → 4.1.11 (critical), pluslodash-es,fast-xml-parseranduuid, all three of which ship to consumers.Four files reflowed for prettier 3.9 (union-type formatting only).
peerDependencies
cesium1.118.x→^1.137.0. We build and test against 1.137+ while declaring 1.118, so npm 7+ reports an unmet peer for every consumer on a supported cesium. Nothing forced the old pin —resiumand@reearth/cesium-mvt-imagery-providerboth accept1.x.CI
yarn buildadded toci.yml. Only lint and test ran, so a type error breakingtsc && vite buildcould reachalphaand only fail at release time.npm_release.ymlin particular handedNPM_TOKENto a mutable tag.release_alpha.yml/release_alpha_prepare.ymlaligned to checkout + setup-node v6. They were still on v4 while the rest of the repo was on v6.actions/labelerstep and.github/labeler.ymlremoved. labeler matches changed file paths, but the config listed conventional-commit keywords (bug,fix,docs), so it only ever matched files with those literal names and labelled nothing. It also blocks the v7 bump, which fails config validation against the v5 schema change — see run 33486136320.Reviewer notes
Two new
resolutions, both with caveats.vite: ^7.3.6is required to install at all. vitest 4.1.x widened its vite dependency to^6 || ^7 || ^8, so a fresh resolve nests a second copy on vite 8 and yarn 1's linker aborts withInvariant Violation: could not find a copy of vite to link. Pinning to the 7.x line restores the single deduped vite. Remove when we move to vite 8.lodash-es: ^4.18.1does not protect consumers.@reearth/cesium-mvt-imagery-providerhard-pins4.17.21and 1.6.2 is the newest release, so it cannot dedupe.resolutionsare ignored for consumers of a published package — this cleans our own tree and CI audit only. The durable fix is a release ofreearth/cesium-mvt-imagery-provider.cesium 1.139.1 → 1.145.0 and resium 1.19.4 → 1.26.0 moved in the lockfile. Both within already-declared ranges, and dev/CI-only — consumers resolve cesium themselves via the peer dep. Tests, build and emitted types are clean, but unit tests do not prove a map renderer still renders, so this wants a manual smoke-test of the viewer before the next release. Happy to hold both back if reviewers would rather split them out.
vite-plugin-dtsprints a TS2742 on the non-exportedEntityExt. The emitted declarations are unaffected (verified byte-identical to the published baseline); I did not establish whether the message predates this change.Renovate fallout
SHA-pinning conflicts with #142, #143 and #154 — they will need rebasing. #157 (labeler v7) is obsoleted by the labeler removal.
Deliberately out of scope
ESLint 8 → 10 flat-config migration, Node 24, and Yarn 4 are each their own PR.
pull-requests: writeinpr_title.ymlis likely reducible toreadnow the labeler is gone, but I did not want an unverified permission change to break title checks on every PR.🤖 Generated with Claude Code