Skip to content

ci: run the checks on Windows beside Linux - #132

Merged
Upd4ting merged 3 commits into
mainfrom
ci/windows
Nov 13, 2026
Merged

Upd4ting merged 3 commits into
mainfrom
ci/windows

Conversation

@Upd4ting

@Upd4ting Upd4ting commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

Why

Run this repo's CI on Windows beside Linux and fix what breaks there, so the AntelopeJS stack is known to work on Windows (ANT-2204).

What

  • ci.yml passes windows: true to ci-node.yml@v1, so the Node and Test jobs also run on windows-latest, in parallel with Linux. The repo had no hand-written Windows job to replace.
  • .gitattributes sets * text=auto eol=lf, so a checkout with core.autocrlf=true keeps LF. The index already held no CRLF file, so nothing was renormalized.
  • @antelopejs/tooling-configs goes from 0.5.5 to 0.5.8. antelopejs-sync 0.5.8 refuses to run while pnpm-workspace.yaml holds only allowBuilds, so that file is deleted. The resync updated the managed README.md stack table and .agents/skills/verify-interface/SKILL.md.
  • Two Windows test failures are fixed, as described under Windows failures. No test is skipped and no test timeout is raised.

Windows failures

Published declarations: type-check in a consumer module. The test serves an in-memory consumer.ts from a TypeScript compiler host that compared names with ===. On Windows, path.join builds D:\…\consumer.ts, but TypeScript asks for D:/…/consumer.ts, so the host missed and TypeScript reported TS6053. The host now compares path.resolve(file).

Field Access Control: read in a read write field (2000 ms timeout). @antelopejs/mongodb builds every table registered in a schema before the schema's first query answers. Mocha loads every test file first, so the suite's first query paid for about 40 collections and their indexes. Probe runs on the CI timed each phase:

First test, first insert Windows Linux
Without a warm-up 1739 ms 248 ms
After a raw driver creates 2 collections and indexes in setup 1115 ms 222 ms
Every later insert about 18 ms about 18 ms

The raw warm-up itself took 43 ms on Windows, so the cost is the schema build, not MongoDB starting cold. A root before hook in src/tests/default_schema.test.ts now registers the default schema and waits for one query under its own 30 s budget, so no test pays for the build. On a Linux machine, the first test's insert in the full suite went from 592 ms without the hook to 34 ms with it.

A first attempt pointed the test client at 127.0.0.1 instead of localhost. The second run (43431435846) still timed out, and that change is reverted in the net diff.

Proof

Before, the first run with windows: true: run 43430873309, Test .nvmrc on Windows

  218 passing (5s)
  2 failing

  1) Field Access Control
       read in a read write field:
     Error: Timeout of 2000ms exceeded. …

  2) Published declarations
       type-check in a consumer module with library checks on:
      -  "TS6053 : File 'D:/a/interface-data-api/interface-data-api/consumer-check/consumer.ts' not found.…"

After: run 43433398789, Test .nvmrc on Windows

    ✔ read in a read write field (72ms)
    ✔ type-check in a consumer module with library checks on (1950ms)
  220 passing (6s)

In run 43433398789, Node .nvmrc on Windows, Node .nvmrc, Test .nvmrc and the checks gate pass too.

flowchart LR
  A[mocha loads every test file] --> B[root before: RegisterSchema default]
  B --> C[one query waits for every default table]
  C --> D[tests run with the schema built]
Loading

@Upd4ting
Upd4ting marked this pull request as ready for review November 13, 2026 13:29
@Upd4ting
Upd4ting merged commit f5f34be into main Nov 13, 2026
10 checks passed
@Upd4ting
Upd4ting deleted the ci/windows branch November 13, 2026 13:30
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