diff --git a/.semaphore/cp_dockerfile_build.yml b/.semaphore/cp_dockerfile_build.yml index 37f4a35166..d56e49f7f5 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 444cd99c77..12d0709b4c 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 diff --git a/base-java/requirements.txt b/base-java/requirements.txt index 614c4c93e0..da1f230f18 100644 --- a/base-java/requirements.txt +++ b/base-java/requirements.txt @@ -1 +1 @@ -git+https://github.com/confluentinc/confluent-docker-utils@v0.0.162 +git+https://github.com/confluentinc/confluent-docker-utils@v0.0.169 diff --git a/base-java/tox.ini b/base-java/tox.ini index af5b6fe10e..91aaca04a9 100644 --- a/base-java/tox.ini +++ b/base-java/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 diff --git a/base/Dockerfile.ubi9 b/base/Dockerfile.ubi9 index 7eeb662384..32fdbbcac3 100644 --- a/base/Dockerfile.ubi9 +++ b/base/Dockerfile.ubi9 @@ -54,7 +54,7 @@ ENV USE_LOG4J_2="True" 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="" @@ -63,12 +63,13 @@ ARG HOSTNAME_VERSION="" ARG XZ_LIBS_VERSION="" ARG GLIBC_VERSION="" ARG CURL_VERSION="" +ARG FINDUTILS_VERSION="" +ARG CRYPTO_POLICIES_SCRIPTS_VERSION="" # Temurin JDK version ARG TEMURIN_JDK_VERSION="" # 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) @@ -77,6 +78,58 @@ ARG PYTHON_CONFLUENT_DOCKER_UTILS_VERSION="master" # This can be overriden for an offline/air-gapped builds ARG PYTHON_CONFLUENT_DOCKER_UTILS_INSTALL_SPEC="git+https://github.com/confluentinc/confluent-docker-utils@${PYTHON_CONFLUENT_DOCKER_UTILS_VERSION}" +# Install Python 3.14 from source FIRST +RUN microdnf --nodocs -y install yum \ + && yum --nodocs install -y --setopt=install_weak_deps=False \ + gcc \ + gcc-c++ \ + make \ + tar \ + openssl-devel \ + ca-certificates \ + bzip2-devel \ + libffi-devel \ + zlib-devel \ + sqlite-devel \ + findutils \ + python3-pip \ + && python3 -m pip install --upgrade pip \ + && python3 -m pip install sigstore \ + && curl -fSLO https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTHON314_VERSION}.tgz \ + && curl -fSLO https://www.python.org/ftp/python/${PYTHON314_VERSION}/Python-${PYTHON314_VERSION}.tgz.sigstore \ + && python3 -m sigstore verify identity \ + --bundle Python-${PYTHON314_VERSION}.tgz.sigstore \ + --cert-identity hugo@python.org \ + --cert-oidc-issuer https://github.com/login/oauth \ + Python-${PYTHON314_VERSION}.tgz \ + && rm -f Python-${PYTHON314_VERSION}.tgz.sigstore \ + && python3 -m pip uninstall -y sigstore \ + && yum remove -y python3-pip \ + && rm -f /usr/local/bin/pip /usr/local/bin/pip3 /usr/local/bin/pip3.9 \ + && tar -xzf Python-${PYTHON314_VERSION}.tgz \ + && cd Python-${PYTHON314_VERSION} \ + && ./configure --enable-optimizations \ + --with-ensurepip=install \ + --with-openssl=/usr \ + --with-openssl-rpath=auto \ + && make -j$(nproc) \ + && make altinstall \ + && cd .. \ + && rm -rf Python-${PYTHON314_VERSION}* \ + && rm -f /var/lib/alternatives/python /var/lib/alternatives/python3 /var/lib/alternatives/pip /var/lib/alternatives/pip3 \ + && update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.14 100 \ + && update-alternatives --install /usr/bin/python python /usr/local/bin/python3.14 100 \ + && update-alternatives --install /usr/bin/pip3 pip3 /usr/local/bin/pip3.14 100 \ + && update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.14 100 \ + && python3 -c "import ssl; print('SSL module loaded successfully')" \ + && python --version \ + && python3 --version \ + && pip --version \ + && pip3 --version \ + && yum remove -y gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel zlib-devel sqlite-devel \ + && yum clean all \ + && rm -rf /tmp/* /root/.cache + RUN printf "[temurin-jdk] \n\ name=temurin-jdk \n\ baseurl=https://adoptium.jfrog.io/artifactory/rpm/rhel/\$releasever/\$basearch \n\ @@ -92,8 +145,6 @@ RUN microdnf --nodocs -y install yum \ "openssl${OPENSSL_VERSION}" \ "wget${WGET_VERSION}" \ "nmap-ncat${NETCAT_VERSION}" \ - "python3${PYTHON39_VERSION}" \ - "python3-pip${PYTHON_PIP_VERSION}" \ "tar${TAR_VERSION}" \ "procps-ng${PROCPS_VERSION}" \ "krb5-workstation${KRB5_WORKSTATION_VERSION}" \ @@ -106,8 +157,6 @@ RUN microdnf --nodocs -y install yum \ "findutils${FINDUTILS_VERSION}" \ "crypto-policies-scripts${CRYPTO_POLICIES_SCRIPTS_VERSION}" \ "temurin-21-jdk${TEMURIN_JDK_VERSION}" \ - && alternatives --install /usr/bin/python python /usr/bin/python3 2000 \ - && alternatives --set python /usr/bin/python3 \ && 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 \ diff --git a/base/pom.xml b/base/pom.xml index 40d653955c..b3445dee76 100644 --- a/base/pom.xml +++ b/base/pom.xml @@ -132,7 +132,7 @@ -${ubi9-minimal.openssl.version} -${ubi9-minimal.wget.version} -${ubi9-minimal.nmap-ncat.version} - -${ubi9-minimal.python3.version} + ${python.python314.version} -${ubi9-minimal.tar.version} -${ubi9-minimal.procps-ng.version} -${ubi9-minimal.krb5-workstation.version} @@ -141,9 +141,8 @@ -${ubi9-minimal.xz-libs.version} -${ubi9-minimal.glibc.version} -${ubi9-minimal.findutils.version} - -${ubi8-minimal.crypto-policies-scripts.version} + -${ubi9-minimal.crypto-policies-scripts.version} -${ubi9-minimal.temurin-21-jdk.version} - -${ubi9-minimal.python3-pip.version} ==${python.setuptools.version} ${git-repo.confluent-docker-utils.tag} ${docker.skip-security-update-check} @@ -163,7 +162,7 @@ -${ubi9-minimal.openssl.version} -${ubi9-minimal.wget.version} -${ubi9-minimal.nmap-ncat.version} - -${ubi9-minimal.python3.version} + ${python.python314.version} -${ubi9-minimal.tar.version} -${ubi9-minimal.procps-ng.version} -${ubi9-minimal.krb5-workstation.version} @@ -175,7 +174,6 @@ -${ubi9-minimal.findutils.version} -${ubi9-minimal.crypto-policies-scripts.version} -${ubi9-minimal.temurin-21-jdk.version} - -${ubi9-minimal.python3-pip.version} ==${python.setuptools.version} diff --git a/base/requirements.txt b/base/requirements.txt index 614c4c93e0..da1f230f18 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@v0.0.169 diff --git a/base/tox.ini b/base/tox.ini index af5b6fe10e..91aaca04a9 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 diff --git a/pom.xml b/pom.xml index ec4134684d..e4cc1d975d 100644 --- a/pom.xml +++ b/pom.xml @@ -90,7 +90,6 @@ 1.1.1k-15.el8_6 1.19.5-12.el8_10 7.92-2.el8_10 - 3.9.25-2.module+el8.10.0+23718+1842ae33 1.30-11.el8_10 3.3.15-14.el8 1.18.2-32.el8_10 @@ -102,13 +101,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 + 3.14.3 80.9.0 - v0.0.168 + v0.0.169 v1.0.8 diff --git a/service.yml b/service.yml index 867946e63e..f546b5d117 100644 --- a/service.yml +++ b/service.yml @@ -1,6 +1,6 @@ name: common-docker lang: python -lang_version: 3.9 +lang_version: "3.14" git: enable: true semaphore: