Skip to content

Commit dcacf74

Browse files
authored
Merge pull request #2050 from apache/chore/remove/py3.8
Remove Python 3.8 from build pipelines and tox.ini, add Python 3.13 and various other fixes and dependency upgrades
2 parents 41ba049 + cb85b28 commit dcacf74

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1971
-128
lines changed

.asf.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,13 @@ github:
4444
strict: true
4545
# contexts are the names of checks that must pass
4646
contexts:
47+
- "Unit Tests (Python 3.9)"
4748
- "Unit Tests (Python 3.10)"
4849
- "Unit Tests (Python 3.11)"
4950
- "Unit Tests (Python 3.12)"
51+
- "Unit Tests (Python 3.13)"
52+
- "Run Various Lint and Other Checks (3.9)"
53+
- "Build and upload Documentation (3.9)"
5054
- "Dependency Review"
5155

5256
notifications:

.github/workflows/install_test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ jobs:
2828
- "3.10"
2929
- "3.11"
3030
- "pypy-3.7"
31+
- "pypy-3.8"
32+
- "pypy-3.9"
3133
include:
3234
# python 3.6 is not supported with ubuntu-latest anymore so we need to
3335
# use ubuntu 20.04

.github/workflows/integration-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232

3333
strategy:
3434
matrix:
35-
python_version: [3.8]
35+
python_version: [3.9]
3636

3737
steps:
3838
- uses: actions/checkout@master

.github/workflows/main.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ jobs:
3232
fail-fast: false
3333
matrix:
3434
python_version:
35-
- 3.8
36-
- 3.9
35+
- "3.9"
3736
- "3.10"
3837
- "3.11"
3938
- "3.12"
39+
- "3.13"
4040
# cryptography is not compatible with older PyPy versions
41-
- "pypy-3.8"
41+
- "pypy-3.9"
42+
- "pypy-3.10"
4243
os:
4344
- ubuntu-latest
4445

@@ -74,8 +75,7 @@ jobs:
7475
tox -e py${{ matrix.python_version }}
7576
7677
- name: Run dist install checks tox target
77-
# NOTE: 3.12 will be failing until we migrate away from setup.py
78-
if: ${{ matrix.python_version != 'pypy-3.7' && matrix.python_version != 'pypy-3.8' && matrix.python_version != '3.12-dev' }}
78+
if: ${{ matrix.python_version != 'pypy-3.9' && matrix.python_version != 'pypy-3.10' }}
7979
run: |
8080
tox -e py${{ matrix.python_version }}-dist,py${{ matrix.python_version }}-dist-wheel
8181
@@ -85,7 +85,7 @@ jobs:
8585

8686
strategy:
8787
matrix:
88-
python_version: [3.8]
88+
python_version: [3.9]
8989

9090
steps:
9191
- uses: actions/checkout@master
@@ -133,7 +133,7 @@ jobs:
133133

134134
strategy:
135135
matrix:
136-
python_version: [3.8]
136+
python_version: [3.9]
137137

138138
steps:
139139
- uses: actions/checkout@master
@@ -176,7 +176,7 @@ jobs:
176176

177177
strategy:
178178
matrix:
179-
python_version: [3.8]
179+
python_version: [3.9]
180180

181181
steps:
182182
- uses: actions/checkout@master
@@ -200,7 +200,7 @@ jobs:
200200

201201
strategy:
202202
matrix:
203-
python_version: [3.8]
203+
python_version: [3.9]
204204

205205
steps:
206206
- uses: actions/checkout@master
@@ -268,7 +268,7 @@ jobs:
268268

269269
strategy:
270270
matrix:
271-
python_version: [3.8]
271+
python_version: [3.9]
272272

273273
steps:
274274
- uses: actions/checkout@master
@@ -307,7 +307,7 @@ jobs:
307307

308308
strategy:
309309
matrix:
310-
python_version: [3.8]
310+
python_version: [3.9]
311311

312312
steps:
313313
- name: Print Environment Info

.github/workflows/publish_dev_artifact.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- name: Use Python ${{ matrix.python_version }}
3636
uses: actions/setup-python@v5
3737
with:
38-
python-version: 3.8
38+
python-version: 3.9
3939

4040
- name: Install Dependencies
4141
run: |

.github/workflows/publish_pricing_to_s3.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
strategy:
1919
matrix:
20-
python_version: [3.8]
20+
python_version: [3.9]
2121

2222
steps:
2323
- name: Print Environment Info

CHANGES.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ Changes in Apache Libcloud 3.9.0
77
Common
88
~~~~~~
99

10+
- Indicate we also support Python 3.12 (non beta) and Python 3.13.
11+
(#2050)
12+
[Tomaz Muraus - @Kami]
13+
14+
- Support for Python 3.8 which is EOL has been removed.
15+
16+
If you still want to use Libcloud with Python 3.8, you should use an older
17+
release which still supports Python 3.8.
18+
(#2050)
19+
[Tomaz Muraus - @Kami]
20+
1021
- Support for Python 3.7 which is EOL has been removed.
1122

1223
If you still want to use Libcloud with Python 3.7, you should use an older

README.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ through a unified and easy to use API.
5959
:Issues: https://issues.apache.org/jira/projects/LIBCLOUD/issues
6060
:Website: https://libcloud.apache.org/
6161
:Documentation: https://libcloud.readthedocs.io
62-
:Supported Python Versions: Python >= 3.8, PyPy >= 3.8, Python 3.10 + Pyjion
62+
:Supported Python Versions: Python >= 3.9, PyPy >= 3.9, Python 3.10 + Pyjion
6363
(Python 2.7 and Python 3.4 is supported by the
6464
v2.8.x release series, last version which supports
6565
Python 3.5 is v3.4.0, v3.6.x for Python 3.6, and
66-
v3.8.x for Python 3.7)
66+
v3.8.x for Python 3.7 and 3.8)
6767

6868
Resources you can manage with Libcloud are divided into the following categories:
6969

@@ -86,10 +86,10 @@ Documentation can be found at <https://libcloud.readthedocs.org>.
8686
Note on Python Version Compatibility
8787
====================================
8888

89-
Libcloud supports Python >= 3.8 and PyPy >= 3.8.
89+
Libcloud supports Python >= 3.9 and PyPy >= 3.9.
9090

91-
* Support for Python 3.7 has been dropped in v3.9.0 release.
92-
Last release series which supports Python 3.6 is v3.6.x.
91+
* Support for Python 3.7 and 3.8 has been dropped in v3.9.0 release.
92+
Last release series which supports Python 3.7 and 3.8 is v3.8.x.
9393
* Support for Python 3.6 has been dropped in v3.7.0 release.
9494
Last release series which supports Python 3.6 is v3.6.x.
9595
* Support for Python 3.5 has been dropped in v3.5.0 release.

contrib/Dockerfile

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,27 @@ RUN set -e && \
2929
add-apt-repository ppa:pypy/ppa && \
3030
apt-get update && \
3131
apt-get -y install \
32-
python3.8 \
3332
python3.9 \
3433
python3.10 \
3534
python3.11 \
35+
python3.12 \
36+
python3.13 \
3637
python3-dev \
37-
python3.8-dev \
3838
python3.9-dev \
3939
python3.10-dev \
4040
python3.11-dev \
41-
python3.8-distutils \
42-
python3.9-distutils \
41+
python3.12-dev \
42+
python3.13-dev \
43+
# Uses 3.10
4344
pypy3 \
4445
pypy3-dev \
4546
python3-pip \
4647
python3-distutils \
48+
python3.9-distutils \
4749
libvirt-dev \
4850
# Needed by libvirt driver
49-
pkg-config \
50-
# Needed by cryptography library for pypy
51-
libssl-dev
51+
pkg-config
5252

53-
# Workaround for zipp import error issue - https://github.com/pypa/virtualenv/issues/1630
54-
RUN python3.8 -m pip install --upgrade pip
5553

5654
COPY . /libcloud
5755

@@ -60,6 +58,6 @@ RUN if [ ! -f "/libcloud/README.rst" ]; then echo "libcloud/README.rst file not
6058
WORKDIR /libcloud
6159

6260
RUN set -e && \
63-
python3.8 -m pip install --no-cache-dir -r requirements-ci.txt
61+
python3.9 -m pip install --no-cache-dir -r requirements-ci.txt
6462

65-
CMD ["tox", "-e", "lint,isort-check,black-check,bandit,py3.7,py3.8,py3.9,py3.10,py3.11,pypypy3.8"]
63+
CMD ["tox", "-e", "lint,isort-check,black-check,bandit,py3.9,py3.10,py3.11,py3.12,py3.13,pypypy3.10"]

contrib/generate_contributor_list.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,14 @@ def convert_to_markdown(contributors_map, include_tickets=False):
111111
def compare(item1, item2):
112112
lastname1 = item1.split(" ")[-1].lower()
113113
lastname2 = item2.split(" ")[-1].lower()
114+
114115
return (lastname1 > lastname2) - (lastname1 < lastname2)
115116

116117
names = contributors_map.keys()
117118
names = sorted(names, cmp=compare)
118119

119120
result = []
121+
120122
for name in names:
121123
tickets = contributors_map[name]
122124

@@ -125,6 +127,7 @@ def compare(item1, item2):
125127
for ticket in tickets:
126128
if "-" not in ticket:
127129
# Invalid ticket number
130+
128131
continue
129132

130133
number = ticket.split("-")[1]
@@ -133,6 +136,8 @@ def compare(item1, item2):
133136
url = JIRA_URL % (number)
134137
elif ticket.startswith("GITHUB-") or ticket.startswith("GH-"):
135138
url = GITHUB_URL % (number)
139+
else:
140+
url = None
136141

137142
values = {"ticket": ticket, "url": url}
138143
tickets_string.append("[%(ticket)s](%(url)s)" % values)
@@ -147,6 +152,7 @@ def compare(item1, item2):
147152
result.append(line.strip())
148153

149154
result = "\n".join(result)
155+
150156
return result
151157

152158

0 commit comments

Comments
 (0)