In parallel, we've also been improving our test infrastructure in ways similar to Crater. In the past few cycles we've added a bunch of tests which only exist to test compatibility - all of DefinitelyTyped is now tested on our builds, and a number of community projects that we've produced build scripts for are built as well. I would _love_ to be able to crawl GitHub and just build arbitrary stuff, but TS/JS build chains are almost never a simple `npm run build`, so the best we can get is, approximately, loading a repo into an editor and checking for a crash (which we do have a tool doing). The rust ecosystem's dogma around using `cargo build` and `cargo test` to handle _everything_ really does help make what they're doing possible.
It is pretty standard in the Rust community for crates to use stable, beta, and nightly in their CI. I know testing is different than development, especially for using new features but I'm sure it does help.
(What package manager allows for your multiple rustc versions? Or is it a bespoke solution?)
Fortunately the (IMO superior) yarn package manager does.
"devDependencies": {
"typescript": "~3.6.0",
"typescript-beta": "npm:typescript@3.7.0-beta"
}
Instead of using node_modules/.bin/tsc, use node_modules/typescript-beta/bin/tscAnother example is Emscripten, which ships a new version every 1-2 weeks or so (which includes latest development LLVM+Clang). Most indications suggest that cadence works well for us, but it does have some risks.
Two of our toolchain engineers gave a talk on this at CppCon. Check it out if you're interested: https://www.youtube.com/watch?v=zh91if43QLM
Those haven't been released in Android yet, but they should be in the next quarterly release of Android. My understanding from chatting with the Android team is that though this is a weakened mitigation, it is not an exploit.
I've been involved in a lot of projects that rely entirely on unit tests and skimp on integration tests. Invariably the devs make up for this by doing a lot of manual testing, even though it is very time and labor intensive. People significantly underestimate the safety and velocity benefits of a solid suite of integration tests