diff --git a/circleci/images/citusupgradetester/Dockerfile b/circleci/images/citusupgradetester/Dockerfile index 7b96584..b434779 100644 --- a/circleci/images/citusupgradetester/Dockerfile +++ b/circleci/images/citusupgradetester/Dockerfile @@ -1,5 +1,4 @@ -# we cannot easily upgrade to python 3.11 as our mitmproxy fork does not ship with it -FROM python:3.9.7-slim-bullseye AS base +FROM python:3.12-slim-bookworm AS base # add unpriviliged user for tests RUN useradd -ms /bin/bash circleci @@ -56,8 +55,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list -echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/citusupgradetester/files/etc/requirements.txt b/circleci/images/citusupgradetester/files/etc/requirements.txt index eacce81..5b2da17 100644 --- a/circleci/images/citusupgradetester/files/etc/requirements.txt +++ b/circleci/images/citusupgradetester/files/etc/requirements.txt @@ -1,57 +1,65 @@ -# generated from Citus's Pipfile.lock (in src/test/regress) as of #7491 +# generated from Citus's Pipfile.lock (in src/test/regress) as of #8422 # using `pipenv requirements > requirements.txt`, so as to avoid the # need for pipenv/pyenv in this image -i https://pypi.python.org/simple -asgiref==3.4.1; python_version >= '3.6' -blinker==1.4 -brotli==1.0.9 -certifi==2024.2.2; python_version >= '3.6' -cffi==1.16.0; platform_python_implementation != 'PyPy' -click==8.0.4; python_version >= '3.6' -construct==2.9.45 -cryptography==42.0.3; python_version >= '3.7' +aioquic==1.2.0; python_version >= '3.8' +argon2-cffi==25.1.0; python_version >= '3.8' +argon2-cffi-bindings==25.1.0; python_version >= '3.9' +asgiref==3.10.0; python_version >= '3.9' +attrs==25.4.0; python_version >= '3.9' +bcrypt==5.0.0; python_version >= '3.8' +blinker==1.9.0; python_version >= '3.9' +brotli==1.2.0 +certifi==2026.1.4; python_version >= '3.7' +cffi==2.0.0; python_version >= '3.9' +click==8.3.1; python_version >= '3.10' +construct==2.10.70; python_version >= '3.6' +cryptography==44.0.3; python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1' docopt==0.6.2 -exceptiongroup==1.2.0; python_version < '3.11' -execnet==2.0.2; python_version >= '3.7' -filelock==3.13.1; python_version >= '3.8' -flask==2.0.3; python_version >= '3.6' -h11==0.12.0; python_version >= '3.6' -h2==4.1.0; python_full_version >= '3.6.1' -hpack==4.0.0; python_full_version >= '3.6.1' -hyperframe==6.0.1; python_full_version >= '3.6.1' -iniconfig==2.0.0; python_version >= '3.7' -itsdangerous==2.1.2; python_version >= '3.7' -jinja2==3.1.3; python_version >= '3.7' -kaitaistruct==0.9 +execnet==2.1.2; python_version >= '3.8' +filelock==3.20.2; python_version >= '3.10' +flask==3.1.2; python_version >= '3.9' +h11==0.16.0; python_version >= '3.8' +h2==4.3.0; python_version >= '3.9' +hpack==4.1.0; python_version >= '3.9' +hyperframe==6.1.0; python_version >= '3.9' +iniconfig==2.3.0; python_version >= '3.10' +itsdangerous==2.2.0; python_version >= '3.8' +jinja2==3.1.6; python_version >= '3.7' +kaitaistruct==0.11; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' ldap3==2.9.1 -markupsafe==2.1.5; python_version >= '3.7' --e git+https://github.com/citusdata/mitmproxy.git@2fd18ef051b987925a36337ab1d61aa674353b44#egg=mitmproxy -msgpack==1.0.7; python_version >= '3.8' -packaging==23.2; python_version >= '3.7' -passlib==1.7.4 -pluggy==1.4.0; python_version >= '3.8' -protobuf==3.18.3; python_version >= '3.5' -psycopg==3.1.18; python_version >= '3.7' +markupsafe==3.0.3; python_version >= '3.9' +mitmproxy @ git+https://github.com/citusdata/mitmproxy.git@30b588eb1b7c66da233d7c471ec23f2b632ed531 +mitmproxy-linux==0.12.8; python_version >= '3.12' +mitmproxy-rs==0.12.8; python_version >= '3.12' +msgpack==1.1.2; python_version >= '3.9' +packaging==25.0; python_version >= '3.8' +pluggy==1.6.0; python_version >= '3.9' +psycopg==3.3.2; python_version >= '3.10' publicsuffix2==2.20191221 -pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -pycparser==2.21 -pyopenssl==24.0.0; python_version >= '3.7' -pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' -pyperclip==1.8.2 -pytest==8.0.0; python_version >= '3.8' -pytest-asyncio==0.23.5; python_version >= '3.8' -pytest-repeat==0.9.3; python_version >= '3.7' -pytest-timeout==2.2.0; python_version >= '3.7' -pytest-xdist==3.5.0; python_version >= '3.7' -pyyaml==6.0.1; python_version >= '3.6' -ruamel.yaml==0.17.16; python_version >= '3' -ruamel.yaml.clib==0.2.8; python_version < '3.10' and platform_python_implementation == 'CPython' +pyasn1==0.6.1; python_version >= '3.8' +pyasn1-modules==0.4.2; python_version >= '3.8' +pycparser==2.23; python_version >= '3.8' +pygments==2.19.2; python_version >= '3.8' +pylsqpack==0.3.23; python_version >= '3.10' +pyopenssl==25.1.0; python_version >= '3.7' +pyparsing==3.2.5; python_version >= '3.9' +pyperclip==1.9.0 +pytest==9.0.2; python_version >= '3.10' +pytest-asyncio==1.3.0; python_version >= '3.10' +pytest-repeat==0.9.4; python_version >= '3.9' +pytest-timeout==2.4.0; python_version >= '3.7' +pytest-xdist==3.8.0; python_version >= '3.9' +pyyaml==6.0.3; python_version >= '3.8' +ruamel.yaml==0.18.16; python_version >= '3.8' +ruamel.yaml.clib==0.2.15; python_version >= '3.9' +service-identity==24.2.0; python_version >= '3.8' sortedcontainers==2.4.0 -tomli==2.0.1; python_version < '3.11' -tornado==6.4; python_version >= '3.8' -typing-extensions==4.9.0; python_version >= '3.8' -urwid==2.1.2 -werkzeug==2.3.7; python_version >= '3.8' -wsproto==1.0.0; python_full_version >= '3.6.1' -zstandard==0.15.2; python_version >= '3.5' +tornado==6.5.2; python_version >= '3.9' +typing-extensions==4.14.0; python_version >= '3.9' +urwid==3.0.3; python_full_version >= '3.9.0' +wcwidth==0.2.14; python_version >= '3.6' +werkzeug==3.1.0; python_version >= '3.9' +wsproto==1.2.0; python_full_version >= '3.7.0' +zstandard==0.25.0; python_version >= '3.9' \ No newline at end of file diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index d7e6e18..d703a28 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -1,4 +1,4 @@ -FROM buildpack-deps:bullseye +FROM buildpack-deps:bookworm # add unpriviliged user for tests RUN useradd -ms /bin/bash circleci @@ -48,8 +48,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list -echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 4afad9e..4af0f75 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -1,6 +1,6 @@ # postgres doesn't ship their isolation tester in the server-dev images # we use this builder to build the isolation tester from a specific version -FROM buildpack-deps:bullseye AS dev-tools-builder +FROM buildpack-deps:bookworm AS dev-tools-builder RUN <<'EOF' # install dependencies @@ -65,7 +65,7 @@ WORKDIR /build/postgresql-${PG_VERSION_CLEAN}/build RUN ../configure --prefix /usr/lib/postgresql/${PG_MAJOR}/ RUN make -sj8 -FROM buildpack-deps:bullseye AS dev-tools-collection +FROM buildpack-deps:bookworm AS dev-tools-collection WORKDIR /collect @@ -84,7 +84,7 @@ COPY --from=dev-tools-builder /build/postgresql-${PG_VERSION_CLEAN}/build/src/te COPY --from=dev-tools-builder /build/postgresql-${PG_VERSION_CLEAN}/src/test/regress/ usr/lib/postgresql/${PG_MAJOR}/lib/regress/ RUN rm -rf usr/lib/postgresql/${PG_MAJOR}/lib/regress/*.c usr/lib/postgresql/${PG_MAJOR}/lib/regress/*.h -FROM buildpack-deps:bullseye AS setup-environment +FROM buildpack-deps:bookworm AS setup-environment # add unpriviliged user for tests RUN useradd -ms /bin/bash circleci @@ -153,8 +153,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list -echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update @@ -163,16 +163,17 @@ pgdg_version=$(apt list -a postgresql-server-dev-${PG_MAJOR} 2>/dev/null | grep apt-get install -y --no-install-recommends --allow-downgrades \ libdbi-perl \ - libdbd-pg-perl=3.16.3-1.pgdg110+1 \ libpq-dev=${pgdg_version} \ libpq5=${pgdg_version} \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ - postgresql-${PG_MAJOR}-wal2json \ + postgresql-${PG_MAJOR}-wal2json - # clear apt cache +apt-get install -y --no-install-recommends -t bookworm libdbd-pg-perl + +# clear apt cache rm -rf /var/lib/apt/lists/* EOF diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index 67cd0ab..ac68c87 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -1,5 +1,4 @@ -# we cannot easily upgrade to python 3.11 as our mitmproxy fork does not ship with it -FROM python:3.9.7-slim-bullseye +FROM python:3.12-slim-bookworm # add unpriviliged user for tests RUN useradd -ms /bin/bash circleci @@ -55,8 +54,8 @@ RUN <<'EOF' # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list -echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update @@ -82,6 +81,23 @@ ENV PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql COPY ./files/etc/requirements.txt /tmp/etc/ -RUN pip3 install -Ir /tmp/etc/requirements.txt +RUN <&2 + exit 1 +fi + +if [ "$MITMDUMP_BIN" != "/usr/local/bin/mitmdump" ]; then + ln -sf "$MITMDUMP_BIN" /usr/local/bin/mitmdump +fi + +hash mitmdump +EOF WORKDIR /home/circleci diff --git a/circleci/images/failtester/files/etc/requirements.txt b/circleci/images/failtester/files/etc/requirements.txt index eacce81..5b2da17 100644 --- a/circleci/images/failtester/files/etc/requirements.txt +++ b/circleci/images/failtester/files/etc/requirements.txt @@ -1,57 +1,65 @@ -# generated from Citus's Pipfile.lock (in src/test/regress) as of #7491 +# generated from Citus's Pipfile.lock (in src/test/regress) as of #8422 # using `pipenv requirements > requirements.txt`, so as to avoid the # need for pipenv/pyenv in this image -i https://pypi.python.org/simple -asgiref==3.4.1; python_version >= '3.6' -blinker==1.4 -brotli==1.0.9 -certifi==2024.2.2; python_version >= '3.6' -cffi==1.16.0; platform_python_implementation != 'PyPy' -click==8.0.4; python_version >= '3.6' -construct==2.9.45 -cryptography==42.0.3; python_version >= '3.7' +aioquic==1.2.0; python_version >= '3.8' +argon2-cffi==25.1.0; python_version >= '3.8' +argon2-cffi-bindings==25.1.0; python_version >= '3.9' +asgiref==3.10.0; python_version >= '3.9' +attrs==25.4.0; python_version >= '3.9' +bcrypt==5.0.0; python_version >= '3.8' +blinker==1.9.0; python_version >= '3.9' +brotli==1.2.0 +certifi==2026.1.4; python_version >= '3.7' +cffi==2.0.0; python_version >= '3.9' +click==8.3.1; python_version >= '3.10' +construct==2.10.70; python_version >= '3.6' +cryptography==44.0.3; python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1' docopt==0.6.2 -exceptiongroup==1.2.0; python_version < '3.11' -execnet==2.0.2; python_version >= '3.7' -filelock==3.13.1; python_version >= '3.8' -flask==2.0.3; python_version >= '3.6' -h11==0.12.0; python_version >= '3.6' -h2==4.1.0; python_full_version >= '3.6.1' -hpack==4.0.0; python_full_version >= '3.6.1' -hyperframe==6.0.1; python_full_version >= '3.6.1' -iniconfig==2.0.0; python_version >= '3.7' -itsdangerous==2.1.2; python_version >= '3.7' -jinja2==3.1.3; python_version >= '3.7' -kaitaistruct==0.9 +execnet==2.1.2; python_version >= '3.8' +filelock==3.20.2; python_version >= '3.10' +flask==3.1.2; python_version >= '3.9' +h11==0.16.0; python_version >= '3.8' +h2==4.3.0; python_version >= '3.9' +hpack==4.1.0; python_version >= '3.9' +hyperframe==6.1.0; python_version >= '3.9' +iniconfig==2.3.0; python_version >= '3.10' +itsdangerous==2.2.0; python_version >= '3.8' +jinja2==3.1.6; python_version >= '3.7' +kaitaistruct==0.11; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' ldap3==2.9.1 -markupsafe==2.1.5; python_version >= '3.7' --e git+https://github.com/citusdata/mitmproxy.git@2fd18ef051b987925a36337ab1d61aa674353b44#egg=mitmproxy -msgpack==1.0.7; python_version >= '3.8' -packaging==23.2; python_version >= '3.7' -passlib==1.7.4 -pluggy==1.4.0; python_version >= '3.8' -protobuf==3.18.3; python_version >= '3.5' -psycopg==3.1.18; python_version >= '3.7' +markupsafe==3.0.3; python_version >= '3.9' +mitmproxy @ git+https://github.com/citusdata/mitmproxy.git@30b588eb1b7c66da233d7c471ec23f2b632ed531 +mitmproxy-linux==0.12.8; python_version >= '3.12' +mitmproxy-rs==0.12.8; python_version >= '3.12' +msgpack==1.1.2; python_version >= '3.9' +packaging==25.0; python_version >= '3.8' +pluggy==1.6.0; python_version >= '3.9' +psycopg==3.3.2; python_version >= '3.10' publicsuffix2==2.20191221 -pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -pycparser==2.21 -pyopenssl==24.0.0; python_version >= '3.7' -pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' -pyperclip==1.8.2 -pytest==8.0.0; python_version >= '3.8' -pytest-asyncio==0.23.5; python_version >= '3.8' -pytest-repeat==0.9.3; python_version >= '3.7' -pytest-timeout==2.2.0; python_version >= '3.7' -pytest-xdist==3.5.0; python_version >= '3.7' -pyyaml==6.0.1; python_version >= '3.6' -ruamel.yaml==0.17.16; python_version >= '3' -ruamel.yaml.clib==0.2.8; python_version < '3.10' and platform_python_implementation == 'CPython' +pyasn1==0.6.1; python_version >= '3.8' +pyasn1-modules==0.4.2; python_version >= '3.8' +pycparser==2.23; python_version >= '3.8' +pygments==2.19.2; python_version >= '3.8' +pylsqpack==0.3.23; python_version >= '3.10' +pyopenssl==25.1.0; python_version >= '3.7' +pyparsing==3.2.5; python_version >= '3.9' +pyperclip==1.9.0 +pytest==9.0.2; python_version >= '3.10' +pytest-asyncio==1.3.0; python_version >= '3.10' +pytest-repeat==0.9.4; python_version >= '3.9' +pytest-timeout==2.4.0; python_version >= '3.7' +pytest-xdist==3.8.0; python_version >= '3.9' +pyyaml==6.0.3; python_version >= '3.8' +ruamel.yaml==0.18.16; python_version >= '3.8' +ruamel.yaml.clib==0.2.15; python_version >= '3.9' +service-identity==24.2.0; python_version >= '3.8' sortedcontainers==2.4.0 -tomli==2.0.1; python_version < '3.11' -tornado==6.4; python_version >= '3.8' -typing-extensions==4.9.0; python_version >= '3.8' -urwid==2.1.2 -werkzeug==2.3.7; python_version >= '3.8' -wsproto==1.0.0; python_full_version >= '3.6.1' -zstandard==0.15.2; python_version >= '3.5' +tornado==6.5.2; python_version >= '3.9' +typing-extensions==4.14.0; python_version >= '3.9' +urwid==3.0.3; python_full_version >= '3.9.0' +wcwidth==0.2.14; python_version >= '3.6' +werkzeug==3.1.0; python_version >= '3.9' +wsproto==1.2.0; python_full_version >= '3.7.0' +zstandard==0.25.0; python_version >= '3.9' \ No newline at end of file diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 28ec831..9e0237d 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -1,5 +1,4 @@ -# we cannot easily upgrade to python 3.11 as our mitmproxy fork does not ship with it -FROM python:3.9.7-slim-bullseye +FROM python:3.12-slim-bookworm # add unpriviliged user for tests RUN useradd -ms /bin/bash circleci @@ -56,8 +55,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/postgresql.list -echo "deb https://apt-archive.postgresql.org/pub/repos/apt bullseye-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/pgupgradetester/files/etc/requirements.txt b/circleci/images/pgupgradetester/files/etc/requirements.txt index eacce81..5b2da17 100644 --- a/circleci/images/pgupgradetester/files/etc/requirements.txt +++ b/circleci/images/pgupgradetester/files/etc/requirements.txt @@ -1,57 +1,65 @@ -# generated from Citus's Pipfile.lock (in src/test/regress) as of #7491 +# generated from Citus's Pipfile.lock (in src/test/regress) as of #8422 # using `pipenv requirements > requirements.txt`, so as to avoid the # need for pipenv/pyenv in this image -i https://pypi.python.org/simple -asgiref==3.4.1; python_version >= '3.6' -blinker==1.4 -brotli==1.0.9 -certifi==2024.2.2; python_version >= '3.6' -cffi==1.16.0; platform_python_implementation != 'PyPy' -click==8.0.4; python_version >= '3.6' -construct==2.9.45 -cryptography==42.0.3; python_version >= '3.7' +aioquic==1.2.0; python_version >= '3.8' +argon2-cffi==25.1.0; python_version >= '3.8' +argon2-cffi-bindings==25.1.0; python_version >= '3.9' +asgiref==3.10.0; python_version >= '3.9' +attrs==25.4.0; python_version >= '3.9' +bcrypt==5.0.0; python_version >= '3.8' +blinker==1.9.0; python_version >= '3.9' +brotli==1.2.0 +certifi==2026.1.4; python_version >= '3.7' +cffi==2.0.0; python_version >= '3.9' +click==8.3.1; python_version >= '3.10' +construct==2.10.70; python_version >= '3.6' +cryptography==44.0.3; python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1' docopt==0.6.2 -exceptiongroup==1.2.0; python_version < '3.11' -execnet==2.0.2; python_version >= '3.7' -filelock==3.13.1; python_version >= '3.8' -flask==2.0.3; python_version >= '3.6' -h11==0.12.0; python_version >= '3.6' -h2==4.1.0; python_full_version >= '3.6.1' -hpack==4.0.0; python_full_version >= '3.6.1' -hyperframe==6.0.1; python_full_version >= '3.6.1' -iniconfig==2.0.0; python_version >= '3.7' -itsdangerous==2.1.2; python_version >= '3.7' -jinja2==3.1.3; python_version >= '3.7' -kaitaistruct==0.9 +execnet==2.1.2; python_version >= '3.8' +filelock==3.20.2; python_version >= '3.10' +flask==3.1.2; python_version >= '3.9' +h11==0.16.0; python_version >= '3.8' +h2==4.3.0; python_version >= '3.9' +hpack==4.1.0; python_version >= '3.9' +hyperframe==6.1.0; python_version >= '3.9' +iniconfig==2.3.0; python_version >= '3.10' +itsdangerous==2.2.0; python_version >= '3.8' +jinja2==3.1.6; python_version >= '3.7' +kaitaistruct==0.11; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' ldap3==2.9.1 -markupsafe==2.1.5; python_version >= '3.7' --e git+https://github.com/citusdata/mitmproxy.git@2fd18ef051b987925a36337ab1d61aa674353b44#egg=mitmproxy -msgpack==1.0.7; python_version >= '3.8' -packaging==23.2; python_version >= '3.7' -passlib==1.7.4 -pluggy==1.4.0; python_version >= '3.8' -protobuf==3.18.3; python_version >= '3.5' -psycopg==3.1.18; python_version >= '3.7' +markupsafe==3.0.3; python_version >= '3.9' +mitmproxy @ git+https://github.com/citusdata/mitmproxy.git@30b588eb1b7c66da233d7c471ec23f2b632ed531 +mitmproxy-linux==0.12.8; python_version >= '3.12' +mitmproxy-rs==0.12.8; python_version >= '3.12' +msgpack==1.1.2; python_version >= '3.9' +packaging==25.0; python_version >= '3.8' +pluggy==1.6.0; python_version >= '3.9' +psycopg==3.3.2; python_version >= '3.10' publicsuffix2==2.20191221 -pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -pycparser==2.21 -pyopenssl==24.0.0; python_version >= '3.7' -pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' -pyperclip==1.8.2 -pytest==8.0.0; python_version >= '3.8' -pytest-asyncio==0.23.5; python_version >= '3.8' -pytest-repeat==0.9.3; python_version >= '3.7' -pytest-timeout==2.2.0; python_version >= '3.7' -pytest-xdist==3.5.0; python_version >= '3.7' -pyyaml==6.0.1; python_version >= '3.6' -ruamel.yaml==0.17.16; python_version >= '3' -ruamel.yaml.clib==0.2.8; python_version < '3.10' and platform_python_implementation == 'CPython' +pyasn1==0.6.1; python_version >= '3.8' +pyasn1-modules==0.4.2; python_version >= '3.8' +pycparser==2.23; python_version >= '3.8' +pygments==2.19.2; python_version >= '3.8' +pylsqpack==0.3.23; python_version >= '3.10' +pyopenssl==25.1.0; python_version >= '3.7' +pyparsing==3.2.5; python_version >= '3.9' +pyperclip==1.9.0 +pytest==9.0.2; python_version >= '3.10' +pytest-asyncio==1.3.0; python_version >= '3.10' +pytest-repeat==0.9.4; python_version >= '3.9' +pytest-timeout==2.4.0; python_version >= '3.7' +pytest-xdist==3.8.0; python_version >= '3.9' +pyyaml==6.0.3; python_version >= '3.8' +ruamel.yaml==0.18.16; python_version >= '3.8' +ruamel.yaml.clib==0.2.15; python_version >= '3.9' +service-identity==24.2.0; python_version >= '3.8' sortedcontainers==2.4.0 -tomli==2.0.1; python_version < '3.11' -tornado==6.4; python_version >= '3.8' -typing-extensions==4.9.0; python_version >= '3.8' -urwid==2.1.2 -werkzeug==2.3.7; python_version >= '3.8' -wsproto==1.0.0; python_full_version >= '3.6.1' -zstandard==0.15.2; python_version >= '3.5' +tornado==6.5.2; python_version >= '3.9' +typing-extensions==4.14.0; python_version >= '3.9' +urwid==3.0.3; python_full_version >= '3.9.0' +wcwidth==0.2.14; python_version >= '3.6' +werkzeug==3.1.0; python_version >= '3.9' +wsproto==1.2.0; python_full_version >= '3.7.0' +zstandard==0.25.0; python_version >= '3.9' \ No newline at end of file diff --git a/circleci/images/stylechecker/Dockerfile b/circleci/images/stylechecker/Dockerfile index e6db9c8..1ef89e1 100644 --- a/circleci/images/stylechecker/Dockerfile +++ b/circleci/images/stylechecker/Dockerfile @@ -1,4 +1,3 @@ -# we cannot easily upgrade to python 3.11 as our mitmproxy fork does not ship with it FROM alpine:latest ARG TOOLS_VERSION @@ -16,9 +15,22 @@ apk add --no-cache --virtual installdeps \ gcc \ gzip \ musl-dev \ + openssl-dev \ py3-pip \ python3-dev \ tar \ + llvm21 \ + llvm21-dev \ + llvm21-libs \ + llvm21-linker-tools \ + llvm21-static \ + clang \ + elfutils-dev \ + zlib-dev \ + zlib-static \ + libxml2-static \ + xz-static \ + zstd-static apk add --no-cache \ ca-certificates \ @@ -30,13 +42,13 @@ apk add --no-cache \ python3 \ py3-packaging \ -curl -L "https://github.com/citusdata/tools/archive/v${TOOLS_VERSION}.tar.gz" | tar xz +curl -fsSL "https://codeload.github.com/citusdata/tools/tar.gz/v${TOOLS_VERSION}" | tar xz cd "tools-${TOOLS_VERSION}" make uncrustify/.install cd .. rm -rf "v${TOOLS_VERSION}.tar.gz" -curl -L "https://github.com/uncrustify/uncrustify/archive/uncrustify-0.82.0.tar.gz" | tar xz +curl -fsSL "https://codeload.github.com/uncrustify/uncrustify/tar.gz/uncrustify-0.82.0" | tar xz cd uncrustify-uncrustify-0.82.0/ mkdir build cd build @@ -46,6 +58,29 @@ make install cd ../.. rm -rf uncrustify-uncrustify-0.82.0/ +export CARGO_HOME="${CARGO_HOME:-/root/.cargo}" +export RUSTUP_HOME="${RUSTUP_HOME:-/root/.rustup}" + +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-host x86_64-unknown-linux-musl +. "$CARGO_HOME/env" +rustup toolchain install nightly-x86_64-unknown-linux-musl +rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-musl +cargo install --locked bpf-linker --no-default-features --features llvm-21 +export PATH="/root/.cargo/bin:${PATH}" + +LLVM_CONFIG="$(command -v llvm-config || command -v llvm-config-21)" +LLVM_LIBDIR="$(${LLVM_CONFIG} --libdir)" +LLVM_PREFIX="$(dirname "${LLVM_LIBDIR}")" +export LD_LIBRARY_PATH="${LLVM_LIBDIR}:${LD_LIBRARY_PATH:-}" +export PKG_CONFIG_PATH="${LLVM_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH:-}" +export LLVM_SYS_211_PREFIX="${LLVM_SYS_211_PREFIX:-${LLVM_PREFIX}}" +export LLVM_SYS_211_STATIC=1 +export AYA_RUSTC_LLVM_PROXY_DISABLE_DLOPEN=1 +export AYA_RUSTC_LLVM_PROXY_LIB_DIR="${LLVM_LIBDIR}" + + +install -m 755 "$CARGO_HOME/bin/bpf-linker" /usr/local/bin/bpf-linker + # this image is only used for testing purposes, so should be okay to overwrite system-managed packages pip3 install -Ir /tmp/etc/requirements.txt --break-system-packages apk del installdeps diff --git a/circleci/images/stylechecker/files/etc/requirements.txt b/circleci/images/stylechecker/files/etc/requirements.txt index a37c9cb..44fe55d 100644 --- a/circleci/images/stylechecker/files/etc/requirements.txt +++ b/circleci/images/stylechecker/files/etc/requirements.txt @@ -1,68 +1,75 @@ -# generated from Citus's Pipfile.lock (in src/test/regress) as of #7491 +# generated from Citus's Pipfile.lock (in src/test/regress) as of #8422 # using `pipenv requirements --dev > requirements.txt`, so as to avoid the # need for pipenv/pyenv in this image -i https://pypi.python.org/simple -attrs==23.2.0; python_version >= '3.7' -black==24.2.0; python_version >= '3.8' -click==8.0.4; python_version >= '3.6' -flake8==7.0.0; python_full_version >= '3.8.1' -flake8-bugbear==24.2.6; python_full_version >= '3.8.1' -isort==5.13.2; python_full_version >= '3.8.0' +attrs==25.4.0; python_version >= '3.9' +black==24.10.0; python_version >= '3.9' +click==8.3.1; python_version >= '3.10' +flake8==7.3.0; python_version >= '3.9' +flake8-bugbear==25.11.29; python_version >= '3.10' +isort==7.0.0; python_full_version >= '3.10.0' mccabe==0.7.0; python_version >= '3.6' -mypy-extensions==1.0.0; python_version >= '3.5' -packaging==23.2; python_version >= '3.7' +mypy-extensions==1.1.0; python_version >= '3.8' +packaging==25.0; python_version >= '3.8' pathspec==0.12.1; python_version >= '3.8' -platformdirs==4.2.0; python_version >= '3.8' -pycodestyle==2.11.1; python_version >= '3.8' -pyflakes==3.2.0; python_version >= '3.8' -tomli==2.0.1; python_version < '3.11' -typing-extensions==4.9.0; python_version >= '3.8' -asgiref==3.4.1; python_version >= '3.6' -blinker==1.4 -brotli==1.0.9 -certifi==2024.2.2; python_version >= '3.6' -cffi==1.16.0; platform_python_implementation != 'PyPy' +platformdirs==4.5.1; python_version >= '3.10' +pycodestyle==2.14.0; python_version >= '3.9' +pyflakes==3.4.0; python_version >= '3.9' +aioquic==1.2.0; python_version >= '3.8' +argon2-cffi==25.1.0; python_version >= '3.8' +argon2-cffi-bindings==25.1.0; python_version >= '3.9' +asgiref==3.10.0; python_version >= '3.9' +bcrypt==5.0.0; python_version >= '3.8' +blinker==1.9.0; python_version >= '3.9' +brotli==1.2.0 +certifi==2026.1.4; python_version >= '3.7' +cffi==2.0.0; python_version >= '3.9' construct==2.10.70; python_version >= '3.6' -cryptography==42.0.3; python_version >= '3.7' +cryptography==44.0.3; python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1' docopt==0.6.2 -exceptiongroup==1.2.0; python_version < '3.11' -execnet==2.0.2; python_version >= '3.7' -filelock==3.13.1; python_version >= '3.8' -flask==2.0.3; python_version >= '3.6' -h11==0.12.0; python_version >= '3.6' -h2==4.1.0; python_full_version >= '3.6.1' -hpack==4.0.0; python_full_version >= '3.6.1' -hyperframe==6.0.1; python_full_version >= '3.6.1' -iniconfig==2.0.0; python_version >= '3.7' -itsdangerous==2.1.2; python_version >= '3.7' -jinja2==3.1.3; python_version >= '3.7' -kaitaistruct==0.9 +execnet==2.1.2; python_version >= '3.8' +filelock==3.20.2; python_version >= '3.10' +flask==3.1.2; python_version >= '3.9' +h11==0.16.0; python_version >= '3.8' +h2==4.3.0; python_version >= '3.9' +hpack==4.1.0; python_version >= '3.9' +hyperframe==6.1.0; python_version >= '3.9' +iniconfig==2.3.0; python_version >= '3.10' +itsdangerous==2.2.0; python_version >= '3.8' +jinja2==3.1.6; python_version >= '3.7' +kaitaistruct==0.11; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' ldap3==2.9.1 -markupsafe==2.1.5; python_version >= '3.7' --e git+https://github.com/citusdata/mitmproxy.git@2fd18ef051b987925a36337ab1d61aa674353b44#egg=mitmproxy -msgpack==1.0.7; python_version >= '3.8' -passlib==1.7.4 -pluggy==1.4.0; python_version >= '3.8' -protobuf==3.18.3; python_version >= '3.5' -psycopg==3.1.18; python_version >= '3.7' +markupsafe==3.0.3; python_version >= '3.9' +mitmproxy @ git+https://github.com/citusdata/mitmproxy.git@30b588eb1b7c66da233d7c471ec23f2b632ed531 +mitmproxy-linux==0.12.8; python_version >= '3.12' +mitmproxy-rs==0.12.8; python_version >= '3.12' +msgpack==1.1.2; python_version >= '3.9' +pluggy==1.6.0; python_version >= '3.9' +psycopg==3.3.2; python_version >= '3.10' publicsuffix2==2.20191221 -pyasn1==0.5.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -pycparser==2.21 -pyopenssl==24.0.0; python_version >= '3.7' -pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' -pyperclip==1.8.2 -pytest==8.0.0; python_version >= '3.8' -pytest-asyncio==0.23.5; python_version >= '3.8' -pytest-repeat==0.9.3; python_version >= '3.7' -pytest-timeout==2.2.0; python_version >= '3.7' -pytest-xdist==3.5.0; python_version >= '3.7' -pyyaml==6.0.1; python_version >= '3.6' -ruamel.yaml==0.17.16; python_version >= '3' -ruamel.yaml.clib==0.2.8; python_version < '3.10' and platform_python_implementation == 'CPython' +pyasn1==0.6.1; python_version >= '3.8' +pyasn1-modules==0.4.2; python_version >= '3.8' +pycparser==2.23; python_version >= '3.8' +pygments==2.19.2; python_version >= '3.8' +pylsqpack==0.3.23; python_version >= '3.10' +pyopenssl==25.1.0; python_version >= '3.7' +pyparsing==3.2.5; python_version >= '3.9' +pyperclip==1.9.0 +pytest==9.0.2; python_version >= '3.10' +pytest-asyncio==1.3.0; python_version >= '3.10' +pytest-repeat==0.9.4; python_version >= '3.9' +pytest-timeout==2.4.0; python_version >= '3.7' +pytest-xdist==3.8.0; python_version >= '3.9' +pyyaml==6.0.3; python_version >= '3.8' +ruamel.yaml==0.18.16; python_version >= '3.8' +ruamel.yaml.clib==0.2.15; python_version >= '3.9' +service-identity==24.2.0; python_version >= '3.8' sortedcontainers==2.4.0 -tornado==6.4; python_version >= '3.8' -urwid==2.1.2 -werkzeug==2.3.7; python_version >= '3.8' -wsproto==1.0.0; python_full_version >= '3.6.1' -zstandard==0.15.2; python_version >= '3.5' +tornado==6.5.2; python_version >= '3.9' +typing-extensions==4.14.0; python_version >= '3.9' +urwid==3.0.3; python_full_version >= '3.9.0' +wcwidth==0.2.14; python_version >= '3.6' +werkzeug==3.1.0; python_version >= '3.9' +wsproto==1.2.0; python_full_version >= '3.7.0' +zstandard==0.25.0; python_version >= '3.9' \ No newline at end of file