Skip to content

Commit e014491

Browse files
committed
build: support uv.lock
1 parent fb2c5cb commit e014491

File tree

5 files changed

+173
-60
lines changed

5 files changed

+173
-60
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% set compiler, version, compiler_exe = detect_api.detect_default_compiler() %}
2+
[settings]
3+
arch={{ detect_api.detect_arch() }}
4+
build_type=Release
5+
compiler=gcc
6+
compiler.cppstd=gnu17
7+
compiler.libcxx=libstdc++
8+
compiler.version=14
9+
os={{ detect_api.detect_os() }}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{% set compiler, version, compiler_exe = detect_api.detect_default_compiler() %}
2+
[settings]
3+
arch={{ detect_api.detect_arch() }}
4+
build_type=Release
5+
compiler=apple-clang
6+
compiler.cppstd=11
7+
compiler.libcxx=libc++
8+
compiler.version={{version.major}}.{{version.minor}}
9+
os={{ detect_api.detect_os() }}
10+
os.version={{ os.getenv("MACOSX_DEPLOYMENT_TARGET") }}

pyproject.toml

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = [
33
"setuptools>=77.0",
44
"wheel",
55
"cmake<4.0",
6-
'uiucprescon.build @ https://github.com/UIUCLibrary/uiucprescon_build/releases/download/v0.2.6/uiucprescon_build-0.2.6-py3-none-any.whl',
6+
'uiucprescon.build @ https://github.com/UIUCLibrary/uiucprescon_build/releases/download/v0.4.0/uiucprescon_build-0.4.0-py3-none-any.whl',
77
# "conan>=1.50.0,<2.0",
88
"conan>=2.7",
99

@@ -47,7 +47,10 @@ type_checking = [
4747
]
4848
lint = [
4949
{include-group = "type_checking"},
50+
"bandit",
5051
"flake8",
52+
"pylint",
53+
"pydocstyle"
5154
]
5255
tox = ["tox"]
5356
test = ["coverage[toml]", "gcovr", "pytest"]
@@ -94,15 +97,14 @@ markers = "integration"
9497
junit_family="xunit2"
9598

9699
[tool.cibuildwheel]
97-
test-requires = "pytest"
100+
test-groups = ["test"]
98101
test-command = "pytest {project}/tests"
99-
manylinux-x86_64-image = "manylinux2014"
102+
manylinux-x86_64-image = "manylinux_2_28"
100103
build-frontend = "build[uv]"
101104
skip = [
102-
"cp36-*",
103-
"cp37-*",
104105
"cp38-*",
105-
"pp*",
106+
"cp314-*",
107+
"cp314t-*",
106108
"*-win32",
107109
"*-musllinux*",
108110
"*-manylinux_i686"
@@ -114,9 +116,8 @@ environment-pass = ["CONAN_COMPILER_LIBCXX", "CONAN_COMPILER_VERSION", "CONAN_US
114116
before-all = [
115117
'echo Conan user home: %CONAN_USER_HOME%',
116118
'echo Conan home: %CONAN_HOME%',
117-
'uv run --only-group=conan --isolated conan profile detect --exist-ok',
118-
'uv run --only-group=conan --isolated conan profile new default --detect --force',
119-
'uv run --only-group=conan --isolated conan install ./ --build missing',
119+
'uv run --only-group=conan --with ninja --isolated conan profile detect --exist-ok',
120+
'uv run --only-group=conan --with ninja --isolated conan install conanfile.py --build missing --conf=tools.cmake.cmaketoolchain:generator=Ninja',
120121
]
121122
[tool.cibuildwheel.windows.environment]
122123
CONAN_USER_HOME="$TEMP/conan"
@@ -125,38 +126,36 @@ CONAN_USER_HOME="$TEMP/conan"
125126
before-all = [
126127
'echo "Conan user home: $CONAN_USER_HOME"',
127128
'echo "Conan home: $CONAN_HOME"',
128-
'uv run --only-group=conan --isolated conan profile detect --exist-ok',
129-
"uv run --only-group=conan --isolated conan install ./ --build missing --install-folder=$CONAN_BUILD_INFO_DIR"
129+
'uv run --only-group=conan --with ninja --isolated conan profile detect --exist-ok',
130+
"uv run --only-group=conan --with ninja --isolated conan install conanfile.py -pr:h {package}/ci/cibuildwheel/conan_profiles/Macos/mac_host_profile.ini --build missing -of=/tmp/ciwheelbuilder/uiucprescon_imagevalidate/tmp --conf=tools.cmake.cmaketoolchain:generator=Ninja"
130131
]
131132
environment-pass = ["CONAN_COMPILER_VERSION", "CONAN_USER_HOME"]
132133
repair-wheel-command = [
133134
"delocate-listdeps {wheel}",
134135
"delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}",
135136
]
136-
137137
[tool.cibuildwheel.macos.environment]
138138
ENVTMPDIR="/tmp/conan"
139-
CONAN_USER_HOME="/tmp/conan"
139+
CONAN_USER_HOME="$(bash -c 'echo ${CONAN_USER_HOME:-${CIBW_CACHE_PATH:-$HOME/Library/Caches/cibuildwheel}/conan/macos}')"
140+
CONAN_HOME="$(bash -c 'echo ${CONAN_HOME:-${CIBW_CACHE_PATH:-$HOME/Library/Caches/cibuildwheel}/conan/macos/.conan2}')"
140141
CONAN_DEFAULT_PROFILE_PATH="/tmp/conan/.conan/profiles/default"
141142
CONAN_BUILD_INFO_DIR="/tmp/conan/build/"
142-
143+
MACOSX_DEPLOYMENT_TARGET='11.0'
143144

144145
[tool.cibuildwheel.linux]
145146
repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel}"
146147
before-all = [
147148
"cc --version", "cc -dumpfullversion -dumpversion",
148149
'echo "Conan user home: $CONAN_USER_HOME"',
149150
'echo "Conan home: $CONAN_HOME"',
150-
'uv run --only-group=conan --isolated conan profile detect --exist-ok',
151-
'uv run --only-group=conan conan profile show default',
152-
'uv run --only-group=conan conan install ./ --build missing -pr:b=default',
151+
'uv run --only-group=conan --with ninja --isolated conan profile detect --exist-ok',
152+
'uv run --only-group=conan --with ninja --isolated conan install conanfile.py -pr:h {package}/ci/cibuildwheel/conan_profiles/Linux/linux_build_profile.ini --build missing -of /tmp/ciwheelbuilder/uiucprescon_orc/tmp --conf=tools.cmake.cmaketoolchain:generator=Ninja',
153153

154154
]
155155
[tool.cibuildwheel.linux.environment]
156-
CONAN_USER_HOME="/tmp/conan"
157-
CONAN_DEFAULT_PROFILE_PATH="/tmp/conan/.conan/profiles/default"
158-
CONAN_BUILD_INFO_DIR="/tmp/conan/build/"
159156
PYTHONFAULTHANDLER="True"
157+
CONAN_USER_HOME="echo ${CONAN_USER_HOME:-${CIBW_CACHE_PATH:-$HOME/Library/Caches/cibuildwheel}/conan/manylinux}"
158+
CONAN_HOME="echo ${CONAN_HOME:-${CIBW_CACHE_PATH:-$HOME/Library/Caches/cibuildwheel}/conan/manylinux/.conan2}"
160159

161160
[tool.uv]
162161
cache-keys = [{ file = "pyproject.toml" }, { file = "conanfile.py" }, { file = "setup.py" }]

tox.ini

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,58 +16,36 @@ config_settings_build_wheel=
1616
conan_cache={env:CONAN_USER_HOME:{temp_dir}}{/}.conan
1717

1818
[testenv:docs]
19-
deps=
20-
sphinx
21-
-c requirements-dev.txt
22-
19+
dependency_groups = docs
20+
uv_sync_flags = --no-editable
2321
commands=
24-
sphinx-build -W -b html -d {envtmpdir}/doctrees docs/source {distdir}/html
25-
sphinx-build -b doctest -d {envtmpdir}/doctrees docs/source {distdir}/doctest {posargs}
22+
sphinx-build -W -b html -d {envtmpdir}/doctrees docs/source {temp_dir}/html
23+
sphinx-build -b doctest -d {envtmpdir}/doctrees docs/source {temp_dir}/doctest {posargs}
2624

2725
[testenv:mypy]
28-
deps =
29-
mypy
30-
lxml
31-
-c requirements-dev.txt
32-
33-
skip_install=True
26+
dependency_groups = type_checking
3427
setenv = MYPY_CACHE_DIR = {temp_dir}/.mypy_cache
3528
commands = mypy {posargs: -p uiucprescon}
3629

3730
[testenv:flake8]
3831
description = check the code style
39-
deps =
40-
flake8
41-
-c requirements-dev.txt
42-
32+
dependency_groups = lint
4333
skip_install=True
4434
commands = flake8 {posargs: uiucprescon}
4535

46-
4736
[testenv:pylint]
4837
description = check the code style
49-
deps =
50-
pylint
51-
-c requirements-dev.txt
52-
38+
dependency_groups = lint
5339
skip_install=True
54-
commands = pylint {posargs: uiucprescon} --disable import-error
40+
commands = pylint {posargs: uiucprescon} --disable import-error
5541

5642

5743
[testenv:pydocstyle]
5844
skip_install = true
59-
deps=
60-
pydocstyle
61-
-c requirements-dev.txt
62-
63-
commands =
64-
pydocstyle {posargs: {toxinidir}/uiucprescon}
45+
dependency_groups = lint
46+
commands = pydocstyle {posargs: {toxinidir}/uiucprescon}
6547

6648
[testenv:bandit]
6749
skip_install = true
68-
deps=
69-
bandit
70-
-c requirements-dev.txt
71-
72-
commands =
73-
bandit {posargs: --recursive {toxinidir}/uiucprescon}
50+
dependency_groups = lint
51+
commands = bandit {posargs: --recursive {toxinidir}/uiucprescon}

0 commit comments

Comments
 (0)