kubernetes/test/typecheck
Davanum Srinivas dfd8e4e467
Enable selinux tags in make targets
In 24d105995d, a fix was made in bazel
based builds to ensure that we add `selinux` tag when we build all
binaries especially the `kubelet`. We need to do the same for in our
hack scripts so things like `make release` will work properly as well.

Some scripts use `GOFLAGS=-tags=providerless` for example, So we should
support the tags to be specified in GOFLAGS as well. We parse out the
tags from there and ensure selinux is added to the list of tags we used
for building the binaries. Note that we add our own `-tags` with the
full set of tags and since we specify our parameter at the end, ours
full list takes precendence
2020-01-31 15:48:44 -05:00
..
BUILD Update srcimporter.go to golang/go@5f0a9ba 2018-10-25 11:27:53 -07:00
main_test.go typecheck support setting tags, skipping test code, and ignoring directories 2019-12-04 22:30:23 -08:00
main.go Enable selinux tags in make targets 2020-01-31 15:48:44 -05: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.