mirror of
https://github.com/oxalica/rust-overlay.git
synced 2025-10-05 15:52:54 +02:00
scripts: add data analyzer for old nightly usages
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,5 +2,6 @@ target
|
||||
result
|
||||
result-*
|
||||
*.tmp
|
||||
__pycache__
|
||||
|
||||
examples/cross-aarch64/flake.lock
|
||||
|
39
scripts/cargo_stat_analysis.py
Executable file
39
scripts/cargo_stat_analysis.py
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python
|
||||
import json
|
||||
import urllib3
|
||||
from typing import Any
|
||||
|
||||
# Ref: https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/cargo.20version.20usage/near/401415815
|
||||
URL = 'https://p.datadoghq.com/dashboard/shared_widget_update/3a172e20-e9e1-11ed-80e3-da7ad0900002-973f4c1011257befa8598303217bfe3a/355142551708710?preferred_time_frame=1mo'
|
||||
THRESHOLD = (1, 68, 0) # -> 0.0014751846373960305
|
||||
|
||||
def main():
|
||||
req = urllib3.request('GET', URL)
|
||||
raw_json = json.loads(req.data)
|
||||
raw: Any = raw_json['responses']['355142551708710'][0]['data'][0]['attributes']
|
||||
data: list[tuple[str, int]] = list(
|
||||
filter(
|
||||
lambda el: el[1] != 0,
|
||||
zip(
|
||||
(g['group_tags'][0].removeprefix('cargo.version:') for g in raw['series']),
|
||||
(sum(x for x in xs if x is not None) for xs in raw['values'])
|
||||
),
|
||||
),
|
||||
)
|
||||
data.sort(key = lambda el: el[1], reverse = True)
|
||||
total = sum(cnt for _, cnt in data)
|
||||
|
||||
old_nightly = 0
|
||||
for ver, cnt in data:
|
||||
if ver.endswith('-nightly') or ver.endswith('-beta'):
|
||||
ver_num = ver.split('-')[0]
|
||||
vers_tup = tuple(map(int, ver_num.split('.')))
|
||||
if vers_tup <= THRESHOLD:
|
||||
old_nightly += cnt
|
||||
print(ver, cnt / total)
|
||||
|
||||
print(f'total: {total}')
|
||||
print(f'nightly <= {THRESHOLD}: {old_nightly / total}')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Reference in New Issue
Block a user