public inbox for [email protected]  
help / color / mirror / Atom feed
From: Peter Eisentraut <[email protected]>
To: Nazir Bilal Yavuz <[email protected]>
To: Jelte Fennema-Nio <[email protected]>
Cc: Andres Freund <[email protected]>
Cc: Thomas Munro <[email protected]>
Cc: [email protected]
Subject: Re: Heads Up: cirrus-ci is shutting down June 1st
Date: Thu, 28 May 2026 13:49:10 +0200
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAN55FZ13uX0cLSbgtSnnFeh5sTLeMr7+8UzmqpU6QjOtrRJTLg@mail.gmail.com>
References: <3ydjipcr7kbss57nvi67noplncqhesl5eyb6wgol4ccjxynspv@yatlykpribmm>
	<[email protected]>
	<CAN55FZ30Np67cATsqYxF1SsP598VoRv4hJQZ4w9RA3Qe55prnQ@mail.gmail.com>
	<CAN55FZ13uX0cLSbgtSnnFeh5sTLeMr7+8UzmqpU6QjOtrRJTLg@mail.gmail.com>

On 25.05.26 14:14, Nazir Bilal Yavuz wrote:
> On Tue, 19 May 2026 at 01:27, Nazir Bilal Yavuz<[email protected]> wrote:
>> I think we can merge these two patches and move forward that way. I am
>> planning to review your patch and see what I can come up with to get
>> it to a committable state.
> Here is the v2, I took Jelte's patch and reviewed & merged it with my
> patch.

I have tested this patch and inspected the output mostly to make sure 
that there are no regressions about what features and dependency 
versions are being tested (diffed the various logs).  I'm proposing a 
few minor fixups in the attached patch, but other than that (and what 
others have mentioned), this pretty much works well, and I would be 
content to proceed with this or whatever state it's on in a few days.

Some comments in detail:

- Others have already mentioned about the potential for this to conflict 
with downstream uses of GH Actions.  I suggest renaming the file from 
ci.yml to something like postgresql-ci.yml, so that there is no file 
naming conflict or confusion.

- As was already mentioned, the Linux/Meson job is very long (slow) and 
should be split into separate 32/64-bit jobs.

- The job names are too long and get truncated in the UI.  This is 
especially annoying when the important differentiator like "Autoconf" or 
"Meson" gets cut off.  I'm proposing some changes to the job names that 
make them display better.  (Also consider this if you make separate jobs 
for 32/64-bit.  The usable space is about 20 characters.)

- On macOS, there were some dependency differences:

   - readline was not used.
   - tcl-tk (version 9) was used instead of tcl-tk@8.
   - [email protected] was installed but not actually used in the build.
   - zlib version differed.

   Maybe the zlib difference is not important and could be ignored.
   Also, maybe we don't need to use a versioned python dependency.  (We
   didn't have one before we switched Cirrus from Homebrew to MacPorts.)

- On macOS, the meson setup output reported a significantly different 
sysroot, which was confusing.  I think the sysroot is only used if you 
build against a system perl/python/tcl, which we don't, so I added an 
option to disable the sysroot use.  That way, if we do end up making use 
of the sysroot, someone is forced to investigate this issue.  I don't 
know if this makes sense.

- For macOS, I threw in some HOMEBREW_* environment variables to disable 
some unnecessary additional output or cleanup steps.

- On Windows/VS, we should install winflexbison3 not winflexbison, to 
get an up-to-date version.

- FUTURE: On Windows/VS, we use openssl 1.1, which matches the Cirrus 
setup, so it's ok, but the equivalent buildfarm members all use openssl 
3.*, so we should consider upgrading that sometime to make that more 
consistent.

- On Windows/minGW, I dropped a few packages from the set to be 
installed, which didn't seem necessary.
From c1bab3b0809899a0b8fb61cdb398947c8f169a28 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Thu, 28 May 2026 13:20:50 +0200
Subject: [PATCH v2.1.pe] Fixups

- Shorten job names to avoid truncation in UI

- Tweak CompilerWarnings step names

- macOS:
  - Add some HOMEBREW_* environment variables to disable unnecessary
    steps and output
  - Typo cpanm -> cpan
  - Install readline tcl-tk@8 zlib for consistency with previous setup
  - Disable sysroot
  - Use the intended Python version

- Windows VS:
  - Install winflexbison3, not winflexbison (old)

- Windows minGW:
  - Reduce set of installed packages
---
 .github/workflows/ci.yml | 49 +++++++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6d20068727c..21c4106e603 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -285,7 +285,7 @@ jobs:
   # print_stacktraces=1,verbosity=2, duh
   # detect_leaks=0: too many uninteresting leak errors in short-lived binaries
   linux-autoconf:
-    name: Linux - Debian Trixie - Autoconf
+    name: Linux - Debian - Autoconf
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -410,7 +410,7 @@ jobs:
   # - Uses io_method=io_uring
   # - Uses meson feature autodetection
   linux-meson:
-    name: Linux - Debian Trixie - Meson
+    name: Linux - Debian - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -570,7 +570,7 @@ jobs:
   # - Specifies configuration options that test reading/writing/copying of node trees
   # - Specifies debug_parallel_query=regress, to catch related issues during CI
   macos:
-    name: macOS - Sequoia - Meson
+    name: macOS - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -585,6 +585,12 @@ jobs:
       # Fix: Needs to be re-tested for Github Actions.
       TEST_JOBS: 8
 
+      HOMEBREW_NO_AUTO_UPDATE: 1
+      HOMEBREW_DISPLAY_INSTALL_TIMES: 1
+      HOMEBREW_NO_INSTALL_CLEANUP: 1
+      HOMEBREW_NO_INSTALL_UPGRADE: 1
+      HOMEBREW_NO_UPDATE_REPORT_NEW: 1
+
       CCACHE_DIR: ${{ github.workspace }}/ccache_dir
 
       MESON_FEATURES: >-
@@ -642,16 +648,15 @@ jobs:
         run: |
           brew update
           brew install \
-            ccache meson openldap [email protected] tcl-tk
-          # IPC::Run via cpanm (system perl)
+            ccache meson openldap [email protected] readline tcl-tk@8 zlib
+          # IPC::Run via cpan (system perl)
           sudo cpan -T -i IPC::Run IO::Tty
 
       - name: Configure
         run: |
           # These formulae are keg-only (not symlinked into $(brew --prefix)),
           # so pkg-config wouldn't find them via the default search path.
-          # lz4, zstd and other non-keg-only deps are picked up automatically.
-          for f in openssl@3 icu4c krb5 openldap; do
+          for f in openssl@3 icu4c krb5 openldap readline tcl-tk@8 zlib; do
             PKG_CONFIG_PATH="$(brew --prefix $f)/lib/pkgconfig:${PKG_CONFIG_PATH}"
           done
           export PKG_CONFIG_PATH
@@ -667,6 +672,8 @@ jobs:
             --buildtype=debug \
             -Dextra_include_dirs="${extra_inc}" \
             -Dextra_lib_dirs="${extra_lib}" \
+            -Ddarwin_sysroot=none \
+            -DPYTHON=python3.12 \
             ${MESON_COMMON_FEATURES} \
             ${MESON_FEATURES} \
             build
@@ -698,7 +705,7 @@ jobs:
 
 
   windows-vs:
-    name: Windows - Server 2022, VS 2022 - Meson & ninja
+    name: Windows - VS - Meson & ninja
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -791,7 +798,7 @@ jobs:
       - name: Install dependencies
         shell: pwsh
         run: |
-          choco install -y --no-progress --limitoutput diffutils winflexbison
+          choco install -y --no-progress --limitoutput diffutils winflexbison3
           # meson + ninja aren't preinstalled on windows-2022. Install via pip
           python -m pip install --upgrade meson ninja
 
@@ -826,7 +833,7 @@ jobs:
           Add-Content c:\Windows\System32\Drivers\etc\hosts "127.0.0.2 pg-loadbalancetest"
           Add-Content c:\Windows\System32\Drivers\etc\hosts "127.0.0.3 pg-loadbalancetest"
 
-      - name: Setup sock dir
+      - name: Setup socket directory
         shell: cmd
         run: mkdir %PG_REGRESS_SOCK_DIR%
 
@@ -861,7 +868,7 @@ jobs:
 
 
   windows-mingw:
-    name: Windows - Server 2022, MinGW64 - Meson
+    name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -912,7 +919,6 @@ jobs:
           install: >-
             git bison flex make diffutils
             mingw-w64-ucrt-x86_64-ccache
-            mingw-w64-ucrt-x86_64-docbook-xml
             mingw-w64-ucrt-x86_64-gcc
             mingw-w64-ucrt-x86_64-icu
             mingw-w64-ucrt-x86_64-libbacktrace
@@ -923,13 +929,10 @@ jobs:
             mingw-w64-ucrt-x86_64-meson
             mingw-w64-ucrt-x86_64-perl
             mingw-w64-ucrt-x86_64-pkg-config
-            mingw-w64-ucrt-x86_64-python-cryptography
-            mingw-w64-ucrt-x86_64-python-pip
-            mingw-w64-ucrt-x86_64-python-pytest
             mingw-w64-ucrt-x86_64-readline
             mingw-w64-ucrt-x86_64-zlib
 
-      - name: Install IPC::Run for tap tests
+      - name: Install additional dependencies
         shell: msys2 {0}
         run: |
           # Pin IPC::Run to NJM/IPC-Run-20250809.0; TODDR/IPC-Run-20260322.0
@@ -938,7 +941,7 @@ jobs:
           (echo; echo o conf recommends_policy 0; echo notest install NJM/IPC-Run-20250809.0.tar.gz) | cpan
           perl -mIPC::Run -e 1
 
-      - name: Setup sock dir
+      - name: Setup socket directory
         shell: cmd
         run: mkdir %PG_REGRESS_SOCK_DIR%
 
@@ -1034,7 +1037,7 @@ jobs:
           mkdir -p "$CCACHE_DIR"
 
       # gcc, cassert off, dtrace on
-      - name: gcc warning + (dtrace)
+      - name: gcc warnings + (dtrace)
         if: always()
         run: |
           ./configure \
@@ -1046,7 +1049,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # gcc, cassert on, dtrace off
-      - name: gcc warning + (cassert)
+      - name: gcc warnings + (cassert)
         if: always()
         run: |
           ./configure \
@@ -1058,7 +1061,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # clang, cassert off, dtrace off
-      - name: clang warning
+      - name: clang warnings
         if: always()
         run: |
           ./configure \
@@ -1069,7 +1072,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # clang, cassert on, dtrace on
-      - name: clang warning + (cassert + dtrace)
+      - name: clang warnings + (cassert + dtrace)
         if: always()
         run: |
           ./configure \
@@ -1081,7 +1084,7 @@ jobs:
           make -s -j${BUILD_JOBS} clean
           make -s -j${BUILD_JOBS} world-bin
 
-      - name: mingw cross compile
+      - name: mingw warnings (cross compilation)
         if: always()
         run: |
           ./configure \
@@ -1097,7 +1100,7 @@ jobs:
       # Verify docs can be built
       ###
       # XXX: Only do this if there have been changes in doc/ since last build
-      - name: Docs build
+      - name: Build documentation
         if: always()
         run: |
           ./configure \
-- 
2.54.0



Attachments:

  [text/plain] v2.1.pe-0001-Fixups.patch (7.2K, 2-v2.1.pe-0001-Fixups.patch)
  download | inline diff:
From c1bab3b0809899a0b8fb61cdb398947c8f169a28 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Thu, 28 May 2026 13:20:50 +0200
Subject: [PATCH v2.1.pe] Fixups

- Shorten job names to avoid truncation in UI

- Tweak CompilerWarnings step names

- macOS:
  - Add some HOMEBREW_* environment variables to disable unnecessary
    steps and output
  - Typo cpanm -> cpan
  - Install readline tcl-tk@8 zlib for consistency with previous setup
  - Disable sysroot
  - Use the intended Python version

- Windows VS:
  - Install winflexbison3, not winflexbison (old)

- Windows minGW:
  - Reduce set of installed packages
---
 .github/workflows/ci.yml | 49 +++++++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 23 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6d20068727c..21c4106e603 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -285,7 +285,7 @@ jobs:
   # print_stacktraces=1,verbosity=2, duh
   # detect_leaks=0: too many uninteresting leak errors in short-lived binaries
   linux-autoconf:
-    name: Linux - Debian Trixie - Autoconf
+    name: Linux - Debian - Autoconf
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -410,7 +410,7 @@ jobs:
   # - Uses io_method=io_uring
   # - Uses meson feature autodetection
   linux-meson:
-    name: Linux - Debian Trixie - Meson
+    name: Linux - Debian - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -570,7 +570,7 @@ jobs:
   # - Specifies configuration options that test reading/writing/copying of node trees
   # - Specifies debug_parallel_query=regress, to catch related issues during CI
   macos:
-    name: macOS - Sequoia - Meson
+    name: macOS - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -585,6 +585,12 @@ jobs:
       # Fix: Needs to be re-tested for Github Actions.
       TEST_JOBS: 8
 
+      HOMEBREW_NO_AUTO_UPDATE: 1
+      HOMEBREW_DISPLAY_INSTALL_TIMES: 1
+      HOMEBREW_NO_INSTALL_CLEANUP: 1
+      HOMEBREW_NO_INSTALL_UPGRADE: 1
+      HOMEBREW_NO_UPDATE_REPORT_NEW: 1
+
       CCACHE_DIR: ${{ github.workspace }}/ccache_dir
 
       MESON_FEATURES: >-
@@ -642,16 +648,15 @@ jobs:
         run: |
           brew update
           brew install \
-            ccache meson openldap [email protected] tcl-tk
-          # IPC::Run via cpanm (system perl)
+            ccache meson openldap [email protected] readline tcl-tk@8 zlib
+          # IPC::Run via cpan (system perl)
           sudo cpan -T -i IPC::Run IO::Tty
 
       - name: Configure
         run: |
           # These formulae are keg-only (not symlinked into $(brew --prefix)),
           # so pkg-config wouldn't find them via the default search path.
-          # lz4, zstd and other non-keg-only deps are picked up automatically.
-          for f in openssl@3 icu4c krb5 openldap; do
+          for f in openssl@3 icu4c krb5 openldap readline tcl-tk@8 zlib; do
             PKG_CONFIG_PATH="$(brew --prefix $f)/lib/pkgconfig:${PKG_CONFIG_PATH}"
           done
           export PKG_CONFIG_PATH
@@ -667,6 +672,8 @@ jobs:
             --buildtype=debug \
             -Dextra_include_dirs="${extra_inc}" \
             -Dextra_lib_dirs="${extra_lib}" \
+            -Ddarwin_sysroot=none \
+            -DPYTHON=python3.12 \
             ${MESON_COMMON_FEATURES} \
             ${MESON_FEATURES} \
             build
@@ -698,7 +705,7 @@ jobs:
 
 
   windows-vs:
-    name: Windows - Server 2022, VS 2022 - Meson & ninja
+    name: Windows - VS - Meson & ninja
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -791,7 +798,7 @@ jobs:
       - name: Install dependencies
         shell: pwsh
         run: |
-          choco install -y --no-progress --limitoutput diffutils winflexbison
+          choco install -y --no-progress --limitoutput diffutils winflexbison3
           # meson + ninja aren't preinstalled on windows-2022. Install via pip
           python -m pip install --upgrade meson ninja
 
@@ -826,7 +833,7 @@ jobs:
           Add-Content c:\Windows\System32\Drivers\etc\hosts "127.0.0.2 pg-loadbalancetest"
           Add-Content c:\Windows\System32\Drivers\etc\hosts "127.0.0.3 pg-loadbalancetest"
 
-      - name: Setup sock dir
+      - name: Setup socket directory
         shell: cmd
         run: mkdir %PG_REGRESS_SOCK_DIR%
 
@@ -861,7 +868,7 @@ jobs:
 
 
   windows-mingw:
-    name: Windows - Server 2022, MinGW64 - Meson
+    name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
     if: |
       !cancelled() &&
@@ -912,7 +919,6 @@ jobs:
           install: >-
             git bison flex make diffutils
             mingw-w64-ucrt-x86_64-ccache
-            mingw-w64-ucrt-x86_64-docbook-xml
             mingw-w64-ucrt-x86_64-gcc
             mingw-w64-ucrt-x86_64-icu
             mingw-w64-ucrt-x86_64-libbacktrace
@@ -923,13 +929,10 @@ jobs:
             mingw-w64-ucrt-x86_64-meson
             mingw-w64-ucrt-x86_64-perl
             mingw-w64-ucrt-x86_64-pkg-config
-            mingw-w64-ucrt-x86_64-python-cryptography
-            mingw-w64-ucrt-x86_64-python-pip
-            mingw-w64-ucrt-x86_64-python-pytest
             mingw-w64-ucrt-x86_64-readline
             mingw-w64-ucrt-x86_64-zlib
 
-      - name: Install IPC::Run for tap tests
+      - name: Install additional dependencies
         shell: msys2 {0}
         run: |
           # Pin IPC::Run to NJM/IPC-Run-20250809.0; TODDR/IPC-Run-20260322.0
@@ -938,7 +941,7 @@ jobs:
           (echo; echo o conf recommends_policy 0; echo notest install NJM/IPC-Run-20250809.0.tar.gz) | cpan
           perl -mIPC::Run -e 1
 
-      - name: Setup sock dir
+      - name: Setup socket directory
         shell: cmd
         run: mkdir %PG_REGRESS_SOCK_DIR%
 
@@ -1034,7 +1037,7 @@ jobs:
           mkdir -p "$CCACHE_DIR"
 
       # gcc, cassert off, dtrace on
-      - name: gcc warning + (dtrace)
+      - name: gcc warnings + (dtrace)
         if: always()
         run: |
           ./configure \
@@ -1046,7 +1049,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # gcc, cassert on, dtrace off
-      - name: gcc warning + (cassert)
+      - name: gcc warnings + (cassert)
         if: always()
         run: |
           ./configure \
@@ -1058,7 +1061,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # clang, cassert off, dtrace off
-      - name: clang warning
+      - name: clang warnings
         if: always()
         run: |
           ./configure \
@@ -1069,7 +1072,7 @@ jobs:
           make -s -j${BUILD_JOBS} world-bin
 
       # clang, cassert on, dtrace on
-      - name: clang warning + (cassert + dtrace)
+      - name: clang warnings + (cassert + dtrace)
         if: always()
         run: |
           ./configure \
@@ -1081,7 +1084,7 @@ jobs:
           make -s -j${BUILD_JOBS} clean
           make -s -j${BUILD_JOBS} world-bin
 
-      - name: mingw cross compile
+      - name: mingw warnings (cross compilation)
         if: always()
         run: |
           ./configure \
@@ -1097,7 +1100,7 @@ jobs:
       # Verify docs can be built
       ###
       # XXX: Only do this if there have been changes in doc/ since last build
-      - name: Docs build
+      - name: Build documentation
         if: always()
         run: |
           ./configure \
-- 
2.54.0



reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Heads Up: cirrus-ci is shutting down June 1st
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox