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 <j...@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 <j...@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]) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits