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
Remove codechecker external #6118
Remove codechecker external #6118
Conversation
The tests are being triggered in jenkins.
|
@gartung , can you please confirm if we are using it and if there are any objections on dropping it? |
It is needed for https://github.com/cms-externals/CMSCodeChecker. |
In general I'm fine with dropping stuff that was never used. Is the (intended) functionality of CMSCodeChecker essentially included in the static analyzer (that is inside CMSSW)? @Dr15Jones, do you have any thoughts? |
CMSCodeChecker was a clang-formatter that rewrites getByToken with get in place. I had it working for every case in the code base. It was never integrated because there was an objection (from David Lange?) to keeping a modified copy of the clang code-checker subsystem. |
If the problem is fixing it for new versions of clang I can do this. |
I can’t recall objecting, but maybe?… but indeed externals in a random person’s GitHub area are probably not what we want?
Anyway, does clang-format/tidy not support plugins for this sort of thing?
On Jul 28, 2020, at 5:17 PM, Patrick Gartung <notifications@github.com<mailto:notifications@github.com>> wrote:
CMSCodeChecker was a clang-formatter that rewrites getByHandle in place. I had it working for every case in the code base. It was never integrated because there was an objection (from David Lange?) to keeping a modified copy of the clang code-checker subsystem.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#6118 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABGPFQ5F4Z5VFUFAN7TRX7LR53TYBANCNFSM4PKTSEKQ>.
|
Unfortunately no. It is like the custom attributes that we add to clang. The only way to add it is to add the source file.
|
It was only ~2 months development time on my part so feel free to abandon it. |
If the thing is used I'm fine with keeping it there two problems with it:
There was the benefit of reading it and trying to understand how it works that once you start understand it you can write your own checks. Not that I learned it but I recall that was the general idea of it |
I think we are saying the same thing in different ways. Perhaps one should look at different integration mechanisms for including this?
On Jul 28, 2020, at 5:28 PM, Patrick Gartung <notifications@github.com<mailto:notifications@github.com>> wrote:
Unfortunately no. It is like the custom attributes that we add to clang. The only way to add it is to add the source file.
From: David Lange <notifications@github.com<mailto:notifications@github.com>>
Reply-To: cms-sw/cmsdist <reply@reply.github.com<mailto:reply@reply.github.com>>
Date: Tuesday, July 28, 2020 at 10:26 AM
To: cms-sw/cmsdist <cmsdist@noreply.github.com<mailto:cmsdist@noreply.github.com>>
Cc: Patrick E Gartung <gartung@fnal.gov<mailto:gartung@fnal.gov>>, Mention <mention@noreply.github.com<mailto:mention@noreply.github.com>>
Subject: Re: [cms-sw/cmsdist] Remove codechecker external (#6118)
I can’t recall objecting, but maybe?… but indeed externals in a random person’s GitHub area are probably not what we want?
Anyway, does clang-format/tidy not support plugins for this sort of thing?
On Jul 28, 2020, at 5:17 PM, Patrick Gartung <notifications@github.com<mailto:notifications@github.com><mailto:notifications@github.com%3E%3E wrote:
CMSCodeChecker was a clang-formatter that rewrites getByHandle in place. I had it working for every case in the code base. It was never integrated because there was an objection (from David Lange?) to keeping a modified copy of the clang code-checker subsystem.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#6118 (comment)><https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_cms-2Dsw_cmsdist_pull_6118-23issuecomment-2D665102257-253E&d=DwQFaQ&c=gRgGjJ3BkIsb5y6s49QqsA&r=aZ0rCqVqzdRNtV7duJqHzA&m=Zk7VzAiQF_PsfKENCQdhCbaFira5HBCcARgkE9VbKBU&s=idl3ZNUqRoW5M5OiG5bkFLNvTEYChygN5dmlWyGApEM&e=>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABGPFQ5F4Z5VFUFAN7TRX7LR53TYBANCNFSM4PKTSEKQ><https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ABGPFQ5F4Z5VFUFAN7TRX7LR53TYBANCNFSM4PKTSEKQ-253E&d=DwQFaQ&c=gRgGjJ3BkIsb5y6s49QqsA&r=aZ0rCqVqzdRNtV7duJqHzA&m=Zk7VzAiQF_PsfKENCQdhCbaFira5HBCcARgkE9VbKBU&s=QsOZpKB-PYEtoD-v0WTq9ot2qVVFZ1RfG4Mc4x3mlaE&e=>.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_cms-2Dsw_cmsdist_pull_6118-23issuecomment-2D665106914&d=DwMFaQ&c=gRgGjJ3BkIsb5y6s49QqsA&r=aZ0rCqVqzdRNtV7duJqHzA&m=Zk7VzAiQF_PsfKENCQdhCbaFira5HBCcARgkE9VbKBU&s=xNH2_pX31vC5Q48QbhJLCezBAFNeIWqLHvNo4M2xu5I&e=>, or unsubscribe<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ABAX4WBGAT365CNRW4X3TUTR53UY5ANCNFSM4PKTSEKQ&d=DwMFaQ&c=gRgGjJ3BkIsb5y6s49QqsA&r=aZ0rCqVqzdRNtV7duJqHzA&m=Zk7VzAiQF_PsfKENCQdhCbaFira5HBCcARgkE9VbKBU&s=-mQaiMuGXNC68RuDerS5X4HHOISnhq0aH7CCZrIhvbI&e=>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#6118 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABGPFQ6ZJ5NBSRMOZEUBOUDR53VATANCNFSM4PKTSEKQ>.
|
I believe the functionality of rewriting specific functions calls could be handy in the future. (did we actually run the |
Looking at the changes @mrodozov made for llvm9, it seems like it might be better to just add the one source file to the llvm/clang tree and build it there. |
For example, yes. This should be pretty stable and perhaps something to expand in the future.
On Jul 28, 2020, at 5:41 PM, Patrick Gartung <notifications@github.com<mailto:notifications@github.com>> wrote:
Looking at the changes @mrodozov<https://github.com/mrodozov> made for llvm9, it seems like it might be better to just add the one source file to the llvm/clang tree and build it there.
cms-externals/CMSCodeChecker@master...mrodozov:changes-for-llvm9<cms-externals/CMSCodeChecker@master...mrodozov:changes-for-llvm9>
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<#6118 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABGPFQY2YQKHPSMQ7F7LNHLR53WS3ANCNFSM4PKTSEKQ>.
|
That was what @Dr15Jones asked me to implement. It was never run and committed. I had it running on every example in the code at the time. Is the getByToken() -> get() migration happening now? |
@mrodozov please ask if you have problems with the interface changes. I could have saved you some frustrations. |
No, there is no migration going on (little point in doing it manually). I guess the this checker fell through the cracks, and we should think it again. Ideally the tool should be used exactly along clang-tidy (in PR checks and automated code migrations). |
Looking at the tests I see some of the warnings expected from the checker
This code check will rewrite the code as suggested --> getByToken is replace by getHandle |
If we can figure out how to add this source to our fork of llvm/clang, I am OK with removing the stand alone checker and toolfile. |
abort |
Comparison is ready Comparison Summary:
|
@mrodozov go ahead and merge this to remove the standalone clang-tidy. |
please test |
The tests are being triggered in jenkins.
|
+1 |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
+externals |
This pull request is fully signed and it will be integrated in one of the next IB/CMSSW_11_2_X/master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2) |
sorry I saw this too late. anyway, it's merged |
please test
the codechecker external is part of llvm but it was copied from older version of llvm and now every time
we change llvm we need also to adjust it, although we already are using it from the llvm for cmssw code-checks and format.
last time this adjustment took me long enough until I figured this is already part of llvm.
this externals is also the only reason (IIRC) why we can't conclude #5627 - it has custom cmake config to make it a standalone tool (although it's a part of llvm) which needs to be redone entirely so to work with llvm if we conclude #5627
no other external is using it nor any part of cmssw, so it should not break anything