Re: run pgindent on a regular basis / scripted manner

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Jelte Fennema <postgres@jeltef.nl>, Andres Freund <andres@anarazel.de>, Peter Geoghegan <pg@bowt.ie>, Magnus Hagander <magnus@hagander.net>, Alvaro Herrera <alvherre@2ndquadrant.com>, Stephen Frost <sfrost@snowman.net>, Jesse Zhang <sbjesse@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-01-29T01:06:03Z
Lists: pgsql-hackers
On Tue, Jan 24, 2023 at 02:04:02PM -0500, Bruce Momjian wrote:
> On Tue, Jan 24, 2023 at 09:54:57AM -0500, Tom Lane wrote:
> > As another example, the mechanisms we use to create the typedefs list
> > in the first place are pretty squishy/leaky: they depend on which
> > buildfarm animals are running the typedef-generation step, and on
> > whether anything's broken lately in that code --- which happens on
> > a fairly regular basis (eg [1]).  Maybe that could be improved,
> > but I don't see an easy way to capture the set of system-defined
> > typedefs that are in use on platforms other than your own.  I
> > definitely do not want to go over to hand maintenance of that list.
> 
> As I now understand it, we would need to standardize on a typedef list
> at the beginning of each major development cycle, and then only allow
> additions,

Not to my knowledge.  There's no particular obstacle to updating the list more
frequently or removing entries.

> and the addition would have to include any pgindent affects
> of the addition.

Yes, a hook intended to enforce pgindent cleanliness should run tree-wide
pgindent when the given commit(s) change the typedef list.  typedef list
changes essentially become another kind of refactoring that can yield merge
conflicts.  If your commit passed the pgindent check, rebasing it onto a new
typedefs list may require further indentation changes.  New typedefs don't
tend to change a lot of old code, so I would expect this sort of conflict to
be minor, compared to all the other sources of conflicts.



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.