Skip to content

Commit d6115d4

Browse files
committed
build: simplify requirements to single requirements-dev.txt
1 parent 18502f9 commit d6115d4

File tree

13 files changed

+64
-177
lines changed

13 files changed

+64
-177
lines changed

ci/docker/python/linux/jenkins/Dockerfile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,17 @@ FROM base_image AS conan_builder
4545
ARG CONAN_USER_HOME
4646
ARG PIP_EXTRA_INDEX_URL
4747
ARG PIP_INDEX_URL
48+
ARG UV_EXTRA_INDEX_URL
49+
ARG UV_INDEX_URL
4850

4951
COPY ci/docker/python/linux/jenkins/conan/profile.ini ${CONAN_USER_HOME}/.conan/profiles/default
5052
COPY conanfile.py /tmp/conanfile.py
5153
COPY ci/docker/python/linux/shared/ensure_compiler_support_by_conan.py /tmp/ensure_compiler_support_by_conan.py
5254
COPY requirements-dev.txt /tmp/requirements-dev.txt
5355
RUN python3 -m venv venv && \
56+
venv/bin/pip install --no-cache --disable-pip-version-check uv && \
5457
. ./venv/bin/activate && \
55-
pip install --no-cache $(grep ^uv /tmp/requirements-dev.txt) && \
56-
uv pip install --no-cache $(grep ^conan /tmp/requirements-dev.txt) && \
57-
uv pip install --no-cache $(grep ^cmake /tmp/requirements-dev.txt) && \
58+
uv pip install --no-cache --index-strategy unsafe-best-match -r /tmp/requirements-dev.txt && \
5859
conan config init && \
5960
python3 /tmp/ensure_compiler_support_by_conan.py $(conan config home)/settings.yml 11.4 && \
6061
conan install /tmp --build outdated --no-import -pr:b=default && \

ci/docker/python/linux/package/Dockerfile

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,24 @@ FROM ${manylinux_image} AS base
66

77
RUN yum install -y openjpeg2-devel ca-certificates
88
ENV PATH=/opt/python/cp39-cp39/bin:/opt/python/cp38-cp38/bin:/opt/python/cp37-cp37m/bin:/opt/python/cp35-cp35m/bin:$PATH
9-
ARG UV_CACHE_DIR
10-
ARG PIP_DOWNLOAD_CACHE
11-
RUN mkdir -p ${PIP_DOWNLOAD_CACHE} && \
12-
chmod -R 777 ${PIP_DOWNLOAD_CACHE} && \
13-
mkdir -p ${UV_CACHE_DIR} && \
14-
chmod -R 777 ${UV_CACHE_DIR}
159

16-
ARG CONAN_USER_HOME
17-
RUN mkdir -p ${CONAN_USER_HOME}/.conan && chmod -R 777 ${CONAN_USER_HOME}
18-
19-
ARG PIP_EXTRA_INDEX_URL
20-
ARG PIP_INDEX_URL
21-
RUN python -m pip install pip --upgrade && python -m pip install wheel
2210
# ==============================================================================
2311

2412
FROM base AS conan_builder
2513
COPY requirements-dev.txt /tmp/requirements-dev.txt
2614
ARG CONAN_USER_HOME
2715
ARG TARGETARCH
16+
ARG PIP_EXTRA_INDEX_URL
17+
ARG PIP_INDEX_URL
18+
ARG UV_EXTRA_INDEX_URL
19+
ARG UV_INDEX_URL
20+
2821
COPY ci/docker/python/linux/package/conan/$TARGETARCH/profile.ini $CONAN_USER_HOME/.conan/profiles/default
2922
COPY conanfile.py /tmp/conanfile.py
30-
RUN --mount=type=cache,target=${CONAN_USER_HOME}/.conan \
31-
python3 -m venv venv && \
23+
RUN python3 -m venv venv && \
24+
venv/bin/pip install --no-cache --disable-pip-version-check uv && \
3225
. ./venv/bin/activate && \
33-
pip install --no-cache $(grep ^uv /tmp/requirements-dev.txt) && \
34-
uv pip install --no-cache $(grep ^conan /tmp/requirements-dev.txt) && \
26+
uv pip install --no-cache --index-strategy unsafe-best-match -r /tmp/requirements-dev.txt && \
3527
conan config home && \
3628
conan install /tmp --build outdated --no-import && \
3729
conan remove "*" -b --src -f && \
@@ -41,8 +33,13 @@ RUN --mount=type=cache,target=${CONAN_USER_HOME}/.conan \
4133

4234
FROM base
4335

44-
ARG TARGETARCH
4536
ARG CONAN_USER_HOME
4637
COPY --from=conan_builder ${CONAN_USER_HOME}/ ${CONAN_USER_HOME}/
4738
ENV CONAN_USER_HOME=${CONAN_USER_HOME}
48-
RUN chmod -R 777 ${CONAN_USER_HOME}
39+
ARG UV_CACHE_DIR
40+
ARG PIP_DOWNLOAD_CACHE
41+
RUN chmod -R 777 ${CONAN_USER_HOME} && \
42+
mkdir -p ${PIP_DOWNLOAD_CACHE} && \
43+
chmod -R 777 ${PIP_DOWNLOAD_CACHE} && \
44+
mkdir -p ${UV_CACHE_DIR} && \
45+
chmod -R 777 ${UV_CACHE_DIR}

ci/docker/python/linux/tox/Dockerfile

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,18 @@ RUN mkdir -p ${CONAN_USER_HOME}
2222
FROM wheel_builder_base AS conan_builder
2323
COPY requirements-dev.txt /tmp/requirements-dev.txt
2424
ARG CONAN_USER_HOME
25+
ARG PIP_EXTRA_INDEX_URL
26+
ARG PIP_INDEX_URL
27+
ARG UV_EXTRA_INDEX_URL
28+
ARG UV_INDEX_URL
2529
COPY ci/docker/python/linux/shared/ensure_compiler_support_by_conan.py /tmp/ensure_compiler_support_by_conan.py
2630
COPY conanfile.py /tmp/conanfile.py
27-
RUN --mount=type=cache,target=${CONAN_USER_HOME}/.conan \
28-
python3 -m venv venv && \
31+
RUN python3 -m venv venv && \
32+
venv/bin/pip install --no-cache --disable-pip-version-check uv && \
2933
. ./venv/bin/activate && \
30-
pip install --no-cache $(grep ^uv /tmp/requirements-dev.txt) && \
31-
uv pip install --no-cache $(grep ^conan /tmp/requirements-dev.txt) && \
32-
uv pip install --no-cache $(grep ^cmake /tmp/requirements-dev.txt) && \
34+
uv pip install --index-strategy=unsafe-best-match --no-cache -r /tmp/requirements-dev.txt && \
3335
conan config init && \
34-
python3 /tmp/ensure_compiler_support_by_conan.py $(conan config home)/settings.yml 11.4 && \
36+
python /tmp/ensure_compiler_support_by_conan.py $(conan config home)/settings.yml 11.4 && \
3537
cat $(conan config home)/settings.yml && \
3638
conan config home && \
3739
conan install /tmp --build outdated --build=openjpeg --no-import && \
@@ -45,12 +47,6 @@ FROM wheel_builder_base
4547
ARG PIP_EXTRA_INDEX_URL
4648
ARG PIP_INDEX_URL
4749

48-
COPY requirements/requirements_conan.txt /tmp/python_requirements/requirements/requirements_conan.txt
49-
COPY requirements/requirements_tox.txt /tmp/python_requirements/requirements/requirements_tox.txt
50-
COPY requirements-dev.txt /tmp/python_requirements
51-
RUN python3 -m pip install --upgrade pip && \
52-
python3 -m pip install -r /tmp/python_requirements/requirements/requirements_tox.txt -r /tmp/python_requirements/requirements/requirements_conan.txt
53-
5450
ARG CONAN_USER_HOME
5551
ENV CONAN_USER_HOME=${CONAN_USER_HOME}
5652
COPY --from=conan_builder ${CONAN_USER_HOME}/ ${CONAN_USER_HOME}/
@@ -63,7 +59,6 @@ RUN mkdir -p ${PIP_DOWNLOAD_CACHE} && \
6359
mkdir -p ${UV_CACHE_DIR} && \
6460
chmod -R 777 ${UV_CACHE_DIR}
6561

66-
ENV UV_INDEX_STRATEGY=unsafe-best-match
6762

6863
WORKDIR /src
6964
CMD ["tox", "--workdir", "/tmp/tox", "--recreate"]

requirements-dev.txt

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ bcrypt==4.2.1
1111
bottle==0.12.25
1212
# via conan
1313
build==1.2.2.post1
14-
# via -r requirements/requirements-dev.txt
14+
# via -r requirements/requirements-dev.in
1515
cachetools==5.5.0
1616
# via tox
1717
certifi==2024.8.30
@@ -26,7 +26,7 @@ charset-normalizer==3.4.0
2626
# via requests
2727
cmake==3.31.0.1
2828
# via
29-
# -r requirements/requirements-dev.txt
29+
# -r requirements/requirements-dev.in
3030
# uiucprescon-build
3131
colorama==0.4.6
3232
# via
@@ -41,10 +41,10 @@ colorlog==6.9.0
4141
# via gcovr
4242
conan==1.65.0
4343
# via
44-
# -r requirements/requirements_conan.txt
44+
# -r requirements/requirements-dev.in
4545
# uiucprescon-build
4646
coverage==7.6.7
47-
# via -r requirements/requirements-dev.txt
47+
# via -r requirements/requirements-dev.in
4848
cryptography==43.0.3
4949
# via
5050
# paramiko
@@ -66,9 +66,9 @@ filelock==3.16.1
6666
# tox
6767
# virtualenv
6868
flake8==7.1.1
69-
# via -r requirements/requirements-dev.txt
69+
# via -r requirements/requirements-dev.in
7070
gcovr==8.2
71-
# via -r requirements/requirements-dev.txt
71+
# via -r requirements/requirements-dev.in
7272
idna==3.10
7373
# via requests
7474
imagesize==1.4.1
@@ -100,7 +100,7 @@ keyring==25.5.0
100100
# via twine
101101
lxml==5.3.0
102102
# via
103-
# -r requirements/requirements-dev.txt
103+
# -r requirements/requirements-dev.in
104104
# gcovr
105105
markdown-it-py==3.0.0
106106
# via rich
@@ -115,11 +115,13 @@ more-itertools==10.5.0
115115
# jaraco-classes
116116
# jaraco-functools
117117
mypy==1.13.0
118-
# via -r requirements/requirements-dev.txt
118+
# via -r requirements/requirements-dev.in
119119
mypy-extensions==1.0.0
120120
# via mypy
121121
nh3==0.2.18
122122
# via readme-renderer
123+
ninja==1.11.1.1
124+
# via -r requirements/requirements-dev.in
123125
node-semver==0.6.1
124126
# via conan
125127
packaging==24.2
@@ -129,9 +131,8 @@ packaging==24.2
129131
# pytest
130132
# sphinx
131133
# tox
132-
# tox-uv
133134
paramiko==3.5.0
134-
# via -r requirements/requirements-dev.txt
135+
# via -r requirements/requirements-dev.in
135136
patch-ng==1.17.4
136137
# via conan
137138
pkginfo==1.10.0
@@ -147,13 +148,10 @@ pluggy==1.5.0
147148
pluginbase==1.0.1
148149
# via conan
149150
py3exiv2bind==0.1.14
150-
# via
151-
# -r requirements/requirements.txt
152-
# uiucprescon-imagevalidate (pyproject.toml)
151+
# via uiucprescon-imagevalidate (pyproject.toml)
153152
pybind11==2.10.4
154153
# via
155-
# -r requirements/requirements-dev.txt
156-
# -r requirements/requirements.txt
154+
# -r requirements/requirements-dev.in
157155
# uiucprescon-build
158156
pycodestyle==2.12.1
159157
# via flake8
@@ -177,7 +175,7 @@ pyproject-api==1.8.0
177175
pyproject-hooks==1.2.0
178176
# via build
179177
pytest==8.3.3
180-
# via -r requirements/requirements.txt
178+
# via -r requirements/requirements-dev.in
181179
python-dateutil==2.9.0.post0
182180
# via conan
183181
pywin32-ctypes==0.2.3 ; sys_platform == 'win32'
@@ -200,7 +198,7 @@ rich==13.9.4
200198
# via twine
201199
secretstorage==3.3.3 ; sys_platform == 'linux'
202200
# via keyring
203-
setuptools==75.5.0
201+
setuptools==75.6.0
204202
# via uiucprescon-build
205203
six==1.16.0
206204
# via
@@ -209,7 +207,7 @@ six==1.16.0
209207
snowballstemmer==2.2.0
210208
# via sphinx
211209
sphinx==7.4.7
212-
# via -r requirements/requirements-dev.txt
210+
# via -r requirements/requirements-dev.in
213211
sphinxcontrib-applehelp==2.0.0
214212
# via sphinx
215213
sphinxcontrib-devhelp==2.0.0
@@ -224,7 +222,7 @@ sphinxcontrib-serializinghtml==2.0.0
224222
# via sphinx
225223
toml==0.10.2
226224
# via
227-
# -r requirements/requirements.txt
225+
# -r requirements/requirements-dev.in
228226
# uiucprescon-build
229227
tomli==2.1.0 ; python_full_version <= '3.11'
230228
# via
@@ -237,30 +235,23 @@ tomli==2.1.0 ; python_full_version <= '3.11'
237235
# sphinx
238236
# tox
239237
tox==4.23.2
240-
# via
241-
# -r requirements/requirements_tox.txt
242-
# tox-uv
243-
tox-uv==1.16.0
244-
# via -r requirements/requirements_tox.txt
238+
# via -r requirements/requirements-dev.in
245239
tqdm==4.67.0
246240
# via conan
247241
twine==5.1.1
248-
# via -r requirements/requirements-dev.txt
242+
# via -r requirements/requirements-dev.in
249243
typing-extensions==4.12.2
250244
# via
251245
# mypy
252246
# rich
253247
# tox
254-
# tox-uv
255248
uiucprescon-build @ https://github.com/UIUCLibrary/uiucprescon_build/archive/refs/tags/v0.2.3.tar.gz
256-
# via -r requirements/requirements.txt
249+
# via -r requirements/requirements-dev.in
257250
urllib3==1.26.20
258251
# via
259252
# conan
260253
# requests
261254
# twine
262-
uv==0.5.3
263-
# via tox-uv
264255
virtualenv==20.27.1
265256
# via tox
266257
wheel==0.45.0

requirements.txt

Lines changed: 0 additions & 85 deletions
This file was deleted.

requirements/requirements-dev.in

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1-
-r requirements_conan.txt
2-
-r requirements_tox.txt
3-
-r requirements-dev.txt
4-
-r requirements.txt
1+
build
2+
conan<2.0
3+
coverage[toml]
4+
cmake
5+
flake8
6+
gcovr
7+
lxml
8+
mypy
9+
ninja
10+
paramiko
11+
pybind11
12+
pytest
13+
sphinx
14+
twine
15+
toml
16+
tox
17+
uiucprescon.build @ https://github.com/UIUCLibrary/uiucprescon_build/archive/refs/tags/v0.2.3.tar.gz

0 commit comments

Comments
 (0)