nogo: adjust include/exclude rules #124155
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As of #79929, we have been using
only_files
using the patterncockroach/pkg
in order to only run lints against first-party code. While this has worked locally, this doesn't work in remote execution where the structure of the staging directory for the code differs. Instead of trying to allow-list first-party code, we instead deny-list third-party code using the name "external". This works for most third-party dependencies except for the cgo code, which need some special handling.Separately, it is unfortunate that it's difficult to match exclusively against first-party code (see #124154). I will look into whether we can submit a change upstream to address this.
To avoid future packages accidentally skipping lints due to this change, I added a separate lint check to make sure no Go package names end in the string
external
.Epic: CRDB-8308
Release note: None