-
Notifications
You must be signed in to change notification settings - Fork 2.1k
build system: enable support for static analysis #21411
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
Merged
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
0069a6b
build system: enable support for static analysis
maribu e8edd95
dist/tools/compile_commands: add awareness for -fanalyzer
maribu eb6127e
dist/tools/zsh-completion: add awareness for STATIC_ANALYSIS
maribu 0af3fa3
build system: Enable static analysis in the CI
maribu File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
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.
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.
Would it make sense to check it against
QUICKBUILD_BOARDS
? (As in: check thatBOARDS_CI_STATIC_ANALYSIS
is actually a subset and print a warning if it's not?) Maybe at some point that variable gets changed in.murdock
and this list here will be forgotten.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.
Hmm, this would not necessarily be an issue if not. It would only mean that static analysis may fail only in the full Murdock run prior merge.
It would probably be more convenient to keep them aligned, so that response time is faster.
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.
What exactly do you mean with "more convenient to keep them aligned"?
We could do something like this:
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.
I used the following:
which would result in the following warning:
The problem is that one variable is from the shell script
.murdock
, the other fromMakefile.include
.If there would be a board for in
BOARDS_CI_STATIC_ANALYSIS
that is not a quick build board, a contributor would only notice the failure on the final Murdock run, after a PR has been ACKed and send to the merge queue.But having PRs being rejected last minuted is by design, as otherwise the quick build Murdock run wouldn't be quick anymore. (And the quick build board are picked in a way to be as representative as possible, so that the chance of a build failure in the long Murdock run while it succeeded the short one is pretty low, except for out of memory issues.)
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.
Moving forward: I think adding a check to ensure that
BOARDS_CI_STATIC_ANALYSIS
is a subset ofQUICKBUILD_BOARDS
will probably produce more maintainability overhead than benefit. If we get annoyed with static analysis failing last minute too often, we can update either theQUICKBUILD_BOARDS
or theBOARDS_CI_STATIC_ANALYSIS
to overlap again and better represent the boards we have.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.
I thougt about this some more and considering we know who to poke when it causes issues, we can go forward with this solution 😋
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.
Sounds fair :-)