-
Notifications
You must be signed in to change notification settings - Fork 45
/
pyproject.toml
123 lines (109 loc) · 4.02 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[build-system]
requires = [
"setuptools",
"wheel",
"Cython",
"pkgconfig"
]
build-backend = 'setuptools.build_meta'
[tool.ruff]
line-length = 95
select = ["F", "E", "W", "I001"]
[tool.ruff.isort]
force-single-line = true
known-first-party = ["pystack"]
known-third-party=["rich", "elftools", "pytest"]
[tool.isort]
force_single_line = true
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
line_length = 88
known_first_party=["pystack"]
known_third_party=["rich", "elftools", "pytest"]
[tool.towncrier]
package = "pystack"
package_dir = "src"
filename = "NEWS.rst"
directory = "news"
type = [
{ name = "Features", directory = "feature", showcontent = true },
{ name = "Deprecations and Removals", directory = "removal", showcontent = true },
{ name = "Bug Fixes", directory = "bugfix", showcontent = true },
{ name = "Improved Documentation", directory = "doc", showcontent = true },
{ name = "Miscellaneous", directory = "misc", showcontent = true },
]
underlines = "-~"
[tool.cibuildwheel]
build = ["cp38-*", "cp39-*", "cp310-*", "cp311-*"]
manylinux-x86_64-image = "manylinux2014"
manylinux-i686-image = "manylinux2014"
musllinux-x86_64-image = "musllinux_1_1"
skip = "*-musllinux_aarch64"
[tool.cibuildwheel.linux]
before-all = [
"yum install -y python-devel-2.7.5",
"cd /",
"VERS=0.189",
"curl https://sourceware.org/elfutils/ftp/$VERS/elfutils-$VERS.tar.bz2 > ./elfutils.tar.bz2",
"tar -xf elfutils.tar.bz2",
"cd elfutils-$VERS",
"patch libdwfl/dwfl_segment_report_module.c < {package}/build_scripts/elfutils_contiguous_segments.diff",
"CFLAGS='-w' ./configure --enable-libdebuginfod=dummy --disable-debuginfod --prefix=/usr --libdir=/usr/lib64",
"make install"
]
# Override the default linux before-all for musl linux
[[tool.cibuildwheel.overrides]]
select = "*-musllinux*"
before-all = [
# Remove gettext-dev, which conficts with the musl-libintl, which is a build
# dependency of elfutils.
"apk del gettext-dev glib-dev",
# Build musl-fts from source. This is a build dependency of elfutils, but
# isn't in the Alpine repos of the musllinux_1_1 image. The build steps come
# from https://git.alpinelinux.org/aports/tree/main/musl-fts/APKBUILD
# Setting PATH before calling boostrap.sh fixes an automake failure. I think
# the failure may be caused by a different pkg-config in /usr/local/bin.
"cd /",
"apk add --update automake autoconf libtool",
"VERS=1.2.7",
"curl -L https://github.com/void-linux/musl-fts/archive/refs/tags/v$VERS.tar.gz > ./musl-fts.tar.gz",
"tar -xf musl-fts.tar.gz",
"cd musl-fts-$VERS",
"PATH=/usr/bin:/bin ./bootstrap.sh",
"CFLAGS=-fPIC ./configure --prefix=/usr",
"make install",
# Build the latest elfutils from source. The build steps come from
# https://git.alpinelinux.org/aports/tree/main/elfutils, and the need to
# set the FNM_EXTMATCH macro to get the build to succeed is seen here:
# https://git.alpinelinux.org/aports/tree/main/elfutils/musl-macros.patch
"cd /",
"apk add --update argp-standalone bison bsd-compat-headers bzip2-dev flex-dev libtool linux-headers musl-libintl musl-obstack-dev xz-dev zlib-dev zstd-dev",
"VERS=0.189",
"curl https://sourceware.org/elfutils/ftp/$VERS/elfutils-$VERS.tar.bz2 > ./elfutils.tar.bz2",
"tar -xf elfutils.tar.bz2",
"cd elfutils-$VERS",
"patch libdwfl/dwfl_segment_report_module.c < {package}/build_scripts/elfutils_contiguous_segments.diff",
"CFLAGS='-w -DFNM_EXTMATCH=0' ./configure --prefix=/usr --disable-nls --disable-libdebuginfod --disable-debuginfod --with-zstd",
"make install"
]
[tool.coverage.run]
plugins = [
"Cython.Coverage",
]
source = [
"src/pystack",
]
branch = true
parallel = true
omit = [
"stringsource",
"tests/integration/*program*.py",
]
[tool.coverage.report]
show_missing = true
[tool.pytest.ini_options]
# pytest retains all temp files from the last 3 test suite runs by default.
# Keep only ones for failed tests to avoid filling up a disk.
tmp_path_retention_policy = "failed"