[Reproducible-commits] [blog] 01/01: Remove bin/generate-draft*
Chris Lamb
chris at chris-lamb.co.uk
Sun Aug 14 16:27:21 UTC 2016
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository blog.
commit 40f57ca2cf09bbafa3fcb90ec173f55ccfc035a7
Author: Chris Lamb <lamby at debian.org>
Date: Sun Aug 14 17:26:42 2016 +0100
Remove bin/generate-draft*
---
bin/generate-draft | 231 --------------------------------------------
bin/generate-draft.template | 72 --------------
2 files changed, 303 deletions(-)
diff --git a/bin/generate-draft b/bin/generate-draft
deleted file mode 100755
index 48eebc1..0000000
--- a/bin/generate-draft
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/usr/bin/env python3
-
-import os
-import re
-import sys
-import time
-import jinja2
-import pickle
-import calendar
-import datetime
-import requests
-import debianbts
-import subprocess
-import collections
-
-PROJECTS = (
- 'diffoscope',
- 'strip-nondeterminism',
- 'disorderfs',
- 'reprotest',
-)
-
-def main(*args):
- week = int(args[0])
-
- data = get_data(week)
-
- env = jinja2.Environment(
- loader=jinja2.FileSystemLoader(os.path.dirname(__file__))
- )
- print(env.get_template('generate-draft.template').render(**data))
-
- return 0
-
-def log(msg, *args, **kwargs):
- print("I: " + msg.format(*args, **kwargs), file=sys.stderr)
-
-def get_data(week, max_age=3600):
- filename = '/tmp/generate-draft-{}.pickle'.format(week)
-
- try:
- mtime = os.path.getmtime(filename)
-
- if mtime >= time.time() - max_age:
- log("Using cache from {}", filename)
-
- with open(filename, 'rb') as f:
- return pickle.load(f)
- except (EOFError, OSError):
- pass
-
- log("Getting new data")
-
- week_start = datetime.date(2015, 4, 19) + datetime.timedelta(days=week * 7)
- week_end = week_start + datetime.timedelta(days=6)
-
- data = {x: y(week_start, week_end) for x, y in (
- ('author', get_author),
- ('commits', get_commits),
- ('uploads', get_uploads),
- ('patches', get_patches),
- ('ftbfs_bugs', get_ftbfs_bugs),
- ('issues_yml', get_issues_yml),
- ('packages_yml', get_packages_yml),
- )}
-
- data.update({
- 'week': week,
- 'week_start': week_start,
- 'week_end': week_end,
- 'projects': PROJECTS,
- })
-
- log("Saving cache to {}", filename)
-
- with open(filename, 'wb') as f:
- pickle.dump(data, f)
-
- return data
-
-def get_author(week_start, week_end):
- return os.environ.get('DEBFULLNAME', 'FIXME')
-
-def get_ftbfs_bugs(week_start, week_end):
- return bugs(
- week_start,
- week_end,
- "bugs_usertags.tag = '{}'".format('ftbfs'),
- )
-
-def get_patches(week_start, week_end):
- return bugs(
- week_start,
- week_end,
- "id IN (SELECT id FROM bugs_tags WHERE tag = 'patch')",
- )
-
-def bugs(week_start, week_end, extra="true"):
- log("Querying UDD for usertagged bugs with filter: {}", extra)
-
- fields = (
- 'id',
- 'source',
- 'submitter',
- 'submitter_name',
- 'title',
- 'arrival',
- )
-
- sql = """
- SELECT
- {fields}
- FROM
- bugs
- INNER JOIN
- bugs_usertags USING (id)
- WHERE
- bugs_usertags.email = 'reproducible-builds at lists.alioth.debian.org'
- AND
- {extra}
- AND
- CAST(arrival AS DATE) BETWEEN '{week_start}' AND '{week_end}'
- """.format(**{
- 'fields': ', '.join(fields),
- 'extra': extra,
- 'week_start': week_start.strftime('%F'),
- 'week_end': week_end.strftime('%F'),
- })
-
- result = {}
- for x in udd(sql, fields):
- result.setdefault(x['submitter_name'], []).append(x)
-
- return result
-
-def get_uploads(week_start, week_end):
- log("Querying UDD for uploads")
-
- fields = (
- 'source',
- 'version',
- 'distribution',
- 'signed_by_name',
- )
-
- data = udd("""
- SELECT
- {fields}
- FROM
- upload_history
- WHERE
- source IN ({sources})
- AND
- CAST(date AS date) BETWEEN '{week_start}' AND '{week_end}'
- ORDER BY
- date
- """.format(**{
- 'fields': ', '.join(fields),
- 'sources': ', '.join("'{}'".format(x) for x in PROJECTS),
- 'week_start': week_start.strftime('%F'),
- 'week_end': week_end.strftime('%F'),
- }), fields)
-
- result = {}
- for x in data:
- result.setdefault(x['source'], []).append(x)
-
- return result
-
-def udd(query, fields):
- lines = subprocess.check_output("""
- echo "{}" | ssh alioth.debian.org psql --no-psqlrc service=udd
- """.format(query), shell=True)
-
- data = []
-
- for line in lines.splitlines()[2:]:
- split = line.decode('utf-8').split('|')
-
- if len(split) != len(fields):
- continue
-
- row = dict(zip(fields, [x.strip() for x in split]))
-
- data.append(row)
-
- return data
-
-def get_commits(week_start, week_end):
- return {x: commits(week_start, week_end, x) for x in PROJECTS}
-
-def get_issues_yml(week_start, week_end):
- return commits(week_start, week_end, 'notes', 'issues.yml')
-
-def get_packages_yml(week_start, week_end):
- return commits(week_start, week_end, 'notes', 'packages.yml')
-
-def commits(week_start, week_end, project, path='.'):
- # Assume its in the parent dir
- git_dir = os.path.join(
- os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),
- project,
- '.git',
- )
-
- output = subprocess.check_output((
- 'git',
- 'log',
- 'origin/master',
- '--since', week_start.strftime('%F'),
- '--until', week_end.strftime('%F'),
- '--pretty=format:%an\t%h\t%s',
- '--',
- path,
- ), env={
- 'GIT_DIR': git_dir,
- }).decode('utf-8')
-
- result = collections.defaultdict(list)
- for x in output.splitlines():
- author, sha, title = x.split('\t', 2)
-
- result[author].append({
- 'sha': sha,
- 'title': title,
- })
-
- return result
-
-if __name__ == '__main__':
- sys.exit(main(*sys.argv[1:]))
diff --git a/bin/generate-draft.template b/bin/generate-draft.template
deleted file mode 100644
index a5f58a9..0000000
--- a/bin/generate-draft.template
+++ /dev/null
@@ -1,72 +0,0 @@
-[[!meta title="Reproducible builds: week {{ week }} in Stretch cycle"]]
-
-What happened in the [Reproducible
-Builds](https://wiki.debian.org/ReproducibleBuilds) effort between Sunday {{ week_start.strftime('%B') }} {{ week_start.day }} and Saturday {{ week_end.strftime('%B') }} {{ week_end.day }} {{ week_end.year }}:
-
-Media coverage
---------------
-
-FIXME
-
-GSoC and Outreachy updates
---------------------------
-
-FIXME
-
-Documentation update
---------------------
-
-FIXME
-
-Reproducible work in other projects
------------------------------------
-
-FIXME
-
-Packages reviewed and fixed, and bugs filed
--------------------------------------------
-
-Patches have been submitted by:
-{% for x, ys in patches.items()|sort %}
-- {{ x }}:{% for y in ys %}
- - [{{ y['title'] }}](https://bugs.debian.org/{{ y['id'] }}){% endfor %}
-{% endfor %}
-
-Package reviews
----------------
-
-FIXME reviews have been added, FIXME have been updated and FIXME 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/notes.git/commit/?id={{ x['sha'] }}){% endfor %}{% endfor %}
-
-Issue types have been updated:
-{% for _, xs in issues_yml.items()|sort %}{% for x in xs %}
-- [{{ x['title'] }}](https://anonscm.debian.org/git/notes.git/commit/?id={{ x['sha'] }}){% endfor %}{% endfor %}
-
-Weekly QA work
---------------
-
-FTBFS bugs have been reported by:
-{% for k, v in ftbfs_bugs.items()|sort %}
- - {{ k }} ({{ v|length }}){% endfor %}
-
-{% for project in projects %}
-{{ project }} development
-------------{{ "-" * project|length }}
-{% for x in uploads[project] %}
-- {{ project }} {{ x['version'] }} was uploaded to {{ x['distribution'] }} by {{ x['signed_by_name'] }}.{% endfor %}
-{% for x, ys in commits[project].items() %}- {{ x }}:{% for y in ys %}
- - [{{ y['title'] }}](https://anonscm.debian.org/git/reproducible/{{ project }}.git/commit/?id={{ y['sha'] }}){% endfor %}
-{% endfor %}
-{% endfor %}
-
-tests.reproducible-builds.org
------------------------
-
-FIXME
-
-Misc.
------
-
-This week's edition was written by {{ author }} and reviewed by a bunch of Reproducible builds folks on IRC.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/blog.git
More information about the Reproducible-commits
mailing list