Thread (13 messages) flat view 13 messages, 5 authors, 21d ago

Re: [PATCH 2/2] ci: bump ubuntu image version for static-analysis job

From: Jeff King <hidden>
Date: 2026-09-05 13:51:07

On Tue, Aug 11, 2026 at 07:02:42AM +0200, Patrick Steinhardt wrote:
On Mon, Aug 10, 2026 at 10:52:21AM -0700, Junio C Hamano wrote:
quoted
Patrick Steinhardt [off-list ref] writes:
quoted
Taking a step back, I do have to wonder whether the Cocci files have
been adding any kind of value in the first place. I myself introduced
some of them in contexts where I made sweeping changes to our APIs, so
that any in-flight topics can be trivially adjusted via Coccinelle. But
I very much doubt that anyone ever used those to adapt their in-flight
patch series at all.

So maybe we should just not do that anymore?
We still do catch when somebody writes "if (a == NULL)", no?
Yes! What I was trying to say is that we maybe shouldn't add Cocci files
for temporary migrations anymore, but still keep (and extend) them for
evertyhing where we want to consistently catch antipatterns going
forward.

Overall I have a feeling that I'm overthinking this though :) Maybe it
ultimately doesn't matter too much and we just continue what we're doing
and then clean up every once in a while when too much cruft has
accumulated.
FWIW, I'd be happy to avoid coccinelle for transitions. The most
important thing is for transitions to be brought to the developer's
attention at all, so we don't quietly produce broken programs or
continue adding callers of interfaces we're trying to get rid of.

But bringing attention is often done trivially via the compiler (e.g.,
changing names or interfaces). Coccinelle can further suggest the actual
fix, but most of the time that fix is either obvious, or easily
explained in the commit message (and I feel like if any project can do
so, we should be able to assume people can use pickaxe/blame to find the
source of a change).

So coccinelle can save some work in these cases, but I think it is a net
loss overall compared to both the effort in writing the semantic
patches, as well as the operational headaches.

I do think there's still enough value in the enforcement of rules that
can't easily be caught by the compiler. Style bits like "a == NULL" are
an obvious example, but I think we have some "we offer functions X and
Y, but you should usually use X unless you have a good reason". Though
maybe even some of those can be simplified (stuff like oidclr() should
be preferred over hashclr(), but maybe we are at a point where hashclr()
can become a private function?).

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help