kubernetes/test/typecheck
Sascha Grunert b8400cbc36
Reduce the number of parallel typechecks to 2
The PR https://github.com/kubernetes/kubernetes/pull/104575 introduces
some intermediate types which makes the 32GiB memory machine kill the
typecheck process. To resolve that issue and make the test more robust,
we now reduce the amount of parallel typechecks to run to `2`.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2021-08-26 16:53:13 +02:00
..
testdata Rewrite typecheck against x/tools/go/packages 2020-06-26 11:12:06 -07:00
main_test.go Rewrite typecheck against x/tools/go/packages 2020-06-26 11:12:06 -07:00
main.go Reduce the number of parallel typechecks to 2 2021-08-26 16:53:13 +02:00
OWNERS add myself to typecheck / go-srcimporter owners, move rmmh to emeritus 2019-10-16 15:17:22 -07:00
README Correct owner's contact 2019-02-16 09:19:34 +07:00

Typecheck does cross-platform typechecking of source code for all Go build
platforms.

The primary benefit is speed: a full Kubernetes cross-build takes 20 minutes
and >40GB of RAM, while this takes under 2 minutes and <8GB of RAM.

It uses Go's built-in parsing and typechecking libraries (go/parser and
go/types), which unfortunately are not what the go compiler uses. Occasional
mismatches will occur, but overall they correspond closely.

Failures can be ignored if they don't block the build:

Things go/types errors on that go build doesn't:
  True errors (according to the spec):
    These should be fixed whenever possible. Ignore if a fix isn't possible
    or is in progress (e.g., vendored code).
    - unused variables in closures
  False errors:
    These should be ignored and reported upstream if applicable.
    - type checking mismatches between staging and generated types
Things go build fails on that we don't:
  - CGo errors, including syntax and linker errors.