I have released version 21 of the PostgreSQL Buildfarm Client
New features
PatchStack module — a new module for non-standard buildfarms that want to test a stack of patches on top of a branch. Note: this module is not for use with the regular community Buildfarm server - its use for builds reported there will be detected and rejected.
ABI check module — a new module that runs abidw to detect ABI changes in installed headers (passes --headers-dir and --drop-private-types for compatibility across abidw versions). Original author: Mankirat Singh, with additions from Tom Lane.
branches_target config key — run_branches.pl can now use a dedicated target URL for fetching branches_of_interest.json instead of deriving it by regex-mangling the main target URL. Falls back to the old derivation when unset; the pgbuildfarm URL migration is applied to it as well.
Build system / meson
using_meson is now decided by the presence of meson.build rather than by branch name, so it works reliably with non-standard branch names.
Use the meson --buildtype option.
Non-standard / regex-matched branches
Skip the bf_ prefix when using regex-matched branches.
Fetch remote branches for regex checking in a saner way.
Handle cases where there is no usable symbolic HEAD (and suppress the resulting clone warnings).
Handle a missing remote HEAD when updating a mirror.
Cross-version upgrade
Compress pg_upgrade dump files
Stop testing upgrades from pre-v10 in v20 and higher.
Several pg_upgrade_output.d fixes, including relative-path logic and an output-collection bug.
Protocol
Adjust to upstream libpq protocol-version changes, and remove the PGMAXPROTOCOLVERSION setting earlier (per -hackers discussion).
Diagnostics & logging
Archive failing log stages, and collect an additional log file.
Improve run-time reporting when a command times out, and avoid exiting the timeout sleep early on a signal.
Move testrun directories aside rather than deleting them, to aid later diagnosis.
Bug fixes
Defer module checkout until after find_changed, so PatchStack commits do not make find_changed always report a build is needed.
Fix TAP-test duplication in configure/make builds (notably pg_plan_advice rerunning the whole regression suite), plus a scalar(glob()) Perl bug.
Disable git system settings when looking for changed files.
Fix finding the config file in the current directory in the auxiliary scripts.