Re: run pgindent on a regular basis / scripted manner
Andres Freund <andres@anarazel.de>
Attachments
- v2-0001-Add-meson-targets-to-run-pgindent.patch (text/x-diff)
Hi, On 2023-10-16 20:45:00 -0400, Tom Lane wrote: > Peter Geoghegan <pg@bowt.ie> writes: > 2. We could raise awareness of this issue by adding indent verification > to CI testing. I hesitate to suggest that, though, for a couple of > reasons: > 2a. It seems fairly expensive, though I might be misjudging. Compared to other things it's not that expensive. On my workstation, which is slower on a per-core basis than CI, a whole tree pgindent --silent-diff takes 6.8s. For That's doing things serially, it shouldn't be that hard to parallelize the per-file processing. For comparison, the current compiler warnings task takes 6-15min, depending on the state of the ccache "database". Even when ccache is primed, running cpluspluscheck or headerscheck is ~30s each. Adding a few more seconds for an indentation check wouldn't be a problem. > 2b. It's often pretty handy to submit patches that aren't fully > indent-clean; I have such a patch in flight right now at [1]. > > 2b could be ameliorated by making the indent check be a separate > test process that doesn't obscure the results of other testing. The compiler warnings task already executes a number of tests even if prior tests have failed (to be able to find compiler warnings in different compilers at once). Adding pgindent cleanliness to that would be fairly simple. I still think that one of the more important things we ought to do is to make it trivial to check if code is correctly indented and reindent it for the user. I've posted a preliminary patch to add a 'indent-tree' target a few months back, at https://postgr.es/m/20230527184201.2zdorrijg2inqt6v%40alap3.anarazel.de I've updated that patch, now it has - indent-tree, reindents the entire tree - indent-head, which pgindent --commit=HEAD - indent-check, fails if the tree isn't correctly indented - indent-diff, like indent-check, but also shows the diff If we tought pgindent to emit the list of files it processes to a dependency file, we could make it cheap to call indent-check repeatedly, by teaching meson/ninja to not reinvoke it if the input files haven't changed. Personally that'd make it more bearable to script indentation checks to happen frequently. I'll look into writing a command to update typedefs.list with all the local changes. Greetings, Andres Freund
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix comment from commit 22655aa231.
- 01529c704008 17.0 cited
-
Add a few recent commits to .git-blame-ignore-revs.
- 0df7d1da40e3 17.0 landed
-
Pre-beta2 mechanical code beautification.
- b334612b8aee 16.0 landed
-
Pre-beta mechanical code beautification.
- 0245f8db36f3 16.0 landed
-
Make agreed-on updates in perltidy options.
- df6b19fbbc20 16.0 landed
-
Remove obsolete pgindent options --code-base and --build
- b16259b3c189 16.0 landed
-
Integrate pg_bsd_indent into our build/test infrastructure.
- 156c049beed9 16.0 landed
-
Sync pg_bsd_indent's copyright notices with Postgres practice.
- b44e5fced3e5 16.0 landed
-
Import pg_bsd_indent sources.
- 4e831f4cee14 16.0 landed
-
pgindent: filter files for the --commit option
- dab07e8c6896 16.0 landed
-
pgindent: more ways to find files to indent
- 068a243b7771 16.0 landed
-
Fix pgindent --show-diff option.
- 62e1e28bf769 16.0 cited
-
Add non-destructive modes to pgindent
- b90f0b57474e 16.0 landed
-
Initial pgindent run with pg_bsd_indent version 2.0.
- e3860ffa4dd0 10.0 cited