Skip to content

Releases: PGBuildFarm/client-code

Release 18

02 Nov 06:00
5ecd069
Compare
Choose a tag to compare

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

04 Aug 14:51
9a9634e
Compare
Choose a tag to compare

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

13 Jan 22:49
3e0329c
Compare
Choose a tag to compare

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

31 Dec 14:44
00787a1
Compare
Choose a tag to compare

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

29 Jan 18:45
Compare
Choose a tag to compare

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

04 Aug 13:18
Compare
Choose a tag to compare

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.

Release 13

02 Aug 20:36
Compare
Choose a tag to compare

Highlights:

  • add tests for a few cases that were previously missing
  • more fine-grained control over which TAP test sets run
  • --no-keepall can be specified on the command line
  • repair a repo if it crashed during a copy operation
  • make sure the repo is really clean (including free of ignored files)
  • generate stack traces on CYGWIN
  • collect stack traces for TAP tests
  • Extract MSVC settings at runtime rather than had coding them in the config file (see below)
  • cross version upgrade tests now run on Windows, both for msys2 and MSVC builds
  • add support for inhibit-runs and force-one-run trigger files( see below)
  • add experimental module for running arbitrary out of tree TAP tests
  • Adjust if an upstream repo changes the default branch name (see below)
  • add use_discard_caches caches setting (see below)

MSVC animals are now very much simpler to set up, and to upgrade to a new compiler. Using the new mechanism, as shown in the sample config file, all that's needed is to specify a location where the standard script vcvarsall.bat can be found. The script will then run that script and extract the settings and apply them. Tha means that upgrading to a new version of Visual Studio would entail just a one line change in the config file.

If you put a file called [animalname].inhibit-runs in the build root, all runs will be stopped until the file is removed. If you put a file called [animalname].force-one-run in the build root, each configured branch will be forced to run once, and the file will be removed. These only apply if you use the run_branches.pl script.

The client should transparently deal with any change that is made in the upstream repository's default branch name. This avoids the need for a flag day when we eventually change the default branch name for postgresql, as I assume we will do before long. The branch bf_HEAD which the client creates now refers to the upstream default whatever it might be, rather than the hardcoded name 'master'. The code of the SCM module underwent quite a lot of change in order to make this happen; the checkout code had become quite long and convoluted and I had to refactor it somewhat before I was able to make and test this change. The changes have been fairly extensively tested, but I'm still slightly nervous about them. Owners are asked to report any issues promptly.

the use_discard_caches setting reflects a change in the way postgres handles this - it's now a runtime setting rather than a compile time setting. On older branches it sets "-DCLOBBER_CACHE_ALWAYS". If you use this setting don't use that define.

Release 12

01 Feb 22:16
Compare
Choose a tag to compare

Apart from some minor fixes and code tidy up. this includes the following more notable changes:

  • the TextUpgradeXVersion module is brought up to date with various core code changes
  • a module-neutral, animal-based save mechanism replaces the bespoke mechanism that was implemented in TestUpgradeXVersion. This will enable future development like testing openssl builds against NSS builds etc.
  • a standardized way of accumulating log files is implemented. This will enable some planned server side improvements.
  • requests are now signed using SHA256 nstead of SHA1.
  • there is a separate config section for settings to be used with valgrind. This makes it easier to turn valgrind on or off.
  • typedefs detection is improved for OSX
  • there is a setting for additional docs build targets, in addition to the standard html target.
  • use of the configure "accache" is made substantially more robust
  • timed out processes are more verbose

Release 11

23 Sep 17:11
Compare
Choose a tag to compare

Bug fixes plus following features

  • Allow list of branches as positional arguments to run_branches.pl
    This overrides what is found in the config file. The list can't include
    metabranches like ALL, nor can it contain regexes.
  • improve diagnostic capture for git and fetching branches of interest
  • unify config.log and configure.log
  • add siginfo to gdb output
  • improve test coverage
    • run check for test modules marked NO_INSTALLCHECK
    • run TAP tests for test modules that have them
    • run TAP tests for contrib modules that have them
  • explicitly use "trust" with initdb

Release 10

04 Apr 21:16
Compare
Choose a tag to compare

Principal feature: support for non-standard repositories:

  • support multi-element branch names, such as "dev/featurename" or "bug/ticket_number/branchname"
  • provide a get_branches() method in SCM module
  • support regular expression branches of interest. This is matched against the list of available branches
  • prune branches when doing git fetch.

Other features/ behaviour changes:

  • support for testing cross version upgrade extended back to 9.2
  • support for core Postgres changes:
    • extended support for USE_MODULE_DB
    • new extra_float_digits regime
    • removal of user table oid support
    • removal of abstime and friends
    • changed log file locations
  • don't search for valgrind messages unless valgrind is configured
  • make detection of when NO_TEMP_INSTALL is allowed more bulletproof

There are also various minor bug fixes and code improvements.