From 818a40c6c3a5d3b459ef0bc7540ac169b1e4e496 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Thu, 5 Feb 2026 15:51:47 +0530 Subject: [PATCH 1/8] migrating to python 3.14 --- base/Dockerfile.ubi8 | 6 +++--- base/pom.xml | 8 ++++---- base/requirements.txt | 2 +- pom.xml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/base/Dockerfile.ubi8 b/base/Dockerfile.ubi8 index d786e61379..9abb9c7d58 100644 --- a/base/Dockerfile.ubi8 +++ b/base/Dockerfile.ubi8 @@ -53,7 +53,7 @@ ENV CUB_CLASSPATH='"/usr/share/java/cp-base-new/*"' ARG OPENSSL_VERSION="" ARG WGET_VERSION="" ARG NETCAT_VERSION="" -ARG PYTHON39_VERSION="" +ARG PYTHON314_VERSION="" ARG TAR_VERSION="" ARG PROCPS_VERSION="" ARG KRB5_WORKSTATION_VERSION="" @@ -91,8 +91,8 @@ RUN microdnf --nodocs install yum \ "openssl${OPENSSL_VERSION}" \ "wget${WGET_VERSION}" \ "nmap-ncat${NETCAT_VERSION}" \ - "python39${PYTHON39_VERSION}" \ - "python39-pip${PYTHON_PIP_VERSION}" \ + "python3.14${PYTHON314_VERSION}" \ + "python3.14-pip${PYTHON_PIP_VERSION}" \ "tar${TAR_VERSION}" \ "procps-ng${PROCPS_VERSION}" \ "krb5-workstation${KRB5_WORKSTATION_VERSION}" \ diff --git a/base/pom.xml b/base/pom.xml index dc662e3459..401fdb935a 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -126,7 +126,7 @@ -${ubi8-minimal.openssl.version} -${ubi8-minimal.wget.version} -${ubi8-minimal.nmap-ncat.version} - -${ubi8-minimal.python39.version} + -${ubi8-minimal.python314.version} -${ubi8-minimal.tar.version} -${ubi8-minimal.procps-ng.version} -${ubi8-minimal.krb5-workstation.version} @@ -138,7 +138,7 @@ -${ubi8-minimal.temurin-17-jdk.version} -${ubi8-minimal.findutils.version} -${ubi8-minimal.crypto-policies-scripts.version} - -${ubi8-minimal.python39-pip.version} + -${ubi8-minimal.python314-pip.version} ==${python.setuptools.version} ${git-repo.confluent-docker-utils.tag} ${docker.skip-security-update-check} @@ -158,7 +158,7 @@ -${ubi8-minimal.openssl.version} -${ubi8-minimal.wget.version} -${ubi8-minimal.nmap-ncat.version} - -${ubi8-minimal.python39.version} + -${ubi8-minimal.python314.version} -${ubi8-minimal.tar.version} -${ubi8-minimal.procps-ng.version} -${ubi8-minimal.krb5-workstation.version} @@ -170,7 +170,7 @@ -${ubi8-minimal.findutils.version} -${ubi8-minimal.crypto-policies-scripts.version} -${ubi8-minimal.temurin-17-jdk.version} - -${ubi8-minimal.python39-pip.version} + -${ubi8-minimal.python314-pip.version} ==${python.setuptools.version} ${git-repo.confluent-docker-utils.tag} ${docker.skip-security-update-check} diff --git a/base/requirements.txt b/base/requirements.txt index 614c4c93e0..220e9b56c7 100644 --- a/base/requirements.txt +++ b/base/requirements.txt @@ -1 +1 @@ -git+https://github.com/confluentinc/confluent-docker-utils@v0.0.162 +git+https://github.com/confluentinc/confluent-docker-utils@replace-docker-compose-with-sdk diff --git a/pom.xml b/pom.xml index 6df9e95166..6451991e0d 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 1.1.1k-14.el8_10 1.19.5-12.el8_10 7.92-2.el8_10 - 3.9.25-2.module+el8.10.0+23718+1842ae33 + 3.14.0-1.module+el8.11.0+24000+00000000 1.30-11.el8_10 3.3.15-14.el8 1.18.2-32.el8_10 @@ -83,13 +83,13 @@ 4.6.0-24.el8_10 20230731-1.git3177e06.el8 17.0.18.0.0.8-0 - 20.2.4-9.module+el8.10.0+21329+8d76b841 + 24.0-1.module+el8.11.0+24000+00000000 80.9.0 - v0.0.165 + replace-docker-compose-with-sdk 1.25.7-trixie From e9fa14a386a68d8147554541dc01f628b1681dc6 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Thu, 5 Feb 2026 17:00:42 +0530 Subject: [PATCH 2/8] Install Python 3.14.3 from source --- base/Dockerfile.ubi8 | 40 ++++++++++++++++++++++++++++++++-------- base/pom.xml | 6 ++---- pom.xml | 3 +-- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/base/Dockerfile.ubi8 b/base/Dockerfile.ubi8 index 9abb9c7d58..9131de82a2 100644 --- a/base/Dockerfile.ubi8 +++ b/base/Dockerfile.ubi8 @@ -53,7 +53,6 @@ ENV CUB_CLASSPATH='"/usr/share/java/cp-base-new/*"' ARG OPENSSL_VERSION="" ARG WGET_VERSION="" ARG NETCAT_VERSION="" -ARG PYTHON314_VERSION="" ARG TAR_VERSION="" ARG PROCPS_VERSION="" ARG KRB5_WORKSTATION_VERSION="" @@ -66,8 +65,10 @@ ARG CURL_VERSION="" # Temurin JDK version ARG TEMURIN_JDK_VERSION="" +# Python 3.14 Version (installed from source) +ARG PYTHON314_VERSION="3.14.3" + # Python Module Versions -ARG PYTHON_PIP_VERSION="" ARG PYTHON_SETUPTOOLS_VERSION="" # Confluent Docker Utils Version (Namely the tag or branch to grab from git to install) @@ -84,15 +85,23 @@ gpgcheck=1 \n\ gpgkey=https://adoptium.jfrog.io/artifactory/api/gpg/key/public \n\ " > /etc/yum.repos.d/adoptium.repo +# Install system packages and build dependencies for Python RUN microdnf --nodocs install yum \ && yum --nodocs update -y \ && yum --nodocs install -y --setopt=install_weak_deps=False \ git \ + gcc \ + gcc-c++ \ + make \ + openssl-devel \ + bzip2-devel \ + libffi-devel \ + zlib-devel \ + readline-devel \ + sqlite-devel \ "openssl${OPENSSL_VERSION}" \ "wget${WGET_VERSION}" \ "nmap-ncat${NETCAT_VERSION}" \ - "python3.14${PYTHON314_VERSION}" \ - "python3.14-pip${PYTHON_PIP_VERSION}" \ "tar${TAR_VERSION}" \ "procps-ng${PROCPS_VERSION}" \ "krb5-workstation${KRB5_WORKSTATION_VERSION}" \ @@ -106,11 +115,26 @@ RUN microdnf --nodocs install yum \ "libcurl${CURL_VERSION}" \ "findutils${FINDUTILS_VERSION}" \ "crypto-policies-scripts${CRYPTO_POLICIES_SCRIPTS_VERSION}" \ - "temurin-17-jdk${TEMURIN_JDK_VERSION}" "temurin-17-jre${TEMURIN_JDK_VERSION}" \ - && alternatives --set python /usr/bin/python3 \ - && python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \ + "temurin-17-jdk${TEMURIN_JDK_VERSION}" "temurin-17-jre${TEMURIN_JDK_VERSION}" + +# Install Python 3.14 from source +RUN curl -O https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTHON314_VERSION}.tgz \ + && tar -xzf Python-${PYTHON314_VERSION}.tgz \ + && cd Python-${PYTHON314_VERSION} \ + && ./configure --enable-optimizations --with-ensurepip=install \ + && make -j$(nproc) \ + && make altinstall \ + && cd .. \ + && rm -rf Python-${PYTHON314_VERSION}* \ + && ln -sf /usr/local/bin/python3.14 /usr/bin/python3 \ + && ln -sf /usr/local/bin/python3.14 /usr/bin/python \ + && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip3 \ + && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip + +# Install Python packages and cleanup +RUN python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \ && python3 -m pip install --prefer-binary --prefix=/usr/local --upgrade "${PYTHON_CONFLUENT_DOCKER_UTILS_INSTALL_SPEC}" \ - && yum remove -y git \ + && yum remove -y git gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel \ && yum clean all \ && rm -rf /tmp/* \ && mkdir -p /etc/confluent/docker /usr/logs \ diff --git a/base/pom.xml b/base/pom.xml index 401fdb935a..46c370353b 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -126,7 +126,7 @@ -${ubi8-minimal.openssl.version} -${ubi8-minimal.wget.version} -${ubi8-minimal.nmap-ncat.version} - -${ubi8-minimal.python314.version} + ${python314.version} -${ubi8-minimal.tar.version} -${ubi8-minimal.procps-ng.version} -${ubi8-minimal.krb5-workstation.version} @@ -138,7 +138,6 @@ -${ubi8-minimal.temurin-17-jdk.version} -${ubi8-minimal.findutils.version} -${ubi8-minimal.crypto-policies-scripts.version} - -${ubi8-minimal.python314-pip.version} ==${python.setuptools.version} ${git-repo.confluent-docker-utils.tag} ${docker.skip-security-update-check} @@ -158,7 +157,7 @@ -${ubi8-minimal.openssl.version} -${ubi8-minimal.wget.version} -${ubi8-minimal.nmap-ncat.version} - -${ubi8-minimal.python314.version} + ${python314.version} -${ubi8-minimal.tar.version} -${ubi8-minimal.procps-ng.version} -${ubi8-minimal.krb5-workstation.version} @@ -170,7 +169,6 @@ -${ubi8-minimal.findutils.version} -${ubi8-minimal.crypto-policies-scripts.version} -${ubi8-minimal.temurin-17-jdk.version} - -${ubi8-minimal.python314-pip.version} ==${python.setuptools.version} ${git-repo.confluent-docker-utils.tag} ${docker.skip-security-update-check} diff --git a/pom.xml b/pom.xml index 6451991e0d..51c2ca4655 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 1.1.1k-14.el8_10 1.19.5-12.el8_10 7.92-2.el8_10 - 3.14.0-1.module+el8.11.0+24000+00000000 + 3.14.3 1.30-11.el8_10 3.3.15-14.el8 1.18.2-32.el8_10 @@ -83,7 +83,6 @@ 4.6.0-24.el8_10 20230731-1.git3177e06.el8 17.0.18.0.0.8-0 - 24.0-1.module+el8.11.0+24000+00000000 80.9.0 From 1714080ced980e0fdc1352589b68fb78f9be0e56 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Thu, 5 Feb 2026 17:07:05 +0530 Subject: [PATCH 3/8] empty commit --- base/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/pom.xml b/base/pom.xml index 46c370353b..1fa679b5c0 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -180,4 +180,4 @@ - + \ No newline at end of file From 9f0acafb0a7a40b7775843af759d0eff3138f575 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Thu, 5 Feb 2026 17:27:10 +0530 Subject: [PATCH 4/8] fix pip issue --- base/Dockerfile.ubi8 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/base/Dockerfile.ubi8 b/base/Dockerfile.ubi8 index 9131de82a2..965ad169bc 100644 --- a/base/Dockerfile.ubi8 +++ b/base/Dockerfile.ubi8 @@ -93,7 +93,10 @@ RUN microdnf --nodocs install yum \ gcc \ gcc-c++ \ make \ + perl-IPC-Cmd \ openssl-devel \ + openssl-libs \ + ca-certificates \ bzip2-devel \ libffi-devel \ zlib-devel \ @@ -117,11 +120,14 @@ RUN microdnf --nodocs install yum \ "crypto-policies-scripts${CRYPTO_POLICIES_SCRIPTS_VERSION}" \ "temurin-17-jdk${TEMURIN_JDK_VERSION}" "temurin-17-jre${TEMURIN_JDK_VERSION}" -# Install Python 3.14 from source +# Install Python 3.14 from source with SSL support RUN curl -O https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTHON314_VERSION}.tgz \ && tar -xzf Python-${PYTHON314_VERSION}.tgz \ && cd Python-${PYTHON314_VERSION} \ - && ./configure --enable-optimizations --with-ensurepip=install \ + && ./configure --enable-optimizations \ + --with-ensurepip=install \ + --with-openssl=/usr \ + --with-openssl-rpath=auto \ && make -j$(nproc) \ && make altinstall \ && cd .. \ @@ -129,7 +135,8 @@ RUN curl -O https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTH && ln -sf /usr/local/bin/python3.14 /usr/bin/python3 \ && ln -sf /usr/local/bin/python3.14 /usr/bin/python \ && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip3 \ - && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip + && ln -sf /usr/local/bin/pip3.14 /usr/bin/pip \ + && python3 -c "import ssl; print('SSL module loaded successfully')" # Install Python packages and cleanup RUN python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \ From 6715c2d3ed81bcef5443487587e77010654fd698 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Fri, 6 Feb 2026 14:37:57 +0530 Subject: [PATCH 5/8] Fix: Remove readline-devel and add SSL support for Python 3.14 --- base/Dockerfile.ubi8 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/base/Dockerfile.ubi8 b/base/Dockerfile.ubi8 index 965ad169bc..724cfbd492 100644 --- a/base/Dockerfile.ubi8 +++ b/base/Dockerfile.ubi8 @@ -100,7 +100,6 @@ RUN microdnf --nodocs install yum \ bzip2-devel \ libffi-devel \ zlib-devel \ - readline-devel \ sqlite-devel \ "openssl${OPENSSL_VERSION}" \ "wget${WGET_VERSION}" \ @@ -141,7 +140,7 @@ RUN curl -O https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTH # Install Python packages and cleanup RUN python3 -m pip install --upgrade "setuptools${PYTHON_SETUPTOOLS_VERSION}" \ && python3 -m pip install --prefer-binary --prefix=/usr/local --upgrade "${PYTHON_CONFLUENT_DOCKER_UTILS_INSTALL_SPEC}" \ - && yum remove -y git gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel \ + && yum remove -y git gcc gcc-c++ make perl-IPC-Cmd openssl-devel bzip2-devel libffi-devel zlib-devel sqlite-devel \ && yum clean all \ && rm -rf /tmp/* \ && mkdir -p /etc/confluent/docker /usr/logs \ From 760998a3ddc25d14fbfa415f7bdde596473f8112 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Tue, 17 Feb 2026 12:58:52 +0530 Subject: [PATCH 6/8] Trigger rebuild From c2832b4da8d62fe1938188f6d32208ecd3c76b54 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Tue, 17 Feb 2026 13:05:14 +0530 Subject: [PATCH 7/8] Update Semaphore CI to Python 3.14 --- .semaphore/cp_dockerfile_build.yml | 2 +- .semaphore/semaphore.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.semaphore/cp_dockerfile_build.yml b/.semaphore/cp_dockerfile_build.yml index 93859d6601..a40692aa14 100644 --- a/.semaphore/cp_dockerfile_build.yml +++ b/.semaphore/cp_dockerfile_build.yml @@ -25,7 +25,7 @@ global_job_config: commands: - checkout - if [[ $SEMAPHORE_GIT_BRANCH =~ ^7\..* ]]; then sem-version java 8; else sem-version java 17; fi - - sem-version python 3.9 + - sem-version python 3.14 - . vault-setup - . cache-maven restore - pip install tox==3.28.0 diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index 08a785c442..2454c2490a 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -25,7 +25,7 @@ global_job_config: commands: - checkout - if [[ $SEMAPHORE_GIT_BRANCH =~ ^7\..* ]]; then sem-version java 8; else sem-version java 17; fi - - sem-version python 3.9 + - sem-version python 3.14 - . vault-setup - . cache-maven restore - pip install tox==3.28.0 From c2b5711ea5001afcf5fc661f9bb058313bea81c4 Mon Sep 17 00:00:00 2001 From: Abhishek Krishna Date: Tue, 17 Feb 2026 14:59:04 +0530 Subject: [PATCH 8/8] Update test dependencies for Python 3.14 compatibility --- base/tox.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/base/tox.ini b/base/tox.ini index af5b6fe10e..0e9ed0ee00 100644 --- a/base/tox.ini +++ b/base/tox.ini @@ -6,10 +6,10 @@ toxworkdir = /var/tmp deps = -rrequirements.txt flake8 - pytest == 4.6.4 - pytest-xdist == 1.29.0 - pytest-cov == 2.7.1 - sphinx!=1.2b2,<2.0.0 + pytest >= 8.0.0 + pytest-xdist >= 3.0.0 + pytest-cov >= 4.0.0 + sphinx >= 7.0.0 install_command = pip install -U {packages} recreate = True skipsdist = True