The go-ci gate is 90 and the aggregate passes, but it is carrying two packages that do not. Measured on develop at v1.11.4, go1.26.4, go test -coverprofile:
| Package |
Coverage |
internal/clock |
100.0% |
authcore (root) |
98.1% |
auth/username |
97.5% |
auth/password |
95.8% |
auth/apikey |
94.6% |
auth/jwt |
94.4% |
auth/email |
90.9% |
auth/oauth |
87.7% |
internal/keymanager |
85.7% |
| total |
91.0% |
The two under the bar are the two I would least like to be thin: the OIDC client, which parses JWKS, validates ID tokens and talks to remote endpoints, and the package that generates and persists the Ed25519 keys. A 100% internal/clock is what is paying for them.
Worth deciding as part of this: whether the gate should be per-package rather than aggregate. An aggregate gate on a library whose packages differ this much in risk rewards covering the easy ones.
I am not proposing a coverage-chasing sweep. The useful version of this is to look at what is actually uncovered in those two packages — my expectation is that it is mostly error paths, which for a security library is the half that matters.
The
go-cigate is 90 and the aggregate passes, but it is carrying two packages that do not. Measured on develop at v1.11.4, go1.26.4,go test -coverprofile:internal/clockauthcore(root)auth/usernameauth/passwordauth/apikeyauth/jwtauth/emailauth/oauthinternal/keymanagerThe two under the bar are the two I would least like to be thin: the OIDC client, which parses JWKS, validates ID tokens and talks to remote endpoints, and the package that generates and persists the Ed25519 keys. A 100%
internal/clockis what is paying for them.Worth deciding as part of this: whether the gate should be per-package rather than aggregate. An aggregate gate on a library whose packages differ this much in risk rewards covering the easy ones.
I am not proposing a coverage-chasing sweep. The useful version of this is to look at what is actually uncovered in those two packages — my expectation is that it is mostly error paths, which for a security library is the half that matters.