Equivalent of rust's "crater" (test changes against public code to see what visibly breaks) #720
-
I was looking at Why a port instead of a rewrite? What's the difference? (#410) and it occurred to me to wonder what tooling you have that is roughly analogous to Rust's crater ("Run experiments across parts of the Rust ecosystem!"), which runs experiments (usually comparing I realize this is substantially more challenging for TypeScript because
But I'm assuming there's something kicking around that's used to check for breakage of code "in the wild", despite the above challenges. But nobody seems to have used the word crater in issues for either this repository or typescript's, nor in these discussions, prior to now. So, again: what do you have to check for breakages in a sampling of the ecosystem? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
We have an extensive test suite with a large number of baselines. You can see existing PRs and how they affect baselines as we improve compatibility. https://github.com/microsoft/TypeScript-error-deltas exists to let us query known-important repos but also an arbitrary of "top" TypeScript repos (as given by GitHub); this tool automatically runs and compares the outputs of two different builds of TypeScript. It's effectively an equivalent of
The CLI is easy to test, but we know already that the API will break and we're working to get that going. For API breaks themselves (outside of a major break like this one), we baseline the API surface itself and inspect it when it changes. Look for
TypeScript does not affect runtime behavior outside a set of non-ECMAScript standard features, which are extremely well tested. The type system's behavior cannot affect runtime code. |
Beta Was this translation helpful? Give feedback.
We have an extensive test suite with a large number of baselines. You can see existing PRs and how they affect baselines as we improve compatibility.
https://github.com/microsoft/TypeScript-error-deltas exists to let us query known-important repos but also an arbitrary of "top"…