Skip to content

Commit 82ac6a9

Browse files
committed
build(docker): upgrade to Ubuntu 24.04 and Python 3.12 (#283)
1 parent 6dc9f26 commit 82ac6a9

File tree

7 files changed

+67
-65
lines changed

7 files changed

+67
-65
lines changed

.github/workflows/ci.yml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on: [push, pull_request]
1010

1111
jobs:
1212
lint-commitlint:
13-
runs-on: ubuntu-20.04
13+
runs-on: ubuntu-24.04
1414
steps:
1515
- name: Checkout
1616
uses: actions/checkout@v4
@@ -36,7 +36,7 @@ jobs:
3636
./run-tests.sh --check-commitlint ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} ${{ github.event.pull_request.head.sha }} ${{ github.event.pull_request.number }}
3737
3838
lint-shellcheck:
39-
runs-on: ubuntu-20.04
39+
runs-on: ubuntu-24.04
4040
steps:
4141
- name: Checkout
4242
uses: actions/checkout@v4
@@ -47,15 +47,15 @@ jobs:
4747
./run-tests.sh --check-shellcheck
4848
4949
lint-black:
50-
runs-on: ubuntu-20.04
50+
runs-on: ubuntu-24.04
5151
steps:
5252
- name: Checkout
5353
uses: actions/checkout@v4
5454

5555
- name: Setup Python
5656
uses: actions/setup-python@v5
5757
with:
58-
python-version: "3.8"
58+
python-version: "3.12"
5959

6060
- name: Check Python code formatting
6161
run: |
@@ -64,15 +64,15 @@ jobs:
6464
./run-tests.sh --check-black
6565
6666
lint-flake8:
67-
runs-on: ubuntu-20.04
67+
runs-on: ubuntu-24.04
6868
steps:
6969
- name: Checkout
7070
uses: actions/checkout@v4
7171

7272
- name: Setup Python
7373
uses: actions/setup-python@v5
7474
with:
75-
python-version: "3.8"
75+
python-version: "3.12"
7676

7777
- name: Check compliance with pep8, pyflakes and circular complexity
7878
run: |
@@ -81,15 +81,15 @@ jobs:
8181
./run-tests.sh --check-flake8
8282
8383
lint-pydocstyle:
84-
runs-on: ubuntu-20.04
84+
runs-on: ubuntu-24.04
8585
steps:
8686
- name: Checkout
8787
uses: actions/checkout@v4
8888

8989
- name: Setup Python
9090
uses: actions/setup-python@v5
9191
with:
92-
python-version: "3.8"
92+
python-version: "3.12"
9393

9494
- name: Check compliance with Python docstring conventions
9595
run: |
@@ -98,15 +98,15 @@ jobs:
9898
./run-tests.sh --check-pydocstyle
9999
100100
lint-check-manifest:
101-
runs-on: ubuntu-20.04
101+
runs-on: ubuntu-24.04
102102
steps:
103103
- name: Checkout
104104
uses: actions/checkout@v4
105105

106106
- name: Setup Python
107107
uses: actions/setup-python@v5
108108
with:
109-
python-version: "3.8"
109+
python-version: "3.12"
110110

111111
- name: Check Python manifest completeness
112112
run: |
@@ -115,15 +115,15 @@ jobs:
115115
./run-tests.sh --check-manifest
116116
117117
docs-sphinx:
118-
runs-on: ubuntu-20.04
118+
runs-on: ubuntu-24.04
119119
steps:
120120
- name: Checkout
121121
uses: actions/checkout@v4
122122

123123
- name: Setup Python
124124
uses: actions/setup-python@v5
125125
with:
126-
python-version: "3.8"
126+
python-version: "3.12"
127127

128128
- name: Install system dependencies
129129
run: |
@@ -140,15 +140,15 @@ jobs:
140140
run: ./run-tests.sh --check-sphinx
141141

142142
python-tests:
143-
runs-on: ubuntu-20.04
143+
runs-on: ubuntu-24.04
144144
steps:
145145
- name: Checkout
146146
uses: actions/checkout@v4
147147

148148
- name: Setup Python
149149
uses: actions/setup-python@v5
150150
with:
151-
python-version: "3.8"
151+
python-version: "3.12"
152152

153153
- name: Install Python dependencies
154154
run: |
@@ -166,7 +166,7 @@ jobs:
166166
files: coverage.xml
167167

168168
lint-dockerfile:
169-
runs-on: ubuntu-20.04
169+
runs-on: ubuntu-24.04
170170
steps:
171171
- name: Checkout
172172
uses: actions/checkout@v4
@@ -175,7 +175,7 @@ jobs:
175175
run: ./run-tests.sh --check-dockerfile
176176

177177
docker-build:
178-
runs-on: ubuntu-20.04
178+
runs-on: ubuntu-24.04
179179
steps:
180180
- name: Checkout
181181
uses: actions/checkout@v4
@@ -184,7 +184,7 @@ jobs:
184184
run: ./run-tests.sh --check-docker-build
185185

186186
release-docker:
187-
runs-on: ubuntu-20.04
187+
runs-on: ubuntu-24.04
188188
if: >
189189
vars.RELEASE_DOCKER == 'true' &&
190190
github.event_name == 'push' &&

.readthedocs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
version: 2
88

99
build:
10-
os: ubuntu-22.04
10+
os: ubuntu-24.04
1111
tools:
12-
python: "3.8"
12+
python: "3.12"
1313

1414
sphinx:
1515
configuration: docs/conf.py

AUTHORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@ The list of contributors in alphabetical order:
1919
- [Parth Shandilya](https://github.com/ParthS007)
2020
- [Rokas Maciulaitis](https://orcid.org/0000-0003-1064-6967)
2121
- [Sinclert Pérez](https://www.linkedin.com/in/sinclert)
22+
- [Stavros Moiras](https://orcid.org/0009-0005-4331-096X)
2223
- [Tibor Simko](https://orcid.org/0000-0001-7202-5803)
2324
- [Vladyslav Moisieienkov](https://orcid.org/0000-0001-9717-0775)

Dockerfile

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
# This file is part of REANA.
2-
# Copyright (C) 2018, 2019, 2020, 2021, 2022, 2023 CERN.
2+
# Copyright (C) 2018, 2019, 2020, 2021, 2022, 2023, 2024 CERN.
33
#
44
# REANA is free software; you can redistribute it and/or modify it
55
# under the terms of the MIT License; see LICENSE file for more details.
66

77
# Use Ubuntu LTS base image
8-
FROM docker.io/library/ubuntu:20.04
8+
FROM docker.io/library/ubuntu:24.04
99

1010
# Use default answers in installation commands
1111
ENV DEBIAN_FRONTEND=noninteractive
1212

13-
# Use distutils provided by the standard Python library instead of the vendored one in
14-
# setuptools, so that editable installations are stored in the right directory.
15-
# See https://github.com/pypa/setuptools/issues/3301
16-
ENV SETUPTOOLS_USE_DISTUTILS=stdlib
13+
# Allow pip to install packages in the system site-packages dir
14+
ENV PIP_BREAK_SYSTEM_PACKAGES=true
1715

1816
# Prepare list of Python dependencies
1917
COPY requirements.txt /code/
@@ -24,15 +22,15 @@ RUN apt-get update -y && \
2422
apt-get install --no-install-recommends -y \
2523
gcc \
2624
nodejs \
27-
python3.8 \
28-
python3-dev \
25+
python3.12 \
26+
python3.12-dev \
2927
python3-pip \
3028
vim-tiny && \
31-
pip install --no-cache-dir --upgrade pip 'setuptools<71' && \
29+
pip install --no-cache-dir --upgrade setuptools && \
3230
pip install --no-cache-dir -r /code/requirements.txt && \
3331
apt-get remove -y \
3432
gcc \
35-
python3-dev && \
33+
python3.12-dev && \
3634
apt-get autoremove -y && \
3735
apt-get clean && \
3836
rm -rf /var/lib/apt/lists/*

reana_workflow_engine_cwl/cwl_reana.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ def is_done(self, operation):
488488
if operation["status"] in terminal_states:
489489
log.info(
490490
f"[job {self.name}] FINAL JOB STATE: "
491-
f"{ operation['status']} ------------------"
491+
f"{operation['status']} ------------------"
492492
)
493493
if operation["status"] == "finished":
494494
self.rcode = 0

requirements.txt

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,75 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.8
2+
# This file is autogenerated by pip-compile with Python 3.12
33
# by the following command:
44
#
55
# pip-compile --annotation-style=line --output-file=requirements.txt setup.py
66
#
77
amqp==5.2.0 # via kombu
88
appdirs==1.4.4 # via fs
9-
argcomplete==3.2.2 # via cwltool
10-
attrs==23.2.0 # via jsonschema
11-
backports-zoneinfo[tzdata]==0.2.1 # via backports-zoneinfo, kombu
9+
argcomplete==3.4.0 # via cwltool
10+
arrow==1.3.0 # via isoduration
11+
attrs==23.2.0 # via jsonschema, referencing
1212
bagit==1.8.1 # via cwltool
1313
bracex==2.4 # via wcmatch
1414
bravado==10.3.2 # via reana-commons
1515
bravado-core==6.1.0 # via bravado, reana-commons
16-
cachecontrol[filecache]==0.13.1 # via cachecontrol, schema-salad
17-
certifi==2024.2.2 # via requests
16+
cachecontrol[filecache]==0.14.0 # via cachecontrol, schema-salad
17+
certifi==2024.7.4 # via requests
1818
charset-normalizer==3.3.2 # via requests
1919
checksumdir==1.1.9 # via reana-commons
2020
click==8.1.7 # via reana-commons
2121
coloredlogs==15.0.1 # via cwltool
2222
cwltool==3.1.20210628163208 # via reana-commons
23-
filelock==3.13.1 # via cachecontrol
23+
filelock==3.15.4 # via cachecontrol
24+
fqdn==1.5.1 # via jsonschema
2425
fs==2.4.16 # via reana-commons
2526
humanfriendly==10.0 # via coloredlogs
26-
idna==3.6 # via jsonschema, requests
27-
importlib-resources==6.1.2 # via schema-salad
27+
idna==3.7 # via jsonschema, requests
28+
importlib-resources==6.4.0 # via swagger-spec-validator
2829
isodate==0.6.1 # via rdflib
29-
jsonpointer==2.4 # via jsonschema
30+
isoduration==20.11.0 # via jsonschema
31+
jsonpointer==3.0.0 # via jsonschema
3032
jsonref==1.1.0 # via bravado-core
31-
jsonschema[format]==3.2.0 # via bravado-core, reana-commons, swagger-spec-validator
32-
kombu==5.3.5 # via reana-commons
33-
lxml==5.1.0 # via prov
33+
jsonschema[format]==4.23.0 # via bravado-core, reana-commons, swagger-spec-validator
34+
jsonschema-specifications==2023.12.1 # via jsonschema
35+
kombu==5.3.7 # via reana-commons
36+
lxml==5.2.2 # via prov
3437
markupsafe==2.1.5 # via werkzeug
35-
mistune==2.0.5 # via schema-salad
38+
mistune==3.0.2 # via schema-salad
3639
mock==3.0.5 # via reana-commons
3740
monotonic==1.6 # via bravado
38-
msgpack==1.0.7 # via bravado-core, cachecontrol
41+
msgpack==1.0.8 # via bravado-core, cachecontrol
3942
msgpack-python==0.5.6 # via bravado
4043
mypy-extensions==1.0.0 # via cwltool, schema-salad
41-
networkx==3.1 # via prov
44+
networkx==3.3 # via prov
4245
prov==1.5.1 # via cwltool
43-
psutil==5.9.8 # via cwltool
44-
pydot==2.0.0 # via cwltool
45-
pyparsing==3.1.1 # via pydot, rdflib
46-
pyrsistent==0.20.0 # via jsonschema
47-
python-dateutil==2.9.0 # via bravado, bravado-core, prov
46+
psutil==6.0.0 # via cwltool
47+
pydot==3.0.1 # via cwltool
48+
pyparsing==3.1.2 # via pydot, rdflib
49+
python-dateutil==2.9.0.post0 # via arrow, bravado, bravado-core, prov
4850
pytz==2024.1 # via bravado-core
4951
pyyaml==6.0.1 # via bravado, bravado-core, reana-commons, swagger-spec-validator
5052
rdflib==5.0.0 # via cwltool, prov, schema-salad
51-
reana-commons[cwl]==0.95.0a2 # via reana-workflow-engine-cwl (setup.py)
52-
requests==2.31.0 # via bravado, bravado-core, cachecontrol, cwltool, schema-salad
53+
reana-commons[cwl]==0.95.0a3 # via reana-workflow-engine-cwl (setup.py)
54+
referencing==0.35.1 # via jsonschema, jsonschema-specifications
55+
requests==2.32.3 # via bravado, bravado-core, cachecontrol, cwltool, schema-salad
56+
rfc3339-validator==0.1.4 # via jsonschema
5357
rfc3987==1.3.8 # via jsonschema
58+
rpds-py==0.19.0 # via jsonschema, referencing
5459
ruamel-yaml==0.17.10 # via cwltool, schema-salad
55-
ruamel-yaml-clib==0.2.8 # via ruamel-yaml
56-
schema-salad==8.5.20240102191335 # via cwltool
60+
schema-salad==8.7.20240718183047 # via cwltool
5761
shellescape==3.8.1 # via cwltool
5862
simplejson==3.19.2 # via bravado, bravado-core
59-
six==1.16.0 # via bravado, bravado-core, fs, isodate, jsonschema, mock, prov, python-dateutil, rdflib
60-
strict-rfc3339==0.7 # via jsonschema
61-
swagger-spec-validator==3.0.3 # via bravado-core
62-
typing-extensions==4.10.0 # via bravado, cwltool, kombu, swagger-spec-validator
63-
tzdata==2024.1 # via backports-zoneinfo
64-
urllib3==2.2.1 # via requests
63+
six==1.16.0 # via bravado, bravado-core, fs, isodate, mock, prov, python-dateutil, rdflib, rfc3339-validator
64+
swagger-spec-validator==3.0.4 # via bravado-core
65+
types-python-dateutil==2.9.0.20240316 # via arrow
66+
typing-extensions==4.12.2 # via bravado, cwltool, swagger-spec-validator
67+
uri-template==1.3.0 # via jsonschema
68+
urllib3==2.2.2 # via requests
6569
vine==5.1.0 # via amqp, kombu
6670
wcmatch==8.4.1 # via reana-commons
67-
webcolors==1.13 # via jsonschema
68-
werkzeug==3.0.1 # via reana-commons
69-
zipp==3.17.0 # via importlib-resources
71+
webcolors==24.6.0 # via jsonschema
72+
werkzeug==3.0.3 # via reana-commons
7073

7174
# The following packages are considered to be unsafe in a requirements file:
7275
# setuptools

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
"License :: OSI Approved :: MIT License",
7676
"Operating System :: OS Independent",
7777
"Programming Language :: Python :: 3",
78-
"Programming Language :: Python :: 3.8",
78+
"Programming Language :: Python :: 3.12",
7979
"Programming Language :: Python :: Implementation :: CPython",
8080
"Programming Language :: Python",
8181
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",

0 commit comments

Comments
 (0)