Skip to content

Commit 3f236ac

Browse files
authored
Drop support for Python 3.7 and fix CI (#2400)
#### Reference Issues/PRs <!--Example: Fixes #1234. See also #3456.--> #### What does this implement or fix? Drops support for end of life Python 3.7. And removes codepaths checking for `python < 3.8` Also tweaks clang docker image to fix CI issue (where cmake was finding wrong python version). Also had to install cmake3 because now by default the manylinux_2_28 images have cmake4. #### Any other comments? Link to a [successful build](https://github.com/man-group/ArcticDB/actions/runs/15613614393) using this branch's workflow and `arcticdb-dev-clang:fixed-path` docker image which I built locally. And a link to [successful build with analysis tools](https://github.com/man-group/ArcticDB/actions/runs/15613127117/). Fails asv checks due to network error but benchmarking works fine #### Checklist <details> <summary> Checklist for code changes... </summary> - [ ] Have you updated the relevant docstrings, documentation and copyright notice? - [ ] Is this contribution tested against [all ArcticDB's features](../docs/mkdocs/docs/technical/contributing.md)? - [ ] Do all exceptions introduced raise appropriate [error messages](https://docs.arcticdb.io/error_messages/)? - [ ] Are API changes highlighted in the PR description? - [ ] Is the PR labelled as enhancement or bug so it appears in autogenerated release notes? </details> <!-- Thanks for contributing a Pull Request to ArcticDB! Please ensure you have taken a look at: - ArcticDB's Code of Conduct: https://github.com/man-group/ArcticDB/blob/master/CODE_OF_CONDUCT.md - ArcticDB's Contribution Licensing: https://github.com/man-group/ArcticDB/blob/master/docs/mkdocs/docs/technical/contributing.md#contribution-licensing -->
1 parent 01f6a6a commit 3f236ac

File tree

16 files changed

+35
-60
lines changed

16 files changed

+35
-60
lines changed

.github/workflows/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ This logic is used in [build.yml](build.yml).
149149
<tr><th>inputs.cibw_image_tag</th><td>Linux only. As built by cibw_docker_image.yml workflow</td>
150150
<tr><th>inputs.cibw_version</th><td>Follower only. Must match the cibw_image_tag</td>
151151
<tr><th>inputs.python_deps_ids</th><td>Follower test matrix parameter. JSON string.</td>
152-
<tr><th>inputs.python3</th><td>Specifies the Python 3 minor version (e.g. 6, 7, 8, etc.)</td>
152+
<tr><th>inputs.python3</th><td>Specifies the Python 3 minor version (e.g. 8, 9, 10, etc.)</td>
153153
</table>
154154

155155
## [tag.yml](tag.yml)

.github/workflows/analysis_workflow.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ on:
33
workflow_dispatch:
44
inputs:
55
run_all_benchmarks:
6+
description: Run all benchmarks
67
type: boolean
78
default: false
89
dev_image_tag:
@@ -125,7 +126,7 @@ jobs:
125126
name: Executes asv tests checks
126127
timeout-minutes: 120
127128
runs-on: ubuntu-latest
128-
container: ghcr.io/man-group/arcticdb-dev:${{ inputs.dev_image_tag }}
129+
container: ghcr.io/man-group/arcticdb-dev:${{ inputs.dev_image_tag || 'latest' }}
129130
env:
130131
SCCACHE_GHA_VERSION: ${{vars.SCCACHE_GHA_VERSION || 1}} # Setting this env var enables the caching
131132
VCPKG_NUGET_USER: ${{secrets.VCPKG_NUGET_USER || github.repository_owner}}

.github/workflows/build.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ jobs:
145145
strategy:
146146
fail-fast: false
147147
matrix:
148-
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[6, 7, 8, 9, 10, 11]')}}
148+
# This uses old arcticdb versions which won't work on python < 3.12
149+
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[8, 9, 10, 11]')}}
149150
arcticdb_version: ["oldest", "latest"]
150151
include:
151152
- python_deps_ids: [""]
@@ -168,7 +169,8 @@ jobs:
168169
strategy:
169170
fail-fast: false
170171
matrix:
171-
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[7, 8, 9, 10, 11]')}}
172+
# This uses old arcticdb versions which won't work on python < 3.12
173+
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[8, 9, 10, 11]')}}
172174
arcticdb_version: ["oldest", "latest"]
173175
include:
174176
- python_deps_ids: [""]
@@ -202,7 +204,7 @@ jobs:
202204
strategy:
203205
fail-fast: false
204206
matrix:
205-
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[7, 8, 9, 10, 11, 12, 13]')}}
207+
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[8, 9, 10, 11, 12, 13]')}}
206208
include:
207209
- python_deps_ids: [""]
208210
matrix_override: ${{fromJson(needs.common_config.outputs.linux_matrix)}}
@@ -253,7 +255,7 @@ jobs:
253255
strategy:
254256
fail-fast: false
255257
matrix:
256-
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[7, 8, 9, 10, 11, 12, 13]')}}
258+
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[8, 9, 10, 11, 12, 13]')}}
257259
name: 3.${{matrix.python3}} Windows
258260
uses: ./.github/workflows/build_steps.yml
259261
secrets: inherit
@@ -277,7 +279,8 @@ jobs:
277279
strategy:
278280
fail-fast: false
279281
matrix:
280-
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[6, 7, 8, 9, 10, 11]')}}
282+
# This uses old arcticdb versions which won't work on python < 3.12
283+
python3: ${{fromJson(vars.LINUX_PYTHON_VERSIONS || '[8, 9, 10, 11]')}}
281284
arcticdb_version: ["oldest", "latest"]
282285
include:
283286
- python_deps_ids: [""]
@@ -299,7 +302,8 @@ jobs:
299302
strategy:
300303
fail-fast: false
301304
matrix:
302-
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[7, 8, 9, 10, 11]')}}
305+
# This uses old arcticdb versions which won't work on python < 3.12
306+
python3: ${{fromJson(vars.WINDOWS_PYTHON_VERSIONS || '[8, 9, 10, 11]')}}
303307
arcticdb_version: ["oldest", "latest"]
304308
include:
305309
- python_deps_ids: [""]

.github/workflows/installation_tests.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,6 @@ jobs:
6464
# This way we cover all python versions, OS-es and installation repos
6565
# in just 8 combinations
6666
include:
67-
- os: ubuntu-22.04
68-
python: "3.7"
69-
use_conda: "no"
7067
- os: windows-latest
7168
python: "3.8"
7269
use_conda: "no"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ ArcticDB is designed from the outset to be resilient; there is no single point o
4545

4646
### Prebuilt binary availability
4747

48-
| | PyPI (Python 3.7 - 3.13) | conda-forge (Python 3.9 - 3.13) |
48+
| | PyPI (Python 3.8 - 3.13) | conda-forge (Python 3.9 - 3.13) |
4949
| --------------------- | - | - |
5050
| Linux (Intel/AMD) | ✔️ | ✔️ |
5151
| Windows (Intel/AMD) | ✔️ ||

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM quay.io/pypa/manylinux_2_28_x86_64
33
RUN dnf update -y
44
RUN dnf remove -y 'gcc-toolset-*'
55
RUN dnf install -y zip flex bison gcc-toolset-11 gcc-toolset-11-gdb gcc-toolset-11-libatomic-devel krb5-devel cyrus-sasl-devel openssl-devel \
6-
unzip tar epel-release jq wget libcurl-devel git-lfs \
6+
unzip tar epel-release jq wget libcurl-devel git-lfs cmake3 \
77
python3.11-devel python3.11-pip perl-IPC-Cmd
88

99
RUN dnf groupinstall -y 'Development Tools'
@@ -23,4 +23,4 @@ ENV CMAKE_C_COMPILER=/opt/rh/gcc-toolset-11/root/bin/gcc
2323
ENV CXX=/opt/rh/gcc-toolset-11/root/bin/g++
2424
ENV CMAKE_CXX_COMPILER=/opt/rh/gcc-toolset-11/root/bin/g++
2525
ENV LD_LIBRARY_PATH=/opt/rh/gcc-toolset-11/root/usr/lib64:/opt/rh/gcc-toolset-11/root/usr/lib:/opt/rh/gcc-toolset-11/root/usr/lib64/dyninst
26-
ENV PATH=/opt/rh/gcc-toolset-11/root/usr/bin:/opt/python/cp311-cp311/bin:${PATH}
26+
ENV PATH=/opt/rh/gcc-toolset-11/root/usr/bin:/opt/python/cp311-cp311/bin:/usr/bin:${PATH}

docker/Dockerfile_clang

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ FROM quay.io/pypa/manylinux_2_28_x86_64
22

33
RUN dnf update -y
44
RUN dnf remove -y 'gcc-toolset-*'
5-
# Looks like clang depends on the gcc-toolset-13, so try to install the libatomic-devel from there
6-
RUN dnf install -y zip flex bison clang llvm lldb gcc-toolset-13-libatomic-devel krb5-devel cyrus-sasl-devel openssl-devel \
7-
unzip tar epel-release jq wget libcurl-devel git-lfs \
5+
# Looks like clang depends on the gcc-toolset-14, so try to install the libatomic-devel from there
6+
RUN dnf install -y zip flex bison clang llvm lldb gcc-toolset-14-libatomic-devel krb5-devel cyrus-sasl-devel openssl-devel \
7+
unzip tar epel-release jq wget libcurl-devel git-lfs cmake3 \
88
python3.11-devel python3.11-pip perl-IPC-Cmd
99

1010
RUN dnf groupinstall -y 'Development Tools'
@@ -24,4 +24,4 @@ ENV CMAKE_C_COMPILER=/usr/bin/clang
2424
ENV CXX=/usr/bin/clang++
2525
ENV CMAKE_CXX_COMPILER=/usr/bin/clang++
2626
ENV LD_LIBRARY_PATH=/usr/lib64:/usr/lib
27-
ENV PATH=/usr/bin:/opt/python/cp311-cp311/bin:${PATH}
27+
ENV PATH=/opt/python/cp311-cp311/bin:/usr/bin:${PATH}

docs/mkdocs/docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ This section will cover installation, setup and basic usage. More details on bas
3232

3333
### Installation
3434

35-
ArcticDB supports Python 3.7 - 3.13.
35+
ArcticDB supports Python 3.8 - 3.13.
3636

3737
To install, simply run:
3838

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ line-length = 120
3030

3131
[tool.black]
3232
line-length = 120
33-
target_version = ['py36', 'py37', 'py38', 'py39', 'py310', 'py311']
33+
target_version = ['py38', 'py39', 'py310', 'py311', 'py312', 'py313']
3434
preview = true
3535
# This must be kept in sync with the version in setup.cfg.
3636
exclude = '''

python/arcticdb/storage_fixtures/s3.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -874,10 +874,7 @@ def cleanup_bucket(self, b: S3Bucket):
874874
try:
875875
self._s3_admin.delete_bucket(Bucket=b.bucket)
876876
except botocore.exceptions.ClientError as e:
877-
# There is a problem with xdist on Windows 3.7
878-
# where we try to clean up the bucket but it's already gone
879-
is_win_37 = platform.system() == "Windows" and sys.version_info[:2] == (3, 7)
880-
if e.response["Error"]["Code"] != "NoSuchBucket" and not is_win_37:
877+
if e.response["Error"]["Code"] != "NoSuchBucket":
881878
raise e
882879
else:
883880
try:

0 commit comments

Comments
 (0)