New features
- PGXSExtension module — a single config-driven module for testing
out-of-tree PGXS extensions, keyed by apgxs_extensionshash in the
config (one entry per extension). New test extensions no longer need
their own bespoke.pmfile. The existing BlackholeFDW, FileTextArrayFDW
and RedisFDW modules remain for now so existing configs keep working. - New branches-to-build tags
UNRELEASEDandHEAD_PLUS_UNRELEASED,
covering branches between the time the tree is forked and a release is
tagged. - CheckIndent can now run on any branch that loads it, not just HEAD.
localesentries can now be a hashref naming both the locale and the
encoding, e.g.{ locale => 'C', encoding => 'UTF8' }. Encodings are
compared canonically.- Build result submission is retried (up to 5 times, 60 seconds apart) when
the server answers with HTTP 503 "Backend Fetch Failed". - The client version number is now included in the user agent string.
PatchStack improvements
- Apply the patch series with the patches repository's own
import-series.pldriver when present, so the farm tests exactly what a
release wrap produces. Otherwise apply withgit applyrather than
git quiltimport, at full context. - Decide whether a rebuild is needed from the net result of applying the
series, so a branch is rebuilt when a patch it shares from another
branch's directory (e.g.../master/foo.patch) changes. - Resolve symlinked and shared patches via git plumbing.
- New
PGBuild::PatchSeriesmodule for shared series reading, and a new
check_patch_stack.plscript to check a patch stack. - Write a
patch_stack.logfor distinct display on the server. - Optional diagnostic snapshot of repository git state (
diagnose => 1). - Clear stale
git amstate left behind by a failed or killed run, which
previously caused every later run to fail on the first patch. - Don't send the previous run's stage logs when reporting a checkout
failure. - Handle a series file with no entries.
- Automatic git maintenance is forced off under
git_use_workdirs, and the
sample config now recommends turninggit_use_workdirsoff for
PatchStack animals.
Log collection
- Don't attach server and node logs to passing make/MSVC stages (only TAP
regress_log_*files), matching the meson behaviour. On valgrind
animals, logs reporting valgrind errors are still kept, and installcheck
server logs are now checked for valgrind errors. - Don't resend the failure log when it is already in a stage log. (This
needs a server that understandsfailed_stage_log.)
Cross-version upgrade
- Pin the dump session time zone to UTC, so comparisons don't fail
spuriously when saved data directories come from a machine in a
different time zone. - Stop the server before bailing out on error.
Bug fixes
- Fix
use_vpath/using_mesonhandling for MSVC animals that prefer meson
but fall back to the legacy MSVC build on branches withoutmeson.build. - In PGXS TAP test directories, run only the TAP tests (from release 12,
make checkalso ran the REGRESS and ISOLATION suites, which are run
elsewhere). - Fixes for Windows with TAP and Unix sockets, and a backslash issue.
- Remove a robocopy flag (
/sec) that upset Windows 11. - Remove an unwanted system call in
Dist.pm.
Housekeeping
- Make LF the canonical line ending for text files.
- perlcritic and perltidy cleanups.
The release is available at <https://github.com/PGBuildFarm/client-code/releases> or <https://buildfarm.postgresql.org/downloads/latest-client.tgz>
