Fix the sample test which lead to discripancy with incremntal build because of error (#54311)

This commit is contained in:
Sheetal Nandi 2023-05-18 12:02:42 -07:00 committed by GitHub
parent ce1c97f4f0
commit d01a1c3081
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 367 deletions

View File

@ -161,7 +161,10 @@ describe("unittests:: tsbuild:: on 'sample1' project", () => {
},
{
caption: "rebuilds when tsconfig changes",
edit: fs => replaceText(fs, "/src/tests/tsconfig.json", `"composite": true`, `"composite": true, "target": "es3"`),
edit: fs => {
replaceText(fs, "/src/tests/tsconfig.json", `"composite": true`, `"composite": true, "target": "es2020"`);
fs.writeFileSync("/lib/lib.es2020.full.d.ts", libContent);
},
},
]
});

View File

@ -1,339 +0,0 @@
2:: rebuilds when tsconfig changes
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"version": "3708260210-const m = 10;",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts"
],
"changeFileSet": [
"./index.ts"
],
"latestChangedDtsFile": "FakeFileName"
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"version": "3708260210-const m = 10;",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts",
"./index.ts"
],
"latestChangedDtsFile": "FakeFileName"
},
"version": "FakeTSVersion"
}
Incremental signature is neither dts signature nor file version for File:: ./index.ts
Incremental:: {
"original": {
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
}
Clean:: {
"original": {
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
}
Dts Signature:: $undefined
Incremental Reference set is neither from dts nor files reference map for File:: ./index.ts::
Incremental:: undefined
Clean:: [
"../core/anothermodule.d.ts"
]
DtsExportsMap:: undefined
Incremental build contains affectedFilesPendingEmit, clean build does not have it: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt::
Incremental buildInfoText:: {
"program": {
"fileNames": [
"../../lib/lib.d.ts",
"./index.ts"
],
"fileInfos": {
"../../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts",
"./index.ts"
],
"affectedFilesPendingEmit": [
[
"./index.ts",
"Js | Dts"
]
],
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
"size": 938
}
Clean buildInfoText:: {
"program": {
"fileNames": [
"../../lib/lib.d.ts",
"./index.ts",
"../core/anothermodule.d.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts"
],
"changeFileSet": [
"./index.ts"
],
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
"size": 1040
}
Incremental build contains ./index.ts file as pending emit, clean build does not have it: /src/tests/tsconfig.tsbuildinfo.readable.baseline.txt::
Incremental buildInfoText:: {
"program": {
"fileNames": [
"../../lib/lib.d.ts",
"./index.ts"
],
"fileInfos": {
"../../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "-357908916-declare const m = 10;\n",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts",
"./index.ts"
],
"affectedFilesPendingEmit": [
[
"./index.ts",
"Js | Dts"
]
],
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
"size": 938
}
Clean buildInfoText:: {
"program": {
"fileNames": [
"../../lib/lib.d.ts",
"./index.ts",
"../core/anothermodule.d.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
},
"version": "3708260210-const m = 10;",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"affectsGlobalScope": true
}
},
"root": [
[
2,
"./index.ts"
]
],
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
},
"referencedMap": {},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts"
],
"changeFileSet": [
"./index.ts"
],
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
"size": 1040
}

View File

@ -683,6 +683,21 @@ exports.multiply = multiply;
Change:: rebuilds when tsconfig changes
Input::
//// [/lib/lib.es2020.full.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/tests/tsconfig.json]
{
"references": [
@ -691,7 +706,7 @@ Input::
],
"files": ["index.ts"],
"compilerOptions": {
"composite": true, "target": "es3",
"composite": true, "target": "es2020",
"declaration": true,
"forceConsistentCasingInFileNames": true,
"skipDefaultLibCheck": true
@ -702,42 +717,38 @@ Input::
Output::
/lib/tsc --b /src/tests --verbose
[12:00:59 AM] Projects in this build:
[12:01:00 AM] Projects in this build:
* src/core/tsconfig.json
* src/logic/tsconfig.json
* src/tests/tsconfig.json
[12:01:00 AM] Project 'src/core/tsconfig.json' is up to date because newest input 'src/core/index.ts' is older than output 'src/core/tsconfig.tsbuildinfo'
[12:01:01 AM] Project 'src/core/tsconfig.json' is up to date because newest input 'src/core/index.ts' is older than output 'src/core/tsconfig.tsbuildinfo'
[12:01:01 AM] Project 'src/logic/tsconfig.json' is up to date because newest input 'src/logic/index.ts' is older than output 'src/logic/tsconfig.tsbuildinfo'
[12:01:02 AM] Project 'src/logic/tsconfig.json' is up to date because newest input 'src/logic/index.ts' is older than output 'src/logic/tsconfig.tsbuildinfo'
[12:01:02 AM] Project 'src/tests/tsconfig.json' is out of date because output 'src/tests/tsconfig.tsbuildinfo' is older than input 'src/tests/tsconfig.json'
[12:01:03 AM] Project 'src/tests/tsconfig.json' is out of date because output 'src/tests/tsconfig.tsbuildinfo' is older than input 'src/tests/tsconfig.json'
[12:01:03 AM] Building project '/src/tests/tsconfig.json'...
[12:01:04 AM] Building project '/src/tests/tsconfig.json'...
src/tests/tsconfig.json:8:38 - error TS5107: Option 'target=ES3' is deprecated and will stop functioning in TypeScript 5.5. Specify compilerOption '"ignoreDeprecations": "5.0"' to silence this error.
8 "composite": true, "target": "es3",
   ~~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
exitCode:: ExitStatus.Success
//// [/src/tests/index.js]
const m = 10;
//// [/src/tests/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"3708260210-const m = 10;","signature":"-357908916-declare const m = 10;\n","affectsGlobalScope":true}],"root":[2],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"target":0},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
{"program":{"fileNames":["../../lib/lib.es2020.full.d.ts","./index.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},{"version":"3708260210-const m = 10;","signature":"-357908916-declare const m = 10;\n","affectsGlobalScope":true}],"root":[2],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"target":7},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/src/tests/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../lib/lib.d.ts",
"../../lib/lib.es2020.full.d.ts",
"./index.ts"
],
"fileInfos": {
"../../lib/lib.d.ts": {
"../../lib/lib.es2020.full.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true
@ -767,23 +778,17 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"target": 0
"target": 7
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../lib/lib.d.ts",
"../../lib/lib.es2020.full.d.ts",
"./index.ts"
],
"affectedFilesPendingEmit": [
[
"./index.ts",
"Js | Dts"
]
],
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
"size": 938
"size": 919
}