Re: run pgindent on a regular basis / scripted manner

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Peter Geoghegan <pg@bowt.ie>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, Jelte Fennema <postgres@jeltef.nl>, Michael Paquier <michael@paquier.xyz>, "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>, Robert Haas <robertmhaas@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>, Noah Misch <noah@leadboat.com>, Bruce Momjian <bruce@momjian.us>, Magnus Hagander <magnus@hagander.net>, Alvaro Herrera <alvherre@2ndquadrant.com>, Stephen Frost <sfrost@snowman.net>, Jesse Zhang <sbjesse@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Date: 2023-08-13T14:33:21Z
Lists: pgsql-hackers
On 2023-08-12 Sa 20:53, Peter Geoghegan wrote:
> On Sat, Aug 12, 2023 at 5:20 PM Tom Lane<tgl@sss.pgh.pa.us>  wrote:
>> Hm.  I was envisioning that we should expect committers to deal
>> with this, not original patch submitters.  So that's an argument
>> against including it in the CI tests.  But I'm in favor of anything
>> we can do to make it more painless for committers to fix up patch
>> indentation.


I agree with this.


> Making it a special responsibility for committers comes with the same
> set of problems that we see with catversion bumps. People are much
> more likely to forget to do something that must happen last.


After I'd been caught by this once or twice I implemented a git hook 
test for that too - in fact it was the first hook I did. It's not 
perfect but it's saved me a couple of times:


check_catalog_version () {

     # only do this on master
     test  "$branch" = "master" || return 0

     case "$files" in
         *src/include/catalog/catversion.h*)
             return 0;
             ;;
         *src/include/catalog/*)
             ;;
         *)
             return 0;
             ;;
     esac

     # changes include catalog but not catversion.h, so warn about it
     {
         echo 'Commit on master alters catalog but catversion not bumped'
         echo 'It can be forced with git commit --no-verify'
     } >&2

     exit 1
}


cheers


andrew

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

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix comment from commit 22655aa231.

  2. Add a few recent commits to .git-blame-ignore-revs.

  3. Pre-beta2 mechanical code beautification.

  4. Pre-beta mechanical code beautification.

  5. Make agreed-on updates in perltidy options.

  6. Remove obsolete pgindent options --code-base and --build

  7. Integrate pg_bsd_indent into our build/test infrastructure.

  8. Sync pg_bsd_indent's copyright notices with Postgres practice.

  9. Import pg_bsd_indent sources.

  10. pgindent: filter files for the --commit option

  11. pgindent: more ways to find files to indent

  12. Fix pgindent --show-diff option.

  13. Add non-destructive modes to pgindent

  14. Initial pgindent run with pg_bsd_indent version 2.0.