Re: run pgindent on a regular basis / scripted manner

From: Jelte Fennema <postgres(at)jeltef(dot)nl>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Peter Geoghegan <pg(at)bowt(dot)ie>, Bruce Momjian <bruce(at)momjian(dot)us>, Magnus Hagander <magnus(at)hagander(dot)net>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>, Noah Misch <noah(at)leadboat(dot)com>, Jesse Zhang <sbjesse(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: run pgindent on a regular basis / scripted manner
Date: 2023-01-23 10:44:11
Message-ID: CAGECzQQG=VLe71VokP9SPMOVc1P9jLPnU0-13bf-fjASMNdo9g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I whipped up a pre-commit hook which automatically runs pgindent on the
changed files in the commit. It won't add any changes automatically, but
instead it fails the commit if it made any changes. That way you can add
them manually if you want. Or if you don't, you can simply run git commit
again without adding the changes. (or you can use the --no-verify flag of
git commit to skip the hook completely)

It did require adding some extra flags to pgindent. While it only required
the --staged-only and --fail-on-changed flags, the --changed-only flag
was easy to add and seemed generally useful.

I also attached a patch which adds the rules for formatting pgindent
itself to the .editorconfig file.

> Locally, I think pre-push would be better suited to
> this than pre-commit (I often save WIP work in local branches, it'd be pretty
> annoying if some indentation thing swore at me).

I personally prefer pre-commit hooks, since then I don't have to
go back and change some commit I made some time ago. And I
think with the easy opt-out that this hook has it would work fine
for my own workflow. But it shouldn't be hard to also include a
pre-push hook too if you want that after all. Then people can
choose to install the hook that they prefer.

On Mon, 23 Jan 2023 at 02:38, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > On 2023-01-22 19:28:42 -0500, Tom Lane wrote:
> >> Hmm ... right offhand, the only objection I can see is that the
> >> pg_bsd_indent files use the BSD 4-clause license, which is not ours.
> >> However, didn't UCB grant a blanket exception years ago that said
> >> that people could treat that as the 3-clause license?
>
> > Yep:
> > https://www.freebsd.org/copyright/license/
>
> Cool. I'll take a look at doing this later (probably after the current
> CF) unless somebody beats me to it.
>
> regards, tom lane

Attachment Content-Type Size
v1-0002-Add-pgindent-pre-commit-hook.patch application/octet-stream 5.4 KB
v1-0001-Add-pgindent-to-.editorconfig.patch application/octet-stream 701 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2023-01-23 10:44:44 Re: Time delayed LR (WAS Re: logical replication restrictions)
Previous Message houzj.fnst@fujitsu.com 2023-01-23 10:03:30 RE: Logical replication timeout problem