Repository navigation
Conversation
…pe:module packages - Swap all ts-node script invocations to tsx (actions-dependencies-updater start drops deprecated node --loader ts-node/esm flag). - Add "type": "module" to go-conditional-tests, go-mod-validator, update-action-versions; rename bundled CJS entrypoints to .cjs (dist/index.cjs, out/index.cjs) so node doesn't misread them as ESM. action.yaml main paths updated; dists rebuilt. - Fix generate-gomod-fixtures.ts for real ESM execution: default-import fs-extra (named CJS re-exports not statically detectable), read/write from node:fs, import.meta.dirname. - Remove ts-node, @swc-node/register, @eslint/eslintrc devDeps. - Fix SC2155 shellcheck warnings in go-mod-validator test.sh. Validation: nx run-many lint/test green; fixtures:gomods end-to-end run; local/start scripts smoke-run; node dist/index.cjs smoke green. Refs DX-5569
… drop ignoreDeprecations
- tsconfig.base.json: moduleResolution bundler + module esnext (matches
esbuild semantics), target es2023. Remove deprecated baseUrl (TS5101
under TS 6); paths made tsconfig-relative.
- Remove ignoreDeprecations "6.0" from all tsconfigs (node10 resolution
and baseUrl deprecations gone with the switch).
- Exceptions:
- libs/nx-chainlink (tsc -> CJS dist): module/moduleResolution nodenext;
package "type": "commonjs" keeps CJS emit. Explicit .js extensions
added to relative imports.
- apps/actions-dependencies-updater: node16 -> nodenext (module +
moduleResolution), target es2023; sources already use explicit .mjs
extensions.
- actions/*: standalone configs set esnext + bundler.
- Rebuilt dists: codeowners-review-analysis, gha-workflow-validator
(es2022+ native class-field emit; behavior-identical).
Validation: nx run-many build/test/lint 58/58 green; per-project tsc
scratch typecheck vs baseline — zero new errors (all remaining are
pre-existing latent, no tsc gate in CI); nx-chainlink tsc dist still CJS;
dist smoke-runs green.
Refs DX-5569
- tsconfig.base.json: verbatimModuleSyntax true (B1 made this safe; esbuild and vite honor it). - eslint.config.mjs: enforce @typescript-eslint/consistent-type-imports (separate-type-imports fixStyle, import() type annotations allowed); *.mts now covered by the TS lint blocks. - Mechanical fixes across actions/apps/libs: type-only imports marked import type (types-only packages like @octokit/types no longer load at runtime under vite/vitest; esbuild no longer needs auto-elision). - apps/actions-dependencies-updater: .mts sources and generated types use import type/export type. - Remove fully unused 'import * as semver' in apidiff-go util.ts (verbatim semantics would otherwise preserve and bundle it). - Signed-commits/apidiff-go/codeowners-review-analysis dists rebuilt (let->const and import cleanup; behavior-identical). Validation: nx run-many build/test/lint 58/58 green; per-project tsc scratch typecheck — zero new errors vs B1 baseline; dist diffs audited line-by-line. Refs DX-5569
…fixes - tsconfig.base.json: noUncheckedIndexedAccess true. - actions-dependencies-updater: guards for cache lookups (caches/github), tag parsing fallbacks (utils), extractDetailsFromActionIdentifier returns undefined for malformed identifiers instead of undefined fields, yaml file destructure guard, skip dependencies without pinned ref, ref params loosened where undefined already flowed at runtime. - go-mod-validator: deps line-cache local capture, owner/repo defaults (guaranteed by depPrefix filter), git hunk header guard, cache lookups via undefined-check instead of 'in', getDefaultBranch throws clear error when default_branch missing, rest[0] fallback. - go-conditional-tests: hash via Object.entries (no re-index), package line destructure with malformed-line skip, duplicate-check via local. - update-action-versions: tag split defaults, action map entry guards, wm[file] ?? [] iteration. - jira-tracing: changeset file capture with clear error when missing, first-issue guards. - signed-commits: repo-tags test args optional chaining. - Dists rebuilt for the three source-touched apps. Validation: nx run-many build/test/lint 58/58 green; per-project tsc scratch typecheck — all projects at or below pre-C1 baseline; each fix reviewed for behavior preservation. Refs DX-5569
kalverra
added this pull request to stack #1694
October 8, 2026 19:45
Contributor
💥 No ChangesetLatest commit: 4825144 Merging this PR will not cause any packages to be released. If these changes should not cause updates to packages in this repo, this is fine 🙂 If these changes should be included in a release's CHANGELOG, you need to add a changeset. Click here to learn what changesets are, and how to add one. Click here if you're a maintainer who wants to add a changeset to this PR You can also use gocs to generate changeset files locally. |
Prior dist in 9af18f5 was built before the prettier --write pass; rebuild so committed artifacts match a fresh build (artifact-diff CI). Refs DX-5569
Auto-fixed by local lefthook gofumpt hook (blank lines, func spacing, EOF newlines). Refs DX-5569
…push
- pre-commit: new code-lint command (eslint --fix then prettier --write on
staged js/ts/mts files, dist/out excluded, auto-staged). Previously
staged code files got no eslint or prettier fixes.
- prettier now invoked directly on staged files (pnpm prettier:write
{staged_files} unioned with the script's repo-wide glob, formatting the
whole tree every commit); glob extended to js/ts code files via
code-lint.
- Fixers run sequentially before build-artifacts (was parallel: builds
raced the fixers and committed stale dist bytes).
- build-artifacts and code-lint exclude dist/out bundles.
- New pre-push hook: pnpm test:affected (short, ~15s) gated on pushed
code files.
- gitignore lefthook-local.yml (local extends, untracked).
Refs DX-5569
kalverra
force-pushed
the
DX-5569/dev-execution
branch
from
October 8, 2026 20:53
1ae50ed to
9312fef
Compare
chainchad
reviewed
Oct 8, 2026
chainchad
left a comment
Collaborator
There was a problem hiding this comment.
Each action that gets modified should get its own changeset - either a dedicated file or one changeset for all of the modified packages.
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.
Executes the remaining phases of the TS standards modernization plan (follow-up to #1688). Refs DX-5569. Plan:
.agents/local/plans/update-ts-standards.md.A3 — ts-node → tsx (+ ESM packaging)
actions-dependencies-updaterdrops deprecatednode --loader ts-node/esm."type": "module"on go-conditional-tests, go-mod-validator, update-action-versions; bundled CJS entrypoints renamed.cjs(dist/index.cjs, out/index.cjs) so node doesn't misread them as ESM. action.yaml main paths updated; dists rebuilt.generate-gomod-fixtures.tsfixed for real ESM execution (default-import fs-extra, node:fs, import.meta.dirname).B1 — Resolution + target
moduleResolution: "bundler",module: "esnext",target: "es2023"; deprecatedbaseUrlremoved (paths made tsconfig-relative);ignoreDeprecationsdropped from all 22 tsconfigs.nodenext/nodenextwith explicit.jsextensions ("type": "commonjs"keeps CJS emit); actions-dependencies-updaternode16→nodenext.B2 — verbatimModuleSyntax
import typefixes across actions/apps/libs, enforced byconsistent-type-importseslint rule (.mtsnow lint-covered). Types-only packages no longer load at runtime.C1 — noUncheckedIndexedAccess
Deferred per plan:
exactOptionalPropertyTypes(C2), ESM-first monorepo.Validation
pnpm nx run-many -t build test lint58/58 green after each phase.node dist/index.cjs) green;fixtures:gomodsend-to-end; dists rebuilt and committed (covered by the pending dependency-modernization changeset).Stack created with GitHub Stacks CLI • Give Feedback 💬