Commit ccc94fcf authored by Mattia Rizzolo's avatar Mattia Rizzolo

reproducible: normalize 'unreproducible' to 'FTBR' in computer-oriented strings

Signed-off-by: Mattia Rizzolo's avatarMattia Rizzolo <mattia@debian.org>
parent 09012516
......@@ -133,8 +133,8 @@ update_db_and_html() {
query_db "SELECT status FROM results WHERE package_id='${SRCPKGID}'")
# irc+mail notifications for changing status in unstable and experimental
if [ "$SUITE" = "unstable" ] || [ "$SUITE" = "experimental" ] ; then
if ([ "$OLD_STATUS" = "reproducible" ] && ( [ "$STATUS" = "unreproducible" ] || [ "$STATUS" = "FTBFS" ] )) || \
([ "$OLD_STATUS" = "unreproducible" ] && [ "$STATUS" = "FTBFS" ] ); then
if ([ "$OLD_STATUS" = "reproducible" ] && ( [ "$STATUS" = "FTBR" ] || [ "$STATUS" = "FTBFS" ] )) || \
([ "$OLD_STATUS" = "FTBR" ] && [ "$STATUS" = "FTBFS" ] ); then
MESSAGE="${DEBIAN_URL}/${SUITE}/${ARCH}/${SRCPACKAGE} : ${OLD_STATUS}${STATUS}"
log_info "$MESSAGE"
irc_message debian-reproducible-changes "$MESSAGE"
......@@ -302,7 +302,7 @@ handle_ftbr() {
gzip -9n $DEBIAN_BASE/dbdtxt/$SUITE/$ARCH/$DBDTXT
fi
calculate_build_duration
update_db_and_html "unreproducible"
update_db_and_html "FTBR"
}
handle_reproducible() {
......
......@@ -278,7 +278,7 @@ write_page_header() {
write_page " <a href=\"$JENKINS_URL/userContent/about.html#_reproducible_builds_jobs\">jenkins.debian.net</a>."
write_page " Thanks to <a href=\"https://www.profitbricks.co.uk\">Profitbricks</a> for donating the virtual machines this is running on!"
write_page "</ul>"
LATEST=$(query_db "SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id = s.id WHERE r.status IN ('unreproducible') AND s.suite = 'unstable' AND s.architecture = 'amd64' AND s.id NOT IN (SELECT package_id FROM notes) ORDER BY build_date DESC LIMIT 23"|sort -R|head -1)
LATEST=$(query_db "SELECT s.name FROM results AS r JOIN sources AS s ON r.package_id = s.id WHERE r.status = 'FTBR' AND s.suite = 'unstable' AND s.architecture = 'amd64' AND s.id NOT IN (SELECT package_id FROM notes) ORDER BY build_date DESC LIMIT 23"|sort -R|head -1)
write_page "<form action=\"$REPRODUCIBLE_URL/redirect\" method=\"GET\">$REPRODUCIBLE_URL/"
write_page "<input type=\"text\" name=\"SrcPkg\" placeholder=\"Type my friend..\" value=\"$LATEST\" />"
write_page "<input type=\"submit\" value=\"submit source package name\" />"
......@@ -723,10 +723,10 @@ create_png_from_table() {
COALESCE(reproducible_buster,0) AS reproducible_buster,
COALESCE(reproducible_unstable,0) AS reproducible_unstable,
COALESCE(reproducible_experimental,0) AS reproducible_experimental,
COALESCE(unreproducible_stretch,0) AS unreproducible_stretch,
COALESCE(unreproducible_buster,0) AS unreproducible_buster,
COALESCE(unreproducible_unstable,0) AS unreproducible_unstable,
COALESCE(unreproducible_experimental,0) AS unreproducible_experimental,
COALESCE(FTBR_stretch,0) AS FTBR_stretch,
COALESCE(FTBR_buster,0) AS FTBR_buster,
COALESCE(FTBR_unstable,0) AS FTBR_unstable,
COALESCE(FTBR_experimental,0) AS FTBR_experimental,
COALESCE(FTBFS_stretch,0) AS FTBFS_stretch,
COALESCE(FTBFS_buster,0) AS FTBFS_buster,
COALESCE(FTBFS_unstable,0) AS FTBFS_unstable,
......@@ -740,10 +740,10 @@ create_png_from_table() {
COALESCE((SELECT e.reproducible FROM stats_builds_per_day AS e WHERE s.datum=e.datum AND suite='buster' $WHERE_EXTRA),0) AS reproducible_buster,
COALESCE((SELECT e.reproducible FROM stats_builds_per_day AS e WHERE s.datum=e.datum AND suite='unstable' $WHERE_EXTRA),0) AS reproducible_unstable,
COALESCE((SELECT e.reproducible FROM stats_builds_per_day AS e WHERE s.datum=e.datum AND suite='experimental' $WHERE_EXTRA),0) AS reproducible_experimental,
(SELECT e.unreproducible FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='stretch' $WHERE_EXTRA) AS unreproducible_stretch,
(SELECT e.unreproducible FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='buster' $WHERE_EXTRA) AS unreproducible_buster,
(SELECT e.unreproducible FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='unstable' $WHERE_EXTRA) AS unreproducible_unstable,
(SELECT e.unreproducible FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='experimental' $WHERE_EXTRA) AS unreproducible_experimental,
(SELECT e.FTBR FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='stretch' $WHERE_EXTRA) AS FTBR_stretch,
(SELECT e.FTBR FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='buster' $WHERE_EXTRA) AS FTBR_buster,
(SELECT e.FTBR FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='unstable' $WHERE_EXTRA) AS FTBR_unstable,
(SELECT e.FTBR FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='experimental' $WHERE_EXTRA) AS FTBR_experimental,
(SELECT e.FTBFS FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='stretch' $WHERE_EXTRA) AS FTBFS_stretch,
(SELECT e.FTBFS FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='buster' $WHERE_EXTRA) AS FTBFS_buster,
(SELECT e.FTBFS FROM stats_builds_per_day e WHERE s.datum=e.datum AND suite='unstable' $WHERE_EXTRA) AS FTBFS_unstable,
......@@ -755,7 +755,7 @@ create_png_from_table() {
FROM stats_builds_per_day AS s $WHERE2_EXTRA GROUP BY s.datum) as stats
ORDER BY datum" >> ${TABLE[$1]}.csv
elif [ $1 -eq 2 ] ; then
# just make a graph of the oldest reproducible build (ignore FTBFS and unreproducible)
# just make a graph of the oldest reproducible build (ignore FTBFS and FTBR)
query_to_csv "SELECT datum, oldest_reproducible FROM ${TABLE[$1]} ${WHERE_EXTRA} ORDER BY datum" >> ${TABLE[$1]}.csv
elif [ $1 -eq 7 ] ; then
query_to_csv "SELECT datum, $SUM_DONE, $SUM_OPEN from ${TABLE[3]} ORDER BY datum" >> ${TABLE[$1]}.csv
......
......@@ -639,6 +639,16 @@ schema_updates = {
"UPDATE stats_build SET status='NFU' WHERE status='not for us'",
"INSERT INTO rb_schema (version, date) VALUES (34, CURRENT_TIMESTAMP)",
],
35: [ # rename status "unreproducible" to "FTBR"
"UPDATE results SET status='FTBR' WHERE status='unreproducible'",
"UPDATE stats_build SET status='FTBR' WHERE status='unreproducible'",
"ALTER TABLE stats_pkg_state RENAME COLUMN unreproducible to FTBR",
"ALTER TABLE stats_meta_pkg_state RENAME COLUMN unreproducible to FTBR",
"ALTER TABLE stats_builds_per_day RENAME COLUMN unreproducible to FTBR",
"ALTER TABLE stats_builds_age " + \
"RENAME COLUMN oldest_unreproducible to oldest_FTBR",
"INSERT INTO rb_schema (version, date) VALUES (35, CURRENT_TIMESTAMP)",
],
}
......
......@@ -37,7 +37,7 @@ def unrep_with_dbd_issues():
sources_without_dbd = set()
query = '''SELECT s.name, r.version, s.suite, s.architecture
FROM sources AS s JOIN results AS r ON r.package_id=s.id
WHERE r.status='unreproducible'
WHERE r.status='FTBR'
ORDER BY s.name ASC, s.suite DESC, s.architecture ASC'''
results = query_db(query)
for pkg, version, suite, arch in results:
......@@ -48,7 +48,7 @@ def unrep_with_dbd_issues():
without_dbd.append((pkg, version, suite, arch))
sources_without_dbd.add(pkg)
log.warning(suite + '/' + arch + '/' + pkg + ' (' + version + ') is '
'unreproducible without diffoscope file.')
'FTBR without diffoscope file.')
else:
log.debug(dbd + ' found.')
data = open(dbd, 'br').read(3)
......@@ -72,7 +72,7 @@ def not_unrep_with_dbd_file():
bad_pkgs = []
query = '''SELECT s.name, r.version, s.suite, s.architecture
FROM sources AS s JOIN results AS r ON r.package_id=s.id
WHERE r.status != 'unreproducible'
WHERE r.status != 'FTBR'
ORDER BY s.name ASC, s.suite DESC, s.architecture ASC'''
results = query_db(query)
for pkg, version, suite, arch in results:
......@@ -82,7 +82,7 @@ def not_unrep_with_dbd_file():
if os.access(dbd, os.R_OK):
bad_pkgs.append((pkg, version, suite, arch))
log.warning(dbd + ' exists but ' + suite + '/' + arch + '/' + pkg + ' (' + version + ')'
' is not unreproducible.')
' is not FTBR.')
return bad_pkgs
......@@ -206,7 +206,7 @@ def alien_buildinfo():
FROM sources AS s JOIN results AS r ON r.package_id=s.id
WHERE r.status != '' AND s.name='{pkg}' AND s.suite='{suite}'
AND s.architecture='{arch}'
AND r.status IN ('reproducible', 'unreproducible')
AND r.status IN ('reproducible', 'FTBR')
ORDER BY s.name ASC, s.suite DESC, s.architecture ASC'''
bad_files = []
for root, dirs, files in os.walk(BUILDINFO_PATH):
......@@ -382,10 +382,10 @@ def gen_html():
# link artifacts
html += '<br/> <a href="https://tests.reproducible-builds.org/debian/artifacts/">Artifacts diffoscope crashed</a> on are available for 48h for download.'
html += _gen_packages_html('are marked as unreproducible, but there is no ' +
html += _gen_packages_html('are marked as FTBR, but there is no ' +
'diffoscope output - so probably diffoscope ' +
'crashed:', without_dbd)
html += _gen_packages_html('are marked as unreproducible, but their ' +
html += _gen_packages_html('are marked as FTBR, but their ' +
'diffoscope output does not seem to be an html ' +
'file - so probably diffoscope ran into a ' +
'timeout:', bad_dbd)
......@@ -402,7 +402,7 @@ def gen_html():
html += _gen_files_html('history pages that should not be there and thus have been removed:',
entries=alien_history())
# diffoscope reports where they shouldn't be
html += _gen_packages_html('are not marked as unreproducible, but they ' +
html += _gen_packages_html('are not marked as FTBR, but they ' +
'have a diffoscope file:', not_unrep_with_dbd_file())
# missing files
html += _gen_packages_html('have been built but don\'t have a buildlog:',
......
This diff is collapsed.
......@@ -40,7 +40,7 @@ for suite in SUITES:
continue
query = "SELECT s.name " + \
"FROM results AS r JOIN sources AS s ON r.package_id=s.id " + \
"WHERE r.status='unreproducible' AND s.suite='{suite}'"
"WHERE r.status='FTBR' AND s.suite='{suite}'"
try:
pkgs = [x[0] for x in query_db(query.format(suite=suite))]
except IndexError:
......
......@@ -143,14 +143,14 @@ queries = {
),
"FTBR_all":
select_sources.where(
results.c.status == 'unreproducible',
results.c.status == 'FTBR',
).order_by(
desc(results.c.build_date)
),
"FTBR_last24h":
select_sources.where(
and_(
results.c.status == 'unreproducible',
results.c.status == 'FTBR',
results.c.build_date > timespan_date_map[24],
)
).order_by(
......@@ -159,7 +159,7 @@ queries = {
"FTBR_last48h":
select_sources.where(
and_(
results.c.status == 'unreproducible',
results.c.status == 'FTBR',
results.c.build_date > timespan_date_map[48],
)
).order_by(
......@@ -167,7 +167,7 @@ queries = {
),
"FTBR_all_abc":
select_sources.where(
results.c.status == 'unreproducible',
results.c.status == 'FTBR',
).order_by(
sources.c.name
),
......@@ -541,7 +541,7 @@ pages = {
'body': [
{
'icon_status': 'FTBR',
'db_status': 'unreproducible',
'db_status': 'FTBR',
'icon_link': '/index_FTBR.html',
'query': 'notes',
'nosuite': True,
......@@ -593,11 +593,11 @@ pages = {
'notes_hint': True,
'title': 'Packages without notes',
'header': '<p>There are {tot} faulty packages without notes in {suite}/{arch}.{hint}</p>',
'header_query': "SELECT COUNT(*) FROM (SELECT s.id FROM sources AS s JOIN results AS r ON r.package_id=s.id WHERE r.status IN ('unreproducible', 'FTBFS', 'blacklisted') AND s.id NOT IN (SELECT package_id FROM notes) AND s.suite='{suite}' AND s.architecture='{arch}') AS tmp",
'header_query': "SELECT COUNT(*) FROM (SELECT s.id FROM sources AS s JOIN results AS r ON r.package_id=s.id WHERE r.status IN ('FTBR', 'FTBFS', 'blacklisted') AND s.id NOT IN (SELECT package_id FROM notes) AND s.suite='{suite}' AND s.architecture='{arch}') AS tmp",
'body': [
{
'icon_status': 'FTBR',
'db_status': 'unreproducible',
'db_status': 'FTBR',
'icon_link': '/index_FTBR.html',
'query': 'no_notes',
'text': Template('$tot unreproducible packages in $suite/$arch, ordered by build date:')
......@@ -628,7 +628,7 @@ pages = {
'body': [
{
'icon_status': 'FTBR',
'db_status': 'unreproducible',
'db_status': 'FTBR',
'icon_link': '/index_FTBR.html',
'query': 'notification',
'text': Template('$tot unreproducible packages in $suite/$arch:'),
......
......@@ -49,7 +49,7 @@ def generate_schedule(arch):
func.coalesce(func.avg(cast(stats_build.c.build_duration, Integer)), 0)
]).where(
and_(
stats_build.c.status.in_(('reproducible', 'unreproducible')),
stats_build.c.status.in_(('reproducible', 'FTBR')),
stats_build.c.name == sources.c.name,
stats_build.c.suite == sources.c.suite,
stats_build.c.architecture == sources.c.architecture,
......@@ -108,7 +108,7 @@ def generate_live_status_table(arch):
func.coalesce(func.avg(cast(stats_build.c.build_duration, Integer)), 0)
]).where(
and_(
stats_build.c.status.in_(('reproducible', 'unreproducible')),
stats_build.c.status.in_(('reproducible', 'FTBR')),
stats_build.c.name == sources.c.name,
stats_build.c.suite == sources.c.suite,
stats_build.c.architecture == sources.c.architecture,
......
......@@ -188,7 +188,7 @@ def load_notes():
"FROM results AS r JOIN sources AS s ON r.package_id=s.id " + \
"WHERE s.name='{pkg}' AND r.status != ''"
query = query.format(pkg=package)
result = query_db(query)[0]
query_db(query)[0] # just discard this result, we only care of its success
except IndexError:
log.warning("This query produces no results: " + query)
log.warning("This means there is no tested package with the name " + package + ".")
......@@ -314,7 +314,7 @@ def gen_html_issue(issue, suite):
)
try:
arch = 'amd64'
for status in ['unreproducible', 'FTBFS', 'NFU', 'blacklisted', 'reproducible', 'depwait']:
for status in ['FTBR', 'FTBFS', 'NFU', 'blacklisted', 'reproducible', 'depwait']:
pkgs = query_db(sql.where(sources.c.name.in_(issues_count[issue]))\
.params({'suite': suite, 'arch': arch, 'status': status}))
pkgs = [p[0] for p in pkgs]
......@@ -327,8 +327,8 @@ def gen_html_issue(issue, suite):
affected += tab*5 + '<code>\n'
pkgs_popcon = issues_popcon_annotate(pkgs)
try:
for pkg, popcon, is_popular in sorted(pkgs_popcon, key=lambda x: x[0] in bugs):
affected += tab*6 + Package(pkg).html_link(suite, arch, bugs, popcon, is_popular)
for pkg, popc_num, is_popular in sorted(pkgs_popcon, key=lambda x: x[0] in bugs):
affected += tab*6 + Package(pkg).html_link(suite, arch, bugs, popc_num, is_popular)
except ValueError:
pass
affected += tab*5 + '</code>\n'
......
......@@ -112,7 +112,7 @@ def get_and_clean_dbd_links(package, eversion, suite, arch, status):
'dbd_uri': links['dbd_uri'],
}
else:
if status == 'unreproducible' and not args.ignore_missing_files:
if status == 'FTBR' and not args.ignore_missing_files:
log.critical(DISTRO_URL + '/' + suite + '/' + arch + '/' + package +
' is unreproducible, but without diffoscope output.')
# if there are no diffoscope results, we want to remove the old package
......
......@@ -83,7 +83,7 @@ def gather_meta_stats(suite, arch, pkgset_name):
stats['good'] = [t[0] for t in good]
stats['count_good'] = len(stats['good'])
bad = query_db(root_query + "AND r.status = 'unreproducible'" +
bad = query_db(root_query + "AND r.status = 'FTBR'" +
"ORDER BY r.build_date;")
stats['bad'] = [t[0] for t in bad]
stats['count_bad'] = len(stats['bad'])
......@@ -94,7 +94,7 @@ def gather_meta_stats(suite, arch, pkgset_name):
stats['count_ugly'] = len(stats['ugly'])
rest = query_db(root_query + "AND (r.status != 'FTBFS' AND " +
"r.status != 'unreproducible' AND " +
"r.status != 'FTBR' AND " +
"r.status != 'reproducible') ORDER BY r.build_date;")
stats['rest'] = [t[0] for t in rest]
stats['count_rest'] = len(stats['rest'])
......@@ -234,7 +234,7 @@ def create_pkgset_page_and_graphs(suite, arch, stats, pkgset_name):
pkgset_context['status_details'] = []
status_cutename_descriptions = [
('unreproducible', 'bad', 'failed to build reproducibly'),
('FTBR', 'bad', 'failed to build reproducibly'),
('FTBFS', 'ugly', 'failed to build from source'),
('rest', 'rest',
'are either in depwait state, blacklisted, not for us, or cannot be downloaded'),
......@@ -259,7 +259,7 @@ def create_pkgset_page_and_graphs(suite, arch, stats, pkgset_name):
'status_percent': stats["percent_" + cutename],
}
if (status in ('reproducible', 'unreproducible') or
if (status in ('reproducible', 'FTBR') or
stats["count_" + cutename] != 0):
pkgset_context['status_details'].append(details_context)
......@@ -284,7 +284,7 @@ def create_pkgset_page_and_graphs(suite, arch, stats, pkgset_name):
def create_pkgset_graph(png_file, suite, arch, pkgset_name):
table = "stats_meta_pkg_state"
columns = ["datum", "reproducible", "unreproducible", "FTBFS", "other"]
columns = ["datum", "reproducible", "FTBR", "FTBFS", "other"]
where = "WHERE suite = '%s' AND architecture = '%s' AND meta_pkg = '%s'" % \
(suite, arch, pkgset_name)
if arch == 'i386':
......
......@@ -88,8 +88,8 @@ for row in result:
else:
if 'FTBFS' in [status1, status2]:
newstatus = 'FTBFS'
elif 'unreproducible' in [status1, status2]:
newstatus = 'unreproducible'
elif 'FTBR' in [status1, status2]:
newstatus = 'FTBR'
elif 'reproducible' in [status1, status2]:
newstatus = 'reproducible'
else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment