[misc] 01/01: reports: generate-draft: add logic from review-stats

Ximin Luo infinity0 at debian.org
Mon Aug 21 13:30:30 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository misc.

commit f152124d39a54193ca92b7c86d9be7bc52c9b6a7
Author: Ximin Luo <infinity0 at debian.org>
Date:   Mon Aug 21 15:30:16 2017 +0200

    reports: generate-draft: add logic from review-stats
---
 reports/bin/generate-draft          | 35 ++++++++++++++++++++++++++++++-----
 reports/bin/generate-draft.template |  4 +---
 reports/bin/review-stats            |  4 ----
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/reports/bin/generate-draft b/reports/bin/generate-draft
index 1643373..91be6b3 100755
--- a/reports/bin/generate-draft
+++ b/reports/bin/generate-draft
@@ -1,14 +1,15 @@
 #!/usr/bin/env python3
 
+import collections
+import datetime
+import jinja2
 import os
+import pickle
 import re
+import subprocess
 import sys
 import time
-import jinja2
-import pickle
-import datetime
-import subprocess
-import collections
+import yaml
 
 WEEK_1_END = 1430611200 # May 3 2015, 00:00 UTC, Sunday
 
@@ -78,6 +79,7 @@ def get_data(week, max_age=3600):
     week_start = week_end - 7 * 24 * 3600 # inclusive
 
     data = {x: y(week_start, week_end) for x, y in (
+        ('packages_stats', get_packages_stats),
         ('author', get_author),
         ('commits', get_commits),
         ('uploads', get_uploads),
@@ -225,6 +227,29 @@ def get_issues_yml(week_start, week_end):
 def get_packages_yml(week_start, week_end):
     return commits(week_start, week_end, 'notes', 'packages.yml')
 
+def open_packages_yml(date):
+    return subprocess.Popen(
+        "git show $(git rev-list -n1 --until @{0} master):packages.yml".format(date),
+        shell=True,
+        cwd=sibling_repo_gitdir("notes"),
+        stdout=subprocess.PIPE).stdout
+
+def get_packages_stats(week_start, week_end):
+    old = yaml.safe_load(open_packages_yml(week_start))
+    new = yaml.safe_load(open_packages_yml(week_end))
+
+    removed = set(old.keys()) - set(new.keys())
+    added = set(new.keys()) - set(old.keys())
+    updated = 0
+    for name in set(old.keys()).intersection(new.keys()):
+        if old[name] != new[name]:
+            updated += 1
+    return {
+        "removed": len(removed),
+        "added": len(added),
+        "updated": updated,
+    }
+
 def commits(week_start, week_end, project, path='.'):
     # Assume its in the parent dir
     git_dir = sibling_repo_gitdir(project)
diff --git a/reports/bin/generate-draft.template b/reports/bin/generate-draft.template
index e19b277..edb82be 100644
--- a/reports/bin/generate-draft.template
+++ b/reports/bin/generate-draft.template
@@ -40,10 +40,8 @@ perhaps also run bin/review-bugs to see if anything was missed.
 Reviews of unreproducible packages
 ----------------------------------
 
-FIXME package reviews have been added, FIXME have been updated and FIXME have been removed in this week,
+{{ packages_stats['added'] }} package reviews have been added, {{ packages_stats['updated'] }} have been updated and {{ packages_stats['removed'] }} have been removed in this week,
 adding to our knowledge about [identified issues](https://tests.reproducible-builds.org/debian/index_issues.html).
-{% for _, xs in packages_yml.items()|sort %}{% for x in xs %}
-- [{{ x['title'] }}](https://anonscm.debian.org/git/reproducible/notes.git/commit/?id={{ x['sha'] }}){% endfor %}{% endfor %}
 
 FIXME issue types have been updated:
 {% for _, xs in issues_yml.items()|sort %}{% for x in xs %}
diff --git a/reports/bin/review-stats b/reports/bin/review-stats
index 281c40b..47f3c19 100755
--- a/reports/bin/review-stats
+++ b/reports/bin/review-stats
@@ -38,7 +38,3 @@ for name in set(old.keys()).intersection(new.keys()):
     if old[name] != new[name]:
         updated += 1
 print("Updated: %d" % updated)
-
-print("%s package reviews have been added, %s have been updated and %s have been" % (len(added), updated, len(removed)))
-print("removed in this week, adding to our knowledge about [identified")
-print("issues](https://tests.reproducible-builds.org/debian/index_issues.html).")

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/misc.git



More information about the Reproducible-commits mailing list