36
36
"20.03" : "nixos/20.03/nixos-20.03." ,
37
37
"20.09" : "nixos/20.09/nixos-20.09." ,
38
38
}
39
+ ALLOWED_PLATFORMS = ["x86_64-linux" , "aarch64-linux" , "x86_64-darwin" , "i686-linux" ]
39
40
ANALYSIS = {
40
41
"normalizer" : {
41
42
"lowercase" : {"type" : "custom" , "char_filter" : [], "filter" : ["lowercase" ]}
88
89
},
89
90
"package_attr_name" : {
90
91
"type" : "keyword" ,
91
- "normalizer" : "lowercase" ,
92
92
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
93
93
},
94
94
"package_attr_name_reverse" : {
95
95
"type" : "keyword" ,
96
- "normalizer" : "lowercase" ,
97
96
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
98
97
},
99
98
"package_attr_name_query" : {
100
99
"type" : "keyword" ,
101
- "normalizer" : "lowercase" ,
102
100
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
103
101
},
104
102
"package_attr_name_query_reverse" : {
105
103
"type" : "keyword" ,
106
- "normalizer" : "lowercase" ,
107
104
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
108
105
},
109
106
"package_attr_set" : {
110
107
"type" : "keyword" ,
111
- "normalizer" : "lowercase" ,
112
108
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
113
109
},
114
110
"package_attr_set_reverse" : {
115
111
"type" : "keyword" ,
116
- "normalizer" : "lowercase" ,
117
112
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
118
113
},
119
114
"package_pname" : {
120
115
"type" : "keyword" ,
121
- "normalizer" : "lowercase" ,
122
116
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
123
117
},
124
118
"package_pname_reverse" : {
125
119
"type" : "keyword" ,
126
- "normalizer" : "lowercase" ,
127
120
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
128
121
},
129
122
"package_pversion" : {"type" : "keyword" },
151
144
"type" : "nested" ,
152
145
"properties" : {"fullName" : {"type" : "text" }, "url" : {"type" : "text" }},
153
146
},
147
+ "package_license_set" : {"type" : "keyword" },
154
148
"package_maintainers" : {
155
149
"type" : "nested" ,
156
150
"properties" : {
159
153
"github" : {"type" : "text" },
160
154
},
161
155
},
156
+ "package_maintainers_set" : {"type" : "keyword" },
162
157
"package_platforms" : {"type" : "keyword" },
163
158
"package_position" : {"type" : "text" },
164
159
"package_homepage" : {"type" : "keyword" },
165
160
"package_system" : {"type" : "keyword" },
166
161
# Options fields
167
162
"option_name" : {
168
163
"type" : "keyword" ,
169
- "normalizer" : "lowercase" ,
170
164
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
171
165
},
172
166
"option_name_reverse" : {
173
167
"type" : "keyword" ,
174
- "normalizer" : "lowercase" ,
175
168
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
176
169
},
177
170
"option_name_query" : {
178
171
"type" : "keyword" ,
179
- "normalizer" : "lowercase" ,
180
172
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
181
173
},
182
174
"option_name_query_reverse" : {
183
175
"type" : "keyword" ,
184
- "normalizer" : "lowercase" ,
185
176
"fields" : {"edge" : {"type" : "text" , "analyzer" : "edge" }},
186
177
},
187
178
"option_description" : {
@@ -396,7 +387,7 @@ def remove_attr_set(name):
396
387
@backoff .on_exception (backoff .expo , subprocess .CalledProcessError )
397
388
def get_packages_raw (evaluation ):
398
389
logger .debug (
399
- f"get_packages : Retrieving list of packages for '{ evaluation ['git_revision' ]} ' revision"
390
+ f"get_packages_raw : Retrieving list of packages for '{ evaluation ['git_revision' ]} ' revision"
400
391
)
401
392
result = subprocess .run (
402
393
shlex .split (
@@ -417,7 +408,7 @@ def gen():
417
408
licenses = data ["meta" ].get ("license" )
418
409
if licenses :
419
410
if type (licenses ) == str :
420
- licenses = [dict (fullName = licenses )]
411
+ licenses = [dict (fullName = licenses , url = None )]
421
412
elif type (licenses ) == dict :
422
413
licenses = [licenses ]
423
414
licenses = [
@@ -427,24 +418,27 @@ def gen():
427
418
for license in licenses
428
419
]
429
420
else :
430
- licenses = []
421
+ licenses = [dict ( fullName = "No license" , url = None ) ]
431
422
432
423
maintainers = get_maintainer (data ["meta" ].get ("maintainers" , []))
424
+ if len (maintainers ) == 0 :
425
+ maintainers = [dict (name = "No maintainers" , email = None , github = None )]
433
426
434
427
platforms = [
435
- type ( platform ) == str and platform or None
428
+ platform
436
429
for platform in data ["meta" ].get ("platforms" , [])
430
+ if type (platform ) == str and platform in ALLOWED_PLATFORMS
437
431
]
438
432
439
- attr_set = None
433
+ attr_set = "No package set"
440
434
if "." in attr_name :
441
- attr_set = attr_name .split ("." )[0 ]
435
+ maybe_attr_set = attr_name .split ("." )[0 ]
442
436
if (
443
- not attr_set .endswith ("Packages" )
444
- and not attr_set .endswith ("Plugins" )
445
- and not attr_set .endswith ("Extensions" )
437
+ maybe_attr_set .endswith ("Packages" )
438
+ or maybe_attr_set .endswith ("Plugins" )
439
+ or maybe_attr_set .endswith ("Extensions" )
446
440
):
447
- attr_set = None
441
+ attr_set = maybe_attr_set
448
442
449
443
hydra = None
450
444
if data ["name" ] in evaluation_builds :
@@ -492,8 +486,10 @@ def gen():
492
486
package_longDescription = package_longDescription ,
493
487
package_longDescription_reverse = field_reverse (package_longDescription ),
494
488
package_license = licenses ,
489
+ package_license_set = [i ["fullName" ] for i in licenses ],
495
490
package_maintainers = maintainers ,
496
- package_platforms = [i for i in platforms if i ],
491
+ package_maintainers_set = [i ["name" ] for i in maintainers if i ["name" ]],
492
+ package_platforms = platforms ,
497
493
package_position = position ,
498
494
package_homepage = data ["meta" ].get ("homepage" ),
499
495
package_system = data ["system" ],
0 commit comments