Releases: PGBuildFarm/client-code
Release list
REL_21
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.
- Use proxy settings, if any, in run_branches.pl.
- Skip the test_escape test on MSVC with old toolsets (non-meson, pre-16/17
only).
Housekeeping
- Clean up old tmpdir objects and stale port-lock (.rsv) files.
- Avoid moving the .git directory when possible.
- Set $devnull in a principled way.
- Adjust for the unified Redis-FDW branches.# PostgreSQL Buildfarm Client — Release 21
Release 20
- New branches to build keyword
UP_TO_to allow building only certain older branches. e.g.UP_TO_REL_16_STABLE - Collect
pg_config.hfor meson builds - Handle new
--restrict-keyrequirement for dump testing - Trim collection of log files
Some files were collected multiple times, and some large log files were collected even when of little value, as the test succeeded. Reducing this will alleviate disk space pressure on the server. - Minor bug fixes.
Release 19.1
Fixes a bug in release 19 that caused some builds to fail.
Also collects the log from the meson test setup, so failures there can be diagnosed.
Release 19
Release 19 has two main features:
- Adjustment to the way we run Cross version upgrade testing, to accommodate the recent statistics import feature
- Adjust to the new SEpgsql test setup
Also included
- Tame proliferation of kept error builds
- improve check for installation complete, to avoid redundant installs where path includes "postgresql or "pgsql"
Release 18
In addition to numerous minor tweaks and bug fixes, the following changes are made:
-
many improvements in the collection of log files -
accommodate change in data checksum default in cross version upgrade testing -
increase default PGCTLTIMEOUT to 180s -
improve "safe" environment set, including all in the build_env configuration settings -
on script timeout, don't just fail but send the result to the server (Note: the timeout mechanism doesn't work on Windows, and has been disabled there) -
set the default timeout to 4 hours. -
remove redundant TestDecoding module -
add a module for running "make dist" -
improve detection of failures when running with meson -
add README files to the set ignored by the sample trigger_exclude setting.
Upgrading is highly recommended.
Release 17
Release 17 of the PostgreSQL Buildfarm client has two main features:
- Modernize the way we do cross-version upgrade tests. Most of the logic for modifying instances to make them suitable for cross version upgrade testing has now been migrated to the Postgres core code in
src/test/perl/PostgreSQL/Test/AdjustUpgrade.pmThe new code simply imports this module and leverages its knowledge. - Support of building with
meson. This is only supported on version 16 or later of Postgres, older branches will continue to use the older toolsets. To enable building withmeson, there are several new settings, illustrated in the sample configuration file:using_mesonthis must be set to a true valuemeson_jobsthis controls the degree of parallelism thatmesonwill usemeson_test_timeoutthis is used to multiply the meson test timeout. The default is 3, 0 turns off timeoutmeson_configThis is an array of settings for passing tomeson setup. Note that all options need to be explicitly given here - the client disables allautooptions. This includes use ofzlibandreadline, which do not default to on, unlikeautoconfsetups.
There are also a number of relatively small bug fixes and tweaks (e.g. some improvements in processing typedefs).
Release 16
Hot on the heels of Release 15 comes Release 16.
This release deals with some issues that have been discovered with the check for update feature of Release 15 and the force_every and trigger_exclude features, so that it now works correctly with those features.
It also features these items:
- a new
--check-for-workmode of run_branches.pl
This mode doesn't do any work but exits with a zero status if there is work to do and 1 if there is not. It is intended for use as an
ExecCondition insystemdunits - up to date filtering now works with an explicit list of branches, as well as with key words like
ALL - reduce the verbosity of
Another process holds the lockmessages.
These are now only emitted if theverbosesetting is greater than 1 update_personalitynow has options to change the owner name and owner email
This was in Release 15 but was accidentally omitted from the release notes. Up to now the only way to change these was by action from
the administrators.- improve collection of logs in cross version upgrade testing
Release 15
Changes
- add a new script
manage_alerts.plthat lets the user enable or disable alerts for an animal
This is especially useful in the case of animals that have stopped running for some reason. - check if a branch is up to date before trying to run it
This only applies if thebranches_to_buildsetting is a keyword rather than a list of branches. It reduces the number of useless
calls togit pullto almost zero. - require Perl version 5.14 or later
This should not be a problem, as it's more than 10 years old. - add
--avoid-ts-collisionscommand line parameter
This is for specialized uses, and imposes a penalty of a few seconds per run.run_branches.plalready does this, so it's not required for
normal operations. - run TAP tests for
src/interfacessubdirectories - add amcheck and extension upgrade tests to cross version upgrade testing
- adjust to changes in postgres code, file locations, etc.
- assorted minor bug fixes and tweaks
Release 14
Significant changes:
- don't run TestUpgrade if TAP tests are present in
src/bin/pg_upgrade - Add proposed new location of
pg_upgradelogs in TestUpgrade module - Use an HMAC over the whole content as the signature.
- Quote
PROVE_FLAGSin case there are multiple settings - tighten failure detection for cross version upgrade
- be more verbose about git mirror failures
- Support symlinks on Windows where possible in SCM module
- Document
rm_worktreessetting and makeonthe default. - Add new branches_to_build keywords
STABLEandOLD
Release 13.1
This update to Release 13 fixes errors that occur from the new default branch name checking code when used with versions of git that are too old. This code is now disabled if the git version is not capable of running it, and in verbose mode a warning is printed. The warning can be disabled by explicitly setting "skip_git_default_check => 1" in the config file. In either case, the owner will need to update their git installation or remove all branch and mirror repositories when the default branch name changes.