Skip to content

ci(dependabot): ignore typescript major bumps for docs/site - #22763

Closed
bloxster wants to merge 1 commit into
mainfrom
ci/dependabot-ignore-typescript-major
Closed

ci(dependabot): ignore typescript major bumps for docs/site#22763
bloxster wants to merge 1 commit into
mainfrom
ci/dependabot-ignore-typescript-major

Conversation

@bloxster

Copy link
Copy Markdown
Collaborator

Why

PR #22395 (typescript 6.0.3 → 7.0.2) was closed because TypeScript 7 removed baseUrl (TS5102), which @docusaurus/tsconfig still sets as of 3.10.2:

docs/site/tsconfig.json: error TS5102: Option 'baseUrl' has been removed.
                                       Please remove it from your configuration.

An inherited compilerOption cannot be unset by the extending config, and docs/site/tsconfig.json's "ignoreDeprecations": "6.0" only silences TS 6's TS5101 deprecation — TS 7 rejects the option itself. Since docs-site-build.yml gates npm run typecheck, a TS 7 bump turns docs CI red.

What

Closing a Dependabot PR suppresses only that exact version, so 7.0.3 and every later 7.x would re-propose it. This encodes the decision instead. Minor and patch TypeScript updates keep flowing.

No behaviour change — Dependabot config only.

If we want TS 7 later

It requires inlining @docusaurus/tsconfig's options minus baseUrl. Note that deleting our local baseUrl: "." alone would not work — it would just inherit theirs. That fix is already proven in erigontech/cocoon#36 and erigontech/zilkworm-docs#13.

Aside: our local baseUrl: "." is also why @site/* resolves correctly here. In both sibling repos the option was purely inherited, which made it resolve to node_modules/@docusaurus/tsconfig and silently broke the alias.

🤖 Generated with Claude Code

PR #22395 (typescript 6.0.3 -> 7.0.2) was closed because TypeScript 7 removed
`baseUrl` (TS5102), which @docusaurus/tsconfig still sets as of 3.10.2. An
inherited compilerOption cannot be unset by the extending config, and
docs/site/tsconfig.json's `ignoreDeprecations: "6.0"` only silences TS 6's
TS5101 deprecation — TS 7 rejects the option itself. Since docs-site-build.yml
gates `npm run typecheck`, a TS 7 bump turns docs CI red.

Closing a Dependabot PR only suppresses that exact version, so 7.0.3 and every
later 7.x would re-propose it. Encode the decision instead. Minor and patch
TypeScript updates keep flowing.

Taking TS 7 later means inlining @docusaurus/tsconfig's options minus baseUrl
(deleting our local baseUrl alone would just inherit theirs). That fix is
already proven in erigontech/cocoon#36 and erigontech/zilkworm-docs#13 if we
want it here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@bloxster

Copy link
Copy Markdown
Collaborator Author

Superseded by #22764, which removes the need for this deferral: it drops baseUrl from docs/site/tsconfig.json so TypeScript 7 passes npm run typecheck instead of being held back from it. Closing in favour of taking the upgrade.

If we ever want to pin back to TypeScript 6, this rule is the way to do it — the rationale is preserved in the commit on ci/dependabot-ignore-typescript-major.

@bloxster bloxster closed this Jul 27, 2026
@bloxster
bloxster deleted the ci/dependabot-ignore-typescript-major branch July 27, 2026 11:38
pull Bot pushed a commit to Dustin4444/erigon that referenced this pull request Jul 27, 2026
…rigontech#22764)

## Why

Dependabot erigontech#22395 (`typescript` 6.0.3 → 7.0.2) was closed because it
failed docs-site CI:

```
docs/site/tsconfig.json(7,5): error TS5102: Option 'baseUrl' has been removed.
                              Please remove it from your configuration.
```

TypeScript 7 **removed** `baseUrl`. Our `"ignoreDeprecations": "6.0"`
silenced TS 6's TS5101 *deprecation*, but TS 7 rejects the option
itself, so that escape hatch expires at the major boundary.

**Deleting only our own `baseUrl` line would not fix it.** `extends:
@docusaurus/tsconfig` would inherit upstream's — it still ships one as
of 3.10.2 — and an inherited `compilerOption` cannot be unset by the
extending config. The error would simply move from `(7,5)` to `(6,3)`.

## What

1. **`docs/site/tsconfig.json`** — inline the base config minus
`baseUrl`, dropping the now-useless `ignoreDeprecations`.
2. **`docs/site/scripts/check-tsconfig-drift.mjs`** (+ `npm run
check:tsconfig`) — inlining means upstream changes stop reaching us, so
this diffs our copy against `node_modules/@docusaurus/tsconfig` modulo
declared deltas, and reports when upstream drops `baseUrl` and the whole
workaround can be reverted. Wired into `docs-site-build.yml` ahead of
the existing typecheck.

The guard depends on nothing but Node, deliberately: a version that
imported `typescript` to parse JSONC broke under the very upgrade it
guards (erigontech/cocoon#37).

## `@site/*` is unaffected here

Verified via the TypeScript API — `@site/docusaurus.config` resolves to
`docs/site/docusaurus.config.ts` both before and after:

```
OLD (extends + our own baseUrl: "."):  @site/docusaurus.config -> <site>/docusaurus.config.ts
NEW (inlined, no baseUrl):             @site/docusaurus.config -> <site>/docusaurus.config.ts
```

Worth noting because this is where erigon differed from its siblings: in
cocoon and zilkworm-docs `baseUrl` was *only inherited*, so it resolved
to `node_modules/@docusaurus/tsconfig` and left `@site/*` silently
broken. Our explicit `baseUrl: "."` is what kept the alias correct — and
dropping it costs nothing, because `paths` now resolves against the
tsconfig's own directory, which is the same `docs/site` root.

## Verification

In `docs/site`, under **both** toolchains:

| | TS 6.0.3 | TS 7.0.2 |
|---|---|---|
| `npm run check:tsconfig` | exit 0 | exit 0 |
| `npm run typecheck` | exit 0 | exit 0 |
| `npm run build` | exit 0 | exit 0 |

## Relationship to erigontech#22763

**Supersedes erigontech#22763**, which added a Dependabot ignore rule for
`typescript` majors to stop the closed PR resurfacing on every 7.x
release. That deferral is unnecessary if this lands — recommend closing
erigontech#22763. If you'd rather stay on TS 6 for now, do the opposite: merge
erigontech#22763 and close this.

Same fix as erigontech/cocoon#36 and erigontech/zilkworm-docs#13, both
now merged and running TypeScript 7.0.2.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Bloxster <gianni.morselli@erigon.tech>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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