Skip to content

Conversation

@jakebailey
Copy link
Member

@jakebailey jakebailey commented Mar 5, 2024

microsoft/DefinitelyTyped-tools#973 will allow DT packages to specify which tsconfigs to check at test time. This allows for multiple tsconfig settings to work, including one with DOM and one without. This removes the need for the ts4.8 directory duplication, which has long doubled the package size and created confusion for contributors.

A main tsconfig.json file which includes all files is still required due to ts-eslint restrictions, but the other tsconfigs can now include differing sets of files. This means that we can have separate test files for DOM and non-DOM, which this PR does.

image

Caveat: the 4.8 dir also didn't include some special generic form which allowed TS 4.6 to pass; I have temporarily raised the minimum TypeScript version to 4.7, however TS 5.4 is due to release this week and 4.6 will go out of support, so this should be okay. TS 4.6 is no more.

Closes #66640

@jakebailey

This comment was marked as outdated.

@jakebailey jakebailey force-pushed the node-multi-tsconfig branch 2 times, most recently from 3fcc442 to 3c9d647 Compare March 7, 2024 22:28
@jakebailey

This comment was marked as outdated.

@jakebailey jakebailey force-pushed the node-multi-tsconfig branch from 3c9d647 to b3eeaef Compare March 8, 2024 18:17
@jakebailey jakebailey marked this pull request as ready for review March 8, 2024 18:34
@typescript-bot
Copy link
Contributor

typescript-bot commented Mar 8, 2024

@jakebailey Thank you for submitting this PR!

This is a live comment which I will keep updated.

1 package in this PR

Code Reviews

Because this is a widely-used package, a DT maintainer will need to review it before it can be merged.

You can test the changes of this PR in the Playground.

Status

  • ✅ No merge conflicts
  • ✅ Continuous integration tests have passed
  • ✅ A DT maintainer needs to approve changes which affect module config files

All of the items on the list are green. To merge, you need to post a comment including the string "Ready to merge" to bring in your changes.


Diagnostic Information: What the bot saw about this PR
{
  "type": "info",
  "now": "-",
  "pr_number": 68908,
  "author": "jakebailey",
  "headCommitOid": "b3eeaef096e86260fb5300d4e289257112644f86",
  "mergeBaseOid": "aae31da572363bed190729b826be689a2423aac5",
  "lastPushDate": "2024-03-05T23:23:43.000Z",
  "lastActivityDate": "2024-03-11T21:43:50.000Z",
  "mergeOfferDate": "2024-03-11T20:50:17.000Z",
  "mergeRequestDate": "2024-03-11T21:43:50.000Z",
  "mergeRequestUser": "jakebailey",
  "hasMergeConflict": false,
  "isFirstContribution": false,
  "tooManyFiles": false,
  "hugeChange": true,
  "popularityLevel": "Critical",
  "pkgInfo": [
    {
      "name": "node",
      "kind": "edit",
      "files": [
        {
          "path": "types/node/node-tests-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/node-tests-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/node-tests.ts",
          "kind": "test"
        },
        {
          "path": "types/node/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/test/events-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/events-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/globals-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/globals-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/globals.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/perf_hooks-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/perf_hooks-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/test/perf_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/assert.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/assert/strict.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/async_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/buffer.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/child_process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/cluster.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/console.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/constants.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/crypto.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/dgram.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/diagnostics_channel.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/dns.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/dns/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/dom-events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/domain.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/fs.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/fs/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/globals.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/globals.global.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/http.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/http2.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/https.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/index.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/inspector.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/module.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/net.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/node-tests.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/os.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/path.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/perf_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/punycode.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/querystring.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/readline.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/readline/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/repl.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/.gitignore",
          "kind": "package-meta",
          "suspect": "edited"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/README.md",
          "kind": "markdown"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/ast-processing.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/ast-utils.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/docs.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/html-doc-processing.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/node-doc-processing.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-docs/utils.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/README.md",
          "kind": "markdown"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/devtools-protocol-schema.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/event-emitter.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/generate-substitute-args.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/index.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/inspector.d.ts.template",
          "kind": "package-meta",
          "suspect": "edited"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/scripts/generate-inspector/utils.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/html-doc-processing.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/new-version/new-version.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/scripts/new-version/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/scripts/new-version/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/ts4.8/stream.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/stream/consumers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/stream/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/stream/web.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/string_decoder.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/test.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/test/assert.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/async_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/buffer.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/child_process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/cluster.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/console.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/constants.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/crypto.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/dgram.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/diagnostics_channel.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/dns.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/events_generic.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/fs.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/http.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/http2.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/https.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/inspector.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/module.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/net.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/os.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/path.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/perf_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/querystring.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/readline.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/repl.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/stream.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/string_decoder.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/test.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/timers.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/timers_promises.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/tls.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/trace_events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/tty.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/url.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/util.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/util_types.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/v8.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/vm.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/wasi.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/worker_threads.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/test/zlib.ts",
          "kind": "test"
        },
        {
          "path": "types/node/ts4.8/timers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/timers/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/tls.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/trace_events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/tty.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/url.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/util.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/v8.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/vm.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/wasi.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/worker_threads.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/ts4.8/zlib.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/tsconfig.dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        },
        {
          "path": "types/node/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/tsconfig.non-dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        },
        {
          "path": "types/node/v16/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/v16/test/wasi.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/assert.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/assert/strict.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/async_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/buffer.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/child_process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/cluster.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/console.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/constants.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/crypto.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/dgram.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/diagnostics_channel.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/dns.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/dns/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/dom-events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/domain.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/fs.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/fs/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/globals.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/globals.global.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/http.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/http2.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/https.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/index.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/inspector.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/module.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/net.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/node-tests.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/os.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/path.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/perf_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/punycode.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/querystring.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/readline.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/repl.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/stream.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/stream/consumers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/stream/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/stream/web.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/string_decoder.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/test.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/test/assert.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/async_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/buffer.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/child_process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/cluster.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/console.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/constants.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/crypto.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/dgram.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/diagnostics_channel.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/dns.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/events_generic.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/fs.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/globals.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/http.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/http2.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/https.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/inspector.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/module.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/net.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/os.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/path.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/perf_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/querystring.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/readline.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/repl.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/stream.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/string_decoder.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/test.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/timers.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/timers_promises.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/tls.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/trace_events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/tty.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/url.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/util.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/util_types.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/v8.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/vm.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/wasi.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/worker_threads.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/test/zlib.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v16/ts4.8/timers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/timers/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/tls.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/trace_events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/tty.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/url.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/util.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/v8.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/vm.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/wasi.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/worker_threads.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/ts4.8/zlib.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v16/tsconfig.dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        },
        {
          "path": "types/node/v16/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/v16/tsconfig.non-dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        },
        {
          "path": "types/node/v18/node-tests-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/node-tests-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/package.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/v18/test/events-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/events-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/globals-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/globals-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/globals.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/perf_hooks-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/perf_hooks-non-dom.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/test/perf_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/assert.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/assert/strict.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/async_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/buffer.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/child_process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/cluster.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/console.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/constants.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/crypto.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/dgram.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/diagnostics_channel.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/dns.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/dns/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/dom-events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/domain.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/fs.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/fs/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/globals.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/globals.global.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/http.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/http2.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/https.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/index.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/inspector.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/module.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/net.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/node-tests.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/os.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/path.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/perf_hooks.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/process.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/punycode.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/querystring.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/readline.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/readline/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/repl.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/stream.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/stream/consumers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/stream/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/stream/web.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/string_decoder.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/test.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/test/assert.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/async_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/buffer.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/child_process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/cluster.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/console.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/constants.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/crypto.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/dgram.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/diagnostics_channel.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/dns.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/events_generic.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/fs.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/globals.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/http.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/http2.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/https.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/inspector.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/module.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/net.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/os.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/path.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/perf_hooks.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/process.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/querystring.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/readline.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/repl.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/stream.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/string_decoder.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/test.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/timers.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/timers_promises.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/tls.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/trace_events.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/tty.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/url.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/util.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/util_types.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/v8.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/vm.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/wasi.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/worker_threads.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/test/zlib.ts",
          "kind": "test"
        },
        {
          "path": "types/node/v18/ts4.8/timers.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/timers/promises.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/tls.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/trace_events.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/tty.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/url.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/util.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/v8.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/vm.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/wasi.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/worker_threads.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/ts4.8/zlib.d.ts",
          "kind": "definition"
        },
        {
          "path": "types/node/v18/tsconfig.dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        },
        {
          "path": "types/node/v18/tsconfig.json",
          "kind": "package-meta-ok"
        },
        {
          "path": "types/node/v18/tsconfig.non-dom.json",
          "kind": "package-meta",
          "suspect": "not [the expected form](https://github.com/DefinitelyTyped/DefinitelyTyped#user-content-tsconfigjson) (check: `compilerOptions.target`)"
        }
      ],
      "owners": [
        "Microsoft",
        "jkomyno",
        "alvis",
        "r3nya",
        "btoueg",
        "smac89",
        "touffy",
        "DeividasBakanas",
        "eyqs",
        "Hannes-Magnusson-CK",
        "hoo29",
        "kjin",
        "ajafff",
        "islishude",
        "mwiktorczyk",
        "mohsen1",
        "galkin",
        "parambirs",
        "eps1lon",
        "ThomasdenH",
        "WilcoBakker",
        "wwwy3y3",
        "samuela",
        "kuehlein",
        "bhongy",
        "chyzwar",
        "trivikr",
        "yoursunny",
        "qwelias",
        "ExE-Boss",
        "peterblazejewicz",
        "addaleax",
        "victorperin",
        "ZYSzys",
        "NodeJS",
        "LinusU",
        "wafuwafu13",
        "mcollina",
        "Semigradsky"
      ],
      "addedOwners": [],
      "deletedOwners": [],
      "popularityLevel": "Critical"
    }
  ],
  "reviews": [
    {
      "type": "approved",
      "reviewer": "peterblazejewicz",
      "date": "2024-03-11T20:49:24.000Z",
      "isMaintainer": true
    }
  ],
  "mainBotCommentID": 1986210796,
  "ciResult": "pass"
}

@typescript-bot
Copy link
Contributor

@jakebailey
Copy link
Member Author

This is all passing and green, but I'd love for a maintainer to take a look. Hopefully you find this helpful! I know that the ts4.8 dir has been a problem for a while.

@jakebailey

This comment was marked as resolved.

@peterblazejewicz
Copy link
Member

It looks like a nice addition (and it does the job)
Should this be documented here?
https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html#version-selection-with-typesversions
Will this work if the toolset changes are frozen in the lock file, but not the source (devs vs devDeps)?

@jakebailey
Copy link
Member Author

I intend to send docs for this for the DT readme, but this isn't a TypeScript feature, it's a dtslint feature and wouldn't be on the TS website.

Will this work if the toolset changes are frozen in the lock file, but not the source (devs vs devDeps)?

I'm not sure what you mean by this. This is just local to DT testing.

@peterblazejewicz
Copy link
Member

I'm not sure what you mean by this. This is just local to DT testing.

let's skip this. I was concerned about existing installations, in case TS version resolution is removed from 'package.json' (the one I understand how it works 😄 )

@peterblazejewicz
Copy link
Member

/cc @Semigradsky mind giving 👀

@jakebailey
Copy link
Member Author

I'm not sure what you mean by this. This is just local to DT testing.

let's skip this. I was concerned about existing installations, in case TS version resolution is removed from 'package.json' (the one I understand how it works 😄 )

It's true that a local install of DT may stop passing until its root node_modules is removed and updated to the latest dtslint, yes, though that's true of basically any big infra change we make. Other than that, things should work.

@typescript-bot typescript-bot added Maintainer Approved Self Merge This PR can now be self-merged by the PR author or an owner labels Mar 11, 2024
@typescript-bot
Copy link
Contributor

@jakebailey: Everything looks good here. I am ready to merge this PR (at b3eeaef) on your behalf whenever you think it's ready.

If you'd like that to happen, please post a comment saying:

Ready to merge

and I'll merge this PR almost instantly. Thanks for helping out! ❤️

(@microsoft, @jkomyno, @alvis, @r3nya, @btoueg, @smac89, @Touffy, @DeividasBakanas, @eyqs, @Hannes-Magnusson-CK, @hoo29, @kjin, @ajafff, @islishude, @mwiktorczyk, @mohsen1, @galkin, @parambirs, @eps1lon, @ThomasdenH, @WilcoBakker, @wwwy3y3, @samuela, @kuehlein, @bhongy, @chyzwar, @trivikr, @yoursunny, @qwelias, @ExE-Boss, @peterblazejewicz, @addaleax, @victorperin, @ZYSzys, @nodejs, @LinusU, @wafuwafu13, @mcollina, @Semigradsky: you can do this too.)

@jakebailey
Copy link
Member Author

Thanks for looking; I think that this will work out pretty well for now. @remcohaszing has also been trying out the new feature in #68955 and I think that there's some improvement to be had here, but nothing I didn't foresee, so I think this is good and am happy to get rid of the ts4.8 folder.

@jakebailey
Copy link
Member Author

Ready to merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Check Config Changes a module config files Critical package Huge Change Maintainer Approved Self Merge This PR can now be self-merged by the PR author or an owner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants