Repository navigation
Conversation
手元の全体の vp test run で builtin-lint.test.ts の 150 行目が `expected [] to deeply equal [ 'child_process', ... ]` で落ちた。effecttsgo(node-builtin-import) が 1 件も返らなかった。 原因は並行に走る lint probe のテストどうしの競合。tsgolint は tsconfig.json の include に 合う .ts を列挙してから読むので、その間に別のテストが probe ファイルを消すと typescript(tsconfig-error)「File ... not found」を出し、型を使う診断をすべて落とす。 終了コードは 0 で JSON も正しいので、テストは理由なく期待と食い違う。 - tools/checks に .ts を 20ms ごとに作って消しながら vp lint を 12 回: 9 回で effecttsgo が消えた。 作って消さないと 8/8 で出る。 - msa(...) の JS plugin の診断は消えない(8/8)。effecttsgo を確かめる builtin-lint だけが落ちる。 - main の全体実行で probe を 0.05 秒ごとに見ると、6 本の probe テストのうち最大 5 本分が同時にあった。 手元は 10 コアで並行数が多く、重なる時間が長い。版の差ではない(tsgolint は lockfile の 7.0.2003)。 直し方: - tools の probe テスト(checks/*-lint.test.ts)を tools-lint-probes project に分け、 fileParallelism: false で 1 本ずつ流す。全体実行で同時にある probe は 1 本分になった。 - lintProbes は tools-lint-probes 以外から呼ぶと理由付きで落ちる。名前を外れた probe テストが 並行に戻らないようにするため。 - vp lint が typescript(tsconfig-error) を返したら、消えたファイル名を付けて落とす。 手元で同じ checkout を触る別の作業と重なっても、黙って食い違わない。 - probe を tsconfig の exclude に入れる案は取らない。外すと推論 project になり compilerOptions が 効かず、TS2591 が出て effecttsgo の文言も変わる。 あわせて Node.js を .node-version(26.12.1)で固定する。手元のテストは mise の 26.10.0、CI は engines.node(>=26.0.0)から vp が選んだ 26.12.1 で走っていた。builtin-lint は動いている Node の fs の *Sync 一覧と突き合わせるので、版がずれると手元と CI で結果が分かれる。vp・setup-vp・mise は .node-version を読む。テストは別の版で走ると落ちる。 手元で全体の vp test run を 5 回流し、5 回とも通った(1601 passed | 58 skipped)。
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.
手元の全体の
vp test runでtools/checks/builtin-lint.test.tsの 150 行目(effecttsgo の一覧)がexpected [] to deeply equal [...]で落ちる問題を直す。原因
並行に走る lint probe のテストどうしの競合。tsgolint は
tsconfig.jsonの include に合う.tsを列挙してから読むので、その間に別のテストが probe ファイルを消すとtypescript(tsconfig-error)(File ... not found)を出し、型を使う診断をすべて落とす。終了コードは 0 で JSON も正しい。tools/checksに.tsを 20ms ごとに作って消しながらvp lint12 回msa(...)(JS plugin)の診断変更
checks/*-lint.test.tsをtools-lint-probesproject に分け、fileParallelism: falseで 1 本ずつ流す。全体実行で同時にある probe は 1 本分になった。lintProbesはtools-lint-probesの外から呼ぶと理由付きで落ちる。vp lintがtypescript(tsconfig-error)を返したら、消えたファイル名を付けて落ちる。.node-version(26.12.1)で固定する。手元のテストは 26.10.0、CI はengines.nodeから vp が選んだ 26.12.1 で走っていた。別の版で走るとtools/checks/node-version.test.tsが落ちる。確かめた結果
手元(darwin-arm64、10 コア)で全体の
vp test runを 5 回流し、5 回とも 1601 passed | 58 skipped。