Repos using the `test/install/` self-comparing pattern (a single installer script whose `pg_regress` result `.out` and expected-output path resolve to the same file, per pgxntool's own `../install/` schedule trick) each need to clean the `.out`/`.diff` cruft `pg_regress` leaves behind in `test/install/`. `base.mk` only auto-cleans the generated `schedule` file (`EXTRA_CLEAN += $(PGXNTOOL_INSTALL_SCHEDULE)`) -- not the self-comparing result files themselves.
Two consuming repos have independently landed the identical workaround, parsing `test/install/.gitignore` by hand to build `EXTRA_CLEAN`:
```makefile
extra_clean += $(addprefix test/install/,$(shell grep -v '^#' test/install/.gitignore 2>/dev/null))
```
Since both repos already commit a `test/install/.gitignore` listing exactly the files `pg_regress` leaves behind (`load.out`, `install.out.diff`, etc.), `base.mk` could derive this generically instead of requiring every consumer to duplicate the parsing logic -- e.g. auto-adding `test/install/*.gitignore`'s entries to `EXTRA_CLEAN` whenever the `test/install/` pattern is in use, the same way it already handles `PGXNTOOL_INSTALL_SCHEDULE`.
Repos using the `test/install/` self-comparing pattern (a single installer script whose `pg_regress` result `.out` and expected-output path resolve to the same file, per pgxntool's own `../install/` schedule trick) each need to clean the `.out`/`.diff` cruft `pg_regress` leaves behind in `test/install/`. `base.mk` only auto-cleans the generated `schedule` file (`EXTRA_CLEAN += $(PGXNTOOL_INSTALL_SCHEDULE)`) -- not the self-comparing result files themselves.
Two consuming repos have independently landed the identical workaround, parsing `test/install/.gitignore` by hand to build `EXTRA_CLEAN`:
```makefile$(addprefix test/install/,$ (shell grep -v '^#' test/install/.gitignore 2>/dev/null))
extra_clean +=
```
Since both repos already commit a `test/install/.gitignore` listing exactly the files `pg_regress` leaves behind (`load.out`, `install.out.diff`, etc.), `base.mk` could derive this generically instead of requiring every consumer to duplicate the parsing logic -- e.g. auto-adding `test/install/*.gitignore`'s entries to `EXTRA_CLEAN` whenever the `test/install/` pattern is in use, the same way it already handles `PGXNTOOL_INSTALL_SCHEDULE`.