-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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
[DO NOT REVIEW] More module-ified compiler testing #51144
Commits on Oct 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 95274fb - Browse repository at this point
Copy the full SHA 95274fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 812331e - Browse repository at this point
Copy the full SHA 812331eView commit details -
This step makes further commits look clearer by unindenting all of the top level namespaces preemptively.
Configuration menu - View commit details
-
Copy full SHA for 863d0a0 - Browse repository at this point
Copy the full SHA 863d0a0View commit details -
This step makes all implicit namespace accesses explicit, e.g. "Node" turns into "ts.Node".
Configuration menu - View commit details
-
Copy full SHA for 8480dd1 - Browse repository at this point
Copy the full SHA 8480dd1View commit details -
CONVERSION STEP - stripNamespaces
This step converts each file into an exported module by hoisting the namespace bodies into the global scope and transferring internal markers down onto declarations as needed. The namespaces are reconstructed as "barrel"-style modules, which are identical to the old namespace objects in structure. These reconstructed namespaces are then imported in the newly module-ified files, making existing expressions like "ts." valid.
Configuration menu - View commit details
-
Copy full SHA for bab724b - Browse repository at this point
Copy the full SHA bab724bView commit details -
CONVERSION STEP - inlineImports
This step converts as many explicit accesses as possible in favor of direct imports from the modules in which things were declared. This restores the code (as much as possible) back to how it looked originally before the explicitify step, e.g. instead of "ts.Node" and "ts.Symbol", we have just "Node" and "Symbol".
Configuration menu - View commit details
-
Copy full SHA for 541e6af - Browse repository at this point
Copy the full SHA 541e6afView commit details -
Configuration menu - View commit details
-
Copy full SHA for b82fb96 - Browse repository at this point
Copy the full SHA b82fb96View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8de0e7 - Browse repository at this point
Copy the full SHA f8de0e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27007b4 - Browse repository at this point
Copy the full SHA 27007b4View commit details -
Remove local ESLint rule one-namespace-per-file
Now that we are modules, there's no reason to ban multiple namespaces per file; each file is its own scope and declaring a namespace won't merge it into any other files.
Configuration menu - View commit details
-
Copy full SHA for 2f8996f - Browse repository at this point
Copy the full SHA 2f8996fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a330c00 - Browse repository at this point
Copy the full SHA a330c00View commit details -
Configuration menu - View commit details
-
Copy full SHA for 74b460e - Browse repository at this point
Copy the full SHA 74b460eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a1622c - Browse repository at this point
Copy the full SHA 6a1622cView commit details -
Fix all internal JSDoc comments
If these are regular comments, then they won't appear in our d.ts files. But, now we are relying on api-extractor to produce out final merged d.ts files, so they need to be present in the "input" d.ts files, meaning they have to be JSDoc comments. These comments only work today because all of our builds load their TS files from scratch, so they see the actual source files and their non-JSDoc comments. The comments also need to be attached to a declaration, not floating, otherwise they won't be used by api-extractor, so move them if needed.
Configuration menu - View commit details
-
Copy full SHA for f7db5bb - Browse repository at this point
Copy the full SHA f7db5bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 58ca2d5 - Browse repository at this point
Copy the full SHA 58ca2d5View commit details -
Remove typescriptServices project
This project is the same as the (soon added) typescript project.
Configuration menu - View commit details
-
Copy full SHA for 0f84ad7 - Browse repository at this point
Copy the full SHA 0f84ad7View commit details -
Remove generation of protocol.d.ts
This file is unreferenced, and just a subset of tsserverlibrary.d.ts. What I've heard is that this was intended to be used to detect protocol chagnes, but, no test actually references it, and we have separate infrastructure in place to ensure that protocol changes get the attention they need.
Configuration menu - View commit details
-
Copy full SHA for 33fae66 - Browse repository at this point
Copy the full SHA 33fae66View commit details -
Configuration menu - View commit details
-
Copy full SHA for d9d9c2f - Browse repository at this point
Copy the full SHA d9d9c2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for c6a71de - Browse repository at this point
Copy the full SHA c6a71deView commit details -
Configuration menu - View commit details
-
Copy full SHA for bf4f6a1 - Browse repository at this point
Copy the full SHA bf4f6a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b39db0 - Browse repository at this point
Copy the full SHA 9b39db0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 174aa54 - Browse repository at this point
Copy the full SHA 174aa54View commit details -
This configures the existing build tasks to use esbuild by defualt. If using the plain files is desired, passing `--bundle=false` will build using plain files and still produce a runnable system.
Configuration menu - View commit details
-
Copy full SHA for 11fe713 - Browse repository at this point
Copy the full SHA 11fe713View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a99735 - Browse repository at this point
Copy the full SHA 5a99735View commit details -
Configuration menu - View commit details
-
Copy full SHA for b1eefde - Browse repository at this point
Copy the full SHA b1eefdeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 632c477 - Browse repository at this point
Copy the full SHA 632c477View commit details -
Configuration menu - View commit details
-
Copy full SHA for 87f96d9 - Browse repository at this point
Copy the full SHA 87f96d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26dd68f - Browse repository at this point
Copy the full SHA 26dd68fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8205c4d - Browse repository at this point
Copy the full SHA 8205c4dView commit details -
Use jsonc-parser instead of LKG compiler in build
Profiling the build roughly half of the time spent loading the build is spent importing typescript.js, for this one function. Since this stack is already adding required devDependencies, switch readJson to use jsonc-parser (published by the VS Code team), rather than importing the entire LKG typescript.js library.
Configuration menu - View commit details
-
Copy full SHA for c81df40 - Browse repository at this point
Copy the full SHA c81df40View commit details -
Rename Gulpfile to Herebyfile for improved git diff
The next commit will switch the build system, but git doesn't detect that the two config files are related.
Configuration menu - View commit details
-
Copy full SHA for 1ce53cd - Browse repository at this point
Copy the full SHA 1ce53cdView commit details -
This eliminates a significant number of dependencies, eliminating all npm audit issues, speeding up `npm ci` by 20%, and overall making the build faster (faster startup, direct code is faster than streams, etc) and clearer to understand. I'm finding it much easier to make build changes for the module transform with this; I can more clearly indicate task dependencies and prevent running tasks that don't need to be run. Given we're changing our build process entirely (new deps, new steps), it seems like this is a good time to change things up.
Configuration menu - View commit details
-
Copy full SHA for d69f45d - Browse repository at this point
Copy the full SHA d69f45dView commit details -
Update baselines for corrected line endings in lib files
The old gulpfile produced lib.d.ts files with mixed newlines, thanks to the files containing CRLF, but the gulp streams adding in LF. Now they're all LF, which matches every other file in built / lib, but our baselines are sensitive to this. Rerun the tests and accept them.
Configuration menu - View commit details
-
Copy full SHA for 8d90d31 - Browse repository at this point
Copy the full SHA 8d90d31View commit details -
Don't use needsUpdate for quick tasks
needsUpdate may be wrong when the branch changes; these ones are now so fast thanks to being pure JS that we can just always run their contents and be sure that the outputs are right.
Configuration menu - View commit details
-
Copy full SHA for add890f - Browse repository at this point
Copy the full SHA add890fView commit details -
This file is pretty much the same as it was when it was committed in 2017; these days, we can write clearer code with async/await and new FS APIs.
Configuration menu - View commit details
-
Copy full SHA for f26b10a - Browse repository at this point
Copy the full SHA f26b10aView commit details -
Switch to faster XML parsing library for localize
Switching to a newer/faster/maintained library speeds up this script by more than 50%. We can also eliminate some any and such in the process.
Configuration menu - View commit details
-
Copy full SHA for 8507e37 - Browse repository at this point
Copy the full SHA 8507e37View commit details -
Configuration menu - View commit details
-
Copy full SHA for f57936f - Browse repository at this point
Copy the full SHA f57936fView commit details -
If our build scripts target Node 10+, we can use the builtin mkdir function in recursive mode instead.
Configuration menu - View commit details
-
Copy full SHA for 1eeba39 - Browse repository at this point
Copy the full SHA 1eeba39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fc68d6 - Browse repository at this point
Copy the full SHA 8fc68d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 157a893 - Browse repository at this point
Copy the full SHA 157a893View commit details -
Backport changes from monaco-editor to createPlaygroundBuild
However, this script appears to not work as designed; the playground instead requests tsWorker.js, a file that we can't produce in our repo. Probably, we should just remove this script.
Configuration menu - View commit details
-
Copy full SHA for a6eb3d8 - Browse repository at this point
Copy the full SHA a6eb3d8View commit details