Skip to content

Commit 41ab4b5

Browse files
authored
Merge branch 'trunk' into patch-1
2 parents ba5ba9f + 42bf483 commit 41ab4b5

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

+1974
-165
lines changed

.asf.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ github:
4444
strict: true
4545
# contexts are the names of checks that must pass
4646
contexts:
47-
- "Unit Tests (Python 3.8)"
4847
- "Unit Tests (Python 3.9)"
4948
- "Unit Tests (Python 3.10)"
5049
- "Unit Tests (Python 3.11)"
5150
- "Unit Tests (Python 3.12)"
52-
- "Run Various Lint and Other Checks (3.8)"
53-
- "Build and upload Documentation (3.8)"
51+
- "Unit Tests (Python 3.13)"
52+
- "Run Various Lint and Other Checks (3.9)"
53+
- "Build and upload Documentation (3.9)"
5454
- "Dependency Review"
5555

5656
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: 12 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,23 @@ 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
44-
include:
45-
- python_version: pyjion
46-
os: ubuntu-20.04
4745

4846
steps:
4947
- uses: actions/checkout@master
5048
with:
5149
fetch-depth: 1
5250

5351
- name: Use Python ${{ matrix.python_version }}
54-
if: ${{ matrix.python_version != 'pyjion' }}
5552
uses: actions/setup-python@v5
5653
with:
5754
python-version: ${{ matrix.python_version }}
@@ -61,28 +58,6 @@ jobs:
6158
sudo DEBIAN_FRONTEND=noninteractive apt-get update
6259
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq gcc libvirt-dev
6360
64-
- name: Use Python 3.10 (pyjion)
65-
if: ${{ matrix.python_version == 'pyjion' }}
66-
uses: actions/setup-python@v5
67-
with:
68-
python-version: "3.10"
69-
70-
# From https://github.com/tonybaloney/Pyjion/blob/develop/main/.github/workflows/benchmark.yml#L26 (MIT)
71-
- name: Install OS / deb dependencies
72-
if: ${{ matrix.python_version == 'pyjion' }}
73-
run: |
74-
sudo DEBIAN_FRONTEND=noninteractive apt-get update
75-
sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq cmake llvm-9 clang-9 autoconf automake \
76-
libtool build-essential python curl git lldb-6.0 liblldb-6.0-dev \
77-
libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev \
78-
libssl-dev libnuma-dev libkrb5-dev zlib1g-dev
79-
80-
- name: Setup Dotnet 6
81-
if: ${{ matrix.python_version == 'pyjion' }}
82-
uses: actions/[email protected]
83-
with:
84-
dotnet-version: "6.0.100"
85-
8661
- name: Cache Python Dependencies
8762
uses: actions/cache@v4
8863
with:
@@ -91,11 +66,6 @@ jobs:
9166
restore-keys: |
9267
${{ runner.os }}-pip-
9368
94-
- name: Install Pyjion
95-
if: ${{ matrix.python_version == 'pyjion' }}
96-
run: |
97-
pip install pyjion
98-
9969
- name: Install Python Dependencies
10070
run: |
10171
pip install -r requirements-ci.txt
@@ -105,8 +75,7 @@ jobs:
10575
tox -e py${{ matrix.python_version }}
10676
10777
- name: Run dist install checks tox target
108-
# NOTE: 3.12 will be failing until we migrate away from setup.py
109-
if: ${{ matrix.python_version != 'pypy-3.7' && matrix.python_version != 'pypy-3.8' && matrix.python_version != 'pyjion' && matrix.python_version != '3.12-dev' }}
78+
if: ${{ matrix.python_version != 'pypy-3.9' && matrix.python_version != 'pypy-3.10' }}
11079
run: |
11180
tox -e py${{ matrix.python_version }}-dist,py${{ matrix.python_version }}-dist-wheel
11281
@@ -116,7 +85,7 @@ jobs:
11685

11786
strategy:
11887
matrix:
119-
python_version: [3.8]
88+
python_version: [3.9]
12089

12190
steps:
12291
- uses: actions/checkout@master
@@ -150,7 +119,7 @@ jobs:
150119
tox -e coverage-ci
151120
152121
- name: Upload Coverage to codecov.io
153-
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
122+
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
154123
with:
155124
# We utilize secret for more realiable builds. Without secret being set, upload step
156125
# fails fairly often.
@@ -164,7 +133,7 @@ jobs:
164133

165134
strategy:
166135
matrix:
167-
python_version: [3.8]
136+
python_version: [3.9]
168137

169138
steps:
170139
- uses: actions/checkout@master
@@ -207,7 +176,7 @@ jobs:
207176

208177
strategy:
209178
matrix:
210-
python_version: [3.8]
179+
python_version: [3.9]
211180

212181
steps:
213182
- uses: actions/checkout@master
@@ -231,7 +200,7 @@ jobs:
231200

232201
strategy:
233202
matrix:
234-
python_version: [3.8]
203+
python_version: [3.9]
235204

236205
steps:
237206
- uses: actions/checkout@master
@@ -299,7 +268,7 @@ jobs:
299268

300269
strategy:
301270
matrix:
302-
python_version: [3.8]
271+
python_version: [3.9]
303272

304273
steps:
305274
- uses: actions/checkout@master
@@ -338,7 +307,7 @@ jobs:
338307

339308
strategy:
340309
matrix:
341-
python_version: [3.8]
310+
python_version: [3.9]
342311

343312
steps:
344313
- 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)