1 |
commit: 72ab831df749bef1b337f8787068a004c24432e6 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Aug 16 23:24:24 2017 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Mar 30 03:51:20 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=72ab831d |
7 |
|
8 |
repoman: Initial adding file/module/API version |
9 |
|
10 |
repoman/pym/repoman/config.py | 7 +++++-- |
11 |
repoman/pym/repoman/main.py | 3 +++ |
12 |
repoman/pym/repoman/modules/linechecks/assignment/__init__.py | 3 ++- |
13 |
repoman/pym/repoman/modules/linechecks/config.py | 2 +- |
14 |
repoman/pym/repoman/modules/linechecks/depend/__init__.py | 3 ++- |
15 |
repoman/pym/repoman/modules/linechecks/deprecated/__init__.py | 3 ++- |
16 |
repoman/pym/repoman/modules/linechecks/do/__init__.py | 3 ++- |
17 |
repoman/pym/repoman/modules/linechecks/eapi/__init__.py | 3 ++- |
18 |
repoman/pym/repoman/modules/linechecks/emake/__init__.py | 3 ++- |
19 |
.../pym/repoman/modules/linechecks/gentoo_header/__init__.py | 3 ++- |
20 |
repoman/pym/repoman/modules/linechecks/helpers/__init__.py | 3 ++- |
21 |
repoman/pym/repoman/modules/linechecks/nested/__init__.py | 3 ++- |
22 |
repoman/pym/repoman/modules/linechecks/patches/__init__.py | 3 ++- |
23 |
repoman/pym/repoman/modules/linechecks/phases/__init__.py | 3 ++- |
24 |
repoman/pym/repoman/modules/linechecks/portage/__init__.py | 3 ++- |
25 |
repoman/pym/repoman/modules/linechecks/quotes/__init__.py | 3 ++- |
26 |
repoman/pym/repoman/modules/linechecks/uri/__init__.py | 3 ++- |
27 |
repoman/pym/repoman/modules/linechecks/use/__init__.py | 3 ++- |
28 |
repoman/pym/repoman/modules/linechecks/useless/__init__.py | 3 ++- |
29 |
repoman/pym/repoman/modules/linechecks/whitespace/__init__.py | 3 ++- |
30 |
repoman/pym/repoman/modules/linechecks/workaround/__init__.py | 3 ++- |
31 |
repoman/pym/repoman/modules/scan/depend/__init__.py | 3 ++- |
32 |
repoman/pym/repoman/modules/scan/directories/__init__.py | 3 ++- |
33 |
repoman/pym/repoman/modules/scan/eapi/__init__.py | 3 ++- |
34 |
repoman/pym/repoman/modules/scan/ebuild/__init__.py | 3 ++- |
35 |
repoman/pym/repoman/modules/scan/eclasses/__init__.py | 3 ++- |
36 |
repoman/pym/repoman/modules/scan/fetch/__init__.py | 3 ++- |
37 |
repoman/pym/repoman/modules/scan/keywords/__init__.py | 3 ++- |
38 |
repoman/pym/repoman/modules/scan/manifest/__init__.py | 3 ++- |
39 |
repoman/pym/repoman/modules/scan/metadata/__init__.py | 3 ++- |
40 |
repoman/pym/repoman/modules/scan/module.py | 10 +++++++--- |
41 |
repoman/pym/repoman/modules/scan/options/__init__.py | 3 ++- |
42 |
repoman/pym/repoman/qa_data.py | 4 ++-- |
43 |
repoman/pym/repoman/repos.py | 2 +- |
44 |
repoman/pym/repoman/scanner.py | 3 ++- |
45 |
35 files changed, 77 insertions(+), 38 deletions(-) |
46 |
|
47 |
diff --git a/repoman/pym/repoman/config.py b/repoman/pym/repoman/config.py |
48 |
index 9da30ed9e..0f2358cd9 100644 |
49 |
--- a/repoman/pym/repoman/config.py |
50 |
+++ b/repoman/pym/repoman/config.py |
51 |
@@ -144,8 +144,11 @@ def load_config(conf_dirs, file_extensions=None, valid_versions=None): |
52 |
|
53 |
if config: |
54 |
if config['version'] not in valid_versions: |
55 |
- raise ConfigError("Invalid file version: %s in: %s\nPlease upgrade repoman: current valid versions: %s" |
56 |
- % (config['version'], filename, valid_versions)) |
57 |
+ raise ConfigError( |
58 |
+ "Invalid file version: %s in: %s\nPlease upgrade to " |
59 |
+ ">=app-portage/repoman-%s, current valid API versions: %s" |
60 |
+ % (config['version'], filename, |
61 |
+ config['repoman_version'], valid_versions)) |
62 |
result = merge_config(result, config) |
63 |
|
64 |
return result |
65 |
|
66 |
diff --git a/repoman/pym/repoman/main.py b/repoman/pym/repoman/main.py |
67 |
index c1e3b99fe..81e2ff61e 100755 |
68 |
--- a/repoman/pym/repoman/main.py |
69 |
+++ b/repoman/pym/repoman/main.py |
70 |
@@ -47,10 +47,12 @@ os.umask(0o22) |
71 |
LOGLEVEL = logging.WARNING |
72 |
portage.util.initialize_logger(LOGLEVEL) |
73 |
|
74 |
+VALID_VERSIONS = [1,] |
75 |
|
76 |
def repoman_main(argv): |
77 |
config_root = os.environ.get("PORTAGE_CONFIGROOT") |
78 |
repoman_settings = portage.config(config_root=config_root, local_config=False) |
79 |
+ repoman_settings.valid_versions = VALID_VERSIONS |
80 |
|
81 |
if repoman_settings.get("NOCOLOR", "").lower() in ("yes", "true") or \ |
82 |
repoman_settings.get('TERM') == 'dumb' or \ |
83 |
@@ -92,6 +94,7 @@ def repoman_main(argv): |
84 |
config_root, portdir, portdir_overlay, |
85 |
repoman_settings, vcs_settings, options, qadata) |
86 |
repoman_settings = repo_settings.repoman_settings |
87 |
+ repoman_settings.valid_versions = VALID_VERSIONS |
88 |
|
89 |
# Now set repo_settings |
90 |
vcs_settings.repo_settings = repo_settings |
91 |
|
92 |
diff --git a/repoman/pym/repoman/modules/linechecks/assignment/__init__.py b/repoman/pym/repoman/modules/linechecks/assignment/__init__.py |
93 |
index 6223baa9f..b95a25a74 100644 |
94 |
--- a/repoman/pym/repoman/modules/linechecks/assignment/__init__.py |
95 |
+++ b/repoman/pym/repoman/modules/linechecks/assignment/__init__.py |
96 |
@@ -22,6 +22,7 @@ module_spec = { |
97 |
'class': "Eapi3EbuildAssignment", |
98 |
'description': doc, |
99 |
}, |
100 |
- } |
101 |
+ }, |
102 |
+ 'version': 1, |
103 |
} |
104 |
|
105 |
|
106 |
diff --git a/repoman/pym/repoman/modules/linechecks/config.py b/repoman/pym/repoman/modules/linechecks/config.py |
107 |
index bba43a875..bde2e587f 100644 |
108 |
--- a/repoman/pym/repoman/modules/linechecks/config.py |
109 |
+++ b/repoman/pym/repoman/modules/linechecks/config.py |
110 |
@@ -69,7 +69,7 @@ class LineChecksConfig(object): |
111 |
self.infopaths = infopaths |
112 |
elif not self.infopaths: |
113 |
logging.error("LineChecksConfig; Error: No linechecks.yaml files defined") |
114 |
- configs = load_config(self.infopaths, 'yaml') |
115 |
+ configs = load_config(self.infopaths, 'yaml', self.repo_settings.repoman_settings.valid_versions) |
116 |
if configs == {}: |
117 |
logging.error("LineChecksConfig: Failed to load a valid 'linechecks.yaml' file at paths: %s", self.infopaths) |
118 |
return False |
119 |
|
120 |
diff --git a/repoman/pym/repoman/modules/linechecks/depend/__init__.py b/repoman/pym/repoman/modules/linechecks/depend/__init__.py |
121 |
index e564948c5..2ea95347e 100644 |
122 |
--- a/repoman/pym/repoman/modules/linechecks/depend/__init__.py |
123 |
+++ b/repoman/pym/repoman/modules/linechecks/depend/__init__.py |
124 |
@@ -16,6 +16,7 @@ module_spec = { |
125 |
'class': "ImplicitRuntimeDeps", |
126 |
'description': doc, |
127 |
}, |
128 |
- } |
129 |
+ }, |
130 |
+ 'version': 1, |
131 |
} |
132 |
|
133 |
|
134 |
diff --git a/repoman/pym/repoman/modules/linechecks/deprecated/__init__.py b/repoman/pym/repoman/modules/linechecks/deprecated/__init__.py |
135 |
index 8c5f61d49..258683345 100644 |
136 |
--- a/repoman/pym/repoman/modules/linechecks/deprecated/__init__.py |
137 |
+++ b/repoman/pym/repoman/modules/linechecks/deprecated/__init__.py |
138 |
@@ -41,6 +41,7 @@ module_spec = { |
139 |
'class': "InheritDeprecated", |
140 |
'description': doc, |
141 |
}, |
142 |
- } |
143 |
+ }, |
144 |
+ 'version': 1, |
145 |
} |
146 |
|
147 |
|
148 |
diff --git a/repoman/pym/repoman/modules/linechecks/do/__init__.py b/repoman/pym/repoman/modules/linechecks/do/__init__.py |
149 |
index a56204794..dc5af701c 100644 |
150 |
--- a/repoman/pym/repoman/modules/linechecks/do/__init__.py |
151 |
+++ b/repoman/pym/repoman/modules/linechecks/do/__init__.py |
152 |
@@ -16,6 +16,7 @@ module_spec = { |
153 |
'class': "EbuildNonRelativeDosym", |
154 |
'description': doc, |
155 |
}, |
156 |
- } |
157 |
+ }, |
158 |
+ 'version': 1, |
159 |
} |
160 |
|
161 |
|
162 |
diff --git a/repoman/pym/repoman/modules/linechecks/eapi/__init__.py b/repoman/pym/repoman/modules/linechecks/eapi/__init__.py |
163 |
index e598fdfe3..31993df20 100644 |
164 |
--- a/repoman/pym/repoman/modules/linechecks/eapi/__init__.py |
165 |
+++ b/repoman/pym/repoman/modules/linechecks/eapi/__init__.py |
166 |
@@ -46,6 +46,7 @@ module_spec = { |
167 |
'class': "Eapi4GoneVars", |
168 |
'description': doc, |
169 |
}, |
170 |
- } |
171 |
+ }, |
172 |
+ 'version': 1, |
173 |
} |
174 |
|
175 |
|
176 |
diff --git a/repoman/pym/repoman/modules/linechecks/emake/__init__.py b/repoman/pym/repoman/modules/linechecks/emake/__init__.py |
177 |
index 2e930dae8..cecdc5fcf 100644 |
178 |
--- a/repoman/pym/repoman/modules/linechecks/emake/__init__.py |
179 |
+++ b/repoman/pym/repoman/modules/linechecks/emake/__init__.py |
180 |
@@ -22,6 +22,7 @@ module_spec = { |
181 |
'class': "WantAutoDefaultValue", |
182 |
'description': doc, |
183 |
}, |
184 |
- } |
185 |
+ }, |
186 |
+ 'version': 1, |
187 |
} |
188 |
|
189 |
|
190 |
diff --git a/repoman/pym/repoman/modules/linechecks/gentoo_header/__init__.py b/repoman/pym/repoman/modules/linechecks/gentoo_header/__init__.py |
191 |
index b80a83ecf..205cc32c2 100644 |
192 |
--- a/repoman/pym/repoman/modules/linechecks/gentoo_header/__init__.py |
193 |
+++ b/repoman/pym/repoman/modules/linechecks/gentoo_header/__init__.py |
194 |
@@ -16,6 +16,7 @@ module_spec = { |
195 |
'class': "EbuildHeader", |
196 |
'description': doc, |
197 |
}, |
198 |
- } |
199 |
+ }, |
200 |
+ 'version': 1, |
201 |
} |
202 |
|
203 |
|
204 |
diff --git a/repoman/pym/repoman/modules/linechecks/helpers/__init__.py b/repoman/pym/repoman/modules/linechecks/helpers/__init__.py |
205 |
index e2d12afe4..0f41f0136 100644 |
206 |
--- a/repoman/pym/repoman/modules/linechecks/helpers/__init__.py |
207 |
+++ b/repoman/pym/repoman/modules/linechecks/helpers/__init__.py |
208 |
@@ -16,6 +16,7 @@ module_spec = { |
209 |
'class': "NoOffsetWithHelpers", |
210 |
'description': doc, |
211 |
}, |
212 |
- } |
213 |
+ }, |
214 |
+ 'version': 1, |
215 |
} |
216 |
|
217 |
|
218 |
diff --git a/repoman/pym/repoman/modules/linechecks/nested/__init__.py b/repoman/pym/repoman/modules/linechecks/nested/__init__.py |
219 |
index 8eeeccbac..6c8a70a52 100644 |
220 |
--- a/repoman/pym/repoman/modules/linechecks/nested/__init__.py |
221 |
+++ b/repoman/pym/repoman/modules/linechecks/nested/__init__.py |
222 |
@@ -16,6 +16,7 @@ module_spec = { |
223 |
'class': "EbuildNestedDie", |
224 |
'description': doc, |
225 |
}, |
226 |
- } |
227 |
+ }, |
228 |
+ 'version': 1, |
229 |
} |
230 |
|
231 |
|
232 |
diff --git a/repoman/pym/repoman/modules/linechecks/patches/__init__.py b/repoman/pym/repoman/modules/linechecks/patches/__init__.py |
233 |
index 67434f911..4fe0fcf5e 100644 |
234 |
--- a/repoman/pym/repoman/modules/linechecks/patches/__init__.py |
235 |
+++ b/repoman/pym/repoman/modules/linechecks/patches/__init__.py |
236 |
@@ -16,6 +16,7 @@ module_spec = { |
237 |
'class': "EbuildPatches", |
238 |
'description': doc, |
239 |
}, |
240 |
- } |
241 |
+ }, |
242 |
+ 'version': 1, |
243 |
} |
244 |
|
245 |
|
246 |
diff --git a/repoman/pym/repoman/modules/linechecks/phases/__init__.py b/repoman/pym/repoman/modules/linechecks/phases/__init__.py |
247 |
index 476443b25..b3228c0f7 100644 |
248 |
--- a/repoman/pym/repoman/modules/linechecks/phases/__init__.py |
249 |
+++ b/repoman/pym/repoman/modules/linechecks/phases/__init__.py |
250 |
@@ -29,6 +29,7 @@ module_spec = { |
251 |
'class': "SrcUnpackPatches", |
252 |
'description': doc, |
253 |
}, |
254 |
- } |
255 |
+ }, |
256 |
+ 'version': 1, |
257 |
} |
258 |
|
259 |
|
260 |
diff --git a/repoman/pym/repoman/modules/linechecks/portage/__init__.py b/repoman/pym/repoman/modules/linechecks/portage/__init__.py |
261 |
index d390c6054..b9a84b507 100644 |
262 |
--- a/repoman/pym/repoman/modules/linechecks/portage/__init__.py |
263 |
+++ b/repoman/pym/repoman/modules/linechecks/portage/__init__.py |
264 |
@@ -22,6 +22,7 @@ module_spec = { |
265 |
'class': "PortageInternalVariableAssignment", |
266 |
'description': doc, |
267 |
}, |
268 |
- } |
269 |
+ }, |
270 |
+ 'version': 1, |
271 |
} |
272 |
|
273 |
|
274 |
diff --git a/repoman/pym/repoman/modules/linechecks/quotes/__init__.py b/repoman/pym/repoman/modules/linechecks/quotes/__init__.py |
275 |
index 6043ab20c..894ef58d2 100644 |
276 |
--- a/repoman/pym/repoman/modules/linechecks/quotes/__init__.py |
277 |
+++ b/repoman/pym/repoman/modules/linechecks/quotes/__init__.py |
278 |
@@ -22,6 +22,7 @@ module_spec = { |
279 |
'class': "EbuildQuotedA", |
280 |
'description': doc, |
281 |
}, |
282 |
- } |
283 |
+ }, |
284 |
+ 'version': 1, |
285 |
} |
286 |
|
287 |
|
288 |
diff --git a/repoman/pym/repoman/modules/linechecks/uri/__init__.py b/repoman/pym/repoman/modules/linechecks/uri/__init__.py |
289 |
index a7731e3cc..e19617257 100644 |
290 |
--- a/repoman/pym/repoman/modules/linechecks/uri/__init__.py |
291 |
+++ b/repoman/pym/repoman/modules/linechecks/uri/__init__.py |
292 |
@@ -16,6 +16,7 @@ module_spec = { |
293 |
'class': "UriUseHttps", |
294 |
'description': doc, |
295 |
}, |
296 |
- } |
297 |
+ }, |
298 |
+ 'version': 1, |
299 |
} |
300 |
|
301 |
|
302 |
diff --git a/repoman/pym/repoman/modules/linechecks/use/__init__.py b/repoman/pym/repoman/modules/linechecks/use/__init__.py |
303 |
index e5665d2d8..e97b0d61d 100644 |
304 |
--- a/repoman/pym/repoman/modules/linechecks/use/__init__.py |
305 |
+++ b/repoman/pym/repoman/modules/linechecks/use/__init__.py |
306 |
@@ -16,6 +16,7 @@ module_spec = { |
307 |
'class': "BuiltWithUse", |
308 |
'description': doc, |
309 |
}, |
310 |
- } |
311 |
+ }, |
312 |
+ 'version': 1, |
313 |
} |
314 |
|
315 |
|
316 |
diff --git a/repoman/pym/repoman/modules/linechecks/useless/__init__.py b/repoman/pym/repoman/modules/linechecks/useless/__init__.py |
317 |
index acc4479f5..5cf978137 100644 |
318 |
--- a/repoman/pym/repoman/modules/linechecks/useless/__init__.py |
319 |
+++ b/repoman/pym/repoman/modules/linechecks/useless/__init__.py |
320 |
@@ -22,6 +22,7 @@ module_spec = { |
321 |
'class': "EbuildUselessDodoc", |
322 |
'description': doc, |
323 |
}, |
324 |
- } |
325 |
+ }, |
326 |
+ 'version': 1, |
327 |
} |
328 |
|
329 |
|
330 |
diff --git a/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py b/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py |
331 |
index ded690ed7..716c5129c 100644 |
332 |
--- a/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py |
333 |
+++ b/repoman/pym/repoman/modules/linechecks/whitespace/__init__.py |
334 |
@@ -22,6 +22,7 @@ module_spec = { |
335 |
'class': "EbuildBlankLine", |
336 |
'description': doc, |
337 |
}, |
338 |
- } |
339 |
+ }, |
340 |
+ 'version': 1, |
341 |
} |
342 |
|
343 |
|
344 |
diff --git a/repoman/pym/repoman/modules/linechecks/workaround/__init__.py b/repoman/pym/repoman/modules/linechecks/workaround/__init__.py |
345 |
index 0b5aa70c8..425085a5c 100644 |
346 |
--- a/repoman/pym/repoman/modules/linechecks/workaround/__init__.py |
347 |
+++ b/repoman/pym/repoman/modules/linechecks/workaround/__init__.py |
348 |
@@ -22,6 +22,7 @@ module_spec = { |
349 |
'class': "NoAsNeeded", |
350 |
'description': doc, |
351 |
}, |
352 |
- } |
353 |
+ }, |
354 |
+ 'version': 1, |
355 |
} |
356 |
|
357 |
|
358 |
diff --git a/repoman/pym/repoman/modules/scan/depend/__init__.py b/repoman/pym/repoman/modules/scan/depend/__init__.py |
359 |
index bd6905c0b..c3cc0ddeb 100644 |
360 |
--- a/repoman/pym/repoman/modules/scan/depend/__init__.py |
361 |
+++ b/repoman/pym/repoman/modules/scan/depend/__init__.py |
362 |
@@ -28,6 +28,7 @@ module_spec = { |
363 |
}, |
364 |
'module_runsIn': ['ebuilds'], |
365 |
}, |
366 |
- } |
367 |
+ }, |
368 |
+ 'version': 1, |
369 |
} |
370 |
|
371 |
|
372 |
diff --git a/repoman/pym/repoman/modules/scan/directories/__init__.py b/repoman/pym/repoman/modules/scan/directories/__init__.py |
373 |
index 18ca086ce..276bc7ae9 100644 |
374 |
--- a/repoman/pym/repoman/modules/scan/directories/__init__.py |
375 |
+++ b/repoman/pym/repoman/modules/scan/directories/__init__.py |
376 |
@@ -45,6 +45,7 @@ module_spec = { |
377 |
}, |
378 |
'module_runsIn': ['ebuilds'], |
379 |
}, |
380 |
- } |
381 |
+ }, |
382 |
+ 'version': 1, |
383 |
} |
384 |
|
385 |
|
386 |
diff --git a/repoman/pym/repoman/modules/scan/eapi/__init__.py b/repoman/pym/repoman/modules/scan/eapi/__init__.py |
387 |
index f6306b3e1..94759fdd7 100644 |
388 |
--- a/repoman/pym/repoman/modules/scan/eapi/__init__.py |
389 |
+++ b/repoman/pym/repoman/modules/scan/eapi/__init__.py |
390 |
@@ -25,6 +25,7 @@ module_spec = { |
391 |
}, |
392 |
'module_runsIn': ['ebuilds'], |
393 |
}, |
394 |
- } |
395 |
+ }, |
396 |
+ 'version': 1, |
397 |
} |
398 |
|
399 |
|
400 |
diff --git a/repoman/pym/repoman/modules/scan/ebuild/__init__.py b/repoman/pym/repoman/modules/scan/ebuild/__init__.py |
401 |
index 1d8ec1941..328a0d626 100644 |
402 |
--- a/repoman/pym/repoman/modules/scan/ebuild/__init__.py |
403 |
+++ b/repoman/pym/repoman/modules/scan/ebuild/__init__.py |
404 |
@@ -55,6 +55,7 @@ module_spec = { |
405 |
}, |
406 |
'module_runsIn': ['ebuilds'], |
407 |
}, |
408 |
- } |
409 |
+ }, |
410 |
+ 'version': 1, |
411 |
} |
412 |
|
413 |
|
414 |
diff --git a/repoman/pym/repoman/modules/scan/eclasses/__init__.py b/repoman/pym/repoman/modules/scan/eclasses/__init__.py |
415 |
index 9b1f203ce..234ef9fca 100644 |
416 |
--- a/repoman/pym/repoman/modules/scan/eclasses/__init__.py |
417 |
+++ b/repoman/pym/repoman/modules/scan/eclasses/__init__.py |
418 |
@@ -44,6 +44,7 @@ module_spec = { |
419 |
}, |
420 |
'module_runsIn': ['ebuilds'], |
421 |
}, |
422 |
- } |
423 |
+ }, |
424 |
+ 'version': 1, |
425 |
} |
426 |
|
427 |
|
428 |
diff --git a/repoman/pym/repoman/modules/scan/fetch/__init__.py b/repoman/pym/repoman/modules/scan/fetch/__init__.py |
429 |
index d1b4f8d0e..30db3f529 100644 |
430 |
--- a/repoman/pym/repoman/modules/scan/fetch/__init__.py |
431 |
+++ b/repoman/pym/repoman/modules/scan/fetch/__init__.py |
432 |
@@ -29,6 +29,7 @@ module_spec = { |
433 |
}, |
434 |
'module_runsIn': ['pkgs', 'ebuilds'], |
435 |
}, |
436 |
- } |
437 |
+ }, |
438 |
+ 'version': 1, |
439 |
} |
440 |
|
441 |
|
442 |
diff --git a/repoman/pym/repoman/modules/scan/keywords/__init__.py b/repoman/pym/repoman/modules/scan/keywords/__init__.py |
443 |
index 88ea5aca9..d4c1281bc 100644 |
444 |
--- a/repoman/pym/repoman/modules/scan/keywords/__init__.py |
445 |
+++ b/repoman/pym/repoman/modules/scan/keywords/__init__.py |
446 |
@@ -29,6 +29,7 @@ module_spec = { |
447 |
}, |
448 |
'module_runsIn': ['pkgs', 'ebuilds', 'final'], |
449 |
}, |
450 |
- } |
451 |
+ }, |
452 |
+ 'version': 1, |
453 |
} |
454 |
|
455 |
|
456 |
diff --git a/repoman/pym/repoman/modules/scan/manifest/__init__.py b/repoman/pym/repoman/modules/scan/manifest/__init__.py |
457 |
index 94f0a1f35..9e05c5288 100644 |
458 |
--- a/repoman/pym/repoman/modules/scan/manifest/__init__.py |
459 |
+++ b/repoman/pym/repoman/modules/scan/manifest/__init__.py |
460 |
@@ -26,6 +26,7 @@ module_spec = { |
461 |
}, |
462 |
'module_runsIn': ['pkgs'], |
463 |
}, |
464 |
- } |
465 |
+ }, |
466 |
+ 'version': 1, |
467 |
} |
468 |
|
469 |
|
470 |
diff --git a/repoman/pym/repoman/modules/scan/metadata/__init__.py b/repoman/pym/repoman/modules/scan/metadata/__init__.py |
471 |
index 2d111b4e0..fccde99b5 100644 |
472 |
--- a/repoman/pym/repoman/modules/scan/metadata/__init__.py |
473 |
+++ b/repoman/pym/repoman/modules/scan/metadata/__init__.py |
474 |
@@ -84,6 +84,7 @@ module_spec = { |
475 |
}, |
476 |
'module_runsIn': ['ebuilds'], |
477 |
}, |
478 |
- } |
479 |
+ }, |
480 |
+ 'version': 1, |
481 |
} |
482 |
|
483 |
|
484 |
diff --git a/repoman/pym/repoman/modules/scan/module.py b/repoman/pym/repoman/modules/scan/module.py |
485 |
index 5d34eaef0..28d6668d6 100644 |
486 |
--- a/repoman/pym/repoman/modules/scan/module.py |
487 |
+++ b/repoman/pym/repoman/modules/scan/module.py |
488 |
@@ -10,6 +10,7 @@ import yaml |
489 |
|
490 |
from portage.module import InvalidModuleName, Modules |
491 |
from portage.util import stack_lists |
492 |
+from repoman.config import ConfigError |
493 |
|
494 |
MODULES_PATH = os.path.dirname(__file__) |
495 |
# initial development debug info |
496 |
@@ -20,7 +21,7 @@ class ModuleConfig(object): |
497 |
'''Holds the scan modules configuration information and |
498 |
creates the ordered list of modulles to run''' |
499 |
|
500 |
- def __init__(self, configpaths): |
501 |
+ def __init__(self, configpaths, valid_versions=None): |
502 |
'''Module init |
503 |
|
504 |
@param configpaths: ordered list of filepaths to load |
505 |
@@ -37,13 +38,13 @@ class ModuleConfig(object): |
506 |
self.ebuilds_loop = [] |
507 |
self.final_loop = [] |
508 |
self.modules_forced = ['ebuild', 'mtime'] |
509 |
- self.load_configs() |
510 |
+ self.load_configs(valid_versions=valid_versions) |
511 |
for loop in ['pkgs', 'ebuilds', 'final']: |
512 |
logging.debug("ModuleConfig; Processing loop %s", loop) |
513 |
setattr(self, '%s_loop' % loop, self._determine_list(loop)) |
514 |
self.linechecks = stack_lists(c['linechecks_modules'].split() for c in self._configs) |
515 |
|
516 |
- def load_configs(self, configpaths=None): |
517 |
+ def load_configs(self, configpaths=None, valid_versions=None): |
518 |
'''load the config files in order |
519 |
|
520 |
@param configpaths: ordered list of filepaths to load |
521 |
@@ -62,6 +63,9 @@ class ModuleConfig(object): |
522 |
except IOError as error: |
523 |
logging,error("Failed to load file: %s", inputfile) |
524 |
logging.exception(error) |
525 |
+ else: |
526 |
+ if configs[-1]['version'] not in valid_versions: |
527 |
+ raise ConfigError("Invalid file version: %s in: %s\nPlease upgrade repoman" % (configs['version'], path)) |
528 |
logging.debug("ModuleConfig; completed : %s", path) |
529 |
logging.debug("ModuleConfig; new _configs: %s", configs) |
530 |
self._configs = configs |
531 |
|
532 |
diff --git a/repoman/pym/repoman/modules/scan/options/__init__.py b/repoman/pym/repoman/modules/scan/options/__init__.py |
533 |
index d62e75274..ffce474e5 100644 |
534 |
--- a/repoman/pym/repoman/modules/scan/options/__init__.py |
535 |
+++ b/repoman/pym/repoman/modules/scan/options/__init__.py |
536 |
@@ -24,6 +24,7 @@ module_spec = { |
537 |
}, |
538 |
'module_runsIn': ['ebuilds'], |
539 |
}, |
540 |
- } |
541 |
+ }, |
542 |
+ 'version': 1, |
543 |
} |
544 |
|
545 |
|
546 |
diff --git a/repoman/pym/repoman/qa_data.py b/repoman/pym/repoman/qa_data.py |
547 |
index fba0c2d64..11f00d897 100644 |
548 |
--- a/repoman/pym/repoman/qa_data.py |
549 |
+++ b/repoman/pym/repoman/qa_data.py |
550 |
@@ -28,14 +28,14 @@ class QAData(object): |
551 |
self.no_exec = None |
552 |
|
553 |
|
554 |
- def load_repo_config(self, repopaths, options): |
555 |
+ def load_repo_config(self, repopaths, options, valid_versions): |
556 |
'''Load the repository repoman qa_data.yml config |
557 |
|
558 |
@param repopaths: list of strings, The path of the repository being scanned |
559 |
This could be a parent repository using the |
560 |
repoman_masters layout.conf variable |
561 |
''' |
562 |
- qadata = load_config([os.path.join(path,'qa_data.yaml') for path in repopaths], 'yaml') |
563 |
+ qadata = load_config([os.path.join(path,'qa_data.yaml') for path in repopaths], 'yaml', valid_versions) |
564 |
if qadata == {}: |
565 |
logging.error("QAData: Failed to load a valid 'qa_data.yaml' file at paths: %s", repopaths) |
566 |
return False |
567 |
|
568 |
diff --git a/repoman/pym/repoman/repos.py b/repoman/pym/repoman/repos.py |
569 |
index e383dbfd1..9c820b08c 100644 |
570 |
--- a/repoman/pym/repoman/repos.py |
571 |
+++ b/repoman/pym/repoman/repos.py |
572 |
@@ -53,7 +53,7 @@ class RepoSettings(object): |
573 |
logging.debug("RepoSettings: init(); load qadata") |
574 |
# load the repo specific configuration |
575 |
self.qadata = qadata |
576 |
- if not self.qadata.load_repo_config(self.masters_list, options): |
577 |
+ if not self.qadata.load_repo_config(self.masters_list, options, repoman_settings.valid_versions): |
578 |
logging.error("Aborting...") |
579 |
sys.exit(1) |
580 |
logging.debug("RepoSettings: qadata loaded: %s", qadata.no_exec) |
581 |
|
582 |
diff --git a/repoman/pym/repoman/scanner.py b/repoman/pym/repoman/scanner.py |
583 |
index d61e50131..f203011e4 100644 |
584 |
--- a/repoman/pym/repoman/scanner.py |
585 |
+++ b/repoman/pym/repoman/scanner.py |
586 |
@@ -116,7 +116,8 @@ class Scanner(object): |
587 |
|
588 |
# Initialize the ModuleConfig class here |
589 |
# TODO Add layout.conf masters repository.yml config to the list to load/stack |
590 |
- self.moduleconfig = ModuleConfig(self.repo_settings.masters_list) |
591 |
+ self.moduleconfig = ModuleConfig(self.repo_settings.masters_list, |
592 |
+ self.repo_settings.repoman_settings.valid_versions) |
593 |
|
594 |
checks = {} |
595 |
# The --echangelog option causes automatic ChangeLog generation, |