Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log which project is being checked. #60942

Open
6 tasks done
remcohaszing opened this issue Jan 9, 2025 · 2 comments
Open
6 tasks done

Log which project is being checked. #60942

remcohaszing opened this issue Jan 9, 2025 · 2 comments
Labels
Needs More Info The issue still hasn't been fully clarified

Comments

@remcohaszing
Copy link

remcohaszing commented Jan 9, 2025

🔍 Search Terms

log which program is being checked

✅ Viability Checklist

⭐ Suggestion

Log the project that is being checked. Also log something if all checks pass. E.g.:

$ tsc --build
Checking tsconfig.json
Checking packages/a/tsconfig.build.json
Checking packages/a/tsconfig.json
Checking packages/b/tsconfig.build.json
Checking packages/b/tsconfig.json
Success ✓

📃 Motivating Example

The tsc command now has useful logging in case of success by default.

💻 Use Cases

Currently tsc doesn’t log anything about the project it’s checking. In case of success, it logs nothing. If a command run takes longer and emits nothing, I usually get suspicious something went wrong.

A more serious use case are project references. TypeScript checks referenced projects one by one. A program may fail type checking. If it does, TypeScript will log which files failed type checking. However, it is ambiguous of which program this file was a part. It may be part of multiple programs. It may succeed type checking for one program, but fail in another. I.e. maybe one program should have excluded it. Or maybe it should have added a missing lib, but which program?

All of this can be debugged using --traceResolution, but that info is very verbose and it takes a clean and second run

@RyanCavanaugh
Copy link
Member

RyanCavanaugh commented Jan 9, 2025

tsc -b -v does this already and has pretty reasonable verbosity; does that suffice (if not, why) ?

[9:23:01 AM] Project 'compiler/tsconfig.json' is being forcibly rebuilt
[9:23:01 AM] Building project 'D:/github/TypeScript/src/compiler/tsconfig.json'...
[9:23:07 AM] Project 'deprecatedCompat/tsconfig.json' is being forcibly rebuilt
[9:23:07 AM] Building project 'D:/github/TypeScript/src/deprecatedCompat/tsconfig.json'...
[9:23:07 AM] Project 'jsTyping/tsconfig.json' is being forcibly rebuilt
[9:23:07 AM] Building project 'D:/github/TypeScript/src/jsTyping/tsconfig.json'...
[9:23:07 AM] Project 'services/tsconfig.json' is being forcibly rebuilt
[9:23:07 AM] Building project 'D:/github/TypeScript/src/services/tsconfig.json'...
[9:23:10 AM] Project 'typingsInstallerCore/tsconfig.json' is being forcibly rebuilt
[9:23:10 AM] Building project 'D:/github/TypeScript/src/typingsInstallerCore/tsconfig.json'...
[9:23:10 AM] Project 'server/tsconfig.json' is being forcibly rebuilt
[9:23:10 AM] Building project 'D:/github/TypeScript/src/server/tsconfig.json'...
[9:23:11 AM] Project 'harness/tsconfig.json' is being forcibly rebuilt
[9:23:11 AM] Building project 'D:/github/TypeScript/src/harness/tsconfig.json'...
[9:23:11 AM] Project 'testRunner/tsconfig.json' is being forcibly rebuilt
[9:23:11 AM] Building project 'D:/github/TypeScript/src/testRunner/tsconfig.json'...
[9:23:13 AM] Project 'tsc/tsconfig.json' is being forcibly rebuilt
[9:23:13 AM] Building project 'D:/github/TypeScript/src/tsc/tsconfig.json'...
[9:23:13 AM] Project 'typescript/tsconfig.json' is being forcibly rebuilt
[9:23:13 AM] Building project 'D:/github/TypeScript/src/typescript/tsconfig.json'...
[9:23:13 AM] Project 'tsserver/tsconfig.json' is being forcibly rebuilt
[9:23:13 AM] Building project 'D:/github/TypeScript/src/tsserver/tsconfig.json'...
[9:23:13 AM] Project 'typingsInstaller/tsconfig.json' is being forcibly rebuilt
[9:23:13 AM] Building project 'D:/github/TypeScript/src/typingsInstaller/tsconfig.json'...
[9:23:13 AM] Project 'watchGuard/tsconfig.json' is being forcibly rebuilt
[9:23:13 AM] Building project 'D:/github/TypeScript/src/watchGuard/tsconfig.json'...

@RyanCavanaugh RyanCavanaugh added the Needs More Info The issue still hasn't been fully clarified label Jan 9, 2025
@remcohaszing
Copy link
Author

You’re right. This output is pretty good. I was confusing it with something even more verbose.

Still though, I believe this information is very useful to have by default. tsc --build depends on the state of caching, especially with project references involved. One can run tsc --build, but running tsc --build (with or without --verbose) a second time, or even an Nth time, can yield different results. It’s useful to have the logs from the first run.

Type errors lose a lot of meaning if you don’t know the program context. An alternative would be to only log it if there are type errors, but I think it’s useful to always have this info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs More Info The issue still hasn't been fully clarified
Projects
None yet
Development

No branches or pull requests

2 participants