Skip to content

docs(roadmap): record the changes waiting on an external trigger - #67

Open
LINDECKER-Charles wants to merge 1 commit into
mainfrom
docs/roadmap
Open

docs(roadmap): record the changes waiting on an external trigger#67
LINDECKER-Charles wants to merge 1 commit into
mainfrom
docs/roadmap

Conversation

@LINDECKER-Charles

Copy link
Copy Markdown
Owner

Adds docs/roadmap.md and links it from both indexes.

Two migrations are already decided but blocked on something outside this repo. Until now they existed only as a comment in ci.yml and a closed PR thread, which is enough to record that something was deferred but not enough to act on it later — a comment carries neither the trigger, nor the exact edits, nor the reason the obvious-looking version was the wrong one.

Entry Trigger
Add Node 26 to the CI matrix a date — 2026-10-28, when 26 reaches Active LTS
Port to TypeScript 7 an upstream release — when @typescript-eslint/* admits TS ≥ 7.1 (#10940)

The two are deliberately filed under different headings, because a calendar alone would not cover the second: TS 7 has no date. What it has is a one-command test, which the entry records so the check is not re-invented:

npm view @typescript-eslint/eslint-plugin peerDependencies.typescript

Each entry carries the trigger, the exact edits, the verification to run before merging, and — the part most likely to be lost — what must not change. For Node 26 that is the floor: engines.node, @types/node and the tsup target all track the oldest supported line, never the newest. Conflating those two is precisely what produced a @types/node PR proposing types for a runtime that was not even LTS yet, and the roadmap now states the rule instead of leaving it to be rediscovered.

The TS 7 entry also preserves the measurement taken while investigating it, so the work does not get redone: the source is already TS 7 clean (tsc --noEmit on 7.0.2 → 0 errors, tsup build fine), and the only blocker is the plugin throwing Error: typescript-eslint does not support TS 7.0. at load — which kills lint and lint:security, the security gate. That is why forcing peers is not an option.

Scope: documentation only. No code, config or dependency changes.

  • linked from the README.md documentation table and the docs/README.md contributor index
  • added to the reading-order mermaid diagram in docs/README.md, so every document in that index stays represented
  • all five relative links out of the new file verified to resolve (scope.md, releases/, ../.github/workflows/ci.yml, ../.github/dependabot.yml, ../package.json)

Two migrations are decided but blocked on something outside the repo, and
both were only living in a code comment: adding Node 26 to the CI matrix
when it reaches Active LTS on 2026-10-28, and the TypeScript 7 port once
typescript-eslint stops refusing TS 7 at load time.

A comment is enough to note that something is deferred, not enough to act
on later — it does not carry the trigger, the exact edits, or the reason
the obvious-looking version was wrong. Each entry now names all three, so
the decision is read rather than re-derived.

The Node entry spells out what must NOT move with 26: engines.node,
@types/node and the tsup target all track the oldest supported line, not
the newest. Conflating the two is exactly what produced a @types/node PR
proposing types for a runtime that was not even LTS yet.

Linked from both indexes, and added to the reading-order diagram in
docs/README.md so every document there stays represented.
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