[Libreoffice-commits] dev-tools.git: 2 commits - esc-reporting/esc-analyze.py esc-reporting/esc-report.py scripts/Bugzilla.pm scripts/build-portal.pl scripts/esc-bug-stats.pl

jan Iversen jani at libreoffice.org
Thu Apr 27 12:26:22 UTC 2017


 esc-reporting/esc-analyze.py |    2 
 esc-reporting/esc-report.py  |  331 +++++++--------------------------
 scripts/Bugzilla.pm          |  156 ---------------
 scripts/build-portal.pl      |   65 ------
 scripts/esc-bug-stats.pl     |  420 -------------------------------------------
 5 files changed, 80 insertions(+), 894 deletions(-)

New commits:
commit 130167c4d178b01a86ca5059830d4e5d0868a7e1
Author: jan Iversen <jani at libreoffice.org>
Date:   Thu Apr 27 14:25:55 2017 +0200

    axed ESC script after agreement with mmeeks

diff --git a/scripts/Bugzilla.pm b/scripts/Bugzilla.pm
deleted file mode 100644
index 6d84135..0000000
--- a/scripts/Bugzilla.pm
+++ /dev/null
@@ -1,156 +0,0 @@
-package Bugzilla;
-
-use strict;
-use warnings;
-use URI::Escape qw(uri_escape);
-
-our ($bugserver);
-our @EXPORT_OK = qw(bugserver get_url get_deps get_query read_bugstats);
-
-# Please take the time to check that the script still runs
-# before changing this to something else.
-$bugserver = "bugs.documentfoundation.org";
-
-# use me for testing XML pretty printing etc.
-my $fast_debug = 0;
-
-sub get_url($)
-{
-    my $url = shift;
-    my @lines;
-    my $handle;
-    open ($handle, "curl -A 'Mozilla/4.0' -k -s '$url' 2>&1 |") || die "can't exec curl: $!";
-    while (<$handle>) {
-	push @lines, $_;
-    }
-    close ($handle);
-    return @lines;
-}
-
-sub get_deps($)
-{
-    my ($url) = @_;
-
-    return 42 if ($fast_debug);
-
-    my @bugs = get_url($url);
-
-    my $bug_count = -1;
-    while (my $line = shift (@bugs)) {
-	if ($line =~ m/does not depend on any open bugs/) {
-	    $bug_count = 0;
-	    last;
-	}
-	elsif ($line =~ m/^\s*depends on\s*$/) {
-	    $line = shift @bugs;
-#	    print STDERR "Have depends on '$line'\n";
-	    if ($line =~ m/^\s*(\d+)\s*$/) {
-		my $num = $1;
-		$line = shift @bugs;
-		$line = shift @bugs;
-		if ($line =~ m/bugs:/) {
-		    $bug_count = $num;
-		    last;
-		}
-	    } elsif ($line =~ m/\s+one\s+/) { # special case for one
-		$bug_count = 1;
-		last;
-	    } else {
-		print STDERR "odd depends on follow-on: '$line'\n";
-	    }
-	}
-    }
-    return $bug_count;
-}
-
-sub get_query($)
-{
-    my ($url) = @_;
-
-    return 6 if ($fast_debug);
-
-    my @bugs = get_url($url);
-
-    my $bug_count = -1;
-    while (my $line = shift (@bugs)) {
-	if ($line =~ m/<span class="bz_result_count">(\d+) bugs found./) {
-	    $bug_count = $1;
-	    last;
-	} elsif ($line =~ m/One bug found./) {
-	    $bug_count = 1;
-	    last;
-	} elsif ($line =~ m/Zarro Boogs found./) {
-	    $bug_count = 0;
-	    last;
-	}
-    }
-    return $bug_count;
-}
-
-sub extract_number($)
-{
-    my $line = shift;
-    chomp ($line);
-    $line =~ s/^.*\"\>//;
-    $line =~ s/<.*$//;
-    return $line;
-}
-
-sub read_bugstats($)
-{
-    my @lines = get_url(shift);
-
-    my $debug = 0;
-
-    my $region = 'header';
-    my $closer_name;
-    my %closed_stats;
-    my $delta = 0;
-
-    while ((my $line = shift @lines) && $region ne 'end') {
-	print STDERR "$region -> $line\n" if ($debug);
-	if ($region eq 'header' && $line =~ /<h2>Top .* modules<\/h2>/) {
-	    $region = 'top-modules';
-
-	} elsif ($region eq 'top-modules' &&
-		 $line =~ /<td>LibreOffice<\/td>/) {
-	    my ($total, $opened, $closed);
-	    $total = extract_number (shift @lines);
-	    $opened = extract_number (shift @lines);
-	    $closed = extract_number (shift @lines);
-	    my $sign = '', $delta = $opened + $closed;
-	    $sign = '+' if ($delta > 0);
-	    print STDERR "    $opened    $closed	($sign$delta overall)\n";
-	    $region = 'seek-end-top-modules';
-
-	} elsif ($region eq 'seek-end-top-modules' &&
-		 $line =~ /<h2>Top .* bug closers<\/h2>/) {
-	    $region = 'top-closers';
-
-	} elsif ($region eq 'top-closers' && $line =~ m/<tr class/) {
-	    undef $closer_name;
-	    $region = 'top-closer-name';
-
-	} elsif (($region eq 'top-closers' || $region eq 'top-closer-name') &&
-		 ($line =~ m/<\/table>/ || $line =~ m/Top .* bug reporters/)) {
-	    $region = 'end';
-
-	} elsif ($region eq 'top-closer-name' && $line =~ m/<span class=".*">(.*)<\/span>/) {
-	    $closer_name = $1;
-	    print STDERR "$closer_name\n" if ($debug);
-	    $region = 'top-closer-count';
-
-	} elsif ($region eq 'top-closer-count' && $line =~ m/">([0-9]+)<\/a><\/td>/) {
-	    die "no closer name for '$line'" if (!defined $closer_name);
-	    $closed_stats{$closer_name} = $1;
-	    print STDERR "\tRecord: $closer_name -> $1\n" if ($debug);
-	    $region = 'top-closers'
-	}
-    }
-
-    $region eq 'end' || die "Failed to parse weekly bug summary - in region '$region'";
-
-    return \%closed_stats;
-}
-
-1;
diff --git a/scripts/build-portal.pl b/scripts/build-portal.pl
deleted file mode 100755
index 2e8edcc..0000000
--- a/scripts/build-portal.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/perl -w
-
-use FindBin;
-use lib "$FindBin::Bin";
-
-use strict;
-use Bugzilla;
-
-my $git_dir = '/opt/libreoffice/push-tree';
-
-# FIXME: add a re-build-section thing ...
-# German comments: overall stats ... smallest <N> modules ...
-# a bit of text on how to fix that etc.
-
-sub usage()
-{
-    print "build-portal.pl [--help] [--git path/to/git/repo]\n";
-    exit 1;
-}
-
-sub read_dialogs($)
-{
-    my $dialogs = shift;
-
-    my $pipe;
-    open ($pipe, "(cd $git_dir ; bin/count-todo-dialogs)|") || die "can't count dialogs: $!";
-    while (<$pipe>) {
-	my $line = $_;
-	if (m/(\d+) \.ui files currently/) {
-	    $dialogs->{ui_files} = $1;
-	} elsif (m/There are (\d+) unconverted dialogs/) {
-	    $dialogs->{ui_dialogs} = $1;
-	} elsif (m/There are (\d+) unconverted tabpages/) {
-	    $dialogs->{ui_tabpages} = $1;
-	}
-    }
-    close ($pipe);
-}
-
-while (my $arg = shift(@ARGV)) {
-    usage() if ($arg eq '--help' || $arg eq '-h');
-}
-
-my %dialogs;
-
-read_dialogs(\%dialogs);
-
-print << "EOF"
-<html>
-<header>
-LibreOffice Development Portal
-</header>
-<body>
-    <div>
-    <p><strong>UI dialogs</strong</p>
-    <p>$dialogs{ui_files} UI files</p>
-    <p>$dialogs{ui_dialogs} dialogs left</p>
-    <p>$dialogs{ui_tabpages} tab-pages left</p>
-    <a href="FIXME: Caolan's write-up">Get Involved</a>
-    </div>
-</body>
-</html>
-EOF
-    ;
-
diff --git a/scripts/esc-bug-stats.pl b/scripts/esc-bug-stats.pl
deleted file mode 100755
index 24f7d3f..0000000
--- a/scripts/esc-bug-stats.pl
+++ /dev/null
@@ -1,420 +0,0 @@
-#!/usr/bin/perl -w
-
-use FindBin;
-use lib "$FindBin::Bin";
-
-use strict;
-use warnings;
-use Bugzilla;
-
-my @time = localtime;
-$time[5] += 1900;
-$time[4]++;
-
-my $date_value = sprintf "%04d-%02d-%02d", @time[5,4,3];
-
-my %obsolete_components = ( 'Migration' => 1 );
-
-sub build_overall_bugstats()
-{
-    print STDERR "Querying overall / top bug stats\n";
-    my $bugserver = $Bugzilla::bugserver;
-    my $url = "https://$bugserver/page.cgi?id=weekly-bug-summary.html";
-
-    print STDERR "  + $url\n";
-    my $closed_stats = Bugzilla::read_bugstats($url);
-
-    print STDERR "    many thanks to the top bug squashers:\n";
-    for my $name (sort { $closed_stats->{$b} <=> $closed_stats->{$a} } keys %{$closed_stats}) {
-	printf STDERR "        %-22s%2s\n", $name, $closed_stats->{$name};
-    }
-}
-
-sub print_component_counts($$$)
-{
-    my ($title, $link, $component_count) = @_;
-
-    print STDERR "\t* ~Component   count net * $title\n";
-    for my $component (sort { $component_count->{$b} <=> $component_count->{$a} } keys %{$component_count}) {
-	my $count = $component_count->{$component};
-	die "Error on $component - $count" if ($count < 0);
-	if (!defined $obsolete_components{$component} && $count > 0) {
-	    printf STDERR "\t  %23s - %2d (+?)\n", $component, $count;
-	}
-    }
-    print STDERR "\t\t+ $link\n";
-    printf STDERR "\n";
-}
-
-my %ver_open;
-my %ver_total;
-
-build_overall_bugstats();
-
-my %rseries =
-    ( '5.3' => '5.3',
-      '5.2' => '5.2',
-      '5.1' => '5.1',
-      '5.0' => '5.0',
-      '4.5' => '5.0', # urgh
-      '4.4' => '4.4',
-      '4.3' => '4.3',
-      '4.2' => '4.2',
-      '4.1' => '4.1',
-      '4.0' => '4.0',
-      '3.6' => 'old',
-      '3.5' => 'old',
-      '3.4' => 'old',
-      '3.3' => 'old',
-      'Inherited from OOo' => 'old',
-      'PreBibisect' => 'old',
-      'unspecified' => 'old'
-);
-
-print STDERR "Querying for open, highest-Priority bugs (aka \"MABs\"):\n";
-for my $rs (keys %rseries) {
-    my $highest = "https://$Bugzilla::bugserver/buglist.cgi?f1=version&o1=regexp&priority=highest&product=LibreOffice&v1=^" . $rs . ".*";
-
-    my $all = Bugzilla::get_query($highest);
-    my $open = Bugzilla::get_query($highest . "&resolution=---");
-
-    my $bucket = $rseries{$rs};
-    $ver_open{$bucket} += $open;
-    $ver_total{$bucket} += $all;
-}
-
-for my $bucket (sort { $b cmp $a } keys %ver_open) {
-    my $open = $ver_open{$bucket};
-    my $all = $ver_total{$bucket};
-    my $percent = sprintf("%2d", $all ? (($open * 100.0) / $all) : 0);
-    print STDERR "        $bucket: $open/$all - $percent%\n";
-}
-
-print STDERR "Querying for bisection:\n";
-my $bisect_query = "https://$Bugzilla::bugserver/buglist.cgi?keywords=bisected%2C&keywords_type=allwords&limit=0&order=tag DESC%2Cchangeddate DESC%2Cversion DESC%2Cpriority%2Cbug_severity&product=LibreOffice&query_format=advanced";
-my $bisect_open_query = "https://$Bugzilla::bugserver/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&keywords=bisected%2C&keywords_type=allwords&product=LibreOffice&query_format=advanced&resolution=---";
-
-my ($all, $open);
-$all = Bugzilla::get_query($bisect_query);
-$open = Bugzilla::get_query($bisect_open_query);
-print STDERR "\n";
-print STDERR "* bisected bugs open: keyword 'bisected'\n";
-print STDERR "\t+ more accurate - down to a single commit.\n";
-print STDERR "\t+ $open (of $all) older ?\n";
-print STDERR "\t\t+ https://bugs.documentfoundation.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&keywords=bisected%2C&keywords_type=allwords&query_format=advanced&resolution=---\n";
-print STDERR "\n";
-
-print STDERR "Querying for bibisection:\n";
-my $bibisect_query = "https://$Bugzilla::bugserver/buglist.cgi?f2=status_whiteboard&f3=OP&f4=keywords&f5=status_whiteboard&j3=OR&known_name=BibisectedAll&limit=0&list_id=579989&n2=1&o1=substring&o2=substring&o4=substring&o5=substring&order=changeddate DESC%2Cop_sys%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=LibreOffice&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=MOVED&resolution=NOTABUG&resolution=NOTOURBUG&v1=bibisected&v2=bibisected35older&v4=bibisected&v5=bibisected";
-my $bibisect_open_query = "https://$Bugzilla::bugserver/buglist.cgi?f2=status_whiteboard&f3=OP&f4=keywords&f5=status_whiteboard&j3=OR&known_name=Bibisected&list_id=579994&n2=1&o1=substring&o2=substring&o4=substring&o5=substring&product=LibreOffice&query_based_on=Bibisected&query_format=advanced&resolution=---&v1=bibisected&v2=bibisected35older&v4=bibisected&v5=bibisected";
-
-my ($all, $open);
-$all = Bugzilla::get_query($bibisect_query);
-$open = Bugzilla::get_query($bibisect_open_query);
-print STDERR "\n";
-print STDERR "* Bibisected bugs open: keyword 'bibisected'\n";
-print STDERR "\t+ $open (of $all) older ?\n";
-print STDERR "\t\t+ https://bugs.documentfoundation.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&f1=keywords&known_name=LibreOffice%20Bi-bisected&o1=substring&product=LibreOffice&query_based_on=LibreOffice%20Bi-bisected&query_format=advanced&resolution=---&v1=bibisected\n";
-print STDERR "\n";
-
-
-my ($reg_all, $reg_open, $reg_high);
-
-print STDERR "Querying for regressions:\n";
-my $high_fragment = "bug_severity=blocker&bug_severity=critical";
-my $regression_query="https://$Bugzilla::bugserver/buglist.cgi?columnlist=bug_severity%2Cpriority%2Ccomponent%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc&keywords=regression%2C%20&keywords_type=allwords&list_id=267671&product=LibreOffice&query_format=advanced&order=bug_id&limit=0";
-my $regression_open_query="https://$Bugzilla::bugserver/buglist.cgi?keywords=regression%2C%20&keywords_type=allwords&list_id=267687&columnlist=bug_severity%2Cpriority%2Ccomponent%2Cop_sys%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc&resolution=---&query_based_on=Regressions&query_format=advanced&product=LibreOffice&known_name=Regressions&limit=0";
-my $regression_high_query= "$regression_open_query&$high_fragment&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED";
-
-$reg_all = Bugzilla::get_query($regression_query);
-$reg_open = Bugzilla::get_query($regression_open_query);
-$reg_high = Bugzilla::get_query($regression_high_query);
-
-print STDERR "* all bugs tagged with 'regression'\n";
-print STDERR "\t+ $reg_open(+?) bugs open of $reg_all(+?) total $reg_high high prio.\n";
-print STDERR "\n";
-
-my %component_count;
-my %high_component_count;
-
-# custom pieces
-$component_count{'Migration'} = 0; # aBugzilla::get_deps("https://$Bugzilla::bugserver/showdependencytree.cgi?id=43489&hide_resolved=1"); - kill for now.
-$component_count{'Crashes'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?keywords=regression&keywords_type=allwords&list_id=296015&short_desc=crash&query_based_on=CrashRegressions&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&short_desc_type=allwordssubstr&product=LibreOffice&known_name=CrashRegressions");
-$component_count{'Borders'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?keywords=regression&keywords_type=allwords&list_id=296016&short_desc=border&query_based_on=BorderRegressions&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&short_desc_type=allwordssubstr&product=LibreOffice&known_name=BorderRegressions");
-$component_count{'Writer: docx filter'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=Writer&keywords=regression%2C filter%3Adocx%2C &keywords_type=allwords&product=LibreOffice&query_format=advanced");
-$component_count{'Writer: doc filter'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=Writer&keywords=regression%2C filter%3Adoc%2C &keywords_type=allwords&product=LibreOffice&query_format=advanced");
-$component_count{'Writer: other filter'} = Bugzilla::get_query("https://$Bugzilla::bugserver//buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=Writer&f1=keywords&f2=keywords&keywords=regression%2C&keywords_type=allwords&o1=nowords&o2=substring&product=LibreOffice&query_format=advanced&v1=filter%3Adocx%2C filter%3Adoc&v2=filter%3A");
-$component_count{'Writer: perf'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=Writer&keywords=regression%2C perf%2C &keywords_type=allwords&product=LibreOffice&query_format=advanced");
-$component_count{'Writer: other'} = Bugzilla::get_query("https://$Bugzilla::bugserver/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=Writer&f1=keywords&keywords=regression%2C&keywords_type=allwords&o1=nowordssubstr&product=LibreOffice&query_format=advanced&v1=filter%3A%2C perf");
-
-
-my @reg_toquery = ( 'Calc', 'Impress', 'Base', 'Draw', 'LibreOffice', 'Writer', 'BASIC', 'Chart', 'Extensions', 'Formula Editor', 'Impress Remote', 'Installation', 'Linguistic', 'Printing and PDF export', 'UI', 'filters and storage', 'framework', 'graphics stack', 'sdk' );
-for my $component (@reg_toquery) {
-    my $component_uri = Bugzilla::uri_escape($component);
-    my $query_url = "https://$Bugzilla::bugserver/buglist.cgi?keywords=regression&keywords_type=allwords&list_id=296025&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=PLEASETEST&component=$component_uri&product=LibreOffice";
-    $component_count{$component} = Bugzilla::get_query("$query_url");
-    $high_component_count{$component} = Bugzilla::get_query("$query_url&$high_fragment");
-}
-
-print_component_counts("high severity regressions", "http://bit.ly/1HWHb3E", \%high_component_count);
-print_component_counts("all regressions", "http://bit.ly/1BUdI8i", \%component_count);
-
-print << "EOF"
-<?xml version="1.0" encoding="UTF-8"?>
-<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
-                 xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
-                 xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
-                 xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
-                 xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
-                 xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
-                 xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
-                 xmlns:xlink="http://www.w3.org/1999/xlink"
-                 xmlns:dc="http://purl.org/dc/elements/1.1/"
-                 xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
-                 xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
-                 xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
-                 xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
-                 xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
-                 xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
-                 xmlns:math="http://www.w3.org/1998/Math/MathML"
-                 xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
-                 xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
-                 xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
-                 xmlns:ooo="http://openoffice.org/2004/office"
-                 xmlns:ooow="http://openoffice.org/2004/writer"
-                 xmlns:oooc="http://openoffice.org/2004/calc"
-                 xmlns:dom="http://www.w3.org/2001/xml-events"
-                 xmlns:xforms="http://www.w3.org/2002/xforms"
-                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                 xmlns:rpt="http://openoffice.org/2005/report"
-                 xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
-                 xmlns:xhtml="http://www.w3.org/1999/xhtml"
-                 xmlns:grddl="http://www.w3.org/2003/g/data-view#"
-                 xmlns:tableooo="http://openoffice.org/2009/table"
-                 xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
-                 xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
-                 xmlns:css3t="http://www.w3.org/TR/css3-text/"
-                 office:version="1.2"
-                 grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"
-                 office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
-   <office:styles>
-      <style:style style:name="boldheader" style:family="table-cell" style:parent-style-name="Default">
-         <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>
-      </style:style>
-  <number:date-style style:name="isodatenum">
-   <number:year number:style="long"/>
-   <number:text>-</number:text>
-   <number:month number:style="long"/>
-   <number:text>-</number:text>
-   <number:day number:style="long"/>
-  </number:date-style>
-  <style:style style:name="isodate" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="isodatenum">
-   <style:text-properties style:text-position=""/>
-  </style:style>
-
-   </office:styles>
-   <office:body>
-      <office:spreadsheet>
-         <table:table table:name="Data">
-
-    <table:table-row table:style-name="ro2">
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Date</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open Old</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed Old</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 4.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 4.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 4.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 4.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 4.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 4.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 4.3</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 4.3</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 4.4</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 4.4</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 5.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 5.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 5.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 5.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Open 5.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Closed 5.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total Old</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 4.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 4.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 4.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 4.3</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 4.4</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 5.0</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 5.1</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total 5.2</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total Open</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="string" calcext:value-type="string">
-      <text:p>Total Closed</text:p>
-     </table:table-cell>
-     <table:table-cell table:number-columns-repeated="11"/>
-    </table:table-row>
-
-    <table:table-row table:style-name="ro1">
-     <table:table-cell table:style-name="isodate" office:value-type="date" office:date-value="$date_value" calcext:value-type="date">
-      <text:p>$date_value</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'old'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.T2]-[.B2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'4.0'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.U2]-[.D2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'4.1'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.V2]-[.F2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'4.2'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.W2]-[.H2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'4.3'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.X2]-[.J2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'4.4'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.Y2]-[.L2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'5.0'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.Z2]-[.N2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'5.1'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.AA2]-[.P2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_open{'5.2'}" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.AB2]-[.R2]" office:value-type="float"  calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'old'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'4.0'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'4.1'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'4.2'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'4.3'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'4.4'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'5.0'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'5.1'}" calcext:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$ver_total{'5.2'}" calcext:value-type="float"/>
-     <table:table-cell table:style-name="ce3" table:formula="of:=[.B2]+[.D2]+[.F2]+[.H2]+[.J2]+[.L2]+[.N2]+[.P2]+[.R2]" office:value-type="float"/>
-     <table:table-cell table:style-name="ce3" table:formula="of:=SUM([.T2:.Z2])-[.AC2]" office:value-type="float"/>
-    </table:table-row>
-    <table:table-row/>
-    <table:table-row>
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>Date</text:p>
-     </table:table-cell>
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>Open</text:p>
-     </table:table-cell>
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>Closed</text:p>
-     </table:table-cell>
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>Total</text:p>
-     </table:table-cell>
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>Date</text:p>
-     </table:table-cell>
-EOF
-;
-
-my @output_order = ( 'Calc', 'Impress', 'Base', 'Draw',
-		     'LibreOffice', 'Borders', 'Crashes', 'BASIC', 'Writer/RTF',
-		     'Writer', 'Migration',
-		     'Chart', 'Extensions', 'Formula Editor', 'Impress Remote',
-		     'Installation', 'Linguistic', 'Printing and PDF export', 'UI',
-		     'filters and storage', 'framework', 'graphics stack', 'sdk' );
-
-for my $foo (@output_order) {
-    print << "EOF"
-     <table:table-cell table:style-name="boldheader" office:value-type="string" calcext:value-type="string">
-      <text:p>$foo</text:p>
-     </table:table-cell>
-EOF
-;
-}
-
-print << "EOF"
-    </table:table-row>
-    <table:table-row>
-EOF
-;
-
-print << "EOF"
-     <table:table-cell table:style-name="isodate" office:value-type="date" office:date-value="$date_value" calcext:value-type="date">
-      <text:p>$date_value</text:p>
-     </table:table-cell>
-     <table:table-cell office:value-type="float" office:value="$reg_open" calcext:value-type="float"/>
-     <table:table-cell table:formula="of:=[.D5]-[.B5]" office:value-type="float"/>
-     <table:table-cell office:value-type="float" office:value="$reg_all" calcext:value-type="float"/>
-     <table:table-cell table:style-name="isodate" table:formula="of:=[.A5]" office:value-type="date" />
-EOF
-;
-
-for my $foo (@output_order) {
-    if (defined $component_count{$foo}) {
-	print << "EOF"
-	    <table:table-cell office:value-type="float" office:value="$component_count{$foo}" calcext:value-type="float"/>
-EOF
-;
-	} else {
-	    print "<table:table-cell/>\n";
-	}
-}
-
-print << "EOF"
-    </table:table-row>
-   </table:table>
-  </office:spreadsheet>
- </office:body>
-</office:document>
-EOF
-;
commit 95f34c04b07a4a099867db650624822cec627708
Author: jan Iversen <jani at libreoffice.org>
Date:   Thu Apr 27 14:12:44 2017 +0200

    add bug-metrics

diff --git a/esc-reporting/esc-analyze.py b/esc-reporting/esc-analyze.py
index 23d9d1a..da7250d 100755
--- a/esc-reporting/esc-analyze.py
+++ b/esc-reporting/esc-analyze.py
@@ -531,7 +531,9 @@ def analyze_esc():
     statList['data']['esc']['regression'] = {}
     statList['data']['esc']['regression']['high'] = bugzillaESCData['ESC_REGRESSION_UPDATE']['high']
     statList['data']['esc']['regression']['open'] = bugzillaESCData['ESC_REGRESSION_UPDATE']['open']
+    statList['data']['esc']['regression']['open-1'] = weekList['data']['esc']['regression']['open']
     statList['data']['esc']['regression']['total'] = bugzillaESCData['ESC_REGRESSION_UPDATE']['total']
+    statList['data']['esc']['regression']['total-1'] = weekList['data']['esc']['regression']['total']
 
     statList['data']['esc']['component'] = {}
     statList['data']['esc']['component']['high'] = {}
diff --git a/esc-reporting/esc-report.py b/esc-reporting/esc-report.py
index 9f0fe7b..a1462fc 100755
--- a/esc-reporting/esc-report.py
+++ b/esc-reporting/esc-report.py
@@ -455,14 +455,14 @@ def report_esc_prototype():
 
 
 
-
-
-def gen_rowHighPriority(row):
+def gen_rowHighPriority():
     global statList
 
-    text1 = ''
-    text2 = ''
-    for i in ['old', '4.0', '4.1', '4.2', '4.3', '4.4', '5.0', '5.1' '5.2' '5.3' '5.4' '5.5']:
+    txt1 = ''
+    txt2 = ''
+    vSumOpen = 0
+    vSumTotal = 0
+    for i in ['old', '4.0', '4.1', '4.2', '4.3', '4.4', '5.0', '5.1', '5.2', '5.3', '5.4', '5.5']:
         if i in statList['data']['esc']['MAB']:
             vOpen = statList['data']['esc']['MAB'][i]['open']
             vTotal = statList['data']['esc']['MAB'][i]['total']
@@ -470,22 +470,83 @@ def gen_rowHighPriority(row):
             vOpen = 0
             vTotal = 0
         vClosed = vTotal - vOpen
+        vSumOpen += vOpen
+        vSumTotal += vTotal
 
-        text1 += '<table:table-cell office:value-type="float" office:value="{vOpen}" calcext:value-type="float">' \
-                 '<text:p>{vOpen}</text:p></table:table-cell>' \
-                 '<table:table-cell office:value-type="float" office:value="{vClosed}" calcext:value-type="float">' \
-                 '<text:p>{vClosed}</text:p></table:table-cell>'
+        txt1 += '<table:table-cell office:value-type="float" office:value="{xOpen}" calcext:value-type="float">' \
+                '<text:p>{xOpen}</text:p></table:table-cell>' \
+                '<table:table-cell office:value-type="float" office:value="{xClosed}" calcext:value-type="float">' \
+                '<text:p>{xClosed}</text:p></table:table-cell>\n'.format(xOpen=vOpen, xClosed=vClosed)
+        txt2 += '<table:table-cell office:value-type="float" office:value="{xTotal}" calcext:value-type="float">' \
+                '<text:p>{xTotal}</text:p></table:table-cell>\n'.format(xTotal=vTotal)
 
+    vSumTotal -= vSumOpen
     text = '<table:table-row table:style-name="ro2">' \
            '<table:table-cell table:style-name="isodate" office:value-type="date" ' \
-                'office:date-value="{vDate}" calcext:value-type="date">' \
-                '<text:p>{vDate}</text:p></table:table-cell>\n'.format(
-                   vDate  = statList['addDate'])
-
+                'office:date-value="{xDate}" calcext:value-type="date">' \
+                '<text:p>{xDate}</text:p></table:table-cell>\n'.format(xDate=statList['addDate']) + txt1 + txt2
+    text += '<table:table-cell office:value-type="float" office:value="{xSumOpen}" calcext:value-type="float">' \
+                '<text:p>{xSumOpen}</text:p></table:table-cell>\n' \
+            '<table:table-cell office:value-type="float" office:value="{xSumClosed}" calcext:value-type="float">' \
+            '<text:p>{xSumClosed}</text:p></table:table-cell>\n' \
+            '</table:table-row>\n'.format(xSumOpen=vSumOpen, xSumClosed=vSumTotal)
     return text
 
 
 
+def gen_rowRegression(useHigh=False):
+    global statList
+
+    textDate = '<table:table-cell office:value-type="date" office:date-value="{xD}" calcext:value-type="date">\n' \
+               '<text:p>{xD}</text:p></table:table-cell>\n'.format(xD=statList['addDate'])
+
+    text = '<table:table-row table:style-name="ro2">\n' + textDate
+
+    if not useHigh:
+        vType = 'all'
+        vOpen = statList['data']['esc']['regression']['open']
+        vTotal = statList['data']['esc']['regression']['total']
+        vClosed = vTotal - vOpen
+        vDiffO = vOpen - statList['data']['esc']['regression']['open-1']
+        vDiffT = vTotal - statList['data']['esc']['regression']['total-1']
+        vDelta = vDiffT - vDiffO
+        text += '<table:table-cell office:value-type="float" office:value="{xO}" calcext:value-type="float">\n' \
+                '<text:p>{xO}</text:p></table:table-cell>\n' \
+                '<table:table-cell office:value-type="float" office:value="{xC}" calcext:value-type="float">\n' \
+                '<text:p>{xC}</text:p></table:table-cell>\n' \
+                '<table:table-cell office:value-type="float" office:value="{xT}" calcext:value-type="float">\n' \
+                '<text:p>{xT}</text:p></table:table-cell>\n'.format(xO=vOpen,xC=vClosed,xT=vTotal) + textDate
+        endText = textDate + \
+                  '<table:table-cell office:value-type="float" office:value="{xDO}" calcext:value-type="float">\n' \
+                  '<text:p>{xDO}</text:p></table:table-cell>\n' \
+                  '<table:table-cell office:value-type="float" office:value="{xDT}" calcext:value-type="float">\n' \
+                  '<text:p>{xDT}</text:p></table:table-cell>\n' \
+                  '<table:table-cell office:value-type="float" office:value="{xDD}" calcext:value-type="float">\n' \
+                  '<text:p>{xDD}</text:p></table:table-cell>\n' \
+                  '<table:table-cell table:number-columns-repeated="24"/>\n'.format(xDO=vDiffO, xDT=vDiffT, xDD=vDelta)
+    else:
+        vType = 'high'
+        endText = ''
+
+    buildText = ''
+    for id in ['Calc', 'Impress', 'Base', 'Draw', 'LibreOffice', 'Borders', 'Crashes',
+               'BASIC', 'Writer/RTF', 'Writer', '', 'Chart', 'Extensions', 'Formula Editor',
+               'Impress Remote', 'Installation', 'Linguistic', 'Printing and PDF export',
+               'UI', 'filters and storage', 'framework', 'graphics stack', 'sdk']:
+        if id is '' or id not in statList['data']['esc']['component'][vType]:
+          vOpen = 0
+        else:
+          vOpen = statList['data']['esc']['component'][vType][id]
+
+        if vOpen == 0 and useHigh:
+            buildText += '<table:table-cell/>\n'
+        else:
+            buildText += '<table:table-cell office:value-type="float" office:value="{xO}" calcext:value-type="float">\n' \
+                         '<text:p>{xO}</text:p></table:table-cell>\n'.format(xO=vOpen)
+
+    return text + buildText + endText + '</table:table-row>\n'
+
+
 def report_flatODF():
     global statList, cfg
 
@@ -494,242 +555,6 @@ def report_flatODF():
     text = fp.read()
     fp.close()
 
-    rowHighPriority = gen_rowHighPriority('75')
-    rowHighPriority += \
-       '<table:table-cell office:value-type="float" office:value="{vO_old}" calcext:value-type="float">\n' \
-            '<text:p>{vO_old}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.Z74]-[.B74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_40}" calcext:value-type="float">\n' \
-            '<text:p>{vO_40}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AA74]-[.D74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_41}" calcext:value-type="float">\n' \
-            '<text:p>{vO_41}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AB74]-[.F74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_42}" calcext:value-type="float">\n' \
-            '<text:p>{vO_42}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AC74]-[.H74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_43}" calcext:value-type="float">\n' \
-            '<text:p>{vO_43}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AD74]-[.J74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_44}" calcext:value-type="float">\n' \
-            '<text:p>{vO_44}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AE74]-[.L74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_50}" calcext:value-type="float">\n' \
-            '<text:p>{vO_50}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AF74]-[.N74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_51}" calcext:value-type="float">\n' \
-            '<text:p>{vO_51}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AG74]-[.P74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_52}" calcext:value-type="float">\n' \
-            '<text:p>{vO_52}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AH74]-[.R74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_53}" calcext:value-type="float">\n' \
-            '<text:p>{vO_53}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AI74]-[.T74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_54}" calcext:value-type="float">\n' \
-            '<text:p>{vO_54}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AJ74]-[.V74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vO_55}" calcext:value-type="float">\n' \
-            '<text:p>{vO_55}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.AK74]-[.X74]" office:value-type="float" office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_old}" calcext:value-type="float">\n' \
-            '<text:p>{vT_old}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_40}" calcext:value-type="float">\n' \
-            '<text:p>{vT_40}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_41}" calcext:value-type="float">\n' \
-            '<text:p>{vT_41}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_42}" calcext:value-type="float">\n' \
-            '<text:p>{vT_42}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_43}" calcext:value-type="float">\n' \
-            '<text:p>{vT_43}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_44}" calcext:value-type="float">\n' \
-            '<text:p>{vT_44}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_50}" calcext:value-type="float">\n' \
-            '<text:p>{vT_50}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_51}" calcext:value-type="float">\n' \
-            '<text:p>{vT_51}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_52}" calcext:value-type="float">\n' \
-            '<text:p>{vT_52}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_53}" calcext:value-type="float">\n' \
-       '<text:p>{vT_53}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_54}" calcext:value-type="float">\n' \
-       '<text:p>{vT_54}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vT_55}" calcext:value-type="float">\n' \
-       '<text:p>{vT_55}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:formula="of:=[.B74]+[.D74]+[.F74]+[.H74]+[.J74]+[.L74]+[.N74]+[.P74]+[.R74]+[.T74]+[.V74]+[.X74]" ' \
-            'office:value-type="float" office:value="-1" calcext:value-type="float">' \
-            '<text:p>-1</text:p></table:table-cell>' \
-       '<table:table-cell table:style-name="ce24" table:formula="of:=SUM([.Z74:.AK74])-[.AL74]" ' \
-            'office:value-type="float" office:value="-1" calcext:value-type="float">' \
-            '<text:p>-1</text:p></table:table-cell>' \
-       '</table:table-row>\n'.format(
-              vO_old = statList['data']['esc']['MAB']['old']['open'],
-              vT_old = statList['data']['esc']['MAB']['old']['total'],
-              vO_40  = statList['data']['esc']['MAB']['4.0']['open'],
-              vT_40  = statList['data']['esc']['MAB']['4.0']['total'],
-              vO_41  = statList['data']['esc']['MAB']['4.1']['open'],
-              vT_41  = statList['data']['esc']['MAB']['4.1']['total'],
-              vO_42  = statList['data']['esc']['MAB']['4.2']['open'],
-              vT_42  = statList['data']['esc']['MAB']['4.2']['total'],
-              vO_43  = statList['data']['esc']['MAB']['4.3']['open'],
-              vT_43  = statList['data']['esc']['MAB']['4.3']['total'],
-              vO_44  = statList['data']['esc']['MAB']['4.4']['open'],
-              vT_44  = statList['data']['esc']['MAB']['4.4']['total'],
-              vO_50  = statList['data']['esc']['MAB']['5.0']['open'],
-              vT_50  = statList['data']['esc']['MAB']['5.0']['total'],
-              vO_51  = statList['data']['esc']['MAB']['5.1']['open'],
-              vT_51  = statList['data']['esc']['MAB']['5.1']['total'],
-              vO_52  = statList['data']['esc']['MAB']['5.2']['open'],
-              vT_52  = statList['data']['esc']['MAB']['5.2']['total'],
-              vO_53  = statList['data']['esc']['MAB']['5.3']['open'],
-              vT_53  = statList['data']['esc']['MAB']['5.3']['total'],
-              vO_54  = 0,
-              vT_54  = 0,
-              vO_55  = 0,
-              vT_55  = 0)
-
-    rowRegressions = \
-       '<table:table-row table:style-name="ro2">\n' \
-       '<table:table-cell office:value-type="date" office:date-value="{vDate}" calcext:value-type="date">\n' \
-            '<text:p>{vDate}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vOpen}" calcext:value-type="float">\n' \
-            '<text:p>{vOpen}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="Default" table:formula="of:=[.D258]-[.B258]" office:value-type="float" ' \
-            'office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vTotal}" calcext:value-type="float">\n' \
-            '<text:p>{vTotal}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:style-name="isodate" table:formula="of:=[.A258]" office:value-type="date" ' \
-            'office:date-value="2001-01-01" calcext:value-type="date">\n' \
-            '<text:p>2001-01-01</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vSpreadsheet}" calcext:value-type="float">\n' \
-            '<text:p>{vSpreadsheet}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vPresentation}" calcext:value-type="float">\n' \
-            '<text:p>{vPresentation}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vDatabase}" calcext:value-type="float">\n' \
-            '<text:p>{vDatabase}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vDrawing}" calcext:value-type="float">\n' \
-            '<text:p>{vDrawing}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vLibreOffice}" calcext:value-type="float">\n' \
-            '<text:p>{vLibreOffice}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vBorders}" calcext:value-type="float">\n' \
-            '<text:p>{vBorders}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vCrashes}" calcext:value-type="float">\n' \
-            '<text:p>{vCrashes}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vBasic}" calcext:value-type="float">\n' \
-            '<text:p>{vBasic}</text:p></table:table-cell>\n' \
-       '<table:table-cell/>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vWriter}" calcext:value-type="float">\n' \
-            '<text:p>{vWriter}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vMigration}" calcext:value-type="float">\n' \
-            '<text:p>{vMigration}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vChart}" calcext:value-type="float">\n' \
-            '<text:p>{vChart}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vExtensions}" calcext:value-type="float">\n' \
-            '<text:p>{vExtensions}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vFormula}" calcext:value-type="float">\n' \
-            '<text:p>{vFormula}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vImpressRemote}" calcext:value-type="float">\n' \
-            '<text:p>{vImpressRemote}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vInstallation}" calcext:value-type="float">\n' \
-            '<text:p>"{vInstallation}"</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vLinguistic}" calcext:value-type="float">\n' \
-            '<text:p>{vLinguistic}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vPrinting}" calcext:value-type="float">\n' \
-            '<text:p>{vPrinting}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vUI}" calcext:value-type="float">\n' \
-            '<text:p>{vUI}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vFilters}" calcext:value-type="float">\n' \
-            '<text:p>{vFilters}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vFramework}" calcext:value-type="float">\n' \
-            '<text:p>{vFramework}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vGraphics}" calcext:value-type="float">\n' \
-            '<text:p>{vGraphics}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vSdk}" calcext:value-type="float">\n' \
-            '<text:p>{vSdk}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:formula="of:=[.A258]" office:value-type="date" ' \
-            'office:date-value="2001-01-01" calcext:value-type="date">\n' \
-            '<text:p>2001-01-01</text:p></table:table-cell>\n' \
-       '<table:table-cell table:formula="of:=[.B258]-[.B257]" office:value-type="float" ' \
-            'office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell table:formula="of:=[.D258]-[.D257]" office:value-type="float" ' \
-            'office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell table:formula="of:=[.AE258]-[.AD258]" office:value-type="float" ' \
-            'office:value="-1" calcext:value-type="float">\n' \
-            '<text:p>-1</text:p></table:table-cell>\n' \
-       '<table:table-cell table:number-columns-repeated="24"/>\n' \
-       '</table:table-row>\n'.format(
-              vDate  = statList['addDate'],
-              vOpen  = statList['data']['esc']['regression']['open'],
-              vTotal = statList['data']['esc']['regression']['total'],
-              vSpreadsheet = statList['data']['esc']['component']['all']['Calc'],
-              vPresentation = statList['data']['esc']['component']['all']['Impress'],
-              vDatabase = statList['data']['esc']['component']['all']['Base'],
-              vDrawing = statList['data']['esc']['component']['all']['Draw'],
-              vLibreOffice = statList['data']['esc']['component']['all']['LibreOffice'],
-              vBorders = statList['data']['esc']['component']['all']['Borders'],
-              vCrashes = statList['data']['esc']['component']['all']['Crashes'],
-              vBasic = statList['data']['esc']['component']['all']['BASIC'],
-              vWriter = statList['data']['esc']['component']['all']['Writer'],
-              vMigration = 0,
-              vChart = statList['data']['esc']['component']['all']['Chart'],
-              vExtensions = statList['data']['esc']['component']['all']['Extensions'],
-              vFormula = statList['data']['esc']['component']['all']['Formula Editor'],
-              vImpressRemote = statList['data']['esc']['component']['all']['Impress Remote'],
-              vInstallation = statList['data']['esc']['component']['all']['Installation'],
-              vLinguistic = statList['data']['esc']['component']['all']['Linguistic'],
-              vPrinting = statList['data']['esc']['component']['all']['Printing and PDF export'],
-              vUI = statList['data']['esc']['component']['all']['UI'],
-              vFilters = statList['data']['esc']['component']['all']['filters and storage'],
-              vFramework = statList['data']['esc']['component']['all']['framework'],
-              vGraphics = statList['data']['esc']['component']['all']['graphics stack'],
-              vSdk = statList['data']['esc']['component']['all']['sdk']
-    )
-
-
-    rowHighPrioRegressions = \
-       '<table:table-row table:style-name="ro2">\n' \
-       '<table:table-cell office:value-type="date" office:date-value="{vDate}" calcext:value-type="date">\n' \
-            '<text:p>{vDate}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vSpreadsheet}" calcext:value-type="float">\n' \
-            '<text:p>{vSpreadsheet}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vPresentation}" calcext:value-type="float">\n' \
-            '<text:p>{vPresentation}</text:p></table:table-cell>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vDatabase}" calcext:value-type="float">\n' \
-            '<text:p>{vDatabase}</text:p></table:table-cell>\n' \
-       '<table:table-cell/>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vLibreOffice}" calcext:value-type="float">\n' \
-            '<text:p>{vLibreOffice}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:number-columns-repeated="4"/>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vWriter}" calcext:value-type="float">\n' \
-            '<text:p>{vWriter}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:number-columns-repeated="2"/>\n' \
-       '<table:table-cell office:value-type="float" office:value="{vExtensions}" calcext:value-type="float">\n' \
-            '<text:p>{vExtensions}</text:p></table:table-cell>\n' \
-       '<table:table-cell table:number-columns-repeated="10"/>\n' \
-       '</table:table-row>\n'.format(
-              vDate=statList['addDate'],
-              vSpreadsheet=statList['data']['esc']['component']['high']['Calc'],
-              vPresentation=statList['data']['esc']['component']['high']['Impress'],
-              vDatabase=statList['data']['esc']['component']['high']['Base'],
-              vLibreOffice=statList['data']['esc']['component']['high']['LibreOffice'],
-              vWriter=statList['data']['esc']['component']['high']['Writer'],
-              vExtensions=statList['data']['esc']['component']['high']['Extensions'])
-
     endIndex = 0
     searchStartSheet = '<table:table table:name='
     lenStartSheet = len(searchStartSheet)
@@ -750,11 +575,11 @@ def report_flatODF():
         continue
       elif text[startIndex:].startswith('"HighPriority"'):
         inx  = text.rfind('<table:table-row table:style-name="ro2" table:number-rows-repeated="39">', startIndex, endIndex)
-        text = text[:inx] + '\n\n' + rowHighPriority + '\n\n' + text[inx:]
+        text = text[:inx] + gen_rowHighPriority() + text[inx:]
       elif text[startIndex:].startswith('"Regressions"'):
-        text = text[:endIndex] + '\n\n' + rowRegressions + '\n\n' + text[endIndex:]
+        text = text[:endIndex] + gen_rowRegression() + text[endIndex:]
       elif text[startIndex:].startswith('"HighPrioRegressions"'):
-        text = text[:endIndex] + '\n\n' + rowHighPrioRegressions + '\n\n' + text[endIndex:]
+        text = text[:endIndex] + gen_rowRegression(useHigh=True) + text[endIndex:]
       else:
         raise Exception("unknown sheet in bug-metrics: " + text[startIndex:startIndex+20])
 


More information about the Libreoffice-commits mailing list