<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Informatiq&amp;feed=atom&amp;limit=50&amp;target=Informatiq&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Informatiq&amp;feed=atom&amp;limit=50&amp;target=Informatiq&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Informatiq"/>
		<updated>2013-06-19T14:46:29Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-04T11:12:35Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
how does it all fit together&lt;br /&gt;
&lt;br /&gt;
== Deployment ==&lt;br /&gt;
=== Planning ===&lt;br /&gt;
* decide on a process, write it&lt;br /&gt;
* identify needed participants&lt;br /&gt;
=== Installation ===&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
** [[/BOSS/Standard_workflow|standard workflow]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
* [[/SKYNET|Skynet]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-04T09:29:56Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
** [[/BOSS/Standard_workflow|standard workflow]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
* [[/SKYNET|Skynet]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-04T09:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
** [[/BOSS/Standard_workflow|standard workflow]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
* [[/SKYNET|Skynet]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-04T09:28:28Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
** [[/BOSS/Standard_workflow|standard workflow]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
* [[/BOSS/SKYNET|Skynet]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Installation</id>
		<title>Release Infrastructure/BOSS/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Installation"/>
				<updated>2011-08-04T09:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Whilst BOSS is deployed in production, this packaged version is still&lt;br /&gt;
in beta-testing and is subject to change. In particular the&lt;br /&gt;
repositories are not yet finalised (eg installing from :RC).&lt;br /&gt;
&lt;br /&gt;
However BOSS and SkyNET both install and run at a basic level on a&lt;br /&gt;
clean Debian 6.0 or OpenSuse 11.4 installation.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Preparation == &lt;br /&gt;
&lt;br /&gt;
* Proxy : On OpenSUSE you need to set the proxy in /etc/sysconfig/proxy&lt;br /&gt;
&lt;br /&gt;
== BOSS ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
BOSS provides the ruote worker and the main AMQP server.&lt;br /&gt;
&lt;br /&gt;
This component is the main process dispatcher; no work happens&lt;br /&gt;
here but all process steps are initiated from here.&lt;br /&gt;
&lt;br /&gt;
Currently BOSS uses the Ruote filesystem storage system and the&lt;br /&gt;
worker and viewer need to run on the same system. This will change&lt;br /&gt;
when BOSS moves to Redis.&lt;br /&gt;
&lt;br /&gt;
The stable and testing projects are at the community OBS, the state &lt;br /&gt;
of the packages can be monitored at :&lt;br /&gt;
&lt;br /&gt;
 Testing : https://build.pub.meego.com/project/monitor?project=Project:MINT:Testing&lt;br /&gt;
&lt;br /&gt;
 Release Candidate : (Don't use) https://build.pub.meego.com/project/monitor?project=Project:MINT:RC&lt;br /&gt;
&lt;br /&gt;
 Stable : (No release yet) https://build.pub.meego.com/project/monitor?project=Project:MINT&lt;br /&gt;
&lt;br /&gt;
=== SUSE ===&lt;br /&gt;
&lt;br /&gt;
(old version of BOSS on openSUSE 11.2)&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/Maemo:/MeeGo-Infra/openSUSE_11.2-plus/Maemo:MeeGo-Infra.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
(new version of BOSS on opensuse 11.4)&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will install Rabbit MQ and the boss worker daemon.&lt;br /&gt;
&lt;br /&gt;
To run boss:&lt;br /&gt;
&lt;br /&gt;
  rcboss start / stop&lt;br /&gt;
&lt;br /&gt;
=== Debian Squeeze/6.0 ===&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/apt/sources.list.d/MINT.list&lt;br /&gt;
 deb http://repo.pub.meego.com/Project:/MINT:/RC/Debian_6.0/ /&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install --no-install-recommends boss&lt;br /&gt;
&lt;br /&gt;
This will install Rabbit MQ and the boss worker daemon.&lt;br /&gt;
&lt;br /&gt;
Then, as usual&lt;br /&gt;
 /etc/init.d/boss {start|stop|restart|force-reload|log}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default settings are found in /etc/default/boss&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
BOSS is preconfigured with username boss and password boss on the boss vhost&lt;br /&gt;
(AMQP will lose vhosts soon)&lt;br /&gt;
&lt;br /&gt;
BOSS stores workitem and process data in /var/spool/boss/&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
In order to verify BOSS is working, please install SkyNET and follow the sample deployment.&lt;br /&gt;
&lt;br /&gt;
== BOSS-Viewer ==&lt;br /&gt;
&lt;br /&gt;
This must be installed on the boss server when using the FS storage.&lt;br /&gt;
&lt;br /&gt;
The default port is 9292, point your browser at http://127.0.0.1:9292/_ruote/ (if you are running on the same machine)&lt;br /&gt;
&lt;br /&gt;
#FIXME: Make sure you go to /_ruote/ otherwise you will get a big scary error.&lt;br /&gt;
&lt;br /&gt;
=== SUSE ===&lt;br /&gt;
&lt;br /&gt;
  http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
  zypper ref&lt;br /&gt;
  zypper in boss-viewer&lt;br /&gt;
&lt;br /&gt;
This will install boss-viewer.&lt;br /&gt;
&lt;br /&gt;
To run boss-viewer:&lt;br /&gt;
&lt;br /&gt;
 rcboss-viewer start / stop&lt;br /&gt;
&lt;br /&gt;
=== Debian Squeeze/6.0 ===&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/apt/sources.list.d/MINT.list&lt;br /&gt;
 deb http://repo.pub.meego.com/Project:/MINT:/RC/Debian_6.0/ /&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install --no-install-recommends boss-viewer&lt;br /&gt;
&lt;br /&gt;
This will install the boss viewer.&lt;br /&gt;
&lt;br /&gt;
Then, as usual&lt;br /&gt;
 /etc/init.d/boss {start|stop|restart|force-reload|log}&lt;br /&gt;
&lt;br /&gt;
== BOSS OBS Plugin ==&lt;br /&gt;
The OBS plugin is designed to launch processes when a build/publish event occurs on the OBS&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The plugin is installed on the OBS backend which runs the schedulers&lt;br /&gt;
&lt;br /&gt;
openSUSE 11.2&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.2/devel:languages:perl.repo&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/RC/openSUSE_11.2/Project:MINT:RC.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-obs-plugin&lt;br /&gt;
&lt;br /&gt;
opensuse 11.4&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.4/devel:languages:perl.repo&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-obs-plugin&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
'''You *MUST* have a participant registered as &amp;quot;obs_event&amp;quot; running before enabling this plugin or ruote will silently fill up with hundreds/thousands/millions of stalled processes.'''&lt;br /&gt;
&lt;br /&gt;
Edit the file:&lt;br /&gt;
  /usr/lib/obs/server/BSConfig.pm&lt;br /&gt;
and define/add: &lt;br /&gt;
  our $notification_plugin = &amp;quot;notify_boss&amp;quot;;&lt;br /&gt;
  our $BOSS_host=&amp;quot;boss&amp;quot;;   # hostname for server running BOSS AMQP&lt;br /&gt;
  our $BOSS_user=&amp;quot;boss&amp;quot;;   # AMQP username&lt;br /&gt;
  our $BOSS_passwd=&amp;quot;boss&amp;quot;; # AMQP password (cleartext)&lt;br /&gt;
&lt;br /&gt;
You may also uncomment and set to 1:&lt;br /&gt;
 our $multiaction_notify_support = 1;&lt;br /&gt;
(This allows osc requests containing multiple actions to be handled properly).&lt;br /&gt;
&lt;br /&gt;
The plugin itself is installed in :&lt;br /&gt;
  /usr/lib/obs/server/plugins/notify_boss.pm&lt;br /&gt;
&lt;br /&gt;
The schedulers will need to be restarted to take effect. Note there is currently an issue that&lt;br /&gt;
the plugin will block if the AMQP server is not available - this will halt the OBS.&lt;br /&gt;
&lt;br /&gt;
= Getting started and Testing the Deployment =&lt;br /&gt;
&lt;br /&gt;
Once you have installed BOSS and SkyNET you are ready to create and run some processes.&lt;br /&gt;
&lt;br /&gt;
== Watch BOSS ==&lt;br /&gt;
On the BOSS machine:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/boss log &amp;amp;&lt;br /&gt;
&lt;br /&gt;
You'll see messages about the engine being alive and participant&lt;br /&gt;
registration. Further debug output is possible here.&lt;br /&gt;
&lt;br /&gt;
== Setup a participant ==&lt;br /&gt;
&lt;br /&gt;
On the skynet machine we need to setup some code as a participant:&lt;br /&gt;
&lt;br /&gt;
 skynet make_participant -n check -p /usr/share/doc/python-boss-skynet/example-check-participant&lt;br /&gt;
 skynet make_participant -n notify -p /usr/share/doc/python-boss-skynet/example-notify-participant&lt;br /&gt;
&lt;br /&gt;
This creates a daemontools/participant directory structure with a&lt;br /&gt;
symbolic link to the code for these participants.&lt;br /&gt;
&lt;br /&gt;
Now we need to ensure they start to run under daemontools (and restart if&lt;br /&gt;
there's a problem):&lt;br /&gt;
&lt;br /&gt;
 skynet enable check&lt;br /&gt;
 skynet enable notify&lt;br /&gt;
&lt;br /&gt;
To watch the log output:&lt;br /&gt;
&lt;br /&gt;
 skynet log check &amp;amp;&lt;br /&gt;
 skynet log notify &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Now we need to tell boss that there is something listening on these&lt;br /&gt;
queues and available for use in processes:&lt;br /&gt;
&lt;br /&gt;
 skynet register -n check&lt;br /&gt;
 skynet register -n notify&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The skynet command also supports:&lt;br /&gt;
* stop : shutdown the participant and don't respawn.&lt;br /&gt;
* reload : stop and start once&lt;br /&gt;
* register : can also specify the amqp queue to use if it's not the name&lt;br /&gt;
&lt;br /&gt;
== Launch a process ==&lt;br /&gt;
&lt;br /&gt;
With a participant ready to do some work, we're ready to launch a process:&lt;br /&gt;
&lt;br /&gt;
 /usr/share/boss-skynet/skynet_launch&lt;br /&gt;
&lt;br /&gt;
The log output should show&lt;br /&gt;
&lt;br /&gt;
 2011-03-29 00:49:21.186558500 checking for /tmp/success&lt;br /&gt;
 2011-03-29 00:49:21.186849500 Failed to read /tmp/success&lt;br /&gt;
 2011-03-29 00:49:21.708706500 Nothing to say&lt;br /&gt;
&lt;br /&gt;
Now do:&lt;br /&gt;
&lt;br /&gt;
 echo Hi there &amp;gt; /tmp/success&lt;br /&gt;
&lt;br /&gt;
And relaunch:&lt;br /&gt;
&lt;br /&gt;
 /usr/share/boss-skynet/skynet_launch&lt;br /&gt;
&lt;br /&gt;
gives&lt;br /&gt;
 2011-03-29 00:49:31.659986500 checking for /tmp/success&lt;br /&gt;
 2011-03-29 00:49:31.660440500 Read /tmp/success&lt;br /&gt;
 2011-03-29 00:49:31.878978500 Send email saying : Hi there&lt;br /&gt;
 2011-03-29 00:49:31.878980500 &lt;br /&gt;
&lt;br /&gt;
Of course a process can be launched from anywhere on the network using&lt;br /&gt;
any 'trigger' and participants also run on any machine.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
= Next steps =&lt;br /&gt;
&lt;br /&gt;
Do something useful with your installation using the [[../Standard workflow|standard workflow]] and the [[../Participants|participants and launchers]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/SKYNET</id>
		<title>Release Infrastructure/SKYNET</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/SKYNET"/>
				<updated>2011-08-04T09:23:19Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with &amp;quot;== SkyNET == === Overview ===  SkyNET manages long-running BOSS Participants.  It provides:  * daemonisation * start/stop control * consistent logging * user-owned participants  ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SkyNET ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
SkyNET manages long-running BOSS Participants.&lt;br /&gt;
&lt;br /&gt;
It provides:&lt;br /&gt;
&lt;br /&gt;
* daemonisation&lt;br /&gt;
* start/stop control&lt;br /&gt;
* consistent logging&lt;br /&gt;
* user-owned participants &lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
  &lt;br /&gt;
==== SUSE ====&lt;br /&gt;
&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-skynet&lt;br /&gt;
&lt;br /&gt;
If you installed a minimal OpenSUSE you might get a dependency error and as shown here proceed with choice 1 :&lt;br /&gt;
&lt;br /&gt;
  Problem: boss-skynet-0.1-5.1.noarch requires /usr/bin/python, but this requirement cannot be provided&lt;br /&gt;
    uninstallable providers: python-base-2.7-8.4.i586[openSUSE-11.4-11.4-0]&lt;br /&gt;
                     python-base-2.7-8.4.x86_64[openSUSE-11.4-11.4-0]&lt;br /&gt;
   Solution 1: deinstallation of patterns-openSUSE-minimal_base-11.4-6.9.1.x86_64&lt;br /&gt;
   Solution 2: do not install boss-skynet-0.1-5.1.noarch&lt;br /&gt;
   Solution 3: break boss-skynet by ignoring some of its dependencies&lt;br /&gt;
  Choose from above solutions by number or cancel [1/2/3/c] (c): 1&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
&lt;br /&gt;
==== Debian Squeeze/6.0 ====&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/apt/sources.list.d/MINT.list&lt;br /&gt;
 deb http://repo.pub.meego.com/Project:/MINT:/RC/Debian_6.0/ /&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 apt-get install --no-install-recommends boss-skynet&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The /etc/skynet/skynet.conf file specifies where SkyNET stores the&lt;br /&gt;
running participants and where daemontools monitors them&lt;br /&gt;
(/var/lib/SkyNET/services/ and /var/lib/SkyNET/store/ by default)&lt;br /&gt;
&lt;br /&gt;
The [boss] section specifies the boss instance used by default and the credentials&lt;br /&gt;
required. Individual participants can override this.&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS</id>
		<title>Release Infrastructure/BOSS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS"/>
				<updated>2011-08-03T11:19:10Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* BOSS Implementation and Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BOSS &amp;quot;Build Orchestration Supervision System&amp;quot; =&lt;br /&gt;
BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps.&lt;br /&gt;
&lt;br /&gt;
MeeGo and the MeeGo Community Edition use BOSS to automate processes and to orchestrate a CI (Continuous Integration) ecosystem around OBS.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[/Installation|Installation]]&lt;br /&gt;
* [[/Roadmap|Roadmap]]&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Boss0.png]]&lt;br /&gt;
&lt;br /&gt;
== Why ==&lt;br /&gt;
* we need a robust, flexible way of configuring a set of triggers (ex. OBS event or a submit request) and responses&lt;br /&gt;
* OBS is a build system, not a general workflow system&lt;br /&gt;
* there is need for automation of responses to OBS actions results&lt;br /&gt;
* OBS requests are good but not flexible nor extensible&lt;br /&gt;
* there's fear of OBS becoming a big black box doing all the magic (maintainability)&lt;br /&gt;
* Hermes is there, but it is just taking care of notifications&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* parallel workflows for parallel software programmes&lt;br /&gt;
* allows for parallel implementation of the system&lt;br /&gt;
* plugins are usable independently&lt;br /&gt;
* take away the productization process/logic from the build infrastructure&lt;br /&gt;
&lt;br /&gt;
== BOSS Implementation and Design ==&lt;br /&gt;
There is a page describing the details of the [[/Design|design]] &lt;br /&gt;
&lt;br /&gt;
* a workflow framework allowing site-specific workflow definition&lt;br /&gt;
* a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework&lt;br /&gt;
* a queue-based job distribution system that handles delivery to pools of workers&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
* AMQP: [http://www.amqp.org AMQP.org] has the very readable [http://www.amqp.org/confluence/download/attachments/720900/amqp0-9-1.pdf?version=1&amp;amp;modificationDate=1227526523000 0.9.1 specification (pdf)]&lt;br /&gt;
* Ruote: [http://wiki.github.com/jmettraux/ruote/overview An overview of Ruote]&lt;br /&gt;
* [[/Performance/Results|Performance tests]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T11:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
** [[/BOSS/Standard_workflow|standard workflow]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:43:30Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
* MINT (MeeGo Integration) is a platform composed of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
* MINT provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
* MINT is a platform not a product, delivering a base to build a CI infrastructure to suit each customer's need.&lt;br /&gt;
* MINT out-of-the-box provides an end-to-end build and release infrastructure for making linux based products.&lt;br /&gt;
* Different deployments may have additional systems and MINT is designed to allow components to be replaced or added to fulfill different needs.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:31:56Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* New BOSS SkyNET */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:17:57Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ([[/BOSS/Participants|Participants]])&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:16:20Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system has a minimal core and all operations and functions are implemented as plugins ('participants')&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T10:03:48Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** On-device Testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.bugzilla.org)&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system is designed to not have any hardcoded functions, but rather have each operation/function is written in a plugin (participant)&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-08-03T09:55:52Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Covers all the activities involved in continuous integration&lt;br /&gt;
** Error and feature management, through bugzilla integration (www.biugzilla.org)&lt;br /&gt;
** On device testing, through integration with OTS (http://wiki.meego.com/Quality/QA-tools/OTS/About)&lt;br /&gt;
** Creation of installable/flashable images&lt;br /&gt;
** Building through integration with OBS (http://en.opensuse.org//Portal:Build_Service)&lt;br /&gt;
** publishing and notifictaions&lt;br /&gt;
** Reporting on releases progress&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable&lt;br /&gt;
** based on mature, production level opensource projects&lt;br /&gt;
** Reliable messaging using the AMQP standard, means no events will be lost&lt;br /&gt;
** Workflow management based on ruote, an enterprise grade workflow engine&lt;br /&gt;
* Robust&lt;br /&gt;
** Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system is designed to not have any hardcoded funtions, but rather have each operation/function is written in a plugin (participant)&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap</id>
		<title>Release Infrastructure/BOSS/Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap"/>
				<updated>2011-07-25T10:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Feature complete CLI for: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some technical scope for the core BOSS components.&lt;br /&gt;
&lt;br /&gt;
BOSS Core covers:&lt;br /&gt;
&lt;br /&gt;
* BOSS (A ruote worker daemon and RabbitMQ integration)&lt;br /&gt;
* SkyNET (daemontools based participant pool manager)&lt;br /&gt;
* BOSS-viewer (System management Web UI)&lt;br /&gt;
* Standard workflow&lt;br /&gt;
* OBS integration (Robotic integrator)&lt;br /&gt;
&lt;br /&gt;
Additional systems such as REVS and IMG are handled independently.&lt;br /&gt;
&lt;br /&gt;
= BOSS Scope / Technical Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Out-of-the Box Goals ==&lt;br /&gt;
&lt;br /&gt;
* (x) Install guide for : BOSS, SkyNET, BOSS-Viewer, OBS plugin&lt;br /&gt;
* (x) Sample Process&lt;br /&gt;
* (x) Sample Participant&lt;br /&gt;
* (x) Sample Launcher&lt;br /&gt;
&lt;br /&gt;
== BOSS Installable Components ==&lt;br /&gt;
&lt;br /&gt;
=== BOSS engine ===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Rewrite to use daemontools to manage ruote worker instead of daemon-kit&lt;br /&gt;
* ( ) Move to Redis based storage (for replication and general HA)&lt;br /&gt;
* (x) Support participant registration process&lt;br /&gt;
* (x) Support start/stop&lt;br /&gt;
* (x) Support boss.config ini file&lt;br /&gt;
&lt;br /&gt;
=== Web based monitor/control===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* ( ) Logging view&lt;br /&gt;
* ( ) Anonymous view&lt;br /&gt;
* (x) admin user control&lt;br /&gt;
* ( ) normal user control&lt;br /&gt;
* ( ) Rails based to allow OBS integration&lt;br /&gt;
&lt;br /&gt;
== SkyNET Features:==&lt;br /&gt;
&lt;br /&gt;
=== Document design and functionality===&lt;br /&gt;
&lt;br /&gt;
* ( ) System overview&lt;br /&gt;
* (x) Installation&lt;br /&gt;
* (.) Access control behaviour (given user-owned participants)&lt;br /&gt;
&lt;br /&gt;
=== Feature complete CLI for:===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Install Participant&lt;br /&gt;
** (x) support multiple instances&lt;br /&gt;
* (x) Uninstall Participant&lt;br /&gt;
** (x) support multiple instances&lt;br /&gt;
* (x) Start / Stop Participant&lt;br /&gt;
** (x) support multiple instances&lt;br /&gt;
* (x) System start/shutdown&lt;br /&gt;
* (x) Register participant&lt;br /&gt;
* (x) List of participants with 'active/registered'&lt;br /&gt;
* ( ) Info command (location, installation package, yaml derived description)&lt;br /&gt;
* ( ) Improved upgrade support (reload if running, reinstall, rebuild templates)&lt;br /&gt;
* ( ) Ruby client to make it more relevant upstream&lt;br /&gt;
&amp;lt;blockquote&amp;gt;''maybe rewrite skynet in python and provide a REST api or something, which would allow a ruby client as well as a webui''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* ( ) Skynet unix group so normal users can activate participants&lt;br /&gt;
&lt;br /&gt;
=== Python Participant (Exo) library===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Workitem handling&lt;br /&gt;
* ( ) Workitem Control handling (cancel/status)&lt;br /&gt;
* ( ) Lifecycle handling&lt;br /&gt;
* ( ) Provide a Exo.Verify() class with assertNotNull, assertIsList(v, default), assertHasRun(particpant) (now in change_request_state)&lt;br /&gt;
* ( ) ProcessException hierarchy (replace RuntimeError(&amp;quot;Missing mandatory field&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Python ruote client library===&lt;br /&gt;
&lt;br /&gt;
* (x) Ruote workitem support&lt;br /&gt;
* (x) Simple workitem useage&lt;br /&gt;
* ( ) Migration to Pika for AMQP&lt;br /&gt;
* ( ) Use SSL with RabbitMQ http://www.rabbitmq.com/ssl.html&lt;br /&gt;
* ( ) Support cancel/pause/resume&lt;br /&gt;
* ( ) Complete documentation&lt;br /&gt;
* ( ) 100% test coverage&lt;br /&gt;
&lt;br /&gt;
=== REST API to participant status===&lt;br /&gt;
&lt;br /&gt;
Note combining 'install' and 'run' and 'root' is a security issue.&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) GET : status&lt;br /&gt;
* ( ) PUT : install&lt;br /&gt;
* ( ) POST : Running=True/False&lt;br /&gt;
* ( ) DELETE : uninstall&lt;br /&gt;
&lt;br /&gt;
=== Clustering ability (ie see multiple SkyNETs in one view)===&lt;br /&gt;
&lt;br /&gt;
* ( ) Follows on from REST&lt;br /&gt;
&lt;br /&gt;
== Process Management:==&lt;br /&gt;
&lt;br /&gt;
=== Ruote On Rails:===&lt;br /&gt;
&lt;br /&gt;
An web framework for workflow interaction&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
&lt;br /&gt;
=== Standard Workflow===&lt;br /&gt;
&lt;br /&gt;
* (x) Develop and document CI workflow&lt;br /&gt;
* (x) Integrate robogrator to OBS (per project workflows)&lt;br /&gt;
* ( ) Extend robogrator process/event manager&lt;br /&gt;
* (.) Store workflows in database (Redis) for remote access&lt;br /&gt;
* ( ) Allow multiple projects to share process components&lt;br /&gt;
* ( ) Improve documentation&lt;br /&gt;
* ( ) Best practice guidelines&lt;br /&gt;
* ( ) Participant libraries :&lt;br /&gt;
* (.) Package QA checks&lt;br /&gt;
* ( ) git&lt;br /&gt;
* (.) OBS Project&lt;br /&gt;
* (.) OBS Requests&lt;br /&gt;
* (.) REVS&lt;br /&gt;
* ( ) OTS&lt;br /&gt;
* (.) IMG&lt;br /&gt;
* (.) Bugzilla&lt;br /&gt;
&lt;br /&gt;
=== User Interaction Participant===&lt;br /&gt;
&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Simple standalone web query&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
* (.) Extend to irc/jabber&lt;br /&gt;
&lt;br /&gt;
=== Test and debugging framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Policy / best practice&lt;br /&gt;
* ( ) Trace and profile support&lt;br /&gt;
&lt;br /&gt;
=== Notification Framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Possibly use Hermes&lt;br /&gt;
* (x) irc notifier&lt;br /&gt;
* ( ) jabber notifier&lt;br /&gt;
* ( ) email notifier&lt;br /&gt;
* ( ) link to backend user preferences&lt;br /&gt;
* ( ) configure per-project (tree?)&lt;br /&gt;
&lt;br /&gt;
== OBS==&lt;br /&gt;
&lt;br /&gt;
=== UI===&lt;br /&gt;
&lt;br /&gt;
* ( ) Integrate BOSSS workflow into OBS UI&lt;br /&gt;
&lt;br /&gt;
=== State model===&lt;br /&gt;
&lt;br /&gt;
* ( ) Define state for projects/repos/packages&lt;br /&gt;
* ( ) Define state for requests&lt;br /&gt;
* ( ) ensure OBS events api is supported upstream&lt;br /&gt;
&lt;br /&gt;
== High Level Outstanding Areas ==&lt;br /&gt;
&lt;br /&gt;
=== Security===&lt;br /&gt;
&lt;br /&gt;
* (x) Run participants as configurable users&lt;br /&gt;
* (x) Run participants on remote machines&lt;br /&gt;
* ( ) Granular AMQP participant / access control&lt;br /&gt;
* ( ) Enable SSL AMQP connections&lt;br /&gt;
* ( ) Use client certs for authentication&lt;br /&gt;
* ( ) Ruote message signing system&lt;br /&gt;
&lt;br /&gt;
=== Management ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Monitoring processes&lt;br /&gt;
* ( ) Monitoring participants&lt;br /&gt;
* ( ) Upgrading&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Best practice&lt;br /&gt;
* ( ) Wiki&lt;br /&gt;
* ( ) Presentation&lt;br /&gt;
* ( ) Reference (BOSS process driven from src)&lt;br /&gt;
&lt;br /&gt;
=== Dashboard ===&lt;br /&gt;
&lt;br /&gt;
The entire BOSS area needs to have a coherent UI view.&lt;br /&gt;
* ( ) Project status summary&lt;br /&gt;
* ( ) Package status&lt;br /&gt;
&lt;br /&gt;
== BOSS Management==&lt;br /&gt;
&lt;br /&gt;
=== Setting Direction===&lt;br /&gt;
&lt;br /&gt;
The BOSS roadmap is, of course, driven by customer needs. The technical scope and current statment of capabilities outlined above were identified during work on earlier projects within Nokia; but the order of implementation depends on prioritisation - and that will be driven by upcoming users.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo N900 DE Project ====&lt;br /&gt;
&lt;br /&gt;
The DE project is an active customer whose needs are representative of general CI and release engineering BOSS customers. By focusing on them we ensure that BOSS development is both driven and driven in the right direction.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo:Apps ====&lt;br /&gt;
&lt;br /&gt;
MeeGo Apps is a community project which has a more user-facing process. This allows BOSS development to integrate into other UI systems.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo.com Deployment ====&lt;br /&gt;
&lt;br /&gt;
Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.&lt;br /&gt;
&lt;br /&gt;
=== Immediate Roadmap ===&lt;br /&gt;
&lt;br /&gt;
==== Bugzilla integration (Target: Pre SF2011)====&lt;br /&gt;
&lt;br /&gt;
* (.) Process definition&lt;br /&gt;
* (.) Identity relevant changelog data&lt;br /&gt;
* (.) Extract bugs and comment&lt;br /&gt;
* (.) Change bug state&lt;br /&gt;
&lt;br /&gt;
==== Repo publish process (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Triggered by time&lt;br /&gt;
* ( ) Triggered by irc bot&lt;br /&gt;
* ( ) Freeze repo building&lt;br /&gt;
* ( ) Rsync&lt;br /&gt;
* ( ) Publish&lt;br /&gt;
* ( ) Notify&lt;br /&gt;
&lt;br /&gt;
==== Monitoring (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Process viewing&lt;br /&gt;
* ( ) Alerts on process failure&lt;br /&gt;
&lt;br /&gt;
==== Image Generation (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) DE Image generation&lt;br /&gt;
&lt;br /&gt;
==== VCS integration (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) VCS monitor for gitorious and github&lt;br /&gt;
&lt;br /&gt;
==== BOSS UI Process Integration  (Target July 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) Depends on Robogrator v2 for network DB&lt;br /&gt;
* ( ) Tab to view current process definitions active in a project&lt;br /&gt;
&lt;br /&gt;
Author: David Greaves&lt;br /&gt;
&lt;br /&gt;
Date: 2011-05-08 13:54:12 BST&lt;br /&gt;
&lt;br /&gt;
HTML generated by org-mode 7.3 in emacs 23&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-07-13T12:40:14Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* R */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Easy deployment&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable messaging, means no events will be lost&lt;br /&gt;
* Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system is designed to not have any hardcoded funtions, but rather have each operation/function is written in a plugin (participant)&lt;br /&gt;
* Rich notification mechanisms&lt;br /&gt;
* BugZilla integration&lt;br /&gt;
* Creates flashable/installable images&lt;br /&gt;
* Testing integration&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== [[/Packaging|Release team packaging information]] ==&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-07-13T12:39:27Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Easy deployment&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable messaging, means no events will be lost&lt;br /&gt;
* Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system is designed to not have any hardcoded funtions, but rather have each operation/function is written in a plugin (participant)&lt;br /&gt;
* Rich notification mechanisms&lt;br /&gt;
* BugZilla integration&lt;br /&gt;
* Creates flashable/installable images&lt;br /&gt;
* Testing integration&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
* [[/Packaging|Release team packaging information]]&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-07-13T12:31:51Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Easy deployment&lt;br /&gt;
* Distributed architecture means no single point of failure and better resource management&lt;br /&gt;
* Massive parallelism, all the components of the system run multiple parallel jobs serving several parallel workflows&lt;br /&gt;
* Parallel workflows, means you can run many different workflows servicing multiple products&lt;br /&gt;
* Simple workflow description language&lt;br /&gt;
* Reliable messaging, means no events will be lost&lt;br /&gt;
* Live migration of workflows, means you don't need to bring your system down for changing your workflow. Simply deploy your workflow and it gets loaded without disruption to currently running jobs&lt;br /&gt;
* Extensible. The system is designed to not have any hardcoded funtions, but rather have each operation/function is written in a plugin (participant)&lt;br /&gt;
* Rich notification mechanisms&lt;br /&gt;
* Interacts with BugZilla&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
* [[/Packaging|Release team packaging information]]&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-07-13T12:00:23Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MINT =&lt;br /&gt;
MINT (MeeGo Integration) is a set of integrated tools, that was created with the goal of creating a CI system around OBS for enabling vendors to build meego products.&lt;br /&gt;
It provides a business process automation system, interacting with many different systems such as bugzilla and OBS to facilitate product building.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
** [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
** [[/BOSS_Process|Process documentation]]&lt;br /&gt;
** [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
== R ==&lt;br /&gt;
* [[/Packaging|Release team packaging information]]&lt;br /&gt;
&lt;br /&gt;
== misc. ==&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
== Team ==&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/devroot</id>
		<title>Release Infrastructure/devroot</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/devroot"/>
				<updated>2011-06-30T12:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: more formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== story ==&lt;br /&gt;
As a developer I need to be able to &lt;br /&gt;
* '''quickly''' build, deploy, test my changes&lt;br /&gt;
* with possibility to work offline&lt;br /&gt;
* have similar build results than the releasing system so my test results are reliable&lt;br /&gt;
* be able to skip reverse dependency builds&lt;br /&gt;
* do all that in with a very simple tool&lt;br /&gt;
In order to speed up the development process, and be more productive&lt;br /&gt;
&lt;br /&gt;
== use case ==&lt;br /&gt;
'''case 1'''&lt;br /&gt;
# modify one package&lt;br /&gt;
# build it&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
'''case 2'''&lt;br /&gt;
# modify code across the stack (multiple pkgs)&lt;br /&gt;
# recursively build all modified pkgs&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
&lt;br /&gt;
== solution ==&lt;br /&gt;
these requirements can be met easily with manual work, there is no missing tools, the real problem is in simplifying and automating&lt;br /&gt;
&lt;br /&gt;
=== devroot ===&lt;br /&gt;
a tool that wraps all the commands to run that process, automating many manual steps&lt;br /&gt;
# init&lt;br /&gt;
# update&lt;br /&gt;
# build&lt;br /&gt;
# target-flash&lt;br /&gt;
# target-update&lt;br /&gt;
# target-test&lt;br /&gt;
&lt;br /&gt;
==== init(conf, [path]) ====&lt;br /&gt;
takes as input the list of packages the developer will work on (FIXME: more details needed)&lt;br /&gt;
create a chroot will all operations will run, it is necessary to isolate the build env to not get reliable results&lt;br /&gt;
fetch all needed sources and extract them in the specified location e.g /home/user/chroot/usr/share/devtree/&lt;br /&gt;
chroot, will contain a bootstrap of the desired distro, all the build tools, and the build dependencies of the packages specified&lt;br /&gt;
open items:&lt;br /&gt;
* where te fetch sources? src.rpm or git trees or obs projects?&lt;br /&gt;
* do we fetch dependencies? what about reverse dependencies?&lt;br /&gt;
&lt;br /&gt;
==== update:([path]) ====&lt;br /&gt;
update the chroot env, and the sources&lt;br /&gt;
provide a merge possibility of the newer code and the modifications done locally&lt;br /&gt;
&lt;br /&gt;
==== build ====&lt;br /&gt;
this should perform&lt;br /&gt;
* build (make)&lt;br /&gt;
* package&lt;br /&gt;
* publish&lt;br /&gt;
this is what rpmbuild does, but it would require that we archive the source tree and then rpmbuild would unpack it, also rpm would always flush the buildroot and start building from  scratch again. this way is good for releasing but too slow for our purpose. rpmbuild has oprtions we can use to control all those and reach the desired process&lt;br /&gt;
build in place (no archive) and keep old build data, so rebuilds are much faster (depending on how make detects changes)&lt;br /&gt;
the build script of OBS should be used as it will produce a similar result as what happens on OBS&lt;br /&gt;
this covers the build and package, publish is needed to make that package available to the target device&lt;br /&gt;
this can be done through filesystem or http&lt;br /&gt;
if build method is called from inside a certain pkg tree e.g /home/user/chroot/usr/share/devtree/pkg1, then it would only build this package&lt;br /&gt;
if called from the devtree root /home/user/chroot/usr/share/devtree/ the it should detect whcih pkgs have modifications and only build those&lt;br /&gt;
&lt;br /&gt;
==== target-flash ====&lt;br /&gt;
create an image using mic, and flash it to device, tools and details are device specific. we might skip this method&lt;br /&gt;
&lt;br /&gt;
==== target-update ====&lt;br /&gt;
connect to device over usb-network and update the device through the published repo&lt;br /&gt;
e.g. zypper ref;zypper up&lt;br /&gt;
&lt;br /&gt;
==== target-test(test_package) ====&lt;br /&gt;
connect to device over usb-network and run the test cases provided. a good tool for that would be test-runner-lite part of OTS testing suite&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/devroot</id>
		<title>Release Infrastructure/devroot</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/devroot"/>
				<updated>2011-06-30T11:59:28Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: formatting fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== story ==&lt;br /&gt;
As a developer I need to be able to &lt;br /&gt;
* &amp;quot;quickly&amp;quot; build, deploy, test my changes&lt;br /&gt;
* with possibility to work offline&lt;br /&gt;
* have similar build results than the releasing system so my test results are reliable&lt;br /&gt;
* be able to skip reverse dependency builds&lt;br /&gt;
* do all that in with a very simple tool&lt;br /&gt;
In order to speed up the development process, and be more productive&lt;br /&gt;
&lt;br /&gt;
== use case ==&lt;br /&gt;
# modify one package&lt;br /&gt;
# build it&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
&lt;br /&gt;
# modify code across the stack (multiple pkgs)&lt;br /&gt;
# recursively build all modified pkgs&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
&lt;br /&gt;
== solution ==&lt;br /&gt;
these requirements can be met easily with manual work, there is no missing tools, the real problem is in simplifying and automating&lt;br /&gt;
&lt;br /&gt;
=== devroot ===&lt;br /&gt;
a tool that wraps all the commands to run that process, automating many manual steps&lt;br /&gt;
# init&lt;br /&gt;
# update&lt;br /&gt;
# build&lt;br /&gt;
# target-flash&lt;br /&gt;
# target-update&lt;br /&gt;
# target-test&lt;br /&gt;
&lt;br /&gt;
==== init(conf, [path]) ====&lt;br /&gt;
takes as input the list of packages the developer will work on (FIXME: more details needed)&lt;br /&gt;
create a chroot will all operations will run, it is necessary to isolate the build env to not get reliable results&lt;br /&gt;
fetch all needed sources and extract them in the specified location e.g /home/user/chroot/usr/share/devtree/&lt;br /&gt;
chroot, will contain a bootstrap of the desired distro, all the build tools, and the build dependencies of the packages specified&lt;br /&gt;
open items:&lt;br /&gt;
* where te fetch sources? src.rpm or git trees or obs projects?&lt;br /&gt;
* do we fetch dependencies? what about reverse dependencies?&lt;br /&gt;
&lt;br /&gt;
==== update:([path]) ====&lt;br /&gt;
update the chroot env, and the sources&lt;br /&gt;
provide a merge possibility of the newer code and the modifications done locally&lt;br /&gt;
&lt;br /&gt;
==== build ====&lt;br /&gt;
this should perform&lt;br /&gt;
* build (make)&lt;br /&gt;
* package&lt;br /&gt;
* publish&lt;br /&gt;
this is what rpmbuild does, but it would require that we archive the source tree and then rpmbuild would unpack it, also rpm would always flush the buildroot and start building from  scratch again. this way is good for releasing but too slow for our purpose. rpmbuild has oprtions we can use to control all those and reach the desired process&lt;br /&gt;
build in place (no archive) and keep old build data, so rebuilds are much faster (depending on how make detects changes)&lt;br /&gt;
the build script of OBS should be used as it will produce a similar result as what happens on OBS&lt;br /&gt;
this covers the build and package, publish is needed to make that package available to the target device&lt;br /&gt;
this can be done through filesystem or http&lt;br /&gt;
if build method is called from inside a certain pkg tree e.g /home/user/chroot/usr/share/devtree/pkg1, then it would only build this package&lt;br /&gt;
if called from the devtree root /home/user/chroot/usr/share/devtree/ the it should detect whcih pkgs have modifications and only build those&lt;br /&gt;
&lt;br /&gt;
==== target-flash ====&lt;br /&gt;
create an image using mic, and flash it to device, tools and details are device specific. we might skip this method&lt;br /&gt;
&lt;br /&gt;
==== target-update ====&lt;br /&gt;
connect to device over usb-network and update the device through the published repo&lt;br /&gt;
e.g. zypper ref;zypper up&lt;br /&gt;
&lt;br /&gt;
==== target-test(test_package) ====&lt;br /&gt;
connect to device over usb-network and run the test cases provided. a good tool for that would be test-runner-lite part of OTS testing suite&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/devroot</id>
		<title>Release Infrastructure/devroot</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/devroot"/>
				<updated>2011-06-30T11:52:02Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with &amp;quot;== story == As a developer I need to be able to  * &amp;quot;quickly&amp;quot; build, deploy, test my changes * with possibility to work offline * have similar build results than the releasing sys...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== story ==&lt;br /&gt;
As a developer I need to be able to &lt;br /&gt;
* &amp;quot;quickly&amp;quot; build, deploy, test my changes&lt;br /&gt;
* with possibility to work offline&lt;br /&gt;
* have similar build results than the releasing system so my test results are reliable&lt;br /&gt;
* be able to skip reverse dependency builds&lt;br /&gt;
* do all that in with a very simple tool&lt;br /&gt;
In order to speed up the development process, and be more productive&lt;br /&gt;
&lt;br /&gt;
== use case ==&lt;br /&gt;
# modify one package&lt;br /&gt;
# build it&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
&lt;br /&gt;
# modify code across the stack (multiple pkgs)&lt;br /&gt;
# recursively build all modified pkgs&lt;br /&gt;
# update target device&lt;br /&gt;
# run test cases&lt;br /&gt;
&lt;br /&gt;
== solution ==&lt;br /&gt;
these requirements can be met easily with manual work, there is no missing tools, the real problem is in simplifying and automating&lt;br /&gt;
&lt;br /&gt;
=== devroot ===&lt;br /&gt;
a tool that wraps all the commands to run that process, automating many manual steps&lt;br /&gt;
# init&lt;br /&gt;
# update&lt;br /&gt;
# build&lt;br /&gt;
# target-flash&lt;br /&gt;
# target-update&lt;br /&gt;
# target-test&lt;br /&gt;
&lt;br /&gt;
==== init(conf, [path]) ====&lt;br /&gt;
takes as input the list of packages the developer will work on (FIXME: more details needed)&lt;br /&gt;
create a chroot will all operations will run, it is necessary to isolate the build env to not get reliable results&lt;br /&gt;
fetch all needed sources and extract them in the specified location e.g /home/user/chroot/usr/share/devtree/&lt;br /&gt;
chroot, will contain a bootstrap of the desired distro, all the build tools, and the build dependencies of the packages specified&lt;br /&gt;
open items:&lt;br /&gt;
** where te fetch sources? src.rpm or git trees or obs projects?&lt;br /&gt;
** do we fetch dependencies? what about reverse dependencies?&lt;br /&gt;
&lt;br /&gt;
==== update:([path]) ====&lt;br /&gt;
update the chroot env, and the sources&lt;br /&gt;
provide a merge possibility of the newer code and the modifications done locally&lt;br /&gt;
&lt;br /&gt;
==== build ====&lt;br /&gt;
this should perform&lt;br /&gt;
** build (make)&lt;br /&gt;
** package&lt;br /&gt;
** publish&lt;br /&gt;
this is what rpmbuild does, but it would require that we archive the source tree and then rpmbuild would unpack it, also rpm would always flush the buildroot and start building from  scratch again. this way is good for releasing but too slow for our purpose. rpmbuild has oprtions we can use to control all those and reach the desired process&lt;br /&gt;
build in place (no archive) and keep old build data, so rebuilds are much faster (depending on how make detects changes)&lt;br /&gt;
the build script of OBS should be used as it will produce a similar result as what happens on OBS&lt;br /&gt;
this covers the build and package, publish is needed to make that package available to the target device&lt;br /&gt;
this can be done through filesystem or http&lt;br /&gt;
if build method is called from inside a certain pkg tree e.g /home/user/chroot/usr/share/devtree/pkg1, then it would only build this package&lt;br /&gt;
if called from the devtree root /home/user/chroot/usr/share/devtree/ the it should detect whcih pkgs have modifications and only build those&lt;br /&gt;
&lt;br /&gt;
==== target-flash ====&lt;br /&gt;
create an image using mic, and flash it to device, tools and details are device specific. we might skip this method&lt;br /&gt;
&lt;br /&gt;
==== target-update ====&lt;br /&gt;
connect to device over usb-network and update the device through the published repo&lt;br /&gt;
e.g. zypper ref;zypper up&lt;br /&gt;
&lt;br /&gt;
==== target-test(test_package) ====&lt;br /&gt;
connect to device over usb-network and run the test cases provided. a good tool for that would be test-runner-lite part of OTS testing suite&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2011-06-30T11:45:58Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Describe the overall release and build infrastructure.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* Build System OBS&lt;br /&gt;
&lt;br /&gt;
* [[/Packaging|Release team packaging information]]&lt;br /&gt;
* [[/BOSS_Participant|Participant documentation]]&lt;br /&gt;
* [[/BOSS_Launcher|Launcher documentation]]&lt;br /&gt;
* [[/BOSS_Process|Process documentation]]&lt;br /&gt;
* [[/BOSS_Testing|Testing]]&lt;br /&gt;
* [[/devroot|devroot]]&lt;br /&gt;
&lt;br /&gt;
==New BOSS SkyNET==&lt;br /&gt;
* [[/BOSS/Installation|BOSS and Skynet]]&lt;br /&gt;
* [[/BOSS/Participants|Participants]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap</id>
		<title>Release Infrastructure/BOSS/Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap"/>
				<updated>2011-06-17T11:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Feature complete CLI for: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some technical scope for the core BOSS components.&lt;br /&gt;
&lt;br /&gt;
BOSS Core covers:&lt;br /&gt;
&lt;br /&gt;
* BOSS (A ruote worker daemon and RabbitMQ integration)&lt;br /&gt;
* SkyNET (daemontools based participant pool manager)&lt;br /&gt;
* BOSS-viewer (System management Web UI)&lt;br /&gt;
* Standard workflow&lt;br /&gt;
* OBS integration (Robotic integrator)&lt;br /&gt;
&lt;br /&gt;
Additional systems such as REVS and IMG are handled independently.&lt;br /&gt;
&lt;br /&gt;
= BOSS Scope / Technical Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Out-of-the Box Goals ==&lt;br /&gt;
&lt;br /&gt;
* (x) Install guide for : BOSS, SkyNET, BOSS-Viewer, OBS plugin&lt;br /&gt;
* (x) Sample Process&lt;br /&gt;
* (x) Sample Participant&lt;br /&gt;
* (x) Sample Launcher&lt;br /&gt;
&lt;br /&gt;
== BOSS Installable Components ==&lt;br /&gt;
&lt;br /&gt;
=== BOSS engine ===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Rewrite to use daemontools to manage ruote worker instead of daemon-kit&lt;br /&gt;
* ( ) Move to Redis based storage (for replication and general HA)&lt;br /&gt;
* (x) Support participant registration process&lt;br /&gt;
* (x) Support start/stop&lt;br /&gt;
* (x) Support boss.config ini file&lt;br /&gt;
&lt;br /&gt;
=== Web based monitor/control===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* ( ) Logging view&lt;br /&gt;
* ( ) Anonymous view&lt;br /&gt;
* (x) admin user control&lt;br /&gt;
* ( ) normal user control&lt;br /&gt;
* ( ) Rails based to allow OBS integration&lt;br /&gt;
&lt;br /&gt;
== SkyNET Features:==&lt;br /&gt;
&lt;br /&gt;
=== Document design and functionality===&lt;br /&gt;
&lt;br /&gt;
* ( ) System overview&lt;br /&gt;
* (x) Installation&lt;br /&gt;
* (.) Access control behaviour (given user-owned participants)&lt;br /&gt;
&lt;br /&gt;
=== Feature complete CLI for:===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Install Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* ( ) Uninstall Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* (x) Start / Stop Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* (x) System start/shutdown&lt;br /&gt;
* (x) Register participant&lt;br /&gt;
* (x) List of participants with 'active/registered'&lt;br /&gt;
* ( ) Info command (location, installation package, yaml derived description)&lt;br /&gt;
* ( ) Improved upgrade support (reload if running, reinstall, rebuild templates)&lt;br /&gt;
* ( ) Ruby client to make it more relevant upstream&lt;br /&gt;
&amp;lt;blockquote&amp;gt;''maybe rewrite skynet in python and provide a REST api or something, which would allow a ruby client as well as a webui''&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* ( ) Skynet unix group so normal users can activate participants&lt;br /&gt;
&lt;br /&gt;
=== Python Participant (Exo) library===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Workitem handling&lt;br /&gt;
* ( ) Workitem Control handling (cancel/status)&lt;br /&gt;
* ( ) Lifecycle handling&lt;br /&gt;
* ( ) Provide a Exo.Verify() class with assertNotNull, assertIsList(v, default), assertHasRun(particpant) (now in change_request_state)&lt;br /&gt;
* ( ) ProcessException hierarchy (replace RuntimeError(&amp;quot;Missing mandatory field&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Python ruote client library===&lt;br /&gt;
&lt;br /&gt;
* (x) Ruote workitem support&lt;br /&gt;
* (x) Simple workitem useage&lt;br /&gt;
* ( ) Migration to Pika for AMQP&lt;br /&gt;
* ( ) Use SSL with RabbitMQ http://www.rabbitmq.com/ssl.html&lt;br /&gt;
* ( ) Support cancel/pause/resume&lt;br /&gt;
* ( ) Complete documentation&lt;br /&gt;
* ( ) 100% test coverage&lt;br /&gt;
&lt;br /&gt;
=== REST API to participant status===&lt;br /&gt;
&lt;br /&gt;
Note combining 'install' and 'run' and 'root' is a security issue.&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) GET : status&lt;br /&gt;
* ( ) PUT : install&lt;br /&gt;
* ( ) POST : Running=True/False&lt;br /&gt;
* ( ) DELETE : uninstall&lt;br /&gt;
&lt;br /&gt;
=== Clustering ability (ie see multiple SkyNETs in one view)===&lt;br /&gt;
&lt;br /&gt;
* ( ) Follows on from REST&lt;br /&gt;
&lt;br /&gt;
== Process Management:==&lt;br /&gt;
&lt;br /&gt;
=== Ruote On Rails:===&lt;br /&gt;
&lt;br /&gt;
An web framework for workflow interaction&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
&lt;br /&gt;
=== Standard Workflow===&lt;br /&gt;
&lt;br /&gt;
* (x) Develop and document CI workflow&lt;br /&gt;
* (x) Integrate robogrator to OBS (per project workflows)&lt;br /&gt;
* ( ) Extend robogrator process/event manager&lt;br /&gt;
* (.) Store workflows in database (Redis) for remote access&lt;br /&gt;
* ( ) Allow multiple projects to share process components&lt;br /&gt;
* ( ) Improve documentation&lt;br /&gt;
* ( ) Best practice guidelines&lt;br /&gt;
* ( ) Participant libraries :&lt;br /&gt;
* (.) Package QA checks&lt;br /&gt;
* ( ) git&lt;br /&gt;
* (.) OBS Project&lt;br /&gt;
* (.) OBS Requests&lt;br /&gt;
* (.) REVS&lt;br /&gt;
* ( ) OTS&lt;br /&gt;
* (.) IMG&lt;br /&gt;
* (.) Bugzilla&lt;br /&gt;
&lt;br /&gt;
=== User Interaction Participant===&lt;br /&gt;
&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Simple standalone web query&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
* (.) Extend to irc/jabber&lt;br /&gt;
&lt;br /&gt;
=== Test and debugging framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Policy / best practice&lt;br /&gt;
* ( ) Trace and profile support&lt;br /&gt;
&lt;br /&gt;
=== Notification Framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Possibly use Hermes&lt;br /&gt;
* (x) irc notifier&lt;br /&gt;
* ( ) jabber notifier&lt;br /&gt;
* ( ) email notifier&lt;br /&gt;
* ( ) link to backend user preferences&lt;br /&gt;
* ( ) configure per-project (tree?)&lt;br /&gt;
&lt;br /&gt;
== OBS==&lt;br /&gt;
&lt;br /&gt;
=== UI===&lt;br /&gt;
&lt;br /&gt;
* ( ) Integrate BOSSS workflow into OBS UI&lt;br /&gt;
&lt;br /&gt;
=== State model===&lt;br /&gt;
&lt;br /&gt;
* ( ) Define state for projects/repos/packages&lt;br /&gt;
* ( ) Define state for requests&lt;br /&gt;
* ( ) ensure OBS events api is supported upstream&lt;br /&gt;
&lt;br /&gt;
== High Level Outstanding Areas ==&lt;br /&gt;
&lt;br /&gt;
=== Security===&lt;br /&gt;
&lt;br /&gt;
* (x) Run participants as configurable users&lt;br /&gt;
* (x) Run participants on remote machines&lt;br /&gt;
* ( ) Granular AMQP participant / access control&lt;br /&gt;
* ( ) Enable SSL AMQP connections&lt;br /&gt;
* ( ) Use client certs for authentication&lt;br /&gt;
* ( ) Ruote message signing system&lt;br /&gt;
&lt;br /&gt;
=== Management ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Monitoring processes&lt;br /&gt;
* ( ) Monitoring participants&lt;br /&gt;
* ( ) Upgrading&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Best practice&lt;br /&gt;
* ( ) Wiki&lt;br /&gt;
* ( ) Presentation&lt;br /&gt;
* ( ) Reference (BOSS process driven from src)&lt;br /&gt;
&lt;br /&gt;
=== Dashboard ===&lt;br /&gt;
&lt;br /&gt;
The entire BOSS area needs to have a coherent UI view.&lt;br /&gt;
* ( ) Project status summary&lt;br /&gt;
* ( ) Package status&lt;br /&gt;
&lt;br /&gt;
== BOSS Management==&lt;br /&gt;
&lt;br /&gt;
=== Setting Direction===&lt;br /&gt;
&lt;br /&gt;
The BOSS roadmap is, of course, driven by customer needs. The technical scope and current statment of capabilities outlined above were identified during work on earlier projects within Nokia; but the order of implementation depends on prioritisation - and that will be driven by upcoming users.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo N900 DE Project ====&lt;br /&gt;
&lt;br /&gt;
The DE project is an active customer whose needs are representative of general CI and release engineering BOSS customers. By focusing on them we ensure that BOSS development is both driven and driven in the right direction.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo:Apps ====&lt;br /&gt;
&lt;br /&gt;
MeeGo Apps is a community project which has a more user-facing process. This allows BOSS development to integrate into other UI systems.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo.com Deployment ====&lt;br /&gt;
&lt;br /&gt;
Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.&lt;br /&gt;
&lt;br /&gt;
=== Immediate Roadmap ===&lt;br /&gt;
&lt;br /&gt;
==== Bugzilla integration (Target: Pre SF2011)====&lt;br /&gt;
&lt;br /&gt;
* (.) Process definition&lt;br /&gt;
* (.) Identity relevant changelog data&lt;br /&gt;
* (.) Extract bugs and comment&lt;br /&gt;
* (.) Change bug state&lt;br /&gt;
&lt;br /&gt;
==== Repo publish process (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Triggered by time&lt;br /&gt;
* ( ) Triggered by irc bot&lt;br /&gt;
* ( ) Freeze repo building&lt;br /&gt;
* ( ) Rsync&lt;br /&gt;
* ( ) Publish&lt;br /&gt;
* ( ) Notify&lt;br /&gt;
&lt;br /&gt;
==== Monitoring (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Process viewing&lt;br /&gt;
* ( ) Alerts on process failure&lt;br /&gt;
&lt;br /&gt;
==== Image Generation (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) DE Image generation&lt;br /&gt;
&lt;br /&gt;
==== VCS integration (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) VCS monitor for gitorious and github&lt;br /&gt;
&lt;br /&gt;
==== BOSS UI Process Integration  (Target July 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) Depends on Robogrator v2 for network DB&lt;br /&gt;
* ( ) Tab to view current process definitions active in a project&lt;br /&gt;
&lt;br /&gt;
Author: David Greaves&lt;br /&gt;
&lt;br /&gt;
Date: 2011-05-08 13:54:12 BST&lt;br /&gt;
&lt;br /&gt;
HTML generated by org-mode 7.3 in emacs 23&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap</id>
		<title>Release Infrastructure/BOSS/Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Roadmap"/>
				<updated>2011-06-17T11:15:21Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Feature complete CLI for: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides some technical scope for the core BOSS components.&lt;br /&gt;
&lt;br /&gt;
BOSS Core covers:&lt;br /&gt;
&lt;br /&gt;
* BOSS (A ruote worker daemon and RabbitMQ integration)&lt;br /&gt;
* SkyNET (daemontools based participant pool manager)&lt;br /&gt;
* BOSS-viewer (System management Web UI)&lt;br /&gt;
* Standard workflow&lt;br /&gt;
* OBS integration (Robotic integrator)&lt;br /&gt;
&lt;br /&gt;
Additional systems such as REVS and IMG are handled independently.&lt;br /&gt;
&lt;br /&gt;
= BOSS Scope / Technical Roadmap =&lt;br /&gt;
&lt;br /&gt;
== Out-of-the Box Goals ==&lt;br /&gt;
&lt;br /&gt;
* (x) Install guide for : BOSS, SkyNET, BOSS-Viewer, OBS plugin&lt;br /&gt;
* (x) Sample Process&lt;br /&gt;
* (x) Sample Participant&lt;br /&gt;
* (x) Sample Launcher&lt;br /&gt;
&lt;br /&gt;
== BOSS Installable Components ==&lt;br /&gt;
&lt;br /&gt;
=== BOSS engine ===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Rewrite to use daemontools to manage ruote worker instead of daemon-kit&lt;br /&gt;
* ( ) Move to Redis based storage (for replication and general HA)&lt;br /&gt;
* (x) Support participant registration process&lt;br /&gt;
* (x) Support start/stop&lt;br /&gt;
* (x) Support boss.config ini file&lt;br /&gt;
&lt;br /&gt;
=== Web based monitor/control===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* ( ) Logging view&lt;br /&gt;
* ( ) Anonymous view&lt;br /&gt;
* (x) admin user control&lt;br /&gt;
* ( ) normal user control&lt;br /&gt;
* ( ) Rails based to allow OBS integration&lt;br /&gt;
&lt;br /&gt;
== SkyNET Features:==&lt;br /&gt;
&lt;br /&gt;
=== Document design and functionality===&lt;br /&gt;
&lt;br /&gt;
* ( ) System overview&lt;br /&gt;
* (x) Installation&lt;br /&gt;
* (.) Access control behaviour (given user-owned participants)&lt;br /&gt;
&lt;br /&gt;
=== Feature complete CLI for:===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Install Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* ( ) Uninstall Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* (x) Start / Stop Participant&lt;br /&gt;
** ( ) support multiple instances&lt;br /&gt;
* (x) System start/shutdown&lt;br /&gt;
* (x) Register participant&lt;br /&gt;
* (x) List of participants with 'active/registered'&lt;br /&gt;
* ( ) Info command (location, installation package, yaml derived description)&lt;br /&gt;
* ( ) Improved upgrade support (reload if running, reinstall, rebuild templates)&lt;br /&gt;
* ( ) Ruby client to make it more relevant upstream&lt;br /&gt;
''maybe rewrite skynet in python and provide a REST api or something, which would allow a ruby client as well as a webui''&lt;br /&gt;
* ( ) Skynet unix group so normal users can activate participants&lt;br /&gt;
&lt;br /&gt;
=== Python Participant (Exo) library===&lt;br /&gt;
&lt;br /&gt;
* (x) Packaged for Suse&lt;br /&gt;
* (x) Packaged for Debian&lt;br /&gt;
* (x) Workitem handling&lt;br /&gt;
* ( ) Workitem Control handling (cancel/status)&lt;br /&gt;
* ( ) Lifecycle handling&lt;br /&gt;
* ( ) Provide a Exo.Verify() class with assertNotNull, assertIsList(v, default), assertHasRun(particpant) (now in change_request_state)&lt;br /&gt;
* ( ) ProcessException hierarchy (replace RuntimeError(&amp;quot;Missing mandatory field&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Python ruote client library===&lt;br /&gt;
&lt;br /&gt;
* (x) Ruote workitem support&lt;br /&gt;
* (x) Simple workitem useage&lt;br /&gt;
* ( ) Migration to Pika for AMQP&lt;br /&gt;
* ( ) Use SSL with RabbitMQ http://www.rabbitmq.com/ssl.html&lt;br /&gt;
* ( ) Support cancel/pause/resume&lt;br /&gt;
* ( ) Complete documentation&lt;br /&gt;
* ( ) 100% test coverage&lt;br /&gt;
&lt;br /&gt;
=== REST API to participant status===&lt;br /&gt;
&lt;br /&gt;
Note combining 'install' and 'run' and 'root' is a security issue.&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) GET : status&lt;br /&gt;
* ( ) PUT : install&lt;br /&gt;
* ( ) POST : Running=True/False&lt;br /&gt;
* ( ) DELETE : uninstall&lt;br /&gt;
&lt;br /&gt;
=== Clustering ability (ie see multiple SkyNETs in one view)===&lt;br /&gt;
&lt;br /&gt;
* ( ) Follows on from REST&lt;br /&gt;
&lt;br /&gt;
== Process Management:==&lt;br /&gt;
&lt;br /&gt;
=== Ruote On Rails:===&lt;br /&gt;
&lt;br /&gt;
An web framework for workflow interaction&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
&lt;br /&gt;
=== Standard Workflow===&lt;br /&gt;
&lt;br /&gt;
* (x) Develop and document CI workflow&lt;br /&gt;
* (x) Integrate robogrator to OBS (per project workflows)&lt;br /&gt;
* ( ) Extend robogrator process/event manager&lt;br /&gt;
* (.) Store workflows in database (Redis) for remote access&lt;br /&gt;
* ( ) Allow multiple projects to share process components&lt;br /&gt;
* ( ) Improve documentation&lt;br /&gt;
* ( ) Best practice guidelines&lt;br /&gt;
* ( ) Participant libraries :&lt;br /&gt;
* (.) Package QA checks&lt;br /&gt;
* ( ) git&lt;br /&gt;
* (.) OBS Project&lt;br /&gt;
* (.) OBS Requests&lt;br /&gt;
* (.) REVS&lt;br /&gt;
* ( ) OTS&lt;br /&gt;
* (.) IMG&lt;br /&gt;
* (.) Bugzilla&lt;br /&gt;
&lt;br /&gt;
=== User Interaction Participant===&lt;br /&gt;
&lt;br /&gt;
* ( ) Packaged for Suse&lt;br /&gt;
* ( ) Packaged for Debian&lt;br /&gt;
* ( ) Simple standalone web query&lt;br /&gt;
* ( ) Integrate with OBS&lt;br /&gt;
* (.) Extend to irc/jabber&lt;br /&gt;
&lt;br /&gt;
=== Test and debugging framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Policy / best practice&lt;br /&gt;
* ( ) Trace and profile support&lt;br /&gt;
&lt;br /&gt;
=== Notification Framework===&lt;br /&gt;
&lt;br /&gt;
* ( ) Possibly use Hermes&lt;br /&gt;
* (x) irc notifier&lt;br /&gt;
* ( ) jabber notifier&lt;br /&gt;
* ( ) email notifier&lt;br /&gt;
* ( ) link to backend user preferences&lt;br /&gt;
* ( ) configure per-project (tree?)&lt;br /&gt;
&lt;br /&gt;
== OBS==&lt;br /&gt;
&lt;br /&gt;
=== UI===&lt;br /&gt;
&lt;br /&gt;
* ( ) Integrate BOSSS workflow into OBS UI&lt;br /&gt;
&lt;br /&gt;
=== State model===&lt;br /&gt;
&lt;br /&gt;
* ( ) Define state for projects/repos/packages&lt;br /&gt;
* ( ) Define state for requests&lt;br /&gt;
* ( ) ensure OBS events api is supported upstream&lt;br /&gt;
&lt;br /&gt;
== High Level Outstanding Areas ==&lt;br /&gt;
&lt;br /&gt;
=== Security===&lt;br /&gt;
&lt;br /&gt;
* (x) Run participants as configurable users&lt;br /&gt;
* (x) Run participants on remote machines&lt;br /&gt;
* ( ) Granular AMQP participant / access control&lt;br /&gt;
* ( ) Enable SSL AMQP connections&lt;br /&gt;
* ( ) Use client certs for authentication&lt;br /&gt;
* ( ) Ruote message signing system&lt;br /&gt;
&lt;br /&gt;
=== Management ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Monitoring processes&lt;br /&gt;
* ( ) Monitoring participants&lt;br /&gt;
* ( ) Upgrading&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
* ( ) Best practice&lt;br /&gt;
* ( ) Wiki&lt;br /&gt;
* ( ) Presentation&lt;br /&gt;
* ( ) Reference (BOSS process driven from src)&lt;br /&gt;
&lt;br /&gt;
=== Dashboard ===&lt;br /&gt;
&lt;br /&gt;
The entire BOSS area needs to have a coherent UI view.&lt;br /&gt;
* ( ) Project status summary&lt;br /&gt;
* ( ) Package status&lt;br /&gt;
&lt;br /&gt;
== BOSS Management==&lt;br /&gt;
&lt;br /&gt;
=== Setting Direction===&lt;br /&gt;
&lt;br /&gt;
The BOSS roadmap is, of course, driven by customer needs. The technical scope and current statment of capabilities outlined above were identified during work on earlier projects within Nokia; but the order of implementation depends on prioritisation - and that will be driven by upcoming users.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo N900 DE Project ====&lt;br /&gt;
&lt;br /&gt;
The DE project is an active customer whose needs are representative of general CI and release engineering BOSS customers. By focusing on them we ensure that BOSS development is both driven and driven in the right direction.&lt;br /&gt;
&lt;br /&gt;
==== Support MeeGo:Apps ====&lt;br /&gt;
&lt;br /&gt;
MeeGo Apps is a community project which has a more user-facing process. This allows BOSS development to integrate into other UI systems.&lt;br /&gt;
&lt;br /&gt;
==== MeeGo.com Deployment ====&lt;br /&gt;
&lt;br /&gt;
Supporting BOSS on MeeGo.com allows us to manage system administration issues such as reliability and visibility.&lt;br /&gt;
&lt;br /&gt;
=== Immediate Roadmap ===&lt;br /&gt;
&lt;br /&gt;
==== Bugzilla integration (Target: Pre SF2011)====&lt;br /&gt;
&lt;br /&gt;
* (.) Process definition&lt;br /&gt;
* (.) Identity relevant changelog data&lt;br /&gt;
* (.) Extract bugs and comment&lt;br /&gt;
* (.) Change bug state&lt;br /&gt;
&lt;br /&gt;
==== Repo publish process (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Triggered by time&lt;br /&gt;
* ( ) Triggered by irc bot&lt;br /&gt;
* ( ) Freeze repo building&lt;br /&gt;
* ( ) Rsync&lt;br /&gt;
* ( ) Publish&lt;br /&gt;
* ( ) Notify&lt;br /&gt;
&lt;br /&gt;
==== Monitoring (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* (.) Process viewing&lt;br /&gt;
* ( ) Alerts on process failure&lt;br /&gt;
&lt;br /&gt;
==== Image Generation (Target Mid-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) DE Image generation&lt;br /&gt;
&lt;br /&gt;
==== VCS integration (Target End-June 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) VCS monitor for gitorious and github&lt;br /&gt;
&lt;br /&gt;
==== BOSS UI Process Integration  (Target July 2011) ====&lt;br /&gt;
&lt;br /&gt;
* ( ) Depends on Robogrator v2 for network DB&lt;br /&gt;
* ( ) Tab to view current process definitions active in a project&lt;br /&gt;
&lt;br /&gt;
Author: David Greaves&lt;br /&gt;
&lt;br /&gt;
Date: 2011-05-08 13:54:12 BST&lt;br /&gt;
&lt;br /&gt;
HTML generated by org-mode 7.3 in emacs 23&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/ARM/N900/SF2011</id>
		<title>ARM/N900/SF2011</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/ARM/N900/SF2011"/>
				<updated>2011-04-26T12:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Conference 2011 release and activities ==&lt;br /&gt;
&lt;br /&gt;
=== N900 DE release targets ===&lt;br /&gt;
&lt;br /&gt;
* DE target features work well, as described in the main wiki page. Some improvements needed from alpha release:&lt;br /&gt;
** Dialer running in background, user can receive cellular calls any time and ringtone plays. User gets notified about missed calls. SIM PIN query enables use of protected SIM card.&lt;br /&gt;
** SMS messages can be received any time, and there is message tone playback.&lt;br /&gt;
** Browser starts and runs quickly, and doesn't slow the device down when put to background.&lt;br /&gt;
** Camera has better image quality and automatic focus, exposure and white balance.&lt;br /&gt;
** Device screen lock and backlight control works as expected.&lt;br /&gt;
** Device is not freezing randomly, or slowing down excessively.&lt;br /&gt;
** Touch sensitivity is optimized, to minimize the effort when swiping vs. tapping.&lt;br /&gt;
* Blocker bugs fixed (see [[ARM/N900/Status]])&lt;br /&gt;
* DE release contents are according to [[ARM/N900/Configuration]].&lt;br /&gt;
* DE release available and frozen on '''20th May'''.&lt;br /&gt;
* DE image can be written to eMMC if user so chooses (might imply losing existing Maemo OS)&lt;br /&gt;
* User interface is MeeGo 1.2 Handset/MTF based, but some of the applications might be replaced with contributions from the community (eg. Peregrine, looking for more!) or new MeeGo UX.&lt;br /&gt;
* There will be experimental MeeGo QML UX image as well available for N900, but only to show the current status and open the discussion for 1.3 targets.&lt;br /&gt;
&lt;br /&gt;
=== Conference activities ===&lt;br /&gt;
* [http://sf2011.meego.com/program/sessions/meego-12-developer-edition-nokia-n900 Jukka's presentation]&lt;br /&gt;
* Shall we have other activities?&lt;br /&gt;
&lt;br /&gt;
=== Participants ===&lt;br /&gt;
* Please put your name here if you are coming and will be present with your N900 running DevEdition.&lt;br /&gt;
* Jukka Eklund [[http://meego.com/users/jukka jukkaeklund]]&lt;br /&gt;
* Eric Le Roux [[http://meego.com/users/ericlr ericlr]]&lt;br /&gt;
* Marko Saukko [[http://meego.com/users/sage sage]]&lt;br /&gt;
* Timo Härkönen [[http://meego.com/users/timoph timoph]]&lt;br /&gt;
* Tom Swindell  [[http://meego.com/users/tswindell alterego]]&lt;br /&gt;
* Timo Rongas  [[http://meego.com/users/ronksu ronksu]]&lt;br /&gt;
* Ramez Hanna [[http://meego.com/users/InformatiQ InformatiQ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:N900]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Installation</id>
		<title>Release Infrastructure/BOSS/Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Installation"/>
				<updated>2011-04-12T01:22:13Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Whilst BOSS is deployed in production, this packaged version is still&lt;br /&gt;
in beta-testing and is subject to change. In particular the&lt;br /&gt;
repositories are not yet finalised (eg installing from :Testing).&lt;br /&gt;
&lt;br /&gt;
However BOSS and SkyNET both install and run at a basic level on a&lt;br /&gt;
clean Debian 6.0 or OpenSuse 11.4 installation.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Preparation == &lt;br /&gt;
&lt;br /&gt;
* Proxy : On OpenSUSE you need to set the proxy in /etc/sysconfig/proxy&lt;br /&gt;
&lt;br /&gt;
== BOSS ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
BOSS provides the ruote worker and the main AMQP server.&lt;br /&gt;
&lt;br /&gt;
This component is the main process dispatcher; no work happens&lt;br /&gt;
here but all process steps are initiated from here.&lt;br /&gt;
&lt;br /&gt;
Currently BOSS uses the Ruote filesystem storage system and the&lt;br /&gt;
worker and viewer need to run on the same system. This will change&lt;br /&gt;
when BOSS moves to Redis.&lt;br /&gt;
&lt;br /&gt;
=== SUSE ===&lt;br /&gt;
&lt;br /&gt;
(old version of BOSS on openSUSE 11.2)&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/Maemo:/MeeGo-Infra/openSUSE_11.2-plus/Maemo:MeeGo-Infra.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
(new version of BOSS on opensuse 11.4)&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will install Rabbit MQ and the boss worker daemon.&lt;br /&gt;
&lt;br /&gt;
To run boss:&lt;br /&gt;
&lt;br /&gt;
  rcboss start / stop&lt;br /&gt;
&lt;br /&gt;
=== Debian Squeeze/6.0 ===&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/apt/sources.list.d/MINT.list&lt;br /&gt;
 deb http://repo.pub.meego.com/Project:/MINT:/Testing/Debian_6.0/ /&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install --no-install-recommends boss&lt;br /&gt;
&lt;br /&gt;
This will install Rabbit MQ and the boss worker daemon.&lt;br /&gt;
&lt;br /&gt;
Then, as usual&lt;br /&gt;
 /etc/init.d/boss {start|stop|restart|force-reload|log}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default settings are found in /etc/default/boss&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
BOSS is preconfigured with username boss and password boss on the boss vhost&lt;br /&gt;
(AMQP will lose vhosts soon)&lt;br /&gt;
&lt;br /&gt;
BOSS stores workitem and process data in /var/spool/boss/&lt;br /&gt;
&lt;br /&gt;
== BOSS-Viewer ==&lt;br /&gt;
&lt;br /&gt;
This must be installed on the boss server when using the FS storage.&lt;br /&gt;
&lt;br /&gt;
=== SUSE ===&lt;br /&gt;
Currently n/a&lt;br /&gt;
&lt;br /&gt;
=== Debian 6 ===&lt;br /&gt;
Currently n/a&lt;br /&gt;
&lt;br /&gt;
== SkyNET ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
SkyNET manages long-running BOSS Participants.&lt;br /&gt;
&lt;br /&gt;
It provides:&lt;br /&gt;
&lt;br /&gt;
* daemonisation&lt;br /&gt;
* start/stop control&lt;br /&gt;
* consistent logging&lt;br /&gt;
* user-owned participants &lt;br /&gt;
  &lt;br /&gt;
=== SUSE ===&lt;br /&gt;
&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-skynet&lt;br /&gt;
&lt;br /&gt;
If you installed a minimal OpenSUSE you might get a dependency error and as shown here proceed with choice 1 :&lt;br /&gt;
&lt;br /&gt;
  Problem: boss-skynet-0.1-5.1.noarch requires /usr/bin/python, but this requirement cannot be provided&lt;br /&gt;
    uninstallable providers: python-base-2.7-8.4.i586[openSUSE-11.4-11.4-0]&lt;br /&gt;
                     python-base-2.7-8.4.x86_64[openSUSE-11.4-11.4-0]&lt;br /&gt;
   Solution 1: deinstallation of patterns-openSUSE-minimal_base-11.4-6.9.1.x86_64&lt;br /&gt;
   Solution 2: do not install boss-skynet-0.1-5.1.noarch&lt;br /&gt;
   Solution 3: break boss-skynet by ignoring some of its dependencies&lt;br /&gt;
  Choose from above solutions by number or cancel [1/2/3/c] (c): 1&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
  .&lt;br /&gt;
&lt;br /&gt;
=== Debian 6 ===&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/apt/sources.list.d/MINT.list&lt;br /&gt;
 deb http://repo.pub.meego.com/Project:/MINT:/Testing/Debian_6.0/ /&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 apt-get install --no-install-recommends boss-skynet&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The file /etc/skynet/boss.conf is used by all participants&lt;br /&gt;
&lt;br /&gt;
It specifies the boss instance used by default and the credentials&lt;br /&gt;
required. Individual participants can override this.&lt;br /&gt;
&lt;br /&gt;
The /etc/skynet/skynet.conf file specifies where SkyNET stores the&lt;br /&gt;
running participants and where daemontools monitors them&lt;br /&gt;
(/var/lib/SkyNET/services/ and /var/lib/SkyNET/store/ by default)&lt;br /&gt;
&lt;br /&gt;
== BOSS OBS Plugin ==&lt;br /&gt;
The OBS plugin is designed to launch processes when a build/publish event occurs on the OBS&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
The plugin is installed on the OBS backend which runs the schedulers&lt;br /&gt;
&lt;br /&gt;
(old version of BOSS on openSUSE 11.2)&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.2/devel:languages:perl.repo&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.2/devel:languages:perl.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-obs-plugin&lt;br /&gt;
&lt;br /&gt;
(new version of BOSS on opensuse 11.4)&lt;br /&gt;
 zypper ar http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.2/devel:languages:perl.repo&lt;br /&gt;
 zypper ar http://repo.pub.meego.com/Project:/MINT:/Testing/openSUSE_11.4/Project:MINT:Testing.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss-obs-plugin&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
'''You *MUST* have a participant registered as &amp;quot;obs_event&amp;quot; running before enabling this plugin or ruote will silently fill up with hundreds/thousands/millions of stalled processes.'''&lt;br /&gt;
&lt;br /&gt;
Edit the file:&lt;br /&gt;
  /usr/lib/obs/server/BSConfig.pm&lt;br /&gt;
and define/add: &lt;br /&gt;
  our $notification_plugin = &amp;quot;notify_boss&amp;quot;;&lt;br /&gt;
  our $BOSS_host=&amp;quot;boss&amp;quot;;   # hostname for server running BOSS AMQP&lt;br /&gt;
  our $BOSS_user=&amp;quot;boss&amp;quot;;   # AMQP username&lt;br /&gt;
  our $BOSS_passwd=&amp;quot;boss&amp;quot;; # AMQP password (cleartext)&lt;br /&gt;
&lt;br /&gt;
The plugin itself is installed in :&lt;br /&gt;
  /usr/lib/obs/server/plugins/notify_boss.pm&lt;br /&gt;
&lt;br /&gt;
The schedulers will need to be restarted to take effect. Note there is currently an issue that&lt;br /&gt;
the plugin will block if the AMQP server is not available - this will halt the OBS.&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
&lt;br /&gt;
Once you have installed BOSS and SkyNET you are ready to create and run some processes.&lt;br /&gt;
&lt;br /&gt;
== Watch BOSS ==&lt;br /&gt;
On the BOSS machine:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/boss log &amp;amp;&lt;br /&gt;
&lt;br /&gt;
You'll see messages about the engine being alive and participant&lt;br /&gt;
registration. Further debug output is possible here.&lt;br /&gt;
&lt;br /&gt;
== Setup a participant ==&lt;br /&gt;
&lt;br /&gt;
On the skynet machine we need to setup some code as a participant:&lt;br /&gt;
&lt;br /&gt;
 skynet make_participant -n check -p /usr/share/doc/python-boss-skynet/example-check-participant&lt;br /&gt;
 skynet make_participant -n notify -p /usr/share/doc/python-boss-skynet/example-notify-participant&lt;br /&gt;
&lt;br /&gt;
This creates a daemontools/participant directory structure with a&lt;br /&gt;
symbolic link to the code for these participants.&lt;br /&gt;
&lt;br /&gt;
Now we need to ensure they start to run under daemontools (and restart if&lt;br /&gt;
there's a problem):&lt;br /&gt;
&lt;br /&gt;
 skynet enable check&lt;br /&gt;
 skynet enable notify&lt;br /&gt;
&lt;br /&gt;
To watch the log output:&lt;br /&gt;
&lt;br /&gt;
 skynet log check &amp;amp;&lt;br /&gt;
 skynet log notify &amp;amp;&lt;br /&gt;
&lt;br /&gt;
Now we need to tell boss that there is something listening on these&lt;br /&gt;
queues and available for use in processes:&lt;br /&gt;
&lt;br /&gt;
 skynet register -n check&lt;br /&gt;
 skynet register -n notify&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The skynet command also supports:&lt;br /&gt;
* stop : shutdown the participant and don't respawn.&lt;br /&gt;
* reload : stop and start once&lt;br /&gt;
* register : can also specify the amqp queue to use if it's not the name&lt;br /&gt;
&lt;br /&gt;
== Launch a process ==&lt;br /&gt;
&lt;br /&gt;
With a participant ready to do some work, we're ready to launch a process:&lt;br /&gt;
&lt;br /&gt;
 /usr/share/boss-skynet/skynet_launch&lt;br /&gt;
&lt;br /&gt;
The log output should show&lt;br /&gt;
&lt;br /&gt;
 2011-03-29 00:49:21.186558500 checking for /tmp/success&lt;br /&gt;
 2011-03-29 00:49:21.186849500 Failed to read /tmp/success&lt;br /&gt;
 2011-03-29 00:49:21.708706500 Nothing to say&lt;br /&gt;
&lt;br /&gt;
Now do:&lt;br /&gt;
&lt;br /&gt;
 echo Hi there &amp;gt; /tmp/success&lt;br /&gt;
&lt;br /&gt;
And relaunch:&lt;br /&gt;
&lt;br /&gt;
 /usr/share/boss-skynet/skynet_launch&lt;br /&gt;
&lt;br /&gt;
gives&lt;br /&gt;
 2011-03-29 00:49:31.659986500 checking for /tmp/success&lt;br /&gt;
 2011-03-29 00:49:31.660440500 Read /tmp/success&lt;br /&gt;
 2011-03-29 00:49:31.878978500 Send email saying : Hi there&lt;br /&gt;
 2011-03-29 00:49:31.878980500 &lt;br /&gt;
&lt;br /&gt;
Of course a process can be launched from anywhere on the network using&lt;br /&gt;
any 'trigger' and participants also run on any machine.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS</id>
		<title>Release Infrastructure/BOSS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS"/>
				<updated>2010-11-29T08:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[TOC]]&lt;br /&gt;
== BOSS &amp;quot;Build Orchestration Supervision System&amp;quot; ==&lt;br /&gt;
BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps.&lt;br /&gt;
&lt;br /&gt;
MeeGo will use BOSS to orchestrate a CI (Continuous Integration) ecosystem around OBS.&lt;br /&gt;
&lt;br /&gt;
[[File:Boss0.png]]&lt;br /&gt;
&lt;br /&gt;
=== Why ===&lt;br /&gt;
* we need a robust, flexible way of configuring a set of triggers (ex. OBS event or a submit request) and responses&lt;br /&gt;
* OBS is a build system, not a general workflow system&lt;br /&gt;
* there is need for automation of responses to OBS actions results&lt;br /&gt;
* OBS requests are good but not flexible nor extensible&lt;br /&gt;
* there's fear of OBS becoming a big black box doing all the magic (maintainability)&lt;br /&gt;
* Hermes is there, but it is just taking care of notifications&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* parallel worflows for parallel software programmes&lt;br /&gt;
* allows for parallel implementation of the system&lt;br /&gt;
* plugins are usable independently&lt;br /&gt;
* take away the productization process/logic from the build infrastructure&lt;br /&gt;
&lt;br /&gt;
=== BOSS Implementation and Design ===&lt;br /&gt;
There is a page describing the details of the [[/Design|design]] and the [[/Code|BOSS code]] is available.&lt;br /&gt;
&lt;br /&gt;
* a workflow framework allowing site-specific workflow definition&lt;br /&gt;
* a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework&lt;br /&gt;
* a queue-based job distribution system that handles delivery to pools of workers&lt;br /&gt;
&lt;br /&gt;
=== OBS event publisher ===&lt;br /&gt;
One important part of BOSS integration will be the connectivity with the OBS.&lt;br /&gt;
&lt;br /&gt;
[[File:obs_events.png]]&lt;br /&gt;
&lt;br /&gt;
For more details see the [[/OBS Event List|OBS Event List]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* AMQP: [http://www.amqp.org AMQP.org] has the very readable [http://www.amqp.org/confluence/download/attachments/720900/amqp0-9-1.pdf?version=1&amp;amp;modificationDate=1227526523000 0.9.1 specification (pdf)]&lt;br /&gt;
* Ruote: [http://wiki.github.com/jmettraux/ruote/overview An overview of Ruote]&lt;br /&gt;
* [[/Performance/Results|Performance tests]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_Conference_2010/Flight_Information</id>
		<title>MeeGo Conference 2010/Flight Information</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_Conference_2010/Flight_Information"/>
				<updated>2010-11-12T07:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Flight Information ==&lt;br /&gt;
&lt;br /&gt;
''Wouldn't it make sense to split the table for arrivals and departures and then sort each table by date and time as with the [http://wiki.maemo.org/Maemo_Summit_2009/Travel Maemo Summit 2009 travel wiki page]?''&lt;br /&gt;
&lt;br /&gt;
Please move your entry from below to the new tables here. Keep the entries sorted by time and date.&lt;br /&gt;
&lt;br /&gt;
===Arrivals===&lt;br /&gt;
&lt;br /&gt;
====Friday 12====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of arrival&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 12:00&lt;br /&gt;
| [[user:Nightrose | Lydia Pintscher]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from FRA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12:45&lt;br /&gt;
| [[user:pycage | Martin Grimme]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from MUC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| [[user:InformatiQ | Ramez Hanna]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from FIN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Saturday 13====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of arrival&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 06:50&lt;br /&gt;
| [[user:Epage | Ed Page]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from Atlanta&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 08:55&lt;br /&gt;
| [[user:timsamoff | Tim Samoff]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from JFK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:00&lt;br /&gt;
| [[user:dawnfoster | Dawn Foster]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from ORD&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:20&lt;br /&gt;
| [[user:texrat | Randall Arnold ]] ([http://meego.com/users/texrat texrat])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| United 3261 from EWR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:40&lt;br /&gt;
| Timo Rongas ([http://meego.com/users/ronksu ronksu])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from CPH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:40&lt;br /&gt;
| Tatu Lahtela ([http://meego.com/users/tatlahte tatlahte])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from CPH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10:30&lt;br /&gt;
| David Greaves ([http://meego.com/users/lbt lbt])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12:05&lt;br /&gt;
| Dan Leinir Turthra Jensen ([http://meego.com/users/leinir leinir])&lt;br /&gt;
| Aurport (DUB)&lt;br /&gt;
| EI0235 from LGW&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13:25&lt;br /&gt;
| Andrew Flegg ([http://meego.com/users/jaffa Jaffa])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI0267 from BHX&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14:05&lt;br /&gt;
| Josep Roura ([http://meego.com/users/netoak netoak])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR7039 from GRO&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| Henri Bergius ([http://meego.com/users/bergie bergie])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5014 from CDG&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| Susanna Huhtanen ([http://maemo.org/profile/view/ihmis-suski/ ihmis-suski])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5014 from CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17:20&lt;br /&gt;
| Attila Csipa ([http://meego.com/users/achipa achipa])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| LH980 from FRA&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17:35&lt;br /&gt;
| [[user:thp|thp]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| from LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18:50&lt;br /&gt;
| Leonardo da Mata ([http://meego.com/users/barroca barroca])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| JJ 7922 from LHR&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 22:50&lt;br /&gt;
| Roger Wang and ~8 people from PRC&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| LH982 from FRA&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14:25&lt;br /&gt;
| [[user:sivan|sivang]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| From LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00:00&lt;br /&gt;
| [[user:username|Firstname Lastname]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight number from airport&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Sunday 14====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of arrival&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 8:50&lt;br /&gt;
| Ryan Abel ([http://meego.com/users/generalantilles GeneralAntilles])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| US Air 722 from PHL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 08:50&lt;br /&gt;
| Stephen Gadsby ([http://meego.com/users/sjgadsby sjgadsby])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| US Air 722 from PHL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 08:55&lt;br /&gt;
| Gary Birkett ([http://meego.com/users/lcuk lcuk])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR553 from MAN&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 08:55&lt;br /&gt;
| Mike Jipping ([http://meego.com/users/frethop frethop])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| DL164 from JFK&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:00&lt;br /&gt;
| Reggie Suplido ([http://meego.com/users/reggie reggie])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI124 from ORD (Chicago, IL)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 09:20&lt;br /&gt;
| Aniello Del Sorbo ([http://meego.com/users/anidel anidel])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight 126 (Continental) from EWR (Newark, NJ)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 09:40&lt;br /&gt;
| Arek Stopczynski ([http://meego.com/users/hopbeat hopbeat])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK537 from CPH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:40&lt;br /&gt;
| Brendan Le Foll ([http://meego.com/users/arfoll arfoll])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| 6394 from BCN&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 10:10&lt;br /&gt;
| Valério Valério ([http://meego.com/users/vdvsx VDVsx])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| KL3153 from AMS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12:20&lt;br /&gt;
| Daniele Maio ([http://meego.com/users/b0unc3 b0unc3])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR 9427 from BGY&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12:40&lt;br /&gt;
| Andrew Olmsted ([http://meego.com/users/fiferboy fiferboy])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AC848/BMI123 from YYZ/LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.35 &lt;br /&gt;
| Kathy Smith ([http://meego.com/users/revdkathy RevdKathy])&lt;br /&gt;
| Airport (DUB) &lt;br /&gt;
| SZ593 from NQY &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13.55 &lt;br /&gt;
| Andrew Zhilin ([http://meego.com/users/wazd wazd])&lt;br /&gt;
| Airport (DUB) &lt;br /&gt;
| AF5006 from CDG &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 14.10 &lt;br /&gt;
| Carsten Munk ([http://meego.com/users/stskeeps Stskeeps])&lt;br /&gt;
| Airport (DUB) &lt;br /&gt;
| EI0363 from WAW &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| timeless&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF1099/AF5014&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| Jeremiah C. Foster ([http://meego.com/users/jeremiah jeremiah])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF 5014 from CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16:40&lt;br /&gt;
| Mikael Söderberg &lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF 5014 from CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17:20&lt;br /&gt;
| Eero af Heurlin ([http://meego.com/users/rambo rambo])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| LH 980&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17:20&lt;br /&gt;
| Lauri Manner&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| LH 980&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17:25&lt;br /&gt;
| Andre Klapper ([http://meego.com/users/andre andre])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI0645 from PRG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18:00&lt;br /&gt;
| Timo Härkönen ([http://meego.com/users/timoph timoph])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK2537 from CPH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21:55&lt;br /&gt;
| Piotr Pokora ([http://meego.com/users/piotras piotras])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR1979&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00:00&lt;br /&gt;
| [[user:username|Firstname Lastname]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight number from airport&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Monday 15====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of arrival&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 06:50&lt;br /&gt;
| Sanjeev Visvanatha ([http://meego.com/users/eipi eipi])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight CO22 from EWR&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 07:55&lt;br /&gt;
| Lucas Maneos ([http://meego.com/users/lm lm])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight BD0121 from LHR&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 08:55&lt;br /&gt;
| Mart Roosmaa ([http://meego.com/users/roosmaa roosmaa])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight FR553 from MAN&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00:00&lt;br /&gt;
| [[user:username|Firstname Lastname]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight number from airport&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Departures===&lt;br /&gt;
&lt;br /&gt;
====Wednesday 17====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of departure&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 09:00&lt;br /&gt;
| Sanjeev Visvanatha ([http://meego.com/users/eipi eipi])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| CO23 to EWR (Newark, NJ)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 09:00&lt;br /&gt;
| Aniello Del Sorbo ([http://meego.com/users/ anidel])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to EWR (Newark, NJ)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13:45&lt;br /&gt;
| Kathy Smith ([http://meego.com/users/revdkathy RevdKathy])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to NQY (Newquay, Cornwall)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16:00&lt;br /&gt;
| Piotr Pokora ([http://meego.com/users/piotras piotras])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR1978&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16:30&lt;br /&gt;
| [[user:thp|thp]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to VIE&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18:10&lt;br /&gt;
| Mart Roosmaa ([http://meego.com/users/roosmaa roosmaa])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to MAN&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18:40&lt;br /&gt;
| Andrew Flegg ([http://meego.com/users/jaffa Jaffa])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI0276 to BHX&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18:45&lt;br /&gt;
| Eero af Heurlin ([http://meego.com/users/rambo rambo])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK 2538&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18:45&lt;br /&gt;
| Tatu Lahtela ([http://meego.com/users/tatlahte tatlahte])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK 2538&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18:45&lt;br /&gt;
| Lauri Manner&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK 2538&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20:00&lt;br /&gt;
| Adam Reviczky ([[user:Reviczky|reviczky]])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR118 to LGW&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 21:05&lt;br /&gt;
| Lucas Maneos ([http://meego.com/users/lm lm])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| BD0132 to LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 00:00&lt;br /&gt;
| [[user:username|Firstname Lastname]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight number from airport&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Thursday 18====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of departure&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 06:00&lt;br /&gt;
| Valério Valério ([http://meego.com/users/vdvsx VDVsx])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| KL3152 to AMS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 06:35&lt;br /&gt;
| Daniele Maio ([http://meego.com/users/b0unc3 b0unc3])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR 9426 to BGY&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07:00&lt;br /&gt;
| Lydia Pintscher ([http://meego.com/users/Nightrose Nightrose])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to FRA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 07:20&lt;br /&gt;
| Carsten Munk ([http://meego.com/users/stskeeps Stskeeps])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI0362 to WAW&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 09:10&lt;br /&gt;
| Henri Bergius ([http://meego.com/users/bergie bergie])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5001 to CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 09:10&lt;br /&gt;
| Susanna Huhtanen ([http://maemo.org/profile/view/ihmis-suski/ ihmis-suski])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5001 to CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10:20&lt;br /&gt;
| Josep Roura ([http://meego.com/users/netoak NetOak])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR7038 to GRO&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10:45&lt;br /&gt;
| [http://meego.com/users/dawnfoster Dawn Foster]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to JFK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10:45&lt;br /&gt;
| Mike Jipping [http://meego.com/users/frethop frethop]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| DL165 to JFK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11:05&lt;br /&gt;
| Reggie Suplido ([http://meego.com/users/reggie reggie])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK538 to CPH&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11:05&lt;br /&gt;
| Ryan Abel ([http://meego.com/users/generalantilles GeneralAntilles])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| US Air 723 to PHL&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 11:05&lt;br /&gt;
| Stephen Gadsby ([http://meego.com/users/sjgadsby sjgadsby])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| US Air 723 to PHL&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11:40&lt;br /&gt;
| Andre Klapper ([http://meego.com/users/andre andre])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| IE0644 to PRG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11:55&lt;br /&gt;
| Andrew Zhilin ([http://meego.com/users/wazd wazd])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5005 to CDG&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12:00&lt;br /&gt;
| Timo Härkönen ([http://meego.com/users/timoph timoph])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK536 to ARN&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12:20&lt;br /&gt;
| Roger Wang and ~8 people from PRC&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| LH979 to FRA&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13:00&lt;br /&gt;
| Randall Arnold (texrat)&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| United 4925 to ORD&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13:55&lt;br /&gt;
| Brendan Le Foll ([http://meego.com/users/arfoll arfoll])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| 6395&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14:50&lt;br /&gt;
| timeless&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF5009/AF1798&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14:50&lt;br /&gt;
| [[user:jeremiah|Jeremiah Foster]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF 5009 CDG -&amp;gt; GOT&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14:50&lt;br /&gt;
| Mikael Söderberg&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| AF 5009 CDG -&amp;gt; GOT&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15:00&lt;br /&gt;
| Andrew Olmsted ([http://meego.com/users/fiferboy fiferboy])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI3296 to CWL&lt;br /&gt;
| Staying extra days after conference&lt;br /&gt;
|-&lt;br /&gt;
| 16:00&lt;br /&gt;
| Martin Grimme ([http://meego.com/users/pycage pycage])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI356 to MUC&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 18:10&lt;br /&gt;
| Gary Birkett ([http://meego.com/users/lcuk lcuk])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| FR556 to MAN&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18:45&lt;br /&gt;
| Arek Stopczynski ([http://meego.com/users/hopbeat hopbeat])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| SK2538 to CPH&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20:30&lt;br /&gt;
| Dan Leinir Turthra Jensen ([http://meego.com/users/leinir leinir])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| EI0248 to LGW&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 00:00&lt;br /&gt;
| [[user:username|Firstname Lastname]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| Flight number to airport&lt;br /&gt;
| ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Friday 19 ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of departure&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 08:40&lt;br /&gt;
| [[user:Epage | Ed Page]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to Atlanta&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 13:15&lt;br /&gt;
| David Greaves ([http://meego.com/users/lbt lbt])&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to LHR&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Saturday 20====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Time&lt;br /&gt;
! Name&lt;br /&gt;
! Place of departure&lt;br /&gt;
! Means of transport&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| 10:45&lt;br /&gt;
| [[user:timsamoff | Tim Samoff]]&lt;br /&gt;
| Airport (DUB)&lt;br /&gt;
| to JFK&lt;br /&gt;
| My wife arrives on the 17th and we're staying through Saturday.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Old list (please don't add anything here - move to the tables above)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Participant name&lt;br /&gt;
! Arrival flight info&lt;br /&gt;
! Departure flight info&lt;br /&gt;
! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Andrea Grandi ([http://meego.com/users/andreagrandi andreagrandi])&lt;br /&gt;
| Flight 9907 Depart PSA at 07:00 and arrive DUB at 08:45 - Sat, 13/November/2010&lt;br /&gt;
| Dublin BA British Airways 5964 at 13:15, Wed 17th Nov --&amp;gt; London BA British Airways 602 at 16:45 --&amp;gt; Pisa at 19:55&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Engineering/Process/Automation</id>
		<title>Release Engineering/Process/Automation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Engineering/Process/Automation"/>
				<updated>2010-11-08T18:46:42Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* The checks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Process Automation ==&lt;br /&gt;
&lt;br /&gt;
Promotion Workflow&lt;br /&gt;
&lt;br /&gt;
* Maintainer submits request from Devel:Project&lt;br /&gt;
** BOSS reviews the requests&lt;br /&gt;
*** if PASS 5 checks put comment&lt;br /&gt;
*** if FAIL 5 checks, reject&lt;br /&gt;
&lt;br /&gt;
** Trunk:testing maintainer accepts a few requests&lt;br /&gt;
** BOSS picks up REPO_PUBLISH&lt;br /&gt;
** BOSS waits T-X minutes if no new REPO_PUBLISH events, notifies maintainers&lt;br /&gt;
** maintainers stop new activity&lt;br /&gt;
** BOSS waits X minutes more if no new REPO_PUBLISH events, trigger pre_promote process&lt;br /&gt;
&lt;br /&gt;
pre_promote:&lt;br /&gt;
&lt;br /&gt;
** create the correct repo structure&lt;br /&gt;
** Trigger IMG builds images&lt;br /&gt;
** IMG returns result (Success , Location)&lt;br /&gt;
*** BOSS receives IMG Success event&lt;br /&gt;
**** BOSS initializes a comliancy test&lt;br /&gt;
**** BOSS notifies release managers of the compliancy report&lt;br /&gt;
*** BOSS notifies maintainers and QA of new images&lt;br /&gt;
** QA teams test and send report&lt;br /&gt;
** Trunk:Testing maintainer makes decision based on QA report&lt;br /&gt;
** IF decision is PASS&lt;br /&gt;
*** maintainer submit request to TRUNK&lt;br /&gt;
*** BOSS accepts it automatically&lt;br /&gt;
** Other&lt;br /&gt;
*** revert broken pkgs&lt;br /&gt;
**** restart pre_promote&lt;br /&gt;
*** revert ALL&lt;br /&gt;
** end cycle&lt;br /&gt;
&lt;br /&gt;
==== The checks ====&lt;br /&gt;
&lt;br /&gt;
* policy check&lt;br /&gt;
** from which prj is sent&lt;br /&gt;
** if pkg exists in Trunk:Testing, the request has to come from a link of the pkg in trunk&lt;br /&gt;
** pkg in request has to have been built successfully in source project&lt;br /&gt;
** pkg in request has to have been built against the correct target (repo path)&lt;br /&gt;
** if pkg has a devel project, pkg should be submitted from the devel project, else it can come from other sources&lt;br /&gt;
&lt;br /&gt;
* changelog checks&lt;br /&gt;
** has bug ID or FEA ID&lt;br /&gt;
** syntax complies with packaging guidelines&lt;br /&gt;
** &lt;br /&gt;
** target build is correct in BUG&lt;br /&gt;
** BUG belongs to correct version&lt;br /&gt;
** BUG status is resolved&lt;br /&gt;
&lt;br /&gt;
* pkg complies with pkging guidelines (rpmlint)&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Engineering/Process/Automation</id>
		<title>Release Engineering/Process/Automation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Engineering/Process/Automation"/>
				<updated>2010-11-08T17:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with &amp;quot;== Process Automation ==  Promotion Workflow  * Maintainer submits request from Devel:Project ** BOSS reviews the requests *** if PASS 5 checks put comment *** if FAIL 5 checks, …&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Process Automation ==&lt;br /&gt;
&lt;br /&gt;
Promotion Workflow&lt;br /&gt;
&lt;br /&gt;
* Maintainer submits request from Devel:Project&lt;br /&gt;
** BOSS reviews the requests&lt;br /&gt;
*** if PASS 5 checks put comment&lt;br /&gt;
*** if FAIL 5 checks, reject&lt;br /&gt;
&lt;br /&gt;
** Trunk:testing maintainer accepts a few requests&lt;br /&gt;
** BOSS picks up REPO_PUBLISH&lt;br /&gt;
** BOSS waits T-X minutes if no new REPO_PUBLISH events, notifies maintainers&lt;br /&gt;
** maintainers stop new activity&lt;br /&gt;
** BOSS waits X minutes more if no new REPO_PUBLISH events, trigger pre_promote process&lt;br /&gt;
&lt;br /&gt;
pre_promote:&lt;br /&gt;
&lt;br /&gt;
** create the correct repo structure&lt;br /&gt;
** Trigger IMG builds images&lt;br /&gt;
** IMG returns result (Success , Location)&lt;br /&gt;
*** BOSS receives IMG Success event&lt;br /&gt;
**** BOSS initializes a comliancy test&lt;br /&gt;
**** BOSS notifies release managers of the compliancy report&lt;br /&gt;
*** BOSS notifies maintainers and QA of new images&lt;br /&gt;
** QA teams test and send report&lt;br /&gt;
** Trunk:Testing maintainer makes decision based on QA report&lt;br /&gt;
** IF decision is PASS&lt;br /&gt;
*** maintainer submit request to TRUNK&lt;br /&gt;
*** BOSS accepts it automatically&lt;br /&gt;
** Other&lt;br /&gt;
*** revert broken pkgs&lt;br /&gt;
**** restart pre_promote&lt;br /&gt;
*** revert ALL&lt;br /&gt;
** end cycle&lt;br /&gt;
&lt;br /&gt;
==== The checks ====&lt;br /&gt;
&lt;br /&gt;
* policy check&lt;br /&gt;
 * from which prj is sent&lt;br /&gt;
&lt;br /&gt;
* changes checks&lt;br /&gt;
 * has bug ID or FEA ID&lt;br /&gt;
 * target build is correct in BUG&lt;br /&gt;
 * BUG belongs to correct version&lt;br /&gt;
 * BUG status is resolved&lt;br /&gt;
&lt;br /&gt;
* pkg complies with pkging guidelines (rpmlint)&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Build_Infrastructure/Roadmap</id>
		<title>Build Infrastructure/Roadmap</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Build_Infrastructure/Roadmap"/>
				<updated>2010-11-08T17:31:52Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= MeeGo Buildsystem Roadmap =&lt;br /&gt;
== Current Status ==&lt;br /&gt;
MeeGo is currently running OBS 2.0.6 with minor changes specific to MeeGo:&lt;br /&gt;
* Backport of notification plugin to be able to use AMQP for events&lt;br /&gt;
* Minor Web UI changes&lt;br /&gt;
&lt;br /&gt;
== Plans ==&lt;br /&gt;
=== OBS ===&lt;br /&gt;
==== 2.1.x Update ====&lt;br /&gt;
&lt;br /&gt;
We are on track to update the MeeGo Build System to 2.1.1 which was [http://lists.opensuse.org/opensuse-buildservice/2010-10/msg00239.html released] Oct 29th, 2010. See the original [http://lists.opensuse.org/opensuse-announce/2010-10/msg00009.html announcement] for 2.1 for more details about the new features and fixes.&lt;br /&gt;
&lt;br /&gt;
The update to 2.1.1 is scheduled to happen on Saturday, November 6th. Downtime is scheduled between 12:00-14:00 GMT on that date.&lt;br /&gt;
&lt;br /&gt;
==== LDAP integration ====&lt;br /&gt;
&lt;br /&gt;
2.1.x adds enhanced LDAP support which will allow advanced user management. We are planning to migrate all users from the current implementation to a dedicated LDAP instance and finally enable password changes by the user and better tracking for users and groups in general. The migration to LDAP will happen after 2.1.1 deployment and will happen in 2 steps:&lt;br /&gt;
* Review of all users and cleanup of users currently not active, i.e. removing duplicates etc.&lt;br /&gt;
* Reset password on all accounts and verifying emails of all users, this will lead to another wave of cleanups leading to the final user list&lt;br /&gt;
* Migrate users to LDAP and run initial tests with LDAP as the backend. At that time, user creation and user changes is frozen and disabled.&lt;br /&gt;
* finally, migrate to LDAP and disable current database backend&lt;br /&gt;
&lt;br /&gt;
==== Build System Project Reorg ====&lt;br /&gt;
&lt;br /&gt;
At the moment, projects are organised based on usage scenarios or verticals. the main project is Trunk with the following vertical/UX based projects:&lt;br /&gt;
* Trunk:Netbook&lt;br /&gt;
* Trunk:Handset&lt;br /&gt;
* Trunk:IVI&lt;br /&gt;
&lt;br /&gt;
The vertical projects build against Trunk, thus, the Trunk is the container for all share packages required by all verticals. With the introduction of the compliance and the need to have a self-contained core stack, based on the MeeGo architecture, the above model does not scale and causes conflicts among verticals and does not provide a clear view of what exactly the base stack that can be used to build compliant applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hence, we have the following proposal to split the whole lot into 2 groups instead .&lt;br /&gt;
&lt;br /&gt;
* Core&lt;br /&gt;
* Reference or Applications (tentative name)&lt;br /&gt;
&lt;br /&gt;
'''Core''' would have all compliance libraries and OS base packages (essentials) and their build requirements. All misc. stuff like reference apps, tools and non-core libraries would go into the '''Applications''' project and build on top of Core.&lt;br /&gt;
&lt;br /&gt;
There are two major advantages here:&lt;br /&gt;
* We can always guarantee that the core packages are self contained and consistent without any bogus dependencies&lt;br /&gt;
* When building compliant applications all you need is to build against'''Core''' which will guarantee that you do not link against libraries that are not available on all devices&lt;br /&gt;
&lt;br /&gt;
We started experimenting and have been splitting Trunk packages into core+application in the following devel area in the MeeGo Build System:&lt;br /&gt;
&lt;br /&gt;
* devel:cleanup:core&lt;br /&gt;
* devel:cleanup:reference&lt;br /&gt;
&lt;br /&gt;
This effort still ongoing and doing this we are already identifying lots of issues and dependencies that should not be there and cleaning those up as we go.&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
''Refer to /Release_Infrastructure for info on the tools''&lt;br /&gt;
Release Automation will be carried out in the follwoing order&lt;br /&gt;
* Deploy BOSS (install and test) [DONE]&lt;br /&gt;
* install OBS plugin to communicate with BOSS [DONE]&lt;br /&gt;
* Deploy IMG (install and configure) [ETA: W45]&lt;br /&gt;
* Automate image creation for weekly/testing/daily snapshots [ETA: W46]&lt;br /&gt;
* Implement checks: set of checks to test before proceeding with submit requests. [ETA: ]&lt;br /&gt;
* Deploy the checks: check each request, if it fails the test, then reject it, otherwise notify maintainer to process the request [ETA: ]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Code</id>
		<title>Release Infrastructure/BOSS/Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Code"/>
				<updated>2010-10-08T20:04:33Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following packages are part of the Release Infrastructure team's codebase&lt;br /&gt;
Additional external dependencies will need to be packaged from eggs/gems to support BOSS installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra ==&lt;br /&gt;
=== BOSS ===&lt;br /&gt;
BOSS source is managed in gitorious:&lt;br /&gt;
* http://meego.gitorious.org/meego-infrastructure-tools/boss&lt;br /&gt;
&lt;br /&gt;
There should be enough information by each package to build a new version : FIXME.&lt;br /&gt;
&lt;br /&gt;
=== MeeGo-IMG ===&lt;br /&gt;
Aleksi... FIXME ... link to IMG page?&lt;br /&gt;
&lt;br /&gt;
=== AIR ===&lt;br /&gt;
AIR for ruby&lt;br /&gt;
 http://meego.gitorious.org/meego-infrastructure-tools/air&lt;br /&gt;
==== libair-python ====&lt;br /&gt;
debian package&lt;br /&gt;
==== libair-ruby ====&lt;br /&gt;
debian package&lt;br /&gt;
==== rubygem-air ====&lt;br /&gt;
suse package&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
==== python-air?? ====&lt;br /&gt;
suse package : no suse package yet.&lt;br /&gt;
&lt;br /&gt;
=== ruote ===&lt;br /&gt;
Should be virgin but is likely to be modified slightly and/or tagged&lt;br /&gt;
 http://github.com/lbt/ruote&lt;br /&gt;
&lt;br /&gt;
Current snapshots:&lt;br /&gt;
 * 2.1.11.lbt2  b93c6d5f1798a07546c881e909e28a78673ba696&lt;br /&gt;
&lt;br /&gt;
=== libruote-ruby ===&lt;br /&gt;
Debian : http://github.com/lbt/pkg-ruote&lt;br /&gt;
&lt;br /&gt;
=== ruote-amqp-pyclient ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout pkg&lt;br /&gt;
git merge master&lt;br /&gt;
#edit changelogs&lt;br /&gt;
git commit -am&amp;quot;Update to packaging&amp;quot;&lt;br /&gt;
rm /maemo/obs/opensuse/Maemo:MeeGo-Infra:Testing/ruote-amqp-pyclient/*.gz&lt;br /&gt;
git archive $TAG --format=tar --prefix=ruote-amqp-pyclient-$TAG/ | gzip &amp;gt; /maemo/obs/opensuse/Maemo:MeeGo-Infra:Testing/ruote-amqp-pyclient/ruote-amqp-pyclient_$TAG.tar.gz&lt;br /&gt;
cp *.spec /maemo/obs/opensuse/Maemo:MeeGo-Infra:Testing/ruote-amqp-pyclient/&lt;br /&gt;
cd /maemo/obs/opensuse/Maemo:MeeGo-Infra:Testing/ruote-amqp-pyclient/&lt;br /&gt;
osc -A suse ar&lt;br /&gt;
osc -A suse commit -m&amp;quot;Update to $TAG&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== rubygem-ruote ===&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
&lt;br /&gt;
=== ruote-amqp ===&lt;br /&gt;
Source:&lt;br /&gt;
 http://github.com/lbt/ruote-amqp&lt;br /&gt;
=== libruote-amqp-ruby ===&lt;br /&gt;
Debian : http://github.com/lbt/pkg-ruote-amqp&lt;br /&gt;
=== rubygem-ruote-amqp ===&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
&lt;br /&gt;
=== python-amqlib ===&lt;br /&gt;
Local version of python amqp library&lt;br /&gt;
 http://github.com/lbt/py-amqplib&lt;br /&gt;
&lt;br /&gt;
=== libsetup-ruby ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== ruby-pkg-tools ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== ruby1.9.1 ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== python-support ===&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra:Req ==&lt;br /&gt;
=== ejabberd ===&lt;br /&gt;
=== erlang ===&lt;br /&gt;
=== hevea ===&lt;br /&gt;
=== image-creator ===&lt;br /&gt;
=== isomd5sum ===&lt;br /&gt;
=== pykickstart ===&lt;br /&gt;
=== rabbitmq-server ===&lt;br /&gt;
=== rabbitmq-server-1.8.0 ===&lt;br /&gt;
=== squashfs-tools ===&lt;br /&gt;
=== yum ===&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra:OBS ==&lt;br /&gt;
The team will build and package custom versions of OBS to allow for testing as packages before patches are submitted upstream.&lt;br /&gt;
&lt;br /&gt;
http://gitorious.org/~lbt/opensuse/lbt-build-service&lt;br /&gt;
&lt;br /&gt;
To package:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
W I P &lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
11.2 type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/Maemo:/MeeGo-Infra/openSUSE_11.2-plus/Maemo:MeeGo-Infra.repo&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/network:/messaging:/amqp/openSUSE_11.2/network:messaging:amqp.repo&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.2/devel:languages:ruby:extensions.repo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11.3 is similar but some build problems on suse OBS (24 July) mean you need http://download.opensuse.org/repositories/home:/lbt:/branches:/network:/messaging:/amqp/openSUSE_11.3/&lt;br /&gt;
&lt;br /&gt;
Then&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
configure rabbitmq (security not included)&lt;br /&gt;
 rabbitmqctl add_vhost _node_name_&lt;br /&gt;
 rabbitmqctl add_user _username_ _password_&lt;br /&gt;
 rabbitmqctl set_permissions -p _node_name_ _user_ '.*' '.*' '.*'&lt;br /&gt;
&lt;br /&gt;
To start BOSS:&lt;br /&gt;
 rcboss start&lt;br /&gt;
&lt;br /&gt;
'''Don't forget to follow the instructions in /usr/share/doc/packages/boss/INSTALL'''&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Code</id>
		<title>Release Infrastructure/BOSS/Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Code"/>
				<updated>2010-08-22T20:11:59Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following packages are part of the Release Infrastructure team's codebase&lt;br /&gt;
Additional external dependencies will need to be packaged from eggs/gems to support BOSS installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra ==&lt;br /&gt;
=== BOSS ===&lt;br /&gt;
BOSS source is managed in gitorious:&lt;br /&gt;
* http://meego.gitorious.org/meego-infrastructure-tools/boss&lt;br /&gt;
&lt;br /&gt;
There should be enough information by each package to build a new version : FIXME.&lt;br /&gt;
&lt;br /&gt;
=== MeeGo-IMG ===&lt;br /&gt;
Aleksi... FIXME ... link to IMG page?&lt;br /&gt;
&lt;br /&gt;
=== AIR ===&lt;br /&gt;
AIR for ruby&lt;br /&gt;
 http://meego.gitorious.org/meego-infrastructure-tools/air&lt;br /&gt;
==== libair-python ====&lt;br /&gt;
debian package&lt;br /&gt;
==== libair-ruby ====&lt;br /&gt;
debian package&lt;br /&gt;
==== rubygem-air ====&lt;br /&gt;
suse package&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
==== python-air?? ====&lt;br /&gt;
suse package : no suse package yet.&lt;br /&gt;
&lt;br /&gt;
=== ruote ===&lt;br /&gt;
Should be virgin but is likely to be modified slightly and/or tagged&lt;br /&gt;
 http://github.com/lbt/ruote&lt;br /&gt;
&lt;br /&gt;
Current snapshots:&lt;br /&gt;
 * 2.1.11.lbt2  b93c6d5f1798a07546c881e909e28a78673ba696&lt;br /&gt;
&lt;br /&gt;
=== libruote-ruby ===&lt;br /&gt;
Debian : http://github.com/lbt/pkg-ruote&lt;br /&gt;
&lt;br /&gt;
=== ruote-amqp-pyclient ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout pkg&lt;br /&gt;
git merge master&lt;br /&gt;
#edit changelogs&lt;br /&gt;
git commit -am&amp;quot;Update to packaging&amp;quot;&lt;br /&gt;
rm /maemo/obs/opensuse/Maemo:MeeGo-Infra/route-amqp-pyclient/*.gz&lt;br /&gt;
git archive $TAG --format=tar --prefix=route-amqp-pyclient-$TAG/ | gzip &amp;gt; /maemo/obs/opensuse/Maemo:MeeGo-Infra/route-amqp-pyclient/route-amqp-pyclient-$TAG.tar.gz&lt;br /&gt;
cp *.spec /maemo/obs/opensuse/Maemo:MeeGo-Infra/route-amqp-pyclient/&lt;br /&gt;
cd /maemo/obs/opensuse/Maemo:MeeGo-Infra/route-amqp-pyclient/&lt;br /&gt;
osc -A suse ar&lt;br /&gt;
osc -A suse commit -m&amp;quot;Update to $TAG&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== rubygem-ruote ===&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
&lt;br /&gt;
=== ruote-amqp ===&lt;br /&gt;
Source:&lt;br /&gt;
 http://github.com/lbt/ruote-amqp&lt;br /&gt;
=== libruote-amqp-ruby ===&lt;br /&gt;
Debian : http://github.com/lbt/pkg-ruote-amqp&lt;br /&gt;
=== rubygem-ruote-amqp ===&lt;br /&gt;
Suse: Uses [[Release Infrastructure/Packaging#openSuse|update-gem tool]]&lt;br /&gt;
&lt;br /&gt;
=== python-amqlib ===&lt;br /&gt;
Local version of python amqp library&lt;br /&gt;
 http://github.com/lbt/py-amqplib&lt;br /&gt;
&lt;br /&gt;
=== libsetup-ruby ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== ruby-pkg-tools ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== ruby1.9.1 ===&lt;br /&gt;
Required for Debian 5 support for ruby packaging&lt;br /&gt;
=== python-support ===&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra:Req ==&lt;br /&gt;
=== ejabberd ===&lt;br /&gt;
=== erlang ===&lt;br /&gt;
=== hevea ===&lt;br /&gt;
=== image-creator ===&lt;br /&gt;
=== isomd5sum ===&lt;br /&gt;
=== pykickstart ===&lt;br /&gt;
=== rabbitmq-server ===&lt;br /&gt;
=== rabbitmq-server-1.8.0 ===&lt;br /&gt;
=== squashfs-tools ===&lt;br /&gt;
=== yum ===&lt;br /&gt;
&lt;br /&gt;
== Maemo:MeeGo-Infra:OBS ==&lt;br /&gt;
The team will build and package custom versions of OBS to allow for testing as packages before patches are submitted upstream.&lt;br /&gt;
&lt;br /&gt;
http://gitorious.org/~lbt/opensuse/lbt-build-service&lt;br /&gt;
&lt;br /&gt;
To package:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
W I P &lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
11.2 type:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/Maemo:/MeeGo-Infra/openSUSE_11.2-plus/Maemo:MeeGo-Infra.repo&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/network:/messaging:/amqp/openSUSE_11.2/network:messaging:amqp.repo&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.2/devel:languages:ruby:extensions.repo&lt;br /&gt;
zypper ar http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/openSUSE_11.3/devel:languages:ruby:extensions.repo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11.3 is similar but some build problems on suse OBS (24 July) mean you need http://download.opensuse.org/repositories/home:/lbt:/branches:/network:/messaging:/amqp/openSUSE_11.3/&lt;br /&gt;
&lt;br /&gt;
Then&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in boss&lt;br /&gt;
&lt;br /&gt;
To start BOSS:&lt;br /&gt;
 rcboss start&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS</id>
		<title>Release Infrastructure/BOSS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS"/>
				<updated>2010-08-04T10:27:25Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[TOC]]&lt;br /&gt;
== BOSS &amp;quot;Build Orchestration Supervision System&amp;quot; ==&lt;br /&gt;
BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps.&lt;br /&gt;
&lt;br /&gt;
MeeGo will use BOSS to orchestrate a CI (Continuous Integration) ecosystem around OBS.&lt;br /&gt;
&lt;br /&gt;
[[File:Boss0.png]]&lt;br /&gt;
&lt;br /&gt;
=== Why ===&lt;br /&gt;
* we need a robust, flexible way of configuring a set of triggers (ex. OBS event or a submit request) and responses&lt;br /&gt;
* OBS is a build system, not a general workflow system&lt;br /&gt;
* there is need for automation of responses to OBS actions results&lt;br /&gt;
* OBS requests are good but not flexible nor extensible&lt;br /&gt;
* there's fear of OBS becoming a big black box doing all the magic (maintainability)&lt;br /&gt;
* Hermes is there, but it is just taking care of notifications&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
* parallel worflows for parallel software programmes&lt;br /&gt;
* allows for parallel implementation of the system&lt;br /&gt;
* plugins are usable independently&lt;br /&gt;
* take away the productization process/logic from the build infrastructure&lt;br /&gt;
&lt;br /&gt;
=== What is BOSS ===&lt;br /&gt;
There is a page describing the details of the [/Design design]&lt;br /&gt;
&lt;br /&gt;
* a workflow framework allowing site-specific workflow definition&lt;br /&gt;
* a message bus and queue-manager to handle delivery of incoming messages from all existing systems to the worklow framework&lt;br /&gt;
* a queue-based job distribution system that handles delivery to pools of workers&lt;br /&gt;
&lt;br /&gt;
=== OBS event publisher ===&lt;br /&gt;
One important part of BOSS integration will be the connectivity with the OBS.&lt;br /&gt;
[[File:obs_events.png]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* Code: The [[/Code|BOSS code]] is available&lt;br /&gt;
* AMQP: [http://www.amqp.org AMQP.org] has the very readable [http://www.amqp.org/confluence/download/attachments/720900/amqp0-9-1.pdf?version=1&amp;amp;modificationDate=1227526523000 0.9.1 specification (pdf)]&lt;br /&gt;
* Ruote: [http://wiki.github.com/jmettraux/ruote/overview An overview of Ruote]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/IMG</id>
		<title>Release Infrastructure/IMG</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/IMG"/>
				<updated>2010-07-20T09:04:09Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with '= What is IMG =  IMG (Image Me Give) is a small python client/server application suite, its sole job is to get a POST'd kickstart file from a user and then run Moblin-Image-Creat…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is IMG =&lt;br /&gt;
&lt;br /&gt;
IMG (Image Me Give) is a small python client/server application suite, its sole job is to get a POST'd kickstart file from a user and then run Moblin-Image-Creator. It is also possible to use kickstarter yaml files to create a tailor-made image or using the default selection of yaml templates.&lt;br /&gt;
&lt;br /&gt;
= Design = &lt;br /&gt;
* Asynchronous&lt;br /&gt;
:Fire and forget about it until an email about completion is sent. (FUTURE)&lt;br /&gt;
* Queue of mic jobs&lt;br /&gt;
:Queue mic jobs running in threads&lt;br /&gt;
* Queue view,&lt;br /&gt;
:Show a nice html view of currently running or standby MIC jobs in the queues&lt;br /&gt;
* Submit/cancel via .ks&lt;br /&gt;
:Upload via a form&lt;br /&gt;
* Email response success/fail&lt;br /&gt;
:Email on success&lt;br /&gt;
* No security &lt;br /&gt;
:No https or file filter restrictions :)&lt;br /&gt;
&lt;br /&gt;
== Example workflow ==&lt;br /&gt;
&lt;br /&gt;
The application consists of two parts, django frontend and the actual image creation application. Both of them are connected via a message broker, RabbitMQ is used.&lt;br /&gt;
&lt;br /&gt;
So an example workflow:&lt;br /&gt;
&lt;br /&gt;
# User posts an image creation request with email address and sample kickstart file (or yaml templates for kickstarter), using a form or the command line client.&lt;br /&gt;
# Django application receives the request and imports the information on a model object and saves it.&lt;br /&gt;
# When the object is saved, a message is sent via a broker to the image creation app, containing the details for the creation.&lt;br /&gt;
## Image creation commences&lt;br /&gt;
## Virtual machine disk image containing mic2 and kickstarter is engaged (as a copy), with ssh access and a special mount to a location in which the created images are held.&lt;br /&gt;
### When a yaml overlay is received, it is passed via kickstarter and then to mic2&lt;br /&gt;
### When a kickstart file is received, it is passed directly to mic2&lt;br /&gt;
## Server connects to the virtual machine using ssh and passes the required commands&lt;br /&gt;
## When mic2 has finished, the virtual machine shuts down.&lt;br /&gt;
## When image is created, the virtual machine disk image is deleted&lt;br /&gt;
&lt;br /&gt;
= Overlays =&lt;br /&gt;
&lt;br /&gt;
Overlays are special to IMG, as they provide a possibility to modify an existing YAML templates. Examples include package adding/removal, configuration changes etc.&lt;br /&gt;
&lt;br /&gt;
The draft for overlay files:&lt;br /&gt;
 gcc,@MeeGo Netbook Desktop,-google-chrome&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So comma separated list of packages and groups. Groups have to be prepended with @-symbol.&lt;br /&gt;
&lt;br /&gt;
When applying the overlay to a template like this:&lt;br /&gt;
&lt;br /&gt;
 NETBOOK:&lt;br /&gt;
    PartSize: 1900&lt;br /&gt;
    BootloaderAppend: &amp;quot;quiet&amp;quot;&lt;br /&gt;
    BootloaderTimeout: 0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - cleanup&lt;br /&gt;
        - flash&lt;br /&gt;
    Groups:&lt;br /&gt;
        - X for Netbooks&lt;br /&gt;
        - Virtual Machine Support&lt;br /&gt;
        - Printing&lt;br /&gt;
        - Games&lt;br /&gt;
    Kernel: kernel-netbook&lt;br /&gt;
    Repos:&lt;br /&gt;
        - adobe&lt;br /&gt;
        - meego-core-1.0&lt;br /&gt;
        - meego-netbook-1.0&lt;br /&gt;
        - meego-extra-1.0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - prelink&lt;br /&gt;
    ExtraPackages:&lt;br /&gt;
        - gdb&lt;br /&gt;
        - flash-plugin&lt;br /&gt;
        - adobe-release&lt;br /&gt;
&lt;br /&gt;
It becomes:&lt;br /&gt;
&lt;br /&gt;
 NETBOOK:&lt;br /&gt;
    PartSize: 1900&lt;br /&gt;
    BootloaderAppend: &amp;quot;quiet&amp;quot;&lt;br /&gt;
    BootloaderTimeout: 0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - cleanup&lt;br /&gt;
        - flash&lt;br /&gt;
    Groups:&lt;br /&gt;
        - X for Netbooks&lt;br /&gt;
        - Virtual Machine Support&lt;br /&gt;
        - Printing&lt;br /&gt;
        - Games&lt;br /&gt;
        - MeeGo Netbook Desktop&lt;br /&gt;
    Kernel: kernel-netbook&lt;br /&gt;
    Repos:&lt;br /&gt;
        - adobe&lt;br /&gt;
        - meego-core-1.0&lt;br /&gt;
        - meego-netbook-1.0&lt;br /&gt;
        - meego-extra-1.0&lt;br /&gt;
        - internal&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - prelink&lt;br /&gt;
    ExtraPackages:&lt;br /&gt;
        - gdb&lt;br /&gt;
        - flash-plugin&lt;br /&gt;
        - adobe-release&lt;br /&gt;
        - gcc&lt;br /&gt;
        - -google-chrome&lt;br /&gt;
&lt;br /&gt;
= Client =&lt;br /&gt;
&lt;br /&gt;
For demonstration see [http://meego.gitorious.org/meego-infrastructure-tools/imger/blobs/master/src/meego_img/client.py client.py] for example client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Django client ==&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
* submit[[BR]]&lt;br /&gt;
:If this views receives a POST request, it constructs a bound form with the data from POST array. If the form is valid it extracts the data, as specified in the forms section.&lt;br /&gt;
:Applying the overlay is handled in this form, in the following way.&lt;br /&gt;
* Get the overlay text from the form field&lt;br /&gt;
* use python strings split() method to split the overlay text in to a list, with a comma delimiter&lt;br /&gt;
*parse the template configurations.yaml&lt;br /&gt;
**append the overlay list to the platform selected via the form, to the !ExtraPackages element&lt;br /&gt;
:After the overlay is applied, the resulting YAML template is passed to the kickstarter via a message, see [#Kickstarter]&lt;br /&gt;
* queue&lt;br /&gt;
:This view is responsible of two things. Firstly it wether there are any ready images in the &amp;quot;link_queue&amp;quot; message queue, if there are, then update the !ImageJob model object (identified by the identification string from the message) to include the ready image URL.&lt;br /&gt;
:Secondly, it checks for possible error messages in &amp;quot;error_queue&amp;quot; queue, if there are any, it assigns a special variable to indicate that there has been an error. &lt;br /&gt;
:If no messages are received, it simply redirects to a template with all the !ImageJob model objects.&lt;br /&gt;
* job&lt;br /&gt;
:Job view is responsible of providing the information about the log file. The information about the logfile is formed in the server side, such as the file name. If there is a filename, it will open the file and read it and return the resulting text to the template. The template renders the log message with a textarea html widget.&lt;br /&gt;
*index&lt;br /&gt;
:Index only returns a template in which one can click a link about uploading the image.&lt;br /&gt;
&lt;br /&gt;
=== URLs ===&lt;br /&gt;
    url(r'submit/$', 'meego_img.app.views.submit', name='img-app-submit'), &lt;br /&gt;
    url(r'queue/$', 'meego_img.app.views.queue', name='img-app-queue'),&lt;br /&gt;
    #(r'$', 'meego_img.app.views.index'),&lt;br /&gt;
    url(r'job/(?P&amp;lt;msgid&amp;gt;\S+)$', 'meego_img.app.views.job', name='img-app-job'),  &lt;br /&gt;
    url(r'clear/$', 'meego_img.app.views.clear', name='img-app-clear'),     &lt;br /&gt;
    url(r'images/(?P&amp;lt;msgid&amp;gt;\S+)$', 'meego_img.app.views.download',name='img-app-download'),&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
IMG currently has only one model, !ImageJob, here is the Django code for it:&lt;br /&gt;
 # Create your models here.&lt;br /&gt;
 class ImageJob(models.Model):    &lt;br /&gt;
    email = models.CharField(max_length=40)&lt;br /&gt;
    filename = models.CharField(max_length=40)&lt;br /&gt;
    logfile = models.CharField(max_length=50)&lt;br /&gt;
    task_id = models.CharField(max_length=30)&lt;br /&gt;
    imagefile = models.CharField(max_length=50)    &lt;br /&gt;
    created = models.DateTimeField(auto_now_add=True)&lt;br /&gt;
    error = models.CharField(max_length=500)&lt;br /&gt;
    type = models.CharField(max_length=10)&lt;br /&gt;
    status = models.CharField(max_length=30)&lt;br /&gt;
    def delete(self, *args, **kwargs): &lt;br /&gt;
        if self.logfile:&lt;br /&gt;
            if os.path.exists(self.logfile):&lt;br /&gt;
                os.remove(self.logfile)&lt;br /&gt;
                os.remove(self.logfile.replace(&amp;quot;-log&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
                print &amp;quot;Removed %s&amp;quot;%self.logfile&lt;br /&gt;
        super(ImageJob, self).delete(*args, **kwargs)&lt;br /&gt;
&lt;br /&gt;
As can be seen in the delete method, this model cleans up all image creation related files, like the kickstarter file and log file.&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
==== !UploadFileForm ====&lt;br /&gt;
&lt;br /&gt;
Contains the following fields&lt;br /&gt;
* email, email field&lt;br /&gt;
* overlay, text input field&lt;br /&gt;
* platform, select field for the platform, parsed from the default template &lt;br /&gt;
* imagetype, select field for the image type, with values:  livecd, liveusb, loop, raw, nand, mrstnand, vdi, vmdk&lt;br /&gt;
* ksfile, the raw kickstart file&lt;br /&gt;
&lt;br /&gt;
= Server =&lt;br /&gt;
&lt;br /&gt;
See [http://meego.gitorious.org/meego-infrastructure-tools/imger/blobs/master/src/meego_img/image_creator.py image_creator.py] for example server.&lt;br /&gt;
&lt;br /&gt;
This section documents the server component of IMG.&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Consumer functions ===&lt;br /&gt;
&lt;br /&gt;
*kickstarter_callback:&lt;br /&gt;
:Receives messages as described [#Kickstarter here], decodes JSON data to variables and runs kickstarter. After kickstarter finishes it sends a message to &amp;quot;image_queue&amp;quot; queue, as specified [#MoblinImageCreator here].&lt;br /&gt;
*mic2_callback:&lt;br /&gt;
:Receives messages as described [#MoblinImageCreator here], decodes JSON data to variables and runs moblin-image-creator (NB! this has to exist in /usr/bin/moblin-image-creator, will be changeable in the future) against the supplied configuration file and image type.&lt;br /&gt;
:The images are saved to to a configured location, needs to be changed in the python subprocess call in order to get downloadable images (eg. to a webserver media path).&lt;br /&gt;
:If the image creation fails (is caught with &amp;quot;!CalledProcessError&amp;quot; exception in the code, this happens with nonzero exit status), a message is sent to &amp;quot;error_queue&amp;quot; queue, with the following JSON encoded dictionary:&lt;br /&gt;
&lt;br /&gt;
    'error': Contains the error message of the exception received from the python subprocess call.&lt;br /&gt;
    'id': identification string of the original message sent to &amp;quot;image_queue&amp;quot; queue &lt;br /&gt;
    'url': Contains the URL from which one can download the log&lt;br /&gt;
&lt;br /&gt;
:Also in the case of an error, the following text is appended at the end of the log file: &amp;quot;IMG FAILED MISERABLY IN CREATING THE IMAGE!\n&amp;quot;, along with the same error message as queued to the &amp;quot;error_queue&amp;quot; queue.&lt;br /&gt;
&lt;br /&gt;
:If the image creation succeeds, a message is queued to &amp;quot;link_queue&amp;quot; queue, with the following JSON encoded dictionary:&lt;br /&gt;
&lt;br /&gt;
    'url': Contains the URL from which one can download the image&lt;br /&gt;
&lt;br /&gt;
    'id': identification string of the original message sent to &amp;quot;image_queue&amp;quot; queue &lt;br /&gt;
&lt;br /&gt;
== Exchanges ==&lt;br /&gt;
&lt;br /&gt;
* image_exchange, The exchange for image creationg related queues&lt;br /&gt;
* django_result_exchange, Exchange for results, picked up by django&lt;br /&gt;
&lt;br /&gt;
== Queues ==&lt;br /&gt;
&lt;br /&gt;
Queues for exchange &amp;quot;image_exchange&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
* image_queue&lt;br /&gt;
:Stores messages related to Moblin Image Creator runtime, see [#MoblinImageCreator Moblin Image Creator] , for the message format&lt;br /&gt;
* kickstarter_queue&lt;br /&gt;
:Stores messages related to kickstarter runtime, see [#Kickstarter kickstarter], for the message format&lt;br /&gt;
&lt;br /&gt;
Queues for exchange &amp;quot;django_result_exchange&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
* link_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'id': the identification string of the original message sent to kickstarter_queue&lt;br /&gt;
*** 'url': Contains the URL from which one can download the image&lt;br /&gt;
* result_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'logfile': filename of the logfile to read&lt;br /&gt;
*** 'id': identification string of the message&lt;br /&gt;
* error_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'error': Error message, this message gets recorded in to the log file.&lt;br /&gt;
** 'url': Contains the URL from which one can download the log which describes the error.&lt;br /&gt;
*** 'id': identification string of the message&lt;br /&gt;
&lt;br /&gt;
= Messages =&lt;br /&gt;
&lt;br /&gt;
The general message format is JSON encoded dictionary.&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
&lt;br /&gt;
To initialize kickstarter, send a JSON formatted message as follows:&lt;br /&gt;
&lt;br /&gt;
 {'config':config, 'email':'email', 'imagetype':'imagetype', 'id': id}&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* Config, is a yaml formatted configuration for kickstarter&lt;br /&gt;
* Email, email address&lt;br /&gt;
* Imagetype, image type of values: livecd, liveusb, loop, raw, nand, mrstnand, vdi or vmdk&lt;br /&gt;
* Id, a unique id for this job&lt;br /&gt;
&lt;br /&gt;
== Moblin Image Creator ==&lt;br /&gt;
&lt;br /&gt;
To initialize the actual image building, send a JSON formatted message as follows:&lt;br /&gt;
&lt;br /&gt;
 {'email':email, 'id':id, 'imagetype':imagetype, 'ksfile':ksfile}&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* email, email address of the submitter&lt;br /&gt;
* id, identification string of the original message (passed on from kickstarter process)&lt;br /&gt;
* imagetype, image type of values: livecd, liveusb, loop, raw, nand, mrstnand, vdi or vmdk&lt;br /&gt;
* ksfile, the actual kickstar file to upload (in text)&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/REVS</id>
		<title>Release Infrastructure/REVS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/REVS"/>
				<updated>2010-07-20T09:03:54Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/REVS</id>
		<title>Release Infrastructure/REVS</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/REVS"/>
				<updated>2010-07-20T09:02:35Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with '= What is IMG =  IMG (Image Me Give) is a small python client/server application suite, its sole job is to get a POST'd kickstart file from a user and then run Moblin-Image-Creat…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= What is IMG =&lt;br /&gt;
&lt;br /&gt;
IMG (Image Me Give) is a small python client/server application suite, its sole job is to get a POST'd kickstart file from a user and then run Moblin-Image-Creator. It is also possible to use kickstarter yaml files to create a tailor-made image or using the default selection of yaml templates.&lt;br /&gt;
&lt;br /&gt;
= Design = &lt;br /&gt;
* Asynchronous&lt;br /&gt;
:Fire and forget about it until an email about completion is sent. (FUTURE)&lt;br /&gt;
* Queue of mic jobs&lt;br /&gt;
:Queue mic jobs running in threads&lt;br /&gt;
* Queue view,&lt;br /&gt;
:Show a nice html view of currently running or standby MIC jobs in the queues&lt;br /&gt;
* Submit/cancel via .ks&lt;br /&gt;
:Upload via a form&lt;br /&gt;
* Email response success/fail&lt;br /&gt;
:Email on success&lt;br /&gt;
* No security &lt;br /&gt;
:No https or file filter restrictions :)&lt;br /&gt;
&lt;br /&gt;
== Example workflow ==&lt;br /&gt;
&lt;br /&gt;
The application consists of two parts, django frontend and the actual image creation application. Both of them are connected via a message broker, RabbitMQ is used.&lt;br /&gt;
&lt;br /&gt;
So an example workflow:&lt;br /&gt;
&lt;br /&gt;
# User posts an image creation request with email address and sample kickstart file (or yaml templates for kickstarter), using a form or the command line client.&lt;br /&gt;
# Django application receives the request and imports the information on a model object and saves it.&lt;br /&gt;
# When the object is saved, a message is sent via a broker to the image creation app, containing the details for the creation.&lt;br /&gt;
## Image creation commences&lt;br /&gt;
## Virtual machine disk image containing mic2 and kickstarter is engaged (as a copy), with ssh access and a special mount to a location in which the created images are held.&lt;br /&gt;
### When a yaml overlay is received, it is passed via kickstarter and then to mic2&lt;br /&gt;
### When a kickstart file is received, it is passed directly to mic2&lt;br /&gt;
## Server connects to the virtual machine using ssh and passes the required commands&lt;br /&gt;
## When mic2 has finished, the virtual machine shuts down.&lt;br /&gt;
## When image is created, the virtual machine disk image is deleted&lt;br /&gt;
&lt;br /&gt;
= Overlays =&lt;br /&gt;
&lt;br /&gt;
Overlays are special to IMG, as they provide a possibility to modify an existing YAML templates. Examples include package adding/removal, configuration changes etc.&lt;br /&gt;
&lt;br /&gt;
The draft for overlay files:&lt;br /&gt;
 gcc,@MeeGo Netbook Desktop,-google-chrome&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So comma separated list of packages and groups. Groups have to be prepended with @-symbol.&lt;br /&gt;
&lt;br /&gt;
When applying the overlay to a template like this:&lt;br /&gt;
&lt;br /&gt;
 NETBOOK:&lt;br /&gt;
    PartSize: 1900&lt;br /&gt;
    BootloaderAppend: &amp;quot;quiet&amp;quot;&lt;br /&gt;
    BootloaderTimeout: 0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - cleanup&lt;br /&gt;
        - flash&lt;br /&gt;
    Groups:&lt;br /&gt;
        - X for Netbooks&lt;br /&gt;
        - Virtual Machine Support&lt;br /&gt;
        - Printing&lt;br /&gt;
        - Games&lt;br /&gt;
    Kernel: kernel-netbook&lt;br /&gt;
    Repos:&lt;br /&gt;
        - adobe&lt;br /&gt;
        - meego-core-1.0&lt;br /&gt;
        - meego-netbook-1.0&lt;br /&gt;
        - meego-extra-1.0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - prelink&lt;br /&gt;
    ExtraPackages:&lt;br /&gt;
        - gdb&lt;br /&gt;
        - flash-plugin&lt;br /&gt;
        - adobe-release&lt;br /&gt;
&lt;br /&gt;
It becomes:&lt;br /&gt;
&lt;br /&gt;
 NETBOOK:&lt;br /&gt;
    PartSize: 1900&lt;br /&gt;
    BootloaderAppend: &amp;quot;quiet&amp;quot;&lt;br /&gt;
    BootloaderTimeout: 0&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - cleanup&lt;br /&gt;
        - flash&lt;br /&gt;
    Groups:&lt;br /&gt;
        - X for Netbooks&lt;br /&gt;
        - Virtual Machine Support&lt;br /&gt;
        - Printing&lt;br /&gt;
        - Games&lt;br /&gt;
        - MeeGo Netbook Desktop&lt;br /&gt;
    Kernel: kernel-netbook&lt;br /&gt;
    Repos:&lt;br /&gt;
        - adobe&lt;br /&gt;
        - meego-core-1.0&lt;br /&gt;
        - meego-netbook-1.0&lt;br /&gt;
        - meego-extra-1.0&lt;br /&gt;
        - internal&lt;br /&gt;
    PostScripts:&lt;br /&gt;
        - prelink&lt;br /&gt;
    ExtraPackages:&lt;br /&gt;
        - gdb&lt;br /&gt;
        - flash-plugin&lt;br /&gt;
        - adobe-release&lt;br /&gt;
        - gcc&lt;br /&gt;
        - -google-chrome&lt;br /&gt;
&lt;br /&gt;
= Client =&lt;br /&gt;
&lt;br /&gt;
For demonstration see [http://meego.gitorious.org/meego-infrastructure-tools/imger/blobs/master/src/meego_img/client.py client.py] for example client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Django client ==&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
* submit[[BR]]&lt;br /&gt;
:If this views receives a POST request, it constructs a bound form with the data from POST array. If the form is valid it extracts the data, as specified in the forms section.&lt;br /&gt;
:Applying the overlay is handled in this form, in the following way.&lt;br /&gt;
* Get the overlay text from the form field&lt;br /&gt;
* use python strings split() method to split the overlay text in to a list, with a comma delimiter&lt;br /&gt;
*parse the template configurations.yaml&lt;br /&gt;
**append the overlay list to the platform selected via the form, to the !ExtraPackages element&lt;br /&gt;
:After the overlay is applied, the resulting YAML template is passed to the kickstarter via a message, see [#Kickstarter]&lt;br /&gt;
* queue&lt;br /&gt;
:This view is responsible of two things. Firstly it wether there are any ready images in the &amp;quot;link_queue&amp;quot; message queue, if there are, then update the !ImageJob model object (identified by the identification string from the message) to include the ready image URL.&lt;br /&gt;
:Secondly, it checks for possible error messages in &amp;quot;error_queue&amp;quot; queue, if there are any, it assigns a special variable to indicate that there has been an error. &lt;br /&gt;
:If no messages are received, it simply redirects to a template with all the !ImageJob model objects.&lt;br /&gt;
* job&lt;br /&gt;
:Job view is responsible of providing the information about the log file. The information about the logfile is formed in the server side, such as the file name. If there is a filename, it will open the file and read it and return the resulting text to the template. The template renders the log message with a textarea html widget.&lt;br /&gt;
*index&lt;br /&gt;
:Index only returns a template in which one can click a link about uploading the image.&lt;br /&gt;
&lt;br /&gt;
=== URLs ===&lt;br /&gt;
    url(r'submit/$', 'meego_img.app.views.submit', name='img-app-submit'), &lt;br /&gt;
    url(r'queue/$', 'meego_img.app.views.queue', name='img-app-queue'),&lt;br /&gt;
    #(r'$', 'meego_img.app.views.index'),&lt;br /&gt;
    url(r'job/(?P&amp;lt;msgid&amp;gt;\S+)$', 'meego_img.app.views.job', name='img-app-job'),  &lt;br /&gt;
    url(r'clear/$', 'meego_img.app.views.clear', name='img-app-clear'),     &lt;br /&gt;
    url(r'images/(?P&amp;lt;msgid&amp;gt;\S+)$', 'meego_img.app.views.download',name='img-app-download'),&lt;br /&gt;
=== Models ===&lt;br /&gt;
&lt;br /&gt;
IMG currently has only one model, !ImageJob, here is the Django code for it:&lt;br /&gt;
 # Create your models here.&lt;br /&gt;
 class ImageJob(models.Model):    &lt;br /&gt;
    email = models.CharField(max_length=40)&lt;br /&gt;
    filename = models.CharField(max_length=40)&lt;br /&gt;
    logfile = models.CharField(max_length=50)&lt;br /&gt;
    task_id = models.CharField(max_length=30)&lt;br /&gt;
    imagefile = models.CharField(max_length=50)    &lt;br /&gt;
    created = models.DateTimeField(auto_now_add=True)&lt;br /&gt;
    error = models.CharField(max_length=500)&lt;br /&gt;
    type = models.CharField(max_length=10)&lt;br /&gt;
    status = models.CharField(max_length=30)&lt;br /&gt;
    def delete(self, *args, **kwargs): &lt;br /&gt;
        if self.logfile:&lt;br /&gt;
            if os.path.exists(self.logfile):&lt;br /&gt;
                os.remove(self.logfile)&lt;br /&gt;
                os.remove(self.logfile.replace(&amp;quot;-log&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
                print &amp;quot;Removed %s&amp;quot;%self.logfile&lt;br /&gt;
        super(ImageJob, self).delete(*args, **kwargs)&lt;br /&gt;
&lt;br /&gt;
As can be seen in the delete method, this model cleans up all image creation related files, like the kickstarter file and log file.&lt;br /&gt;
&lt;br /&gt;
=== Forms ===&lt;br /&gt;
==== !UploadFileForm ====&lt;br /&gt;
&lt;br /&gt;
Contains the following fields&lt;br /&gt;
* email, email field&lt;br /&gt;
* overlay, text input field&lt;br /&gt;
* platform, select field for the platform, parsed from the default template &lt;br /&gt;
* imagetype, select field for the image type, with values:  livecd, liveusb, loop, raw, nand, mrstnand, vdi, vmdk&lt;br /&gt;
* ksfile, the raw kickstart file&lt;br /&gt;
&lt;br /&gt;
= Server =&lt;br /&gt;
&lt;br /&gt;
See [http://meego.gitorious.org/meego-infrastructure-tools/imger/blobs/master/src/meego_img/image_creator.py image_creator.py] for example server.&lt;br /&gt;
&lt;br /&gt;
This section documents the server component of IMG.&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
=== Consumer functions ===&lt;br /&gt;
&lt;br /&gt;
*kickstarter_callback:&lt;br /&gt;
:Receives messages as described [#Kickstarter here], decodes JSON data to variables and runs kickstarter. After kickstarter finishes it sends a message to &amp;quot;image_queue&amp;quot; queue, as specified [#MoblinImageCreator here].&lt;br /&gt;
*mic2_callback:&lt;br /&gt;
:Receives messages as described [#MoblinImageCreator here], decodes JSON data to variables and runs moblin-image-creator (NB! this has to exist in /usr/bin/moblin-image-creator, will be changeable in the future) against the supplied configuration file and image type.&lt;br /&gt;
:The images are saved to to a configured location, needs to be changed in the python subprocess call in order to get downloadable images (eg. to a webserver media path).&lt;br /&gt;
:If the image creation fails (is caught with &amp;quot;!CalledProcessError&amp;quot; exception in the code, this happens with nonzero exit status), a message is sent to &amp;quot;error_queue&amp;quot; queue, with the following JSON encoded dictionary:&lt;br /&gt;
&lt;br /&gt;
    'error': Contains the error message of the exception received from the python subprocess call.&lt;br /&gt;
    'id': identification string of the original message sent to &amp;quot;image_queue&amp;quot; queue &lt;br /&gt;
    'url': Contains the URL from which one can download the log&lt;br /&gt;
&lt;br /&gt;
:Also in the case of an error, the following text is appended at the end of the log file: &amp;quot;IMG FAILED MISERABLY IN CREATING THE IMAGE!\n&amp;quot;, along with the same error message as queued to the &amp;quot;error_queue&amp;quot; queue.&lt;br /&gt;
&lt;br /&gt;
:If the image creation succeeds, a message is queued to &amp;quot;link_queue&amp;quot; queue, with the following JSON encoded dictionary:&lt;br /&gt;
&lt;br /&gt;
    'url': Contains the URL from which one can download the image&lt;br /&gt;
&lt;br /&gt;
    'id': identification string of the original message sent to &amp;quot;image_queue&amp;quot; queue &lt;br /&gt;
&lt;br /&gt;
== Exchanges ==&lt;br /&gt;
&lt;br /&gt;
* image_exchange, The exchange for image creationg related queues&lt;br /&gt;
* django_result_exchange, Exchange for results, picked up by django&lt;br /&gt;
&lt;br /&gt;
== Queues ==&lt;br /&gt;
&lt;br /&gt;
Queues for exchange &amp;quot;image_exchange&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
* image_queue&lt;br /&gt;
:Stores messages related to Moblin Image Creator runtime, see [#MoblinImageCreator Moblin Image Creator] , for the message format&lt;br /&gt;
* kickstarter_queue&lt;br /&gt;
:Stores messages related to kickstarter runtime, see [#Kickstarter kickstarter], for the message format&lt;br /&gt;
&lt;br /&gt;
Queues for exchange &amp;quot;django_result_exchange&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
* link_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'id': the identification string of the original message sent to kickstarter_queue&lt;br /&gt;
*** 'url': Contains the URL from which one can download the image&lt;br /&gt;
* result_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'logfile': filename of the logfile to read&lt;br /&gt;
*** 'id': identification string of the message&lt;br /&gt;
* error_queue&lt;br /&gt;
:Contains messages in the following format (JSON encoded dictionary):&lt;br /&gt;
** 'error': Error message, this message gets recorded in to the log file.&lt;br /&gt;
** 'url': Contains the URL from which one can download the log which describes the error.&lt;br /&gt;
*** 'id': identification string of the message&lt;br /&gt;
&lt;br /&gt;
= Messages =&lt;br /&gt;
&lt;br /&gt;
The general message format is JSON encoded dictionary.&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
&lt;br /&gt;
To initialize kickstarter, send a JSON formatted message as follows:&lt;br /&gt;
&lt;br /&gt;
 {'config':config, 'email':'email', 'imagetype':'imagetype', 'id': id}&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* Config, is a yaml formatted configuration for kickstarter&lt;br /&gt;
* Email, email address&lt;br /&gt;
* Imagetype, image type of values: livecd, liveusb, loop, raw, nand, mrstnand, vdi or vmdk&lt;br /&gt;
* Id, a unique id for this job&lt;br /&gt;
&lt;br /&gt;
== Moblin Image Creator ==&lt;br /&gt;
&lt;br /&gt;
To initialize the actual image building, send a JSON formatted message as follows:&lt;br /&gt;
&lt;br /&gt;
 {'email':email, 'id':id, 'imagetype':imagetype, 'ksfile':ksfile}&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* email, email address of the submitter&lt;br /&gt;
* id, identification string of the original message (passed on from kickstarter process)&lt;br /&gt;
* imagetype, image type of values: livecd, liveusb, loop, raw, nand, mrstnand, vdi or vmdk&lt;br /&gt;
* ksfile, the actual kickstar file to upload (in text)&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2010-07-20T08:45:03Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
describe the overall infra&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
* [[/REVS|Release reporting REVS]]&lt;br /&gt;
* [[/IMG|Image Creation IMG]]&lt;br /&gt;
* Build System OBS&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2010-07-20T08:42:41Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
describe the overall infra&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
* [[infrastructue/BOSS|Build Orchestration BOSS]]&lt;br /&gt;
* [[infrastructure/REVS|Release reporting REVS]]&lt;br /&gt;
* [[infrastructure/IMG|Image Creation IMG]]&lt;br /&gt;
* Build System OBS&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure</id>
		<title>Release Infrastructure</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure"/>
				<updated>2010-07-20T08:39:57Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: Created page with '== Overview == describe the overall infra  == Tools == BOSS REVS IMG OBS'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
describe the overall infra&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
BOSS&lt;br /&gt;
REVS&lt;br /&gt;
IMG&lt;br /&gt;
OBS&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/BOSS/Todo</id>
		<title>BOSS/Todo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/BOSS/Todo"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Todo to Infrastructure/BOSS/Todo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Infrastructure/BOSS/Todo]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Todo</id>
		<title>Release Infrastructure/BOSS/Todo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Todo"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Todo to Infrastructure/BOSS/Todo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As part of the BOSS/Infra work&lt;br /&gt;
&lt;br /&gt;
* Test Frameworks for Ruby/Python and Ruote&lt;br /&gt;
* Create a 'release' of BOSS installable from packages that will allow processes to be launched.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
We need packaging procedures for our code to allow deployment on targeted OSes. Currently Debian Squeeze and openSuse 11.3. This needs to cover both supported and community libraries for python and ruby.&lt;br /&gt;
&lt;br /&gt;
(As another issue: MeeGo also needs packaging guidelines for Python, Ruby and Perl)&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/BOSS/Presentation</id>
		<title>BOSS/Presentation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/BOSS/Presentation"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Presentation to Infrastructure/BOSS/Presentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Infrastructure/BOSS/Presentation]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Presentation</id>
		<title>Release Infrastructure/BOSS/Presentation</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Presentation"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Presentation to Infrastructure/BOSS/Presentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[BOSS/Design]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/BOSS/Design</id>
		<title>BOSS/Design</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/BOSS/Design"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Design to Infrastructure/BOSS/Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Infrastructure/BOSS/Design]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Design</id>
		<title>Release Infrastructure/BOSS/Design</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Design"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Design to Infrastructure/BOSS/Design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This presentation introduces the BOSS system.&lt;br /&gt;
&lt;br /&gt;
== BOSS Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Boss0.png]]&lt;br /&gt;
&lt;br /&gt;
BOSS is a framework to orchestrate workflow steps around the build system.&lt;br /&gt;
&lt;br /&gt;
== Workflow : Ruote ==&lt;br /&gt;
&lt;br /&gt;
Ruote has been selected as the workflow framework :&lt;br /&gt;
* Straightforward&lt;br /&gt;
* Concise&lt;br /&gt;
* Clean design&lt;br /&gt;
* Ruby core&lt;br /&gt;
* JSON messages&lt;br /&gt;
* Language agnostic&lt;br /&gt;
* Active + welcoming upstream&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
* Jobsheet based (not state-machine):&lt;br /&gt;
** The workflow passes a 'sheet of paper' between participants&lt;br /&gt;
** Each participant looks at the paper, does some work, writes on it and passes it on&lt;br /&gt;
** The engine decides who gets the paper next&lt;br /&gt;
* Paper = JSON structure&lt;br /&gt;
* Multiple independent workflows can co-exist&lt;br /&gt;
&lt;br /&gt;
== AMQP ==&lt;br /&gt;
* Reliability&lt;br /&gt;
* Performance&lt;br /&gt;
* Flexibility&lt;br /&gt;
* Simplicity&lt;br /&gt;
* Multiple Language Bindings&lt;br /&gt;
* Persistence, concurrence and queuing “for free”&lt;br /&gt;
&lt;br /&gt;
== Talking to the BOSS ==&lt;br /&gt;
* AMQP – Queues and RPC&lt;br /&gt;
** Queues for 'work'&lt;br /&gt;
** RPC for immediate calls (see [[BOSS/AIR|AIR]])&lt;br /&gt;
&lt;br /&gt;
* Messages – all JSON&lt;br /&gt;
** Workitems&lt;br /&gt;
** Service request/response&lt;br /&gt;
&lt;br /&gt;
== Communication : Queues ==&lt;br /&gt;
[[File:Boss6.png]]&lt;br /&gt;
&lt;br /&gt;
== Communication : RPC ==&lt;br /&gt;
[[File:Boss7.png]]&lt;br /&gt;
&lt;br /&gt;
This is [[BOSS/AIR|AIR]]&lt;br /&gt;
== Communication : BOSS Participant ==&lt;br /&gt;
[[File:Boss9.png]]&lt;br /&gt;
&lt;br /&gt;
* Receive a workitem&lt;br /&gt;
* Process it&lt;br /&gt;
* Return it&lt;br /&gt;
&lt;br /&gt;
* Control thread using RPC allows cancel/status&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/BOSS/Code</id>
		<title>BOSS/Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/BOSS/Code"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Code to Infrastructure/BOSS/Code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Infrastructure/BOSS/Code]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Release_Infrastructure/BOSS/Code</id>
		<title>Release Infrastructure/BOSS/Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Release_Infrastructure/BOSS/Code"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/Code to Infrastructure/BOSS/Code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BOSS source is managed in gitorious:&lt;br /&gt;
* http://meego.gitorious.org/meego-infrastructure-tools&lt;br /&gt;
&lt;br /&gt;
Packages are currently built on the openSuse OBS in the Maemo:MeeGo-Infra project:&lt;br /&gt;
* https://build.opensuse.org/project/show?project=Maemo%3AMeeGo-Infra&lt;br /&gt;
&lt;br /&gt;
The following are packaged as part of BOSS&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Package             !! Debian     !! openSuse&lt;br /&gt;
|-&lt;br /&gt;
| libair-ruby         || Yes        || No&lt;br /&gt;
|-&lt;br /&gt;
| libruote-amqp-ruby  || Yes        || No&lt;br /&gt;
|-&lt;br /&gt;
| libruote-ruby       || Yes        || No&lt;br /&gt;
|-&lt;br /&gt;
| python-amqlib       || Yes        || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional external dependencies will need to be packaged from eggs/gems to support BOSS installation.&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/BOSS/AIR</id>
		<title>BOSS/AIR</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/BOSS/AIR"/>
				<updated>2010-07-20T08:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Informatiq: moved BOSS/AIR to Infrastructure/BOSS/AIR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Infrastructure/BOSS/AIR]]&lt;/div&gt;</summary>
		<author><name>Informatiq</name></author>	</entry>

	</feed>