Skip to content

Releases: PGBuildFarm/client-code

REL_21

Choose a tag to compare

@adunstan adunstan released this 02 Jul 18:33

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

Choose a tag to compare

@adunstan adunstan released this 25 Nov 13:23
3c523d3
  • New branches to build keyword UP_TO_ to allow building only certain older branches. e.g. UP_TO_REL_16_STABLE
  • Collect pg_config.h for meson builds
  • Handle new --restrict-key requirement 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

Choose a tag to compare

@adunstan adunstan released this 05 Mar 14:21
6d5dd16

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

Choose a tag to compare

@adunstan adunstan released this 04 Mar 14:58
5d22cd2

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

Choose a tag to compare

@adunstan adunstan released this 02 Nov 06:00
5ecd069

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

Choose a tag to compare

@adunstan adunstan released this 04 Aug 14:51
9a9634e

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.pm The 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 with meson, there are several new settings, illustrated in the sample configuration file:
    • using_meson this must be set to a true value
    • meson_jobs this controls the degree of parallelism that meson will use
    • meson_test_timeout this is used to multiply the meson test timeout. The default is 3, 0 turns off timeout
    • meson_config This is an array of settings for passing to meson setup. Note that all options need to be explicitly given here - the client disables all auto options. This includes use of zlib and readline, which do not default to on, unlike autoconf setups.

There are also a number of relatively small bug fixes and tweaks (e.g. some improvements in processing typedefs).

Release 16

Choose a tag to compare

@adunstan adunstan released this 13 Jan 22:49
3e0329c

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-work mode 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 in systemd units
  • 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 lock messages.
    These are now only emitted if the verbose setting is greater than 1
  • update_personality now 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

Choose a tag to compare

@adunstan adunstan released this 31 Dec 14:44
00787a1

Changes

  • add a new script manage_alerts.pl that 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 the branches_to_build setting is a keyword rather than a list of branches. It reduces the number of useless
    calls to git pull to 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-collisions command line parameter
    This is for specialized uses, and imposes a penalty of a few seconds per run. run_branches.pl already does this, so it's not required for
    normal operations.
  • run TAP tests for src/interfaces subdirectories
  • 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

Choose a tag to compare

@adunstan adunstan released this 29 Jan 18:45

Significant changes:

  • don't run TestUpgrade if TAP tests are present in src/bin/pg_upgrade
  • Add proposed new location of pg_upgrade logs in TestUpgrade module
  • Use an HMAC over the whole content as the signature.
  • Quote PROVE_FLAGS in 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_worktrees setting and make on the default.
  • Add new branches_to_build keywords STABLE and OLD

Release 13.1

Choose a tag to compare

@adunstan adunstan released this 04 Aug 13:18

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.