Skip to content

ci: check the Theia versions our peer range promises - #11

Merged
martin-fleck-at merged 1 commit into
mainfrom
ci/theia-compat
Sep 9, 2026
Merged

ci: check the Theia versions our peer range promises#11
martin-fleck-at merged 1 commit into
mainfrom
ci/theia-compat

Conversation

@martin-fleck-at

Copy link
Copy Markdown
Contributor

The three Theia packages publish a ^1.71.0 peer range while CI installs only 1.75.0, so most of the range we promise adopters is untested.

Legs

  • Run the declared floor and latest weekly, plus any version or dist-tag on demand, with fail-fast off so one leg's red cannot cancel the other
  • Typecheck and unit-test the framework packages only: no bundler and no e2e, which is where moving Theia drags Electron, React and Node with it

Mechanism

  • Pin every @theia/* found across the workspace manifests into the root overrides, then discard the tree; with the lockfile in place npm never re-resolves those edges and the install silently keeps its versions
  • Carry a min-version table, because @theia/bundle-plugin published nothing before 1.72.0 and a blanket rewrite 404s the whole install
  • Assert every installed @theia/core copy matches, since a partially applied override reads as success from the hoisted path alone
  • Pin npm from packageManager, because 10.9.2 crashes in arborist here

Verified by running each step's own body rather than a retyping of it.

  • The floor is TRUE: tsc -b, three typecheck:test and 179 tests pass at 1.71.0, and again at 1.75.0
  • Control on the assertion: the lockfile-present install succeeds and the assertion rejects it, naming the copy that stayed behind
  • Zero copies fails too, which a mismatch-only check would have passed
  • Whether the inputs context is simply unpopulated under schedule is reasoned from the docs, not measured; the first cron run settles it

The three Theia packages publish a `^1.71.0` peer range while CI installs
only 1.75.0, so most of the range we promise adopters is untested.

Legs
- Run the declared floor and latest weekly, plus any version or dist-tag
  on demand, with fail-fast off so one leg's red cannot cancel the other
- Typecheck and unit-test the framework packages only: no bundler and no
  e2e, which is where moving Theia drags Electron, React and Node with it

Mechanism
- Pin every @theia/* found across the workspace manifests into the root
  overrides, then discard the tree; with the lockfile in place npm never
  re-resolves those edges and the install silently keeps its versions
- Carry a min-version table, because @theia/bundle-plugin published
  nothing before 1.72.0 and a blanket rewrite 404s the whole install
- Assert every installed @theia/core copy matches, since a partially
  applied override reads as success from the hoisted path alone
- Pin npm from packageManager, because 10.9.2 crashes in arborist here

Verified by running each step's own body rather than a retyping of it.
- The floor is TRUE: tsc -b, three typecheck:test and 179 tests pass at
  1.71.0, and again at 1.75.0
- Control on the assertion: the lockfile-present install succeeds and the
  assertion rejects it, naming the copy that stayed behind
- Zero copies fails too, which a mismatch-only check would have passed
- Whether the inputs context is simply unpopulated under schedule is
  reasoned from the docs, not measured; the first cron run settles it
@martin-fleck-at
martin-fleck-at merged commit d03f6f4 into main Sep 9, 2026
4 checks passed
@martin-fleck-at
martin-fleck-at deleted the ci/theia-compat branch September 9, 2026 11:26
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