Upgrade Python driver to 3.29.0

patch by Andrés de la Peña; reviewed by Berenguer Blasi for CASSANDRA-19245
This commit is contained in:
Andrés de la Peña 2024-01-02 12:18:47 +00:00
parent 666f7df803
commit 8fd44ca8fc
22 changed files with 222 additions and 2596 deletions

View File

@ -233,7 +233,6 @@
<copy todir="${build.lib}" quiet="true"> <copy todir="${build.lib}" quiet="true">
<file file="${local.repository}/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip"/> <file file="${local.repository}/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip"/>
<file file="${local.repository}/org/apache/cassandra/deps/six-1.12.0-py2.py3-none-any.zip"/>
<file file="${local.repository}/org/apache/cassandra/deps/geomet-0.1.0.zip"/> <file file="${local.repository}/org/apache/cassandra/deps/geomet-0.1.0.zip"/>
<file file="${local.repository}/org/apache/cassandra/deps/pure_sasl-0.6.2-py2-none-any.zip"/> <file file="${local.repository}/org/apache/cassandra/deps/pure_sasl-0.6.2-py2-none-any.zip"/>
<file file="${local.repository}/org/apache/cassandra/deps/wcwidth-0.2.5-py2.py3-none-any.zip"/> <file file="${local.repository}/org/apache/cassandra/deps/wcwidth-0.2.5-py2.py3-none-any.zip"/>
@ -272,7 +271,6 @@
<target name="_resolver-dist-lib_get_files"> <target name="_resolver-dist-lib_get_files">
<!-- files.pythonhosted.org/packages --> <!-- files.pythonhosted.org/packages -->
<get src="${artifact.python.pypi}/59/a0/cf4cd997e1750f0c2d91c6ea5abea218251c43c3581bcc2f118b00baf5cf/futures-2.1.6-py2.py3-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/> <get src="${artifact.python.pypi}/59/a0/cf4cd997e1750f0c2d91c6ea5abea218251c43c3581bcc2f118b00baf5cf/futures-2.1.6-py2.py3-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
<get src="${artifact.python.pypi}/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/six-1.12.0-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
<get src="${artifact.python.pypi}/37/b2/ef1124540ee2c0b417be8d0f74667957e6aa084a3f26621aa67e2e77f3fb/pure_sasl-0.6.2-py2-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/pure_sasl-0.6.2-py2-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/> <get src="${artifact.python.pypi}/37/b2/ef1124540ee2c0b417be8d0f74667957e6aa084a3f26621aa67e2e77f3fb/pure_sasl-0.6.2-py2-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/pure_sasl-0.6.2-py2-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
<get src="${artifact.python.pypi}/59/7c/e39aca596badaf1b78e8f547c807b04dae603a433d3e7a7e04d67f2ef3e5/wcwidth-0.2.5-py2.py3-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/wcwidth-0.2.5-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/> <get src="${artifact.python.pypi}/59/7c/e39aca596badaf1b78e8f547c807b04dae603a433d3e7a7e04d67f2ef3e5/wcwidth-0.2.5-py2.py3-none-any.whl" dest="${local.repository}/org/apache/cassandra/deps/wcwidth-0.2.5-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>

View File

@ -69,10 +69,10 @@ if [[ ! "${java_version}" =~ $regx_java_version ]]; then
exit 1 exit 1
fi fi
# allow python version override, otherwise default to current python version or 3.7 # allow python version override, otherwise default to current python version or 3.8
if [ "x" == "x${python_version}" ] ; then if [ "x" == "x${python_version}" ] ; then
command -v python >/dev/null 2>&1 && python_version="$(python -V 2>&1 | awk '{print $2}' | awk -F'.' '{print $1"."$2}')" command -v python >/dev/null 2>&1 && python_version="$(python -V 2>&1 | awk '{print $2}' | awk -F'.' '{print $1"."$2}')"
python_version="${python_version:-3.7}" python_version="${python_version:-3.8}"
fi fi
# print debug information on versions # print debug information on versions

View File

@ -48,7 +48,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
add-apt-repository -y ppa:deadsnakes/ppa && \ add-apt-repository -y ppa:deadsnakes/ppa && \
apt-get update && \ apt-get update && \
apt-get install -y curl git-core python3-pip \ apt-get install -y curl git-core python3-pip \
python3.7 python3.7-venv python3.7-dev \
python3.8 python3.8-venv python3.8-dev \ python3.8 python3.8-venv python3.8-dev \
python3.11 python3.11-venv python3.11-dev \ python3.11 python3.11-venv python3.11-dev \
virtualenv net-tools libev4 libev-dev wget gcc libxml2 libxslt1-dev \ virtualenv net-tools libev4 libev-dev wget gcc libxml2 libxslt1-dev \
@ -56,10 +55,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk ant ant-optional openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk ant ant-optional
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2 RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.8 3 RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.11 3
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.11 4
RUN python3.7 -m pip install --upgrade pip
RUN python3.8 -m pip install --upgrade pip RUN python3.8 -m pip install --upgrade pip
# generate locales for the standard en_US.UTF8 value we use for testing # generate locales for the standard en_US.UTF8 value we use for testing
@ -95,7 +92,7 @@ WORKDIR ${BUILD_HOME}
ENV ANT_HOME=/usr/share/ant ENV ANT_HOME=/usr/share/ant
# run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we
# setup the virtualenv for the cassandra user and not the root user by accident) for Python 3.7/3.8 # setup the virtualenv for the cassandra user and not the root user by accident) for Python 3.8/3.11
# Don't build cython extensions when installing cassandra-driver. During test execution the driver # Don't build cython extensions when installing cassandra-driver. During test execution the driver
# dependency is refreshed via pip install --upgrade, so that driver changes can be pulled in without # dependency is refreshed via pip install --upgrade, so that driver changes can be pulled in without
# requiring the image to be rebuilt. Rebuilding compiled extensions is costly and is disabled by # requiring the image to be rebuilt. Rebuilding compiled extensions is costly and is disabled by
@ -103,15 +100,6 @@ ENV ANT_HOME=/usr/share/ant
# included in the base image, the compiled objects are not updated by pip at run time, which can # included in the base image, the compiled objects are not updated by pip at run time, which can
# cause errors if the tests rely on new driver functionality or bug fixes. # cause errors if the tests rely on new driver functionality or bug fixes.
RUN virtualenv --python=python3.7 ${BUILD_HOME}/env3.7
RUN chmod +x ${BUILD_HOME}/env3.7/bin/activate
RUN /bin/bash -c "export CASS_DRIVER_NO_CYTHON=1 CASS_DRIVER_NO_EXTENSIONS=1 \
&& source ${BUILD_HOME}/env3.7/bin/activate \
&& pip3 install --upgrade pip \
&& pip3 install -r /opt/requirements.txt \
&& pip3 freeze --user"
RUN virtualenv --python=python3.8 ${BUILD_HOME}/env3.8 RUN virtualenv --python=python3.8 ${BUILD_HOME}/env3.8
RUN chmod +x ${BUILD_HOME}/env3.8/bin/activate RUN chmod +x ${BUILD_HOME}/env3.8/bin/activate
@ -131,14 +119,14 @@ RUN /bin/bash -c "export CASS_DRIVER_NO_CYTHON=1 CASS_DRIVER_NO_EXTENSIONS=1 \
&& pip3 freeze --user" && pip3 freeze --user"
# Initialize the CCM git repo as well as this also can fail to clone # Initialize the CCM git repo as well as this also can fail to clone
RUN /bin/bash -c "source ${BUILD_HOME}/env3.7/bin/activate && \ RUN /bin/bash -c "source ${BUILD_HOME}/env3.8/bin/activate && \
ccm create -n 1 -v git:cassandra-4.1 test && ccm remove test && \ ccm create -n 1 -v git:cassandra-4.1 test && ccm remove test && \
ccm create -n 1 -v git:cassandra-4.0 test && ccm remove test" ccm create -n 1 -v git:cassandra-4.0 test && ccm remove test"
# Initialize ccm versions. right side of each sequence needs to be updated with new releases. # Initialize ccm versions. right side of each sequence needs to be updated with new releases.
# this can be checked with: # this can be checked with:
# `curl -s https://downloads.apache.org/cassandra/ | grep -oP '(?<=href=\")[0-9]+\.[0-9]+\.[0-9]+(?=)' | sort -V | uniq -w 3` # `curl -s https://downloads.apache.org/cassandra/ | grep -oP '(?<=href=\")[0-9]+\.[0-9]+\.[0-9]+(?=)' | sort -V | uniq -w 3`
RUN bash -c 'source ~/env3.7/bin/activate && \ RUN bash -c 'source ~/env3.8/bin/activate && \
for i in {1..11} ; do echo $i ; ccm create --quiet -n 1 -v binary:4.0.$i test && ccm remove test ; done && \ for i in {1..11} ; do echo $i ; ccm create --quiet -n 1 -v binary:4.0.$i test && ccm remove test ; done && \
for i in {1..3} ; do echo $i ; ccm create --quiet -n 1 -v binary:4.1.$i test && ccm remove test ; done' for i in {1..3} ; do echo $i ; ccm create --quiet -n 1 -v binary:4.1.$i test && ccm remove test ; done'
@ -147,7 +135,7 @@ RUN sudo update-java-alternatives --set java-1.11.0-openjdk-$(dpkg --print-archi
# Initialize the CCM git repo as well as this also can fail to clone # Initialize the CCM git repo as well as this also can fail to clone
# TODO Move binary:5.0* to above once GA # TODO Move binary:5.0* to above once GA
RUN /bin/bash -c 'source ~/env3.7/bin/activate && \ RUN /bin/bash -c 'source ~/env3.8/bin/activate && \
ccm create -n 1 -v git:trunk test && ccm remove test && \ ccm create -n 1 -v git:trunk test && ccm remove test && \
ccm create -n 1 -v git:cassandra-5.0 test && ccm remove test && \ ccm create -n 1 -v git:cassandra-5.0 test && ccm remove test && \
ccm create --quiet -n 1 -v binary:5.0-beta1 test && ccm remove test ' ccm create --quiet -n 1 -v binary:5.0-beta1 test && ccm remove test '

View File

@ -74,7 +74,7 @@ if [ "${java_version}" -eq 17 ] && [[ "${target}" == "dtest-upgrade" ]] ; then
fi fi
python_version=$(python -V 2>&1 | awk '{print $2}' | awk -F'.' '{print $1"."$2}') python_version=$(python -V 2>&1 | awk '{print $2}' | awk -F'.' '{print $1"."$2}')
python_regx_supported_versions="^(3.7|3.8|3.11)$" python_regx_supported_versions="^(3.8|3.9|3.10|3.11)$"
[[ $python_version =~ $python_regx_supported_versions ]] || { echo "Python ${python_version} not supported."; exit 1; } [[ $python_version =~ $python_regx_supported_versions ]] || { echo "Python ${python_version} not supported."; exit 1; }
# check project is already built. no cleaning is done, so jenkins unstash works, beware. # check project is already built. no cleaning is done, so jenkins unstash works, beware.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -684,14 +684,6 @@ j11_separate_jobs: &j11_separate_jobs
# Java 11 cqlsh dtests # Java 11 cqlsh dtests
- start_j11_cqlsh_tests: - start_j11_cqlsh_tests:
type: approval type: approval
- j11_cqlsh_dtests_py3:
requires:
- start_j11_cqlsh_tests
- j11_build
- j11_cqlsh_dtests_py3_vnode:
requires:
- start_j11_cqlsh_tests
- j11_build
- j11_cqlsh_dtests_py38: - j11_cqlsh_dtests_py38:
requires: requires:
- start_j11_cqlsh_tests - start_j11_cqlsh_tests
@ -711,10 +703,6 @@ j11_separate_jobs: &j11_separate_jobs
# Java 11 cqlsh offheap dtests offheap # Java 11 cqlsh offheap dtests offheap
- start_j11_cqlsh_tests_offheap: - start_j11_cqlsh_tests_offheap:
type: approval type: approval
- j11_cqlsh_dtests_py3_offheap:
requires:
- start_j11_cqlsh_tests_offheap
- j11_build
- j11_cqlsh_dtests_py38_offheap: - j11_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j11_cqlsh_tests_offheap - start_j11_cqlsh_tests_offheap
@ -726,14 +714,6 @@ j11_separate_jobs: &j11_separate_jobs
# Java 17 cqlsh dtests # Java 17 cqlsh dtests
- start_j17_cqlsh_tests: - start_j17_cqlsh_tests:
type: approval type: approval
- j17_cqlsh_dtests_py3:
requires:
- start_j17_cqlsh_tests
- j11_build
- j17_cqlsh_dtests_py3_vnode:
requires:
- start_j17_cqlsh_tests
- j11_build
- j17_cqlsh_dtests_py38: - j17_cqlsh_dtests_py38:
requires: requires:
- start_j17_cqlsh_tests - start_j17_cqlsh_tests
@ -753,10 +733,6 @@ j11_separate_jobs: &j11_separate_jobs
# Java 17 cqlsh dtests off-heap # Java 17 cqlsh dtests off-heap
- start_j17_cqlsh_tests_offheap: - start_j17_cqlsh_tests_offheap:
type: approval type: approval
- j17_cqlsh_dtests_py3_offheap:
requires:
- start_j17_cqlsh_tests_offheap
- j11_build
- j17_cqlsh_dtests_py38_offheap: - j17_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j17_cqlsh_tests_offheap - start_j17_cqlsh_tests_offheap
@ -1117,12 +1093,6 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
- start_j17_dtests_large - start_j17_dtests_large
- j11_build - j11_build
# Java 11 cqlsh dtests # Java 11 cqlsh dtests
- j11_cqlsh_dtests_py3:
requires:
- j11_build
- j11_cqlsh_dtests_py3_vnode:
requires:
- j11_build
- j11_cqlsh_dtests_py38: - j11_cqlsh_dtests_py38:
requires: requires:
- j11_build - j11_build
@ -1138,10 +1108,6 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
# Java 11 cqlsh dtests offheap # Java 11 cqlsh dtests offheap
- start_j11_cqlsh_dtests_offheap: - start_j11_cqlsh_dtests_offheap:
type: approval type: approval
- j11_cqlsh_dtests_py3_offheap:
requires:
- start_j11_cqlsh_dtests_offheap
- j11_build
- j11_cqlsh_dtests_py38_offheap: - j11_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j11_cqlsh_dtests_offheap - start_j11_cqlsh_dtests_offheap
@ -1151,12 +1117,6 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
- start_j11_cqlsh_dtests_offheap - start_j11_cqlsh_dtests_offheap
- j11_build - j11_build
# Java 17 cqlsh dtests # Java 17 cqlsh dtests
- j17_cqlsh_dtests_py3:
requires:
- j11_build
- j17_cqlsh_dtests_py3_vnode:
requires:
- j11_build
- j17_cqlsh_dtests_py38: - j17_cqlsh_dtests_py38:
requires: requires:
- j11_build - j11_build
@ -1172,10 +1132,6 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
# Java 17 cqlsh dtests off-heap # Java 17 cqlsh dtests off-heap
- start_j17_cqlsh-dtests-offheap: - start_j17_cqlsh-dtests-offheap:
type: approval type: approval
- j17_cqlsh_dtests_py3_offheap:
requires:
- start_j17_cqlsh-dtests-offheap
- j11_build
- j17_cqlsh_dtests_py38_offheap: - j17_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j17_cqlsh-dtests-offheap - start_j17_cqlsh-dtests-offheap
@ -1303,14 +1259,6 @@ j17_separate_jobs: &j17_separate_jobs
- j17_build - j17_build
- start_j17_cqlsh_tests: - start_j17_cqlsh_tests:
type: approval type: approval
- j17_cqlsh_dtests_py3:
requires:
- start_j17_cqlsh_tests
- j17_build
- j17_cqlsh_dtests_py3_vnode:
requires:
- start_j17_cqlsh_tests
- j17_build
- j17_cqlsh_dtests_py38: - j17_cqlsh_dtests_py38:
requires: requires:
- start_j17_cqlsh_tests - start_j17_cqlsh_tests
@ -1329,10 +1277,6 @@ j17_separate_jobs: &j17_separate_jobs
- j17_build - j17_build
- start_j17_cqlsh-dtests-offheap: - start_j17_cqlsh-dtests-offheap:
type: approval type: approval
- j17_cqlsh_dtests_py3_offheap:
requires:
- start_j17_cqlsh-dtests-offheap
- j17_build
- j17_cqlsh_dtests_py38_offheap: - j17_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j17_cqlsh-dtests-offheap - start_j17_cqlsh-dtests-offheap
@ -1538,12 +1482,6 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
requires: requires:
- start_j17_dtests_large - start_j17_dtests_large
- j17_build - j17_build
- j17_cqlsh_dtests_py3:
requires:
- j17_build
- j17_cqlsh_dtests_py3_vnode:
requires:
- j17_build
- j17_cqlsh_dtests_py38: - j17_cqlsh_dtests_py38:
requires: requires:
- j17_build - j17_build
@ -1558,10 +1496,6 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
- j17_build - j17_build
- start_j17_cqlsh-dtests-offheap: - start_j17_cqlsh-dtests-offheap:
type: approval type: approval
- j17_cqlsh_dtests_py3_offheap:
requires:
- start_j17_cqlsh-dtests-offheap
- j17_build
- j17_cqlsh_dtests_py38_offheap: - j17_cqlsh_dtests_py38_offheap:
requires: requires:
- start_j17_cqlsh-dtests-offheap - start_j17_cqlsh-dtests-offheap
@ -2086,36 +2020,6 @@ jobs:
file_tag: j11_upgradetests_without_vnodes file_tag: j11_upgradetests_without_vnodes
pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all' pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all'
j11_cqlsh_dtests_py3_vnode:
<<: *j11_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j11_with_vnodes
run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j11_with_vnodes
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py3_offheap:
<<: *j11_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j11_dtests_offheap
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j11_dtests_offheap
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py38_vnode: j11_cqlsh_dtests_py38_vnode:
<<: *j11_par_executor <<: *j11_par_executor
steps: steps:
@ -2188,21 +2092,6 @@ jobs:
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11' extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
python_version: '3.11' python_version: '3.11'
j11_cqlsh_dtests_py3:
<<: *j11_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j11_without_vnodes
run_dtests_extra_args: "--skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j11_without_vnodes
pytest_extra_args: '--skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py38: j11_cqlsh_dtests_py38:
<<: *j11_par_executor <<: *j11_par_executor
steps: steps:
@ -2239,36 +2128,6 @@ jobs:
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11' extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
python_version: '3.11' python_version: '3.11'
j17_cqlsh_dtests_py3_vnode:
<<: *j17_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j17_with_vnodes
run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j17_with_vnodes
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py3_offheap:
<<: *j17_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j17_dtests_offheap
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j17_dtests_offheap
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py38_vnode: j17_cqlsh_dtests_py38_vnode:
<<: *j17_par_executor <<: *j17_par_executor
steps: steps:
@ -2341,21 +2200,6 @@ jobs:
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11' extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
python_version: '3.11' python_version: '3.11'
j17_cqlsh_dtests_py3:
<<: *j17_par_executor
steps:
- attach_workspace:
at: /home/cassandra
- clone_dtest
- create_venv
- create_dtest_containers:
file_tag: j17_without_vnodes
run_dtests_extra_args: "--skip-resource-intensive-tests --pytest-options '-k cql'"
- run_dtests:
file_tag: j17_without_vnodes
pytest_extra_args: '--skip-resource-intensive-tests'
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py38: j17_cqlsh_dtests_py38:
<<: *j17_par_executor <<: *j17_par_executor
steps: steps:
@ -3117,8 +2961,8 @@ commands:
parameters: parameters:
python_version: python_version:
type: enum type: enum
default: "3.7" default: "3.8"
enum: ["3.7", "3.8", "3.11"] enum: ["3.8", "3.11"]
steps: steps:
- run: - run:
name: Configure virtualenv and python Dependencies name: Configure virtualenv and python Dependencies
@ -3148,8 +2992,8 @@ commands:
default: '' default: ''
python_version: python_version:
type: enum type: enum
default: "3.7" default: "3.8"
enum: ["3.7", "3.8", "3.11"] enum: ["3.8", "3.11"]
steps: steps:
- run: - run:
name: Determine Tests to Run (<<parameters.file_tag>>) name: Determine Tests to Run (<<parameters.file_tag>>)
@ -3190,8 +3034,8 @@ commands:
default: '' default: ''
python_version: python_version:
type: enum type: enum
default: "3.7" default: "3.8"
enum: ["3.7", "3.8", "3.11"] enum: ["3.8", "3.11"]
steps: steps:
- run: - run:
name: Run dtests (<<parameters.file_tag>>) name: Run dtests (<<parameters.file_tag>>)
@ -3662,7 +3506,7 @@ commands:
else else
echo "Running <<parameters.tests>> $count times" echo "Running <<parameters.tests>> $count times"
source ~/env3.7/bin/activate source ~/env3.8/bin/activate
export PATH=$JAVA_HOME/bin:$PATH export PATH=$JAVA_HOME/bin:$PATH
java -version java -version

View File

@ -1,5 +1,5 @@
--- config_template.yml 2023-11-10 15:39:02.663105186 +0000 --- config_template.yml 2024-01-05 00:32:24.148600479 +0000
+++ config_template.yml.PAID 2023-11-10 15:39:24.839456426 +0000 +++ config_template.yml.PAID 2024-01-05 00:32:40.861079981 +0000
@@ -157,20 +157,20 @@ @@ -157,20 +157,20 @@
j11_par_executor: &j11_par_executor j11_par_executor: &j11_par_executor
executor: executor:
@ -142,7 +142,7 @@
j11_separate_jobs: &j11_separate_jobs j11_separate_jobs: &j11_separate_jobs
jobs: jobs:
@@ -1986,7 +2009,7 @@ @@ -1920,7 +1943,7 @@
target: testclasslist-system-keyspace-directory target: testclasslist-system-keyspace-directory
j11_dtests_vnode: j11_dtests_vnode:
@ -151,7 +151,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2000,7 +2023,7 @@ @@ -1934,7 +1957,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
j11_dtests_offheap: j11_dtests_offheap:
@ -160,7 +160,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2014,7 +2037,7 @@ @@ -1948,7 +1971,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
j17_dtests_vnode: j17_dtests_vnode:
@ -169,7 +169,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2029,7 +2052,7 @@ @@ -1963,7 +1986,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
j17_dtests_offheap: j17_dtests_offheap:
@ -178,7 +178,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2044,7 +2067,7 @@ @@ -1978,7 +2001,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
j11_dtests: j11_dtests:
@ -187,7 +187,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2058,7 +2081,7 @@ @@ -1992,7 +2015,7 @@
pytest_extra_args: '--skip-resource-intensive-tests' pytest_extra_args: '--skip-resource-intensive-tests'
j17_dtests: j17_dtests:
@ -196,7 +196,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2073,7 +2096,7 @@ @@ -2007,7 +2030,7 @@
pytest_extra_args: '--skip-resource-intensive-tests' pytest_extra_args: '--skip-resource-intensive-tests'
j11_upgrade_dtests: j11_upgrade_dtests:
@ -205,34 +205,16 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2087,7 +2110,7 @@ @@ -2021,7 +2044,7 @@
pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all' pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all'
j11_cqlsh_dtests_py3_vnode:
- <<: *j11_par_executor
+ <<: *j11_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2102,7 +2125,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py3_offheap:
- <<: *j11_par_executor
+ <<: *j11_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2117,7 +2140,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py38_vnode: j11_cqlsh_dtests_py38_vnode:
- <<: *j11_par_executor - <<: *j11_par_executor
+ <<: *j11_large_par_executor + <<: *j11_large_par_executor
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2135,7 +2158,7 @@ @@ -2039,7 +2062,7 @@
python_version: '3.8' python_version: '3.8'
j11_cqlsh_dtests_py311_vnode: j11_cqlsh_dtests_py311_vnode:
@ -241,7 +223,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2153,7 +2176,7 @@ @@ -2057,7 +2080,7 @@
python_version: '3.11' python_version: '3.11'
j11_cqlsh_dtests_py38_offheap: j11_cqlsh_dtests_py38_offheap:
@ -250,7 +232,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2171,7 +2194,7 @@ @@ -2075,7 +2098,7 @@
python_version: '3.8' python_version: '3.8'
j11_cqlsh_dtests_py311_offheap: j11_cqlsh_dtests_py311_offheap:
@ -259,25 +241,16 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2189,7 +2212,7 @@ @@ -2093,7 +2116,7 @@
python_version: '3.11' python_version: '3.11'
j11_cqlsh_dtests_py3:
- <<: *j11_par_executor
+ <<: *j11_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2204,7 +2227,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j11_cqlsh_dtests_py38: j11_cqlsh_dtests_py38:
- <<: *j11_par_executor - <<: *j11_par_executor
+ <<: *j11_large_par_executor + <<: *j11_large_par_executor
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2222,7 +2245,7 @@ @@ -2111,7 +2134,7 @@
python_version: '3.8' python_version: '3.8'
j11_cqlsh_dtests_py311: j11_cqlsh_dtests_py311:
@ -286,34 +259,16 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2240,7 +2263,7 @@ @@ -2129,7 +2152,7 @@
python_version: '3.11' python_version: '3.11'
j17_cqlsh_dtests_py3_vnode:
- <<: *j17_par_executor
+ <<: *j17_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2255,7 +2278,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py3_offheap:
- <<: *j17_par_executor
+ <<: *j17_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2270,7 +2293,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py38_vnode: j17_cqlsh_dtests_py38_vnode:
- <<: *j17_par_executor - <<: *j17_par_executor
+ <<: *j17_large_par_executor + <<: *j17_large_par_executor
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2288,7 +2311,7 @@ @@ -2147,7 +2170,7 @@
python_version: '3.8' python_version: '3.8'
j17_cqlsh_dtests_py311_vnode: j17_cqlsh_dtests_py311_vnode:
@ -322,7 +277,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2306,7 +2329,7 @@ @@ -2165,7 +2188,7 @@
python_version: '3.11' python_version: '3.11'
j17_cqlsh_dtests_py38_offheap: j17_cqlsh_dtests_py38_offheap:
@ -331,7 +286,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2324,7 +2347,7 @@ @@ -2183,7 +2206,7 @@
python_version: '3.8' python_version: '3.8'
j17_cqlsh_dtests_py311_offheap: j17_cqlsh_dtests_py311_offheap:
@ -340,25 +295,16 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2342,7 +2365,7 @@ @@ -2201,7 +2224,7 @@
python_version: '3.11' python_version: '3.11'
j17_cqlsh_dtests_py3:
- <<: *j17_par_executor
+ <<: *j17_large_par_executor
steps:
- attach_workspace:
at: /home/cassandra
@@ -2357,7 +2380,7 @@
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.7'
j17_cqlsh_dtests_py38: j17_cqlsh_dtests_py38:
- <<: *j17_par_executor - <<: *j17_par_executor
+ <<: *j17_large_par_executor + <<: *j17_large_par_executor
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2375,7 +2398,7 @@ @@ -2219,7 +2242,7 @@
python_version: '3.8' python_version: '3.8'
j17_cqlsh_dtests_py311: j17_cqlsh_dtests_py311:
@ -367,7 +313,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2393,7 +2416,7 @@ @@ -2237,7 +2260,7 @@
python_version: '3.11' python_version: '3.11'
j11_dtests_large_vnode: j11_dtests_large_vnode:
@ -376,7 +322,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2407,7 +2430,7 @@ @@ -2251,7 +2274,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
j11_dtests_large: j11_dtests_large:
@ -385,7 +331,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2421,7 +2444,7 @@ @@ -2265,7 +2288,7 @@
pytest_extra_args: '--only-resource-intensive-tests --force-resource-intensive-tests' pytest_extra_args: '--only-resource-intensive-tests --force-resource-intensive-tests'
j17_dtests_large_vnode: j17_dtests_large_vnode:
@ -394,7 +340,7 @@
steps: steps:
- attach_workspace: - attach_workspace:
at: /home/cassandra at: /home/cassandra
@@ -2435,7 +2458,7 @@ @@ -2279,7 +2302,7 @@
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests' pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
j17_dtests_large: j17_dtests_large:

View File

@ -1,4 +1,5 @@
5.0-beta2 5.0-beta2
* Upgrade Python driver to 3.29.0 (CASSANDRA-19245)
* Creating a SASI index after creating an SAI index does not break secondary index queries (CASSANDRA-18939) * Creating a SASI index after creating an SAI index does not break secondary index queries (CASSANDRA-18939)
* Optionally fail when a non-partition-restricted query is issued against an index (CASSANDRA-18796) * Optionally fail when a non-partition-restricted query is issued against an index (CASSANDRA-18796)
* Add a startup check to fail startup when using invalid configuration with certain Kernel and FS type (CASSANDRA-19196) * Add a startup check to fail startup when using invalid configuration with certain Kernel and FS type (CASSANDRA-19196)

View File

@ -197,8 +197,8 @@ Upgrading
--------- ---------
- Default disk_access_mode value changed from "auto" to "mmap_index_only". Override this setting with "disk_access_mode: auto" on - Default disk_access_mode value changed from "auto" to "mmap_index_only". Override this setting with "disk_access_mode: auto" on
cassandra.yaml to keep the previous default. See CASSANDRA-19021 for details. cassandra.yaml to keep the previous default. See CASSANDRA-19021 for details.
- The minimumn Python version to run cqlsh has been bumped from 3.6 to 3.7. Python 3.6 is past its end-of-life, and - The Python version required to run cqlsh has been bumped from 3.6+ to 3.8-3.11. Python 3.6 and 3.7 are past their
3.7 is the minimum version supported by the Python driver. end-of-life, and 3.8 is now the minimum version supported by the Python driver.
- Java 8 has been removed. Lowest supported version is Java 11. - Java 8 has been removed. Lowest supported version is Java 11.
- Ephemeral marker files for snapshots done by repairs are not created anymore, - Ephemeral marker files for snapshots done by repairs are not created anymore,
there is a dedicated flag in snapshot manifest instead. On upgrade of a node to this version, on node's start, in case there there is a dedicated flag in snapshot manifest instead. On upgrade of a node to this version, on node's start, in case there

View File

@ -62,8 +62,8 @@ is_supported_version() {
version=$1 version=$1
major_version="${version%.*}" major_version="${version%.*}"
minor_version="${version#*.}" minor_version="${version#*.}"
# python 3.7+ is supported # python 3.8-3.11 is supported
if [ "$major_version" = 3 ] && [ "$minor_version" -ge 7 ]; then if [ "$major_version" = 3 ] && [ "$minor_version" -ge 8 ] && [ "$minor_version" -le 11 ]; then
echo "supported" echo "supported"
else else
echo "unsupported" echo "unsupported"
@ -80,7 +80,7 @@ run_if_supported_version() {
exec "$interpreter" "$($interpreter -c "import os; print(os.path.dirname(os.path.realpath('$0')))")/cqlsh.py" "$@" exec "$interpreter" "$($interpreter -c "import os; print(os.path.dirname(os.path.realpath('$0')))")/cqlsh.py" "$@"
exit exit
else else
echo "Warning: unsupported version of Python:" $version >&2 echo "Warning: unsupported version of Python, required 3.8-3.11 but found" $version >&2
fi fi
fi fi
} }

View File

@ -21,8 +21,8 @@ import platform
import sys import sys
from glob import glob from glob import glob
if sys.version_info < (3, 7): if sys.version_info < (3, 8) or sys.version_info >= (3, 12):
sys.exit("\ncqlsh requires Python 3.7+\n") sys.exit("\ncqlsh requires Python 3.8-3.11\n")
# see CASSANDRA-10428 # see CASSANDRA-10428
if platform.python_implementation().startswith('Jython'): if platform.python_implementation().startswith('Jython'):
@ -56,7 +56,7 @@ if cql_zip:
sys.path.insert(0, os.path.join(cql_zip, 'cassandra-driver-' + ver)) sys.path.insert(0, os.path.join(cql_zip, 'cassandra-driver-' + ver))
# the driver needs dependencies # the driver needs dependencies
third_parties = ('six-', 'pure_sasl-', 'wcwidth-') third_parties = ('pure_sasl-', 'wcwidth-')
for lib in third_parties: for lib in third_parties:
lib_zip = find_zip(lib) lib_zip = find_zip(lib)

View File

@ -23,7 +23,7 @@ Deploying on older Linux versions is not recommended unless you have previous ex
include::cassandra:partial$java_version.adoc[] include::cassandra:partial$java_version.adoc[]
* To use the CQL shell `cqlsh`, install the latest version of Python 3.7+. * To use the CQL shell `cqlsh`, install the latest version of Python 3.8-3.11.
To verify that you have the correct version of Python installed, type `python --version`. To verify that you have the correct version of Python installed, type `python --version`.

Binary file not shown.

View File

@ -15,4 +15,4 @@
# limitations under the License. # limitations under the License.
# #
FROM ubuntu:bionic FROM ubuntu:bionic
RUN apt-get update && apt-get install -y python3-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 RUN apt-get update && apt-get install -y python3-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

View File

@ -10,4 +10,4 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM ubuntu:bionic FROM ubuntu:bionic
RUN apt-get update && apt-get install -y python3.7-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 RUN apt-get update && apt-get install -y python3.11-minimal && update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1

View File

@ -3,7 +3,7 @@
This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this directory. This directory contains code primarily for cqlsh. cqlsh uses cqlshlib in this directory.
== Requirements == Requirements
. Python 3.7+ (for cqlsh) . Python 3.8-3.11 (for cqlsh)
. virtualenv . virtualenv
. Docker (optional) . Docker (optional)

View File

@ -43,7 +43,7 @@ export CASSANDRA_DIR=${WORKSPACE}
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}') java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F. '{print $1}')
version=$(grep 'property\s*name=\"base.version\"' ${CASSANDRA_DIR}/build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p') version=$(grep 'property\s*name=\"base.version\"' ${CASSANDRA_DIR}/build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p')
python_version="3.7" python_version="3.8"
command -v python3 >/dev/null 2>&1 && python_version="$(python3 -V | awk '{print $2}' | awk -F'.' '{print $1"."$2}')" command -v python3 >/dev/null 2>&1 && python_version="$(python3 -V | awk '{print $2}' | awk -F'.' '{print $1"."$2}')"
export TESTSUITE_NAME="cqlshlib.python${python_version}.jdk${java_version}" export TESTSUITE_NAME="cqlshlib.python${python_version}.jdk${java_version}"

View File

@ -36,7 +36,7 @@ DEFAULT_CQLSH_TERM = 'xterm'
try: try:
Pattern = re._pattern_type Pattern = re._pattern_type
except AttributeError: except AttributeError:
# Python 3.7+ # Python 3.8-3.11
Pattern = re.Pattern Pattern = re.Pattern

View File

@ -17,7 +17,7 @@
# #
# #
-e git+https://github.com/datastax/python-driver.git@cassandra-test#egg=cassandra-driver -e git+https://github.com/datastax/python-driver.git@3.29.0#egg=cassandra-driver
# Used ccm version is tracked by cassandra-test branch in ccm repo. Please create a PR there for fixes or upgrades to new releases. # Used ccm version is tracked by cassandra-test branch in ccm repo. Please create a PR there for fixes or upgrades to new releases.
-e git+https://github.com/riptano/ccm.git@cassandra-test#egg=ccm -e git+https://github.com/riptano/ccm.git@cassandra-test#egg=ccm
coverage coverage