-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add lint and go generate steps to CI #254
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
helsaawy
changed the title
add lint and go gen to CI
Add lint and go generate steps to CI
Aug 10, 2022
helsaawy
force-pushed
the
he/ci
branch
10 times, most recently
from
August 11, 2022 23:34
6557272
to
9e1dba7
Compare
helsaawy
force-pushed
the
he/ci
branch
4 times, most recently
from
August 12, 2022 00:05
01a6ff2
to
cf213fa
Compare
helsaawy
force-pushed
the
he/ci
branch
12 times, most recently
from
August 14, 2022 21:47
7ce5344
to
00a9dca
Compare
helsaawy
force-pushed
the
he/ci
branch
9 times, most recently
from
August 15, 2022 19:28
228415a
to
57d377b
Compare
anmaxvl
reviewed
Aug 18, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a few comments
anmaxvl
approved these changes
Aug 21, 2022
dcantah
reviewed
Aug 22, 2022
dcantah
reviewed
Aug 22, 2022
dcantah
reviewed
Aug 22, 2022
dcantah
reviewed
Aug 22, 2022
Add CI step to verify `go generate` was run on repo. Add linter stage to CI along with linter config file, `.golangci.yml`. Will likely prefer revive over static-check. Updated README Contributing section on linting requirements. Added sequence ordering to make sure lint and go generate stages run before tests and build. This way, build and tests are not run on code that could potentially: 1. not build due to `gofmt` issues; 2. contain bugs; 3. have to be re-submitted after issues are fixed; or 4. contain outdated Win32 syscall or other auto-generated files. Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>
Code changes to satisfy linters: - Ran `gofmt -s -w` on repo. - Broke up long lines. - When possible, changed names with incorrect initialism formatting - Added exceptions for exported variables. - Added exceptions for ALL_CAPS_WITH_UNDERSCORES code. - Switched to using `windows` or `syscall` definitions if possible; especially if some constants were unused. - Added `_ =` to satisfy error linter, and acknowledge that errors are being ignored. - Switched to using `errors.Is` and `As` in places, elsewhere added exceptions if error value was known to be `syscall.Errno`. - Removed bare returns. - Prevented variables from being overshadowed in certain places (ignoring cases of overshadowing `err`). - Renamed variables and functions (eg, `len`, `eventMetadata.bytes`) to prevent shadowing pre-built functions and imported pacakges. - Removed unused method receivers. - Added exceptions to certain unused (unexported) constants and functions. - Deleted unused `once` from `pkg/etw.providerMap`. - Renamed `noop.go` files to `main_other.go` or `doc.go`, to better fit style recommendations. - Added exceptions for non-secure use of SHA1 and weak crypto libraries. - Replaced `ioutil` with `io` and `os` (and `t.TempDir` in tests). - Added fully exhaustive checks for `switch` statements in `pkg/etw`. - Defined constant strings for `tools/mkwinsyscall`. - Removed unnecessary conversions. - Made sure `context.Cancel` was called. Additionally, added `//go:build windows" constraints on files with unexported code, since linter will complain about unused code on non-Windows platforms. Added a stub `main() {}` for `mkwinsyscall` for non-Windows builds, just in case `//go:generate` directives are added to OS-agnostic files. Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>
Moved HVSocket fuzzing tests to separate file with go 1.18 build constraint. Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>
dcantah
approved these changes
Aug 23, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Changes are broken out into two commits
The first adds config files, updates
ci.yml
, adds the git attributes, and updates the README.The second updates the repo to pass the linting stage.
Add CI step to verify
go generate
was run on repo.Add linter stage to CI along with linter config file,
.golangci.yml
.Updated
README.md
Contributing section on linting requirements.Added
.gitattributes
file to prevent issues with checkout outCRLF
andgofmt
Added sequence ordering to make sure lint and go generate stages run before tests and build.
This way, build and tests are not run on code that could potentially:
gofmt
issues;