On 2026-09-22 Tu 3:10 AM, Peter Eisentraut wrote:
Previously discussed in [0].  People seemed to generally like the idea of running pgindent in CI but didn't want the job to fail outright if there were violations.  My proposal here is to use a combination of GitHub Actions features [1] to create job annotations and step summaries to create some kind of warning output.  I have attached an example screenshot.

I also added a git whitespace check in the same way.  Additional formatting checks like pgperltidy, Python stuff, etc. could be added similarly.

(I imagine there could be some cfbot integration that represents these annotations in a non-threatening way, but I have not looked into that at all.)

One surprise from this is that this generates a massive pgindent diff against the current tree, because there are a bunch of entries missing or wrong in src/tools/pgindent/exclude_file_patterns.  I guess most people don't see this because these are mostly generated files, which would get reindented but then ignored via gitignore, but if you run pgindent --check --diff, then this will show up.

I don't exactly know how the buildfarm member koel gets away with this. The notes say "Runs pgindent --show-diff", but that is not an actual existing option.  One evident difference is that koel runs meson, but I have added this to the existing CompilerWarnings job and reused the tree from the headerscheck step, which uses autoconf.  Anyway, maybe this could be improved sometime to reduce variability, but for now I have just included a patch to update exclude_file_patterns as needed.


The notes are out of date re --show-diff.

You can see what koel does - it's a special buildfarm module at https://github.com/PGBuildFarm/client-code/blob/main/PGBuild/Modules/CheckIndent.pm

It just runs:

   src/tools/pgindent/pgindent --diff --check .

Of course, that's against a pure source tree. The build tree is elsewhere and the module never points pgindent at it. Even if koel were using configure/make, I would have set it up to do vpath builds.

Note that you can specify extra exclude files on pgindent's command line as well, so if your builddir is inside your source tree it would make sense to specify one pointing at the builddir. That's not going to help you if you build in-tree using configure/make. I guess I would say don't do that and then run pgindent.


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com



Reply via email to