forked from airspeed-velocity/asv
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathasv.conf.schema.json
More file actions
252 lines (252 loc) · 9.13 KB
/
Copy pathasv.conf.schema.json
File metadata and controls
252 lines (252 loc) · 9.13 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/airspeed-velocity/asv/main/asv.conf.schema.json",
"type": "object",
"properties": {
"version": {
"description": "The version of the config file format",
"type": "integer",
"enum": [1]
},
"project": {
"description": "The name of the project being benchmarked.",
"type": "string"
},
"project_url": {
"description": "The URL to the homepage of the project.",
"type": "string"
},
"repo": {
"description": "The URL or local path of the source code repository for the project being benchmarked.",
"type": "string"
},
"repo_subdir": {
"description": "The relative path to your Python project inside the repository. This is where its setup.py file is located.",
"type": "string"
},
"build_command": {
"description": "Customizable commands for building the project.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#build-command-install-command-uninstall-command",
"type": "array",
"items": { "type": "string" },
"default": [
"python setup.py build",
"python -m pip wheel -w {build_cache_dir} {build_dir}"
]
},
"install_command": {
"description": "Customizable commands for installing the project.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#build-command-install-command-uninstall-command",
"type": "array",
"items": { "type": "string" },
"default": ["in-dir={env_dir} python -m pip install {wheel_file}"]
},
"uninstall_command": {
"description": "Customizable commands for uninstalling the project.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#build-command-install-command-uninstall-command",
"type": "array",
"items": { "type": "string" },
"default": ["return-code=any python -m pip uninstall -y {project}"]
},
"branches": {
"description": "List of branches to benchmark.\nIf not provided, defaults to 'main' (for git) or 'default' (for mercurial).",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"show_commit_url": {
"description": "The base URL to show a commit for the project.",
"type": "string"
},
"pythons": {
"description": "The versions of Python to run the benchmarks in.\nhttps://asv.readthedocs.io/en/stable/asv.conf.json.html#pythons",
"type": "array",
"items": {
"type": "string"
}
},
"conda_environment_file": {
"description": "A conda environment file that is used for environment creation.\nhttps://asv.readthedocs.io/en/stable/asv.conf.json.html#conda-environment-file",
"type": "string"
},
"conda_channels": {
"description": "The list of conda channel names to be searched for benchmark dependency packages.",
"type": "array",
"items": { "type": "string" }
},
"matrix": {
"description": "The matrix of dependencies and environment variables to run the benchmarks with.\nhttps://asv.readthedocs.io/en/stable/asv.conf.json.html#matrix",
"oneOf": [
{
"type": "object",
"properties": {
"req": {
"description": "Matrix of third-party dependencies.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "array",
"items": { "type": ["string", "null"] }
},
{ "type": ["string", "null"] }
]
}
},
"env": {
"description": "Matrix of environment variables to pass to build and benchmark commands.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "array",
"items": { "type": ["string", "null"] }
},
{ "type": ["string", "null"] }
]
}
},
"env_nobuild": {
"description": "Matrix of environment variables to pass to benchmark commands, but not trigger new builds.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "array",
"items": { "type": ["string", "null"] }
},
{ "type": ["string", "null"] }
]
}
}
},
"additionalProperties": false
},
{
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "array",
"items": { "type": ["string", "null"] }
},
{ "type": ["string", "null"] }
]
}
}
]
},
"exclude": {
"description": "Combinations to be excluded from the set to test.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#exclude",
"type": "array",
"items": {
"type": "object",
"properties": {
"python": { "type": "string" },
"sys_platform": { "type": "string" },
"environment_type": { "type": "string" },
"req": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
},
"env": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
},
"env_nobuild": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
}
},
"additionalProperties": { "type": ["string", "null"] }
}
},
"include": {
"description": "Additional environment combinations to be included.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#include",
"type": "array",
"items": {
"type": "object",
"properties": {
"python": { "type": "string" },
"environment_type": { "type": "string" },
"sys_platform": { "type": "string" },
"req": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
},
"env": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
},
"env_nobuild": {
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
}
},
"additionalProperties": { "type": ["string", "null"] },
"required": ["python"]
}
},
"benchmark_dir": {
"description": "The directory that benchmarks are stored in.",
"type": "string",
"default": "benchmarks"
},
"environment_type": {
"description": "The tool to use to create environments.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#environment-type",
"anyOf": [
{
"enum": ["conda", "virtualenv", "rattler", "uv"]
},
{ "type": "string" }
]
},
"env_dir": {
"description": "The directory to cache the Python environments in.",
"type": "string",
"default": "env"
},
"results_dir": {
"description": "The directory that raw benchmark results are stored in.",
"type": "string",
"default": "results"
},
"html_dir": {
"description": "The directory that the html tree should be written to.",
"type": "string",
"default": "html"
},
"install_timeout": {
"description": "Timeout in seconds for installing any dependencies in environment.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#install-timeout-default-benchmark-timeout",
"type": "number"
},
"default_benchmark_timeout": {
"description": "Timeout in seconds for each benchmark.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#install-timeout-default-benchmark-timeout",
"type": "number"
},
"hash_length": {
"description": "The number of characters to retain in the commit hashes when displayed in the web interface.",
"type": "integer",
"default": 8
},
"plugins": {
"description": "A list of modules to import containing asv plugins.",
"type": "array",
"items": { "type": "string" }
},
"build_cache_size": {
"description": "The number of builds to keep, per environment.",
"type": "integer"
},
"regressions_first_commits": {
"description": "The commits after which the regression search should start looking for regressions.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#regressions-first-commits",
"type": "object",
"additionalProperties": { "type": ["string", "null"] }
},
"regressions_thresholds": {
"description": "The thresholds for relative change in results, after which asv publish starts reporting regressions.\nhttps://asv.readthedocs.io/en/latest/asv.conf.json.html#regressions-thresholds",
"type": "object",
"additionalProperties": { "type": "number" }
}
},
"required": ["version", "project", "repo"]
}