From cdea343cc9b8c3547791028ae1c228d3fdaaed10 Mon Sep 17 00:00:00 2001 From: Lakshmi Narayanan Sreethar <lakshmi@timescale.com> Date: Thu, 6 Jul 2023 21:49:23 +0530 Subject: [PATCH] Remove PG12 support from github workflows --- .github/ci_settings.py | 6 +-- .github/gh_matrix_builder.py | 45 +++++-------------- .github/workflows/abi.yaml | 14 +----- .github/workflows/apt-arm-packages.yaml | 2 +- .github/workflows/apt-packages.yaml | 2 +- .../workflows/linux-32bit-build-and-test.yaml | 2 +- .github/workflows/memory-tests.yaml | 2 +- .github/workflows/rpm-packages.yaml | 2 +- .../windows-build-and-test-ignored.yaml | 2 +- .github/workflows/windows-build-and-test.yaml | 17 ++----- .github/workflows/windows-packages.yaml | 10 +---- coccinelle/ereport_pg12.cocci | 24 ---------- 12 files changed, 24 insertions(+), 104 deletions(-) delete mode 100644 coccinelle/ereport_pg12.cocci diff --git a/.github/ci_settings.py b/.github/ci_settings.py index 4051846d4..c06f38f74 100644 --- a/.github/ci_settings.py +++ b/.github/ci_settings.py @@ -10,10 +10,6 @@ # LATEST is the maximum postgres version that is supported # ABI_MIN is the minimum postgres version required when the extension was build against LATEST -PG12_EARLIEST = "12.0" -PG12_LATEST = "12.15" -PG12_ABI_MIN = "12.8" - PG13_EARLIEST = "13.2" PG13_LATEST = "13.11" PG13_ABI_MIN = "13.5" @@ -26,4 +22,4 @@ PG15_EARLIEST = "15.0" PG15_LATEST = "15.3" PG15_ABI_MIN = "15.0" -PG_LATEST = [PG12_LATEST, PG13_LATEST, PG14_LATEST, PG15_LATEST] +PG_LATEST = [PG13_LATEST, PG14_LATEST, PG15_LATEST] diff --git a/.github/gh_matrix_builder.py b/.github/gh_matrix_builder.py index 0ef68c679..ab71fd578 100755 --- a/.github/gh_matrix_builder.py +++ b/.github/gh_matrix_builder.py @@ -26,8 +26,6 @@ import json import os import subprocess from ci_settings import ( - PG12_EARLIEST, - PG12_LATEST, PG13_EARLIEST, PG13_LATEST, PG14_EARLIEST, @@ -144,7 +142,6 @@ def macos_config(overrides): "compressed_collation", }, "os": "macos-11", - "pg": PG12_LATEST, "pg_extra_args": "--with-libraries=/usr/local/opt/openssl/lib --with-includes=/usr/local/opt/openssl/include", "pginstallcheck": True, "tsdb_build_args": "-DASSERTIONS=ON -DREQUIRE_ALL_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl", @@ -172,10 +169,6 @@ if event_type == "pull_request": } # always test debug build on latest of all supported pg versions -m["include"].append( - build_debug_config({"pg": PG12_LATEST, "ignored_tests": ignored_tests}) -) - m["include"].append( build_debug_config( { @@ -195,7 +188,7 @@ m["include"].append( build_debug_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) ) -# test latest postgres release in MacOS +# test timescaledb with release config on latest postgres release in MacOS m["include"].append( build_release_config( macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) @@ -210,24 +203,6 @@ m["include"].append( # to a specific branch like prerelease_test we add additional # entries to the matrix if event_type != "pull_request": - # add debug test for first supported PG12 version - # most of the IGNORES are the isolation tests because the output format has changed between versions - # chunk_utils, telemetry and tablespace are skipped because of use after free bugs in postgres 12.0 which those tests hit - pg12_debug_earliest = { - "pg": PG12_EARLIEST, - # The early releases don't build with llvm 14. - "pg_extra_args": "--enable-debug --enable-cassert --without-llvm", - "skipped_tests": {"chunk_utils", "tablespace", "telemetry"}, - "ignored_tests": { - "cluster-12", - "cagg_policy", - "debug_notice", - "dist_gapfill_pushdown-12", - }, - "tsdb_build_args": "-DWARNINGS_AS_ERRORS=ON -DASSERTIONS=ON -DPG_ISOLATION_REGRESS=OFF", - } - m["include"].append(build_debug_config(pg12_debug_earliest)) - # add debug test for first supported PG13 version pg13_debug_earliest = { "pg": PG13_EARLIEST, @@ -259,26 +234,26 @@ if event_type != "pull_request": build_debug_config({"pg": PG15_EARLIEST, "ignored_tests": ignored_tests}) ) - # add debug test for MacOS - m["include"].append(build_debug_config(macos_config({}))) + # add debug tests for timescaledb on latest postgres release in MacOS + m["include"].append( + build_debug_config( + macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) + ) + ) # add release test for latest pg releases - m["include"].append(build_release_config({"pg": PG12_LATEST})) m["include"].append(build_release_config({"pg": PG13_LATEST})) m["include"].append(build_release_config({"pg": PG14_LATEST})) m["include"].append( build_release_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) ) - # add apache only test for latest pg - m["include"].append(build_apache_config({"pg": PG12_LATEST})) - m["include"].append(build_apache_config({"pg": PG13_LATEST})) - m["include"].append(build_apache_config({"pg": PG14_LATEST})) - m["include"].append(build_apache_config({"pg": PG15_LATEST})) + # add apache only test for latest pg versions + for PG_LATEST_VER in PG_LATEST: + m["include"].append(build_apache_config({"pg": PG_LATEST_VER})) # to discover issues with upcoming releases we run CI against # the stable branches of supported PG releases - m["include"].append(build_debug_config({"pg": 12, "snapshot": "snapshot"})) m["include"].append(build_debug_config({"pg": 13, "snapshot": "snapshot"})) m["include"].append( build_debug_config( diff --git a/.github/workflows/abi.yaml b/.github/workflows/abi.yaml index 8e783174e..a91848167 100644 --- a/.github/workflows/abi.yaml +++ b/.github/workflows/abi.yaml @@ -18,11 +18,9 @@ jobs: config: runs-on: ubuntu-latest outputs: - pg12_abi_min: ${{ steps.config.outputs.pg12_abi_min }} pg13_abi_min: ${{ steps.config.outputs.pg13_abi_min }} pg14_abi_min: ${{ steps.config.outputs.pg14_abi_min }} pg15_abi_min: ${{ steps.config.outputs.pg15_abi_min }} - pg12_latest: ${{ steps.config.outputs.pg12_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }} @@ -41,18 +39,10 @@ jobs: strategy: fail-fast: false matrix: - test: [ "12backward", "12forward", "13backward", "13forward", - "14backward", "14forward", "15backward", "15forward" ] + test: [ "13backward", "13forward", "14backward", "14forward", + "15backward", "15forward" ] os: [ windows-2019 ] include: - - test: 12backward - pg: 12 - builder: ${{ fromJson(needs.config.outputs.pg12_latest) }} - tester: ${{ fromJson(needs.config.outputs.pg12_abi_min ) }} - - test: 12forward - pg: 12 - builder: ${{ fromJson(needs.config.outputs.pg12_abi_min ) }} - tester: ${{ fromJson(needs.config.outputs.pg12_latest) }} - test: 13backward pg: 13 builder: ${{ fromJson(needs.config.outputs.pg13_latest) }} diff --git a/.github/workflows/apt-arm-packages.yaml b/.github/workflows/apt-arm-packages.yaml index 4bdfea29d..c13cb2a54 100644 --- a/.github/workflows/apt-arm-packages.yaml +++ b/.github/workflows/apt-arm-packages.yaml @@ -19,7 +19,7 @@ jobs: # Debian images: 10 (buster), 11 (bullseye) # Ubuntu images: 20.04 LTS (focal), 22.04 (jammy) image: [ "debian:10-slim","debian:11-slim","ubuntu:focal", "ubuntu:jammy"] - pg: [ 12, 13, 14, 15 ] + pg: [ 13, 14, 15 ] steps: - name: Setup emulation diff --git a/.github/workflows/apt-packages.yaml b/.github/workflows/apt-packages.yaml index 05a0b36ea..76ed5be3e 100644 --- a/.github/workflows/apt-packages.yaml +++ b/.github/workflows/apt-packages.yaml @@ -23,7 +23,7 @@ jobs: # Debian images: 10 (buster), 11 (bullseye) # Ubuntu images: 18.04 LTS (bionic), 20.04 LTS (focal), 21.10 (impish), 22.04 (jammy), 22.10 (kinetic) image: [ "debian:10-slim", "debian:11-slim", "ubuntu:focal", "ubuntu:jammy", "ubuntu:kinetic"] - pg: [ 12, 13, 14, 15 ] + pg: [ 13, 14, 15 ] license: [ "TSL", "Apache"] include: - license: Apache diff --git a/.github/workflows/linux-32bit-build-and-test.yaml b/.github/workflows/linux-32bit-build-and-test.yaml index 9115a2f61..fc74c349e 100644 --- a/.github/workflows/linux-32bit-build-and-test.yaml +++ b/.github/workflows/linux-32bit-build-and-test.yaml @@ -36,7 +36,7 @@ jobs: env: DEBIAN_FRONTEND: noninteractive IGNORES: "append-* debug_notice transparent_decompression-* - transparent_decompress_chunk-* plan_skip_scan-12 pg_dump + transparent_decompress_chunk-* pg_dump dist_move_chunk dist_param dist_insert remote_txn telemetry" SKIPS: chunk_adaptive histogram_test strategy: diff --git a/.github/workflows/memory-tests.yaml b/.github/workflows/memory-tests.yaml index 1b715b8de..a4c5f0fcd 100644 --- a/.github/workflows/memory-tests.yaml +++ b/.github/workflows/memory-tests.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - pg: [12, 13, 14, 15] + pg: [13, 14, 15] fail-fast: false steps: diff --git a/.github/workflows/rpm-packages.yaml b/.github/workflows/rpm-packages.yaml index 93dc5a43e..b02725281 100644 --- a/.github/workflows/rpm-packages.yaml +++ b/.github/workflows/rpm-packages.yaml @@ -20,7 +20,7 @@ jobs: fail-fast: false matrix: image: [ "centos:centos7", "rockylinux:8", "rockylinux:9" ] - pg: [ 12, 13, 14, 15 ] + pg: [ 13, 14, 15 ] license: [ "TSL", "Apache"] include: - license: Apache diff --git a/.github/workflows/windows-build-and-test-ignored.yaml b/.github/workflows/windows-build-and-test-ignored.yaml index 75881643c..7dbe17f0a 100644 --- a/.github/workflows/windows-build-and-test-ignored.yaml +++ b/.github/workflows/windows-build-and-test-ignored.yaml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false matrix: - pg: [ 12, 13, 14, 15 ] + pg: [ 13, 14, 15 ] os: [ windows-2022 ] build_type: ${{ fromJson(needs.config.outputs.build_type) }} steps: diff --git a/.github/workflows/windows-build-and-test.yaml b/.github/workflows/windows-build-and-test.yaml index 65dfea44a..0a04a074e 100644 --- a/.github/workflows/windows-build-and-test.yaml +++ b/.github/workflows/windows-build-and-test.yaml @@ -21,7 +21,6 @@ jobs: runs-on: ubuntu-latest outputs: build_type: ${{ steps.build_type.outputs.build_type }} - pg12_latest: ${{ steps.config.outputs.pg12_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }} @@ -49,7 +48,7 @@ jobs: strategy: fail-fast: false matrix: - pg: [ 12, 13, 14, 15 ] + pg: [ 13, 14, 15 ] os: [ windows-2022 ] build_type: ${{ fromJson(needs.config.outputs.build_type) }} ignores: ["chunk_adaptive metadata telemetry"] @@ -58,9 +57,6 @@ jobs: data_fetcher dist_compression dist_remote_error remote_txn"] pg_config: ["-cfsync=off -cstatement_timeout=60s"] include: - - pg: 12 - pkg_version: ${{ fromJson(needs.config.outputs.pg12_latest) }} - tsl_skips_version: dist_partial_agg-12 - pg: 13 pkg_version: ${{ fromJson(needs.config.outputs.pg13_latest) }} tsl_skips_version: dist_grant-13 dist_partial_agg-13 @@ -148,7 +144,6 @@ jobs: run: cmake --install build_win --config ${{ matrix.build_type }} - name: Setup postgres cluster - if: matrix.pg != '12' run: | ~/PostgreSQL/${{ matrix.pg }}/bin/initdb -U postgres -A trust --locale=us --encoding=UTF8 mkdir -p ${{ env.TABLESPACE1 }}\_default @@ -172,14 +167,12 @@ jobs: ~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'SHOW data_directory;' - name: Install postgres for test runner - if: matrix.pg != '12' shell: wsl-bash {0} run: | yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh || true apt-get install -y --force-yes postgresql-server-dev-${{ matrix.pg }} - name: Run tests - if: matrix.pg != '12' shell: wsl-bash {0} run: | export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}' @@ -195,7 +188,6 @@ jobs: make -C build_wsl regresschecklocal IGNORES="${{ matrix.ignores }}" | tee -a installcheck.log - name: Setup postgres cluster for TSL tests - if: matrix.pg != '12' run: | ~/PostgreSQL/${{ matrix.pg }}/bin/pg_ctl stop timeout 10 @@ -208,7 +200,6 @@ jobs: ~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'CREATE USER root SUPERUSER LOGIN;' - name: Run TSL tests - if: matrix.pg != '12' shell: wsl-bash {0} run: | export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}' @@ -226,7 +217,7 @@ jobs: - name: Show regression diffs id: collectlogs - if: always() && matrix.pg != '12' + if: always() env: WSLENV: GITHUB_OUTPUT/p shell: wsl-bash {0} @@ -237,7 +228,7 @@ jobs: cat regression.log - name: Save regression diffs - if: always() && matrix.pg != '12' && steps.collectlogs.outputs.regression_diff == 'true' + if: always() && steps.collectlogs.outputs.regression_diff == 'true' uses: actions/upload-artifact@v3 with: name: Regression diff ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }} @@ -253,7 +244,7 @@ jobs: path: postgres.log - name: Upload test results to the database - if: always() && matrix.pg != '12' + if: always() shell: wsl-bash {0} env: # Update when adding new variables. diff --git a/.github/workflows/windows-packages.yaml b/.github/workflows/windows-packages.yaml index e1cacd273..9a18c64f6 100644 --- a/.github/workflows/windows-packages.yaml +++ b/.github/workflows/windows-packages.yaml @@ -14,11 +14,9 @@ jobs: config: runs-on: ubuntu-latest outputs: - pg12_earliest: ${{ steps.config.outputs.pg12_abi_min }} pg13_earliest: ${{ steps.config.outputs.pg13_abi_min }} pg14_earliest: ${{ steps.config.outputs.pg14_abi_min }} pg15_earliest: ${{ steps.config.outputs.pg15_abi_min }} - pg12_latest: ${{ steps.config.outputs.pg12_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }} @@ -38,14 +36,8 @@ jobs: fail-fast: false matrix: os: [ windows-2019 ] - test: [ "12min", "12max", "13min", "13max", "14min", "14max", "15min", "15max" ] + test: [ "13min", "13max", "14min", "14max", "15min", "15max" ] include: - - test: 12min - pg: 12 - pkg_version: ${{ fromJson(needs.config.outputs.pg12_earliest) }}.1 - - test: 12max - pg: 12 - pkg_version: ${{ fromJson(needs.config.outputs.pg12_latest) }} - test: 13min pg: 13 pkg_version: ${{ fromJson(needs.config.outputs.pg13_earliest) }}.1 diff --git a/coccinelle/ereport_pg12.cocci b/coccinelle/ereport_pg12.cocci deleted file mode 100644 index 69c790136..000000000 --- a/coccinelle/ereport_pg12.cocci +++ /dev/null @@ -1,24 +0,0 @@ -// Since PG 12.3 the ereport syntax changed. This coccinelle patch checks that the used -// ereport calls work with PG < 12.3. -// -// See postgres/postgres@a86715451653c730d637847b403b0420923956f7 -// - -@rule_1@ -constant K1; -expression E1, E2; -@@ - -// We pass two or more expressions to ereport - -+ /* -+ * Please enclose the auxiliary ereport arguments into parentheses for -+ * compatibility with PG 12. Example: -+ * -+ * ereport(ERROR, ( errmsg(...), errdetail(...) ) ); -+ * ^-----------add these---------^ -+ * -+ * See https://github.com/postgres/postgres/commit/a86715451653c730d637847b403b0420923956f7 -+ */ -ereport(K1, E1, E2, ...); -