Re: run pgindent on a regular basis / scripted manner
Tom Lane <tgl@sss.pgh.pa.us>
Andres Freund <andres@anarazel.de> writes: > On 2020-08-15 13:44:34 -0400, Tom Lane wrote: >> Andres Freund <andres@anarazel.de> writes: >>> One thing is that some here are actively against manually adding entries >>> to typedefs.list. >> I've been of the opinion that it's pointless to do so under the current >> regime where (a) only a few people do that and (b) we only officially >> re-indent once a year anyway. When I want to manually run pgindent, >> I always pull down a fresh typedefs.list from the buildfarm, which is >> reasonably up-to-date regardless of what people added or didn't add, >> and then add any new typedefs from my current patch to that out-of-tree >> copy. > Well, properly indenting new code still is worthwhile. And once you go > through the trouble of adding the typedefs locally, I don't really see > the reason not to also include them in the commit. Yeah, I'm quite religious about making sure my commits have been through pgindent already (mainly to reduce subsequent "git blame" noise). However, relying on manual updates to the in-tree typedefs.list only works if every committer is equally religious about it. They're not; else we'd not be having this discussion. The workflow I describe above is not dependent on how careful everybody else is, which is why I prefer it. I think that the main new idea that's come out of this thread so far is that very frequent reindents would be as good, maybe better, as once-a-year reindents in terms of the amount of rebasing pain they cause for not-yet-committed patches. If we can fix it so that any mis-indented commit is quickly corrected, then rebasing would only be needed in places that were changed anyway. So it seems like that would be OK as a new project policy if we can make it happen. However, I don't see any way to make it happen like that without more-or-less automated reindents and typedefs.list updates, and that remains a bit scary. I did just have an idea that seems to ameliorate the scariness a good bit: allow the reindent bot to auto-commit its results only if the only lines it's changing are ones that were touched by commits since the last auto-reindent. Otherwise punt and ask a human to review the results. Not sure how hard that is to implement, though. Another good safety check would be to not proceed unless the latest typedefs list available from the buildfarm is newer than the last commit --- then we won't mess up recent commits whose typedefs are not in the list yet. regards, tom lane
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