The infrastructure for a lint to register itself leans on Go's magical init function which is automatically executed at program startup.
However, the init function is not executed if the package is not referred to by the main program, which is why zlint.go features a short list of imports performed solely for the side effect of triggering these init functions.
Unfortunately, we missed this import when building the CABF SMIME framework. The cause is that almost all of the testing, tooling, and integration tests are focused on either the library usage of Zlint or on testing lints against the corpus of certs scraped from the wild. Such a CLI integration test would be a valuable thing to consider spending time on, however I believe it is out of scope of this particularly pernicious issue.
Thank you for your patience @cardonator
The infrastructure for a lint to register itself leans on Go's magical
init
function which is automatically executed at program startup.However, the
init
function is not executed if the package is not referred to by the main program, which is whyzlint.go
features a short list of imports performed solely for the side effect of triggering theseinit
functions.Unfortunately, we missed this import when building the CABF SMIME framework. The cause is that almost all of the testing, tooling, and integration tests are focused on either the library usage of Zlint or on testing lints against the corpus of certs scraped from the wild. Such a CLI integration test would be a valuable thing to consider spending time on, however I believe it is out of scope of this particularly pernicious issue.
Resolves #759