Add script and xml used to generate brag svg from the platform build results HighFidelityModel
authorandy simpson <andrews@symbian.org>
Fri, 18 Jun 2010 09:49:13 +0100
branchHighFidelityModel
changeset 311 e9d0240c3e66
parent 309 35553ee25464
child 312 9527bd30de64
Add script and xml used to generate brag svg from the platform build results
sysmodelgen/extra/dictionary.xml
sysmodelgen/extra/stshapes.xml
sysmodelgen/getsferrors.pl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelgen/extra/dictionary.xml	Fri Jun 18 09:49:13 2010 +0100
@@ -0,0 +1,153 @@
+<dict>
+  <word term="Application" abbrev="App" d="Appli&#xad;cation"/>
+  <word term="Applications" abbrev="Apps" d="Appli&#xad;cations"/>
+  <word term="Reference" abbrev="Ref"/>
+  <word term="and" d="&amp;"/>
+  <word term="Management" abbrev="Mgmt." d="Manage&#xad;ment"/>
+  <word term="Connection" d="Connec&#xad;tion" abbrev="Conn."/>
+  <word term="Interfaces" d="Inter&#xad;faces"/>
+  <word term="Interface" d="Inter&#xad;face"/>
+  <word term="Interworking" d="Inter&#xad;working"/>
+  <word term="Restricted" abbrev="Restr."/>
+  <word term="PacketVideo" d="Packet&#xad;Video"/>
+  <word term="ImagePrint" d="Image&#xad;Print"/>
+  <word term="Verification" d="Verifica&#xad;tion"/>
+  <word term="Postprocessor" abbrev="Post-proc."/>
+  <word term="Supplementary" abbrev="Suppl."/>
+  <word term="Parameters" d="Param&#xad;eters"/>
+  <word term="Middleware" d="Middle&#xad;ware"/>
+  <word term="Multimedia" d="Multi&#xad;media" s="MM"/>
+  <word term="Frameworks" d="Frame&#xad;works" abbrev="Fmwks." s="FW"/>
+  <word term="Framework" d="Frame&#xad;work" abbrev="Fmwk." s="FW"/>
+  <word term="Component" d="Compo&#xad;nent" abbrev="Cmp."/>
+  <word term="compo" d="Cmp."/>
+  <word term="Components" d="Compo&#xad;nents" abbrev="Cmp."/>
+  <word term="Customisation" d="Custom&#xad;isation"/>
+  <word term="Device" d="Dev&#xad;ice"/>
+  <word term="Adaptation" abbrev="Adapt." d="Adapta&#xad;tion"/>
+  <word term="Bluetooth" d="Blue&#xad;tooth" abbrev="Btooth." s="BT"/>
+  <word term="Implementations" d="Implemen&#xad;tations" abbrev="Impl."/>
+  <word term="Implementation" d="Implemen&#xad;tation" abbrev="Impl."/>
+  <word term="Documentation" abbrev="Docs"/>
+  <word term="Networking" d="Network&#xad;ing"/>
+  <word term="Compression" d="Compres&#xad;sion"/>
+  <word term="Conversation" d="Conversa&#xad;tion"/>
+  <word term="Libraries" abbrev="Libs"/>
+  <word term="Certificates" d="Certif&#xad;icates"/>
+  <word term="Environment" d="Environ&#xad;ment" abbrev="Env."/>
+  <word term="Recognition" d="Recog&#xad;nition"/>
+  <word term="Hardware" s="HW"/>
+  <word term="Software" s="SW"/>
+  <word term="ScreenGrabber" d="Screen&#xad;Grabber"/>
+  <word term="Subsystem" d="Sub&#xad;system"/>
+  <word term="Localisation" d="Localis&#xad;ation"/>
+  <word term="Localization" d="Localiz&#xad;ation"/>
+  <word term="Translation" d="Trans&#xad;lation"/>
+  <word term="Abstraction" d="Abstrac&#xad;tion"/>
+  <word term="Characterisation" d="Character&#xad;isation"/>
+  
+  <word term="Transport" d="Trans&#xad;port"/>
+  <word term="Transports" d="Trans&#xad;ports"/>
+  <word term="Permission" d="Permis&#xad;sion"/>
+  <word term="Configuration" abbrev="Config."/>
+  <word term="Customization" abbrev="Custom&#xad;ization"/>
+  <word term="Configurator" abbrev="Config&#xad;urator"/>
+  <word term="Communications" d="Communi&#xad;cations" abbrev="Comms"/>
+  <word term="Communication" d="Communi&#xad;cation" abbrev="Comm"/>
+  <word term="Connectivity" abbrev="Connect&#xad;ivity"/>
+  <word term="Integration" abbrev="Integ"/>
+  
+  <word term="Initialization" abbrev="Init"/>
+  <word term="Memory" d="Mem&#xad;ory"/>
+  <word term="Notification" d="Notifica&#xad;tion"/>
+  <word term="Architecture" abbrev="App. Arch."/>
+  <word term="Converter" abbrev="Cnvrter."/>
+    <word term="Converters" abbrev="Cnvrters."/>
+  <word term="Converged" d="Con&#xad;verged"/>
+  <word term="Dictionary" d="Dictio&#xad;nary"/>
+  <word term="Recognisers" d="Recog&#xad;nisers"/>
+  <word term="Recogniser" d="Recog&#xad;niser"/>
+  <word term="Recognizers" d="Recog&#xad;nizers"/>
+  <word term="Recognizer" d="Recog&#xad;nizer"/>
+  <word term="Homescreen" d="Home&#xad;screen"/>
+  
+  <word term="Provisioning" d="Provision&#xad;ing" s="Prov."/>
+  <word term="Messaging" abbrev="Msg." d="Messag&#xad;ing"/>
+  <word term="Message" abbrev="Msg."/>
+  <word term="Scheduled" abbrev="Sched."/>
+  <word term="Repository" d="Repos&#xad;itory"/>
+  <word term="Character" abbrev="Char."/>
+  <word term="Encoding" abbrev="Encode."/>
+  <word term="Conversion" abbrev="Conv." d="Conver&#xad;sion"/>
+  <word term="Ethernet" abbrev="Ether."/>
+  <word term="Bootstrap" d="Boot&#xad;strap"/>
+  <word term="Emulator" d="Emu&#xad;lator"/>
+  <word term="Database" abbrev="Dbase." s="DB"/>
+  <word term="Controller" abbrev="Contrllr."/>
+  <word term="Multimode" d="Multi&#xad;mode"/>
+  <word term="Phonebook" d="Phone&#xad;book" s="Phbk."/>
+  <word term="Standard" abbrev="Std."/>
+  <word term="Scheduler" d="Sched&#xad;uler"/>
+  <word term="Rasteriser" abbrev="Rster."/>
+  <word term="Formatting" d="Formatt&#xad;ing"/>
+  <word term="Visualization" d="Visualiza&#xad;tion"/>
+  <word term="Redistribution" d="Redistrib&#xad;ution"/>
+  <word term="Personalization" d="Personal&#xad;ization"/>
+  <word term="Navigation" abbrev="Nav"/>
+  <word term="Validation" d="Valida&#xad;tion"/>
+  <word term="Processor" d="Proces&#xad;sor"/>
+  <word term="Integrator" abbrev="Integrtr."/>
+  <word term="Motherboard" d="Mother&#xad;board"/>
+  <word term="Subconnection" abbrev="Subconn."/>
+  <word term="StrongArm" d="Strong&#xad;Arm"/>
+  <word term="Broadcast" d="Broad&#xad;cast"/>
+  
+  <word term="Extension"  d="Exten&#xad;sion" abbrev="Ext."/>
+  <word term="Extensions" d="Exten&#xad;sions" abbrev="Ext."/>
+  <word term="Transmitter" abbrev="Transmit."/>
+  <word term="Cryptography" abbrev="Crypto."/>
+  <word term="Composition" d="Composi&#xad;tion"/>
+  <word term="Engine" s="Eng."/>
+  <word term="Address" abbrev="Addr"/>
+  <word term="Comparator" d="Compar&#xad;ator"/>
+  <word term="Codewarrior" d="Code&#xad;Warrior"/>
+  <word term="installation" d="Install&#xad;ation"/>
+  <word term="Installation" d="Install&#xad;ation"/>
+  <word term="Infrastructure" d="Infra&#xad;structure"/>
+  <word term="Development" d="Develop&#xad;ment"/>
+  <word term="Diagnostics" d="Diagnos&#xad;tics"/>
+  <word term="Triggering" d="Trigger&#xad;ing"/>
+  	
+  	<word term="Command" abbrev="Cmd."/>
+  	<word term="Description" d="Descrip&#xad;tion"/>
+  	<word term="Transforms" d="Trans&#xad;forms"/>
+  	<word term="Messages" abbrev="Msgs"/>
+  	<word term="Mechanism" d="Mechan&#xad;ism"/>
+  	<word term="Backstepping" d="Back&#xad;stepping"/>
+  <word term="Monitoring" d="Monitor&#xad;ing"/>
+   <word term="Authentication" d="Authenti&#xad;cation"/> 
+   <word term="Authorisation" d="Authori&#xad;sation"/> 
+  	<word term="Enhancements" d="Enhance&#xad;ments"/>
+  	<word term="Pictographs" d="Picto&#xad;graphs"/>
+  	<word term="Thumbnail" d="Thumb&#xad;nail"/>
+  	<word term="Accelerator" d="Accel&#xad;erator"/>
+  	<word term="Landmarks" d="Land&#xad;marks"/>
+  	<word term="Camcorder" d="Cam&#xad;corder"/>
+  	<word term="Connected" d="Con&#xad;nected"/>
+  	<word term="Accelaration" d="Accelara&#xad;tion"/>
+  	<word term="Simulation" d="Simula&#xad;tion"/>
+  	<word term="Rendering" d="Render&#xad;ing"/>
+  	<word term="Loudmouth" d="Loud&#xad;mouth"/>
+  	<word term="NaviEngine" d="Navi&#xad;Engine"/>
+  	<word term="Baseport" d="Base&#xad;port"/>
+  	<word term="Controllers" d="Con&#xad;trollers"/>
+  	<word term="Performance" d="Perfor&#xad;mance"/>
+  	<word term="Generator" d="Gener&#xad;ator"/>
+  	<word term="Foundation" d="Found&#xad;ation"/>
+  	<word term="Services" s="Srvs." d="Ser&#xad;vices"/>
+  	<word term="IMAP/POP/SMTP" d="IMAP/&#x200b;POP/&#x200b;SMTP"/>
+	<word term="Accelerometer" d="Accel&#xad;er&#xad;ome&#xad;ter"/>
+  	<word term="Introduction" s="Intro" d="Intro&#xaD;duction"/>
+	<word term="Downloading" d="Down&#xad;load&#xad;ing"/>
+	<word term="Proximity" d="Prox&#xad;imity"/>
+</dict>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelgen/extra/stshapes.xml	Fri Jun 18 09:49:13 2010 +0100
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<shapes xmlns:s="http://www.w3.org/2000/svg">
+<s:defs>
+    <s:style type="text/css">
+	 text.layer {
+		font-size: 10px;
+	 }
+	svg.package text.package, svg.package-fixed text.package {
+		font-size: 17.00px;
+		font-weight: normal
+	} 
+	
+	svg.collection-fixed text.layer,  svg.collection text.layer {
+		font-size: 12px;
+		font-weight: normal
+	} 
+	svg.collection-fixed	text.package {
+		font-size: 6px;
+		font-weight: normal;
+	}
+    </s:style>
+</s:defs>
+
+
+    <borders label="Usage">
+            <border type="box"/>
+            <border label="Imported Compo&#xad;nent" rule="unit/@prebuilt" type="hexagon"/>
+            <border rule="CLASS('plugin')" label="Plugin"  viewBox="0 0 20 20">
+                <s:path d="M 0 0 L 0 20 L 20 20 L 20 8 L 17.6 5.6 A 2.7 2.7 30 1 0 14.4 2.4 L12 0 z" stroke="black"/>
+            </border>
+            <border rule="CLASS('config')" type="box-clipAll" label="Config&#xad;uration"/>
+            <border rule="CLASS('doc')" type="box-clipRT" label="Document&#xad;ation"/>
+            <border rule="CLASS('api')" type="round" label="Inter&#xad;face"/>
+    </borders>
+
+<patterns match="collection[ancestor::SystemDefintion/@detail!='component']" detail="collection">  
+	<overlay rule="count(component[@deprecated]) = count(component)" label="Depre&#xad;cated" count=" (1)" type="big-X"/>
+</patterns>
+
+
+  <patterns>
+          <overlay rule="not(unit)" label="Place&#xad;holder Compo&#xad;nent">
+              <s:radialGradient gradientUnits="userSpaceOnUse" cx="10" cy="10" r="14">
+                <s:stop offset="15%" stop-color="white" stop-opacity="0"/>
+                <s:stop offset="20%" stop-color="white" stop-opacity="0.75"/>
+                <s:stop offset="25%" stop-color="white" stop-opacity="0"/>
+                <s:stop offset="35%" stop-color="white" stop-opacity="0"/>
+                <s:stop offset="40%" stop-color="white" stop-opacity="0.75"/>
+                <s:stop offset="45%" stop-color="white" stop-opacity="0"/>
+                <s:stop offset="55%" stop-color="white" stop-opacity="0"/>
+                <s:stop offset="60%" stop-color="white" stop-opacity="0.75"/>
+                <s:stop offset="65%" stop-color="white" stop-opacity="0"/>
+              </s:radialGradient>
+          </overlay>
+ </patterns>
+
+  <patterns>          
+          <overlay rule="@purpose='development'" type="striped-diag-up" label="Test Compo&#xad;nent" count=" (1)"/>
+  </patterns>
+
+  <patterns>
+           <overlay rule="@deprecated and VERSION(@deprecated) &lt;= VERSION('^3')" label="Depre&#xad;cated in ^3" count=" (1)" type="big-X"/>
+           <overlay rule="@deprecated" label="Depre&#xad;cated after ^3" count=" (1)">
+                  <s:pattern patternUnits="userSpaceOnUse" x="0" y="0" width="100%" height="100%" viewBox="0 0 10 10">
+                          <s:path d="M 1 1 L 9 9 M 1 9  L 9 1" stroke="yellow" stroke-width="0.7" stroke-linecap="round"/>
+                  </s:pattern>
+          </overlay>
+</patterns>
+
+
+  <patterns>          
+          <overlay rule="VERSION(@introduced) = VERSION('^2')" type="radial-grad" label="New in ^2" count=" (1)"/>
+          <overlay rule="VERSION(@introduced) = VERSION('^3')" label="New in ^3" count=" (1)">
+                  <s:radialGradient gradientUnits="userSpaceOnUse" cx="10" cy="10" r="14">
+                          <s:stop offset="0%" stop-color="yellow" stop-opacity="1"/>
+                          <s:stop offset="85%" stop-opacity="0" stop-color="white" />
+                          <s:stop offset="100%" stop-opacity="0" stop-color="white" />
+                  </s:radialGradient>
+          </overlay>
+          <overlay rule="VERSION(@introduced) = VERSION('^4')" label="New in ^4" count=" (1)">
+                  <s:radialGradient gradientUnits="userSpaceOnUse" cx="10" cy="10" r="14">
+                          <s:stop offset="0%" stop-color="rgb(180  52 255)" stop-opacity="1"/>
+                          <s:stop offset="85%" stop-opacity="0" stop-color="white" />
+                          <s:stop offset="100%" stop-opacity="0" stop-color="white" />
+                  </s:radialGradient>
+          </overlay>
+</patterns>
+
+    <styles show-unused="yes">
+          <style>stroke-width: 0.5</style>
+          <style rule="@purpose='mandatory'" label="Mandatory Compo&#xad;nent">stroke-width: 2</style>
+   </styles>
+  
+
+<colors match="package" label="BRAG Status">
+	<color color="grey" rule="@critical &gt; 0" label="Black" count=" (1)"/>
+	<color color="rgb(228,14,98)" rule="@major &gt; 0" label="Red" count=" (1)"/>
+	<color color="rgb(249,242,6)" rule="@minor &gt; 0 or  @unknown &gt; 0" label="Amber" count=" (1)"/>
+	<color color="rgb(68,165,28)" rule="@critical" label="Green" count=" (1)"/>
+	<color color="white" label="Not built" count=" (1)"/>
+</colors> 
+
+<!--  
+<styles match="package" use="@tech-domain" label="Technology Domain">
+	<style value="hb" label="OS Base Services" count=" (1)">stroke: tan</style>
+	<style value="se" label="Security" count=" (1)">stroke: rgb(228,14,98)</style>
+	<style value="lo" label="Location" count=" (1)">stroke: whitesmoke</style>
+	<style value="dc" label="Data Communications" count=" (1)">stroke: moccasin</style>
+	<style value="vc" label="Personal Communications" count=" (1)">stroke: darkkhaki</style>
+	<style value="de" label="Device Connectivity" count=" (1)">stroke: orchid</style>
+	<style value="dm" label="Device Management" count=" (1)">stroke: darkseagreen</style>
+	<style value="pr" label="Productivity" count=" (1)">stroke: lightpink</style>
+	<style value="mm" label="Multimedia" count=" (1)">stroke: rgb(175,212,240)</style>
+	<style value="ma" label="Multimedia Apps" count=" (1)">stroke: #ffff00</style>
+	<style value="ui" label="User Interface" count=" (1)">stroke: orange</style>
+	<style value="rt" label="Runtimes and Web" count=" (1)">stroke: slateblue</style>
+	<style value="to" label="Tools" count=" (1)">stroke: darkgray</style>
+</styles> 
+
+
+-->
+
+<colors match="collection" use="../@tech-domain" label="Technology Domain">
+	<color color="tan" value="hb" label="OS Base Services" count=" (1)"/>
+	<color color="rgb(228,14,98)" value="se" label="Security" count=" (1)"/>
+	<color color="whitesmoke" value="lo" label="Location" count=" (1)"/>
+	<color color="moccasin" value="dc" label="Data Communications" count=" (1)"/>
+	<color color="darkkhaki" value="vc" label="Personal Communications" count=" (1)"/>
+	<color color="orchid" value="de" label="Device Connectivity" count=" (1)"/>
+	<color color="darkseagreen" value="dm" label="Device Management" count=" (1)"/>
+	<color color="lightpink" value="pr" label="Productivity" count=" (1)"/>
+	<color color="rgb(175,212,240)" value="mm" label="Multimedia" count=" (1)"/>
+	<color color="#ffff00" value="ma" label="Multimedia Apps" count=" (1)"/>
+	<color color="orange" value="ui" label="User Interface" count=" (1)"/>
+	<color color="slateblue" value="rt" label="Runtimes and Web" count=" (1)"/>
+	<color color="darkgray" value="to" label="Tools" count=" (1)"/>
+</colors> 
+
+
+<colors default="grey" match="component" label="Origin">
+  <color color="#32cd99" rule="descendant-or-self::*[contains(@filter,'s60')]" label="S60"/>
+  <color color="rgb(93,155,205)" rule="self::component" label="Symbian"/>
+</colors>
+</shapes>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelgen/getsferrors.pl	Fri Jun 18 09:49:13 2010 +0100
@@ -0,0 +1,94 @@
+#!/usr/bin/perl
+$bld = shift || "symbian3_FCL.single.316";
+$ver = $bld; $ver =~s/_.*// ;
+$url = "http://cdn.symbian.org/SF_builds/$ver/builds/FCL/$bld/html/index.html";
+$data = `wget  -O - -nv -q $url`;
+
+#open F,shift;
+#$data = join('',<F>);
+#close F;
+
+
+$state = 'start';
+foreach (split(/\n/,$data)) {
+			s,[\r\n],,g;
+	if($state eq 'start' && /<table/) {
+		$state = 'general';
+	} elsif($state eq 'general' && /<table/) {
+		$state = 'pkg';
+	}
+	if($state eq 'pkg') {
+		if(s,<tr><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td></tr>,$1,) {
+			my @err = ($2,$3,$4,$5,$6);
+			s,^.*>(.*?)<.*$,$1,;
+			s,^.*/,,;
+			$critical{$_}=$err[0];
+			$major{$_}=$err[1];
+			$minor{$_}=$err[2];
+			$unknown{$_}=$err[3];
+			$missing{$_}=$err[4];
+		}
+	}
+}
+
+$url=~s,[^/]+$,raptor_unreciped.html,;
+$data = `wget  -O - -nv -q $url`;
+
+#open F,shift;
+#$data = join('',<F>);
+#close F;
+
+
+
+$state = 'start';
+foreach (split(/\n/,$data)) {
+			s,[\r\n],,g;
+			if(m,^<br/>([A-Z]+)<br/>$,) {
+				$state = $1
+			}
+		if(m,<tr><td>[^<]+</td><td>[^<]+</td><td><a href='(.*)?#(.*)$,) {
+			$Type{$2} = $state;
+			$listname= $1;
+		}
+}
+
+
+$url=~s,[^/]+$,$listname,;
+$data = `wget  -O - -nv -q $url`;
+
+#open F,shift;
+#$data = join('',<F>);
+#close F;
+
+
+$state = 'start';
+$cur;
+foreach (split(/\n/,$data)) {
+	if(m,</pre,) {next}
+	if(m,<a name="(.*?)">,) {$cur = $1}
+	elsif(/\S/) {
+		m,([E-Z]:/| at )sf/[a-z]+/([^/]+), || print STDERR "$_\n";
+		my $pkg = $2;
+		if($Type{$cur}  eq 'UNKNOWN') {
+			$unknown{$pkg}++;
+		}
+		elsif($Type{$cur}  eq 'MAJOR') {
+			$major{$pkg}++;
+		}
+		elsif($Type{$cur}  eq 'MINOR') {
+			$minor{$pkg}++;
+		}
+		elsif($Type{$cur}  eq 'CRITICAL') {
+			$critical{$pkg}++;
+		}
+	}
+}
+
+
+print "<info data-type=\"status\">\n";
+foreach (keys(%critical)) {
+	print  " <item ref=\"$_\"  critical=\"$critical{$_}\" major=\"$major{$_}\" minor=\"$minor{$_}\" unknown=\"$unknown{$_}\" missing=\"$missing{$_}\"/>\n";
+}
+print "</info>\n";
+
+