Toaster: Difference between revisions

From Yocto Project
Jump to navigationJump to search
m (→‎Installation and Running: correct poky-contrib link)
(Updated dead link to old Yocto Project 1.0 docs)
 
(139 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[Category:WebHob]]
[[Category:Toaster]]
WebHob is a Web-based interface to the Bitbake build system and the Poky distribution inside the Yocto Project.
[[Toaster]] is a web-based interface to OpenEmbedded and BitBake.
[[File:Screenshot toaster.png|thumb|Screenshot of Toaster 2.1]]
General discussion about '''Toaster''' happens on a dedicated mailing list: [https://lists.yoctoproject.org/listinfo/toaster https://lists.yoctoproject.org/listinfo/toaster]


General discussion about '''Web Hob''' happens on a dedicated mailing list: [https://lists.yoctoproject.org/listinfo/webhob https://lists.yoctoproject.org/listinfo/webhob]
=== Using Toaster ===


Project planning is available below, are the design documents we follow.
Toaster can run in various modes and setups.


== User interface ==
* '''Local mode''' - in this mode Toaster is setup for use as a local development tool. It can be used to configure builds or just as a receiver for builds done on the command line with bitbake. You can launch it like this:
The design of the user interface takes place in iterations, and most recent designs supersede older ones.
Here is a set of links to design documentation.
* [[Web_Hob_design_project_with_T%26T]] - the latest user interface design
* [[Visualisations]] - an inventory of data visualisations we aim to include in the first release of Web Hob
* [[File:Multiuser_support_in_Web_Hob.pdf]] - different design approaches to handle multi-user scenarios
* [[File:Web_Hob_content_structure.pdf]] - Web Hob information architecture


=== WebHob clickable prototype ===
$ source oe-init-build-env
* [http://www.yoctoproject.org/webhob/phase3_final_web_prototype/dashboard.html A web-based prototype of the Web Hob user interface]
$ source toaster start


=== Old design documents ===
You then navigate to the link in your browser (e.g. http://localhost:8000) and configure a project. Or start building in the normal way with bitbake via the command line. Toaster will automatically pick up the builds and you will be able to see them on the build dashboard in your browser.
* [[WebHob_Design]]
* [[Yocto Web Hob Design 0.0 — Archived|A preliminary design project]] by [http://www.jimkosem.com/ Jim Kosem]


== Project Planning ==
* '''Production mode''' - All the same functionality as the local mode but with the web server setup as a shared service for multiple developers to use, this sets up Toaster as a wsgi application and [[Setting up a production instance of Toaster|requires additional configuration]].


We plan to develop WebHob functionality in stages. Each stage should match with an Yocto Project release.
=== Toaster How-to's ===


=== YP 1.5 release ===
Specific pages with Toaster how-tos are available below.


* WebHob will offer features to record and analyze bitbake runs, where a bitbake run is an invocation of bitbake to a certain target.
* [[Contribute to Toaster]]
* WebHob will offer ways to inspect the system image contents generated by running a Poky target that results in a disk image.
* [[Testing Toaster]]
* [[Setting up a local instance of Toaster]]
* [[Setting up a production instance of Toaster]] - documentation for Interactive mode
* [https://docs.yoctoproject.org/dunfell/toaster-manual/toaster-manual-setup-and-use.html#using-the-toaster-web-interface How to use the Toaster web interface]
* [[How to delete information from the Toaster database]]
* [[How to  support permission management in Build Mode for Toaster]]
* [[ToasterTable]]: Toaster's internal API for adding sortable, filterable, paged tables


[[https://bugzilla.yoctoproject.org/buglist.cgi?list_id=38454&bug_severity=enhancement&query_format=advanced&bug_status=NEW&bug_status=ACCEPTED&bug_status=IN%20PROGRESS%20DESIGN&bug_status=IN%20PROGRESS%20DESIGN%20COMPLETE&bug_status=IN%20PROGRESS%20IMPLEMENTATION&bug_status=IN%20PROGRESS%20REVIEW&bug_status=REOPENED&bug_status=NEEDINFO&bug_status=WaitForUpstream&component=web-hob&target_milestone=1.5&target_milestone=1.5%20M1&target_milestone=1.5%20M2&target_milestone=1.5%20M3&target_milestone=1.5%20M4&target_milestone=1.5%20M5&product=Web%20-%20Hob WebHob Bugzilla feature list]]  
=== About Toaster ===
[[File:Screenshot toaster analyis.png|thumb|Analysis of builds using Toaster]]


== Architecture and component design ==
* [[File:Working_with_design.pdf]]
We are planning the capabilities of WebHob based on evolutive stages of implementation, using community feedback on each stage to plan, design and implement a set of capabilities for the next stage.
* [https://bugzilla.yoctoproject.org/buglist.cgi?list_id=213820&columnlist=status_whiteboard%2Cassigned_to%2Ctarget_milestone%2Cbug_status%2Cshort_desc%2Cbug_severity%2Cpriority&classification=Build%20System%20%26%20Metadata&query_based_on=Toaster-Opens&query_format=advanced&bug_status=NEW&bug_status=ACCEPTED&bug_status=IN%20PROGRESS%20DESIGN&bug_status=IN%20PROGRESS%20DESIGN%20COMPLETE&bug_status=IN%20PROGRESS%20IMPLEMENTATION&bug_status=REOPENED&bug_status=NEEDINFO&bug_status=WaitForUpstream&component=toaster&product=Toaster&known_name=Toaster-Opens Bug list]
In the first stage, synchronized with the planning of Yocto 1.5, we'll implement a build analysis / image inspection module.
* [[Toaster architecture design]]
* [[Toaster and bitbake communications]]
* [[Toaster database]]
* [[Toaster testing plan]]


WebHob is designed as a collection of components that will run independently performing isolated functions. The interfaces between components are documented on this wiki as to ease interoperability with newer components. From design phase, we've taken care to account for further expansion needs, and account for scalability problems.
=== In progress documentation ===


* [[ WebHob general architecture ]]
We are currently preparing the documentation for the Toaster build functionality. The content here is just a brain dump of what we need to cover (in no particular order). Feel free to add and create content as you see fit:


* [[ Data store investigation results and choices ]]
*[[Using virtualenv]]
 
*[[Setting up a production instance of Toaster]]
* [[ WebHob source code repository details ]]
*[[manage.py commands]] - this should include an explanation of lsupdates
 
*[[Start Toaster in managed mode]]
== Installation and Running ==
 
 
To get it up and running:
 
* prerequisites: TCP ports 8000 for web interface, and 8200 for the bitbake xmlrpc interface
 
* checkout the poky tree. currently http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=webhob-poky/master
* set up a build as normal: <code>  source poky/oe-init-build-env </code>
* at this point edit local.conf, or layers, etc.
* start webhob system:  <code> source webhob start </code>
* run builds normally:  <code> bitbake mc </code>
* to stop webhob:  <code> source webhob stop </code>
* to see the web interface: <code> xdg-open http://localhost:8000/ </code>
 
A bunch of files are created and used under the build/ directory:
* webhob.sqlite - the database file
* whbmain.log - the log file of the web server
* whbmain.pid - contains the pid of the web server
* dsi.pid    - contains the pid of the DSI data bridge
* bitbake-cookerdaemon.log - the log file of the bitbake server
 
 
 
For more details, including how it runs, see [[ A manual for installation and running WebHob ]].
 
== Testing ==
Documentation and results related to WebHob Quality Assurance.
 
* [[ WebHob testing plan ]]
 
=== QA Reports and Bugzilla entries ===
 
== Old page content ==
 
This page is about the Web Hob project. Web Hob is a web-based interface to the Yocto Project.
 
General discussion about '''Web Hob''' happens on a dedicated mailing list: [https://lists.yoctoproject.org/listinfo/webhob https://lists.yoctoproject.org/listinfo/webhob]
 
There have been 2 main pieces of work related to Web Hob so far:
 
* [[Web Hob design project with T&T|A design project with the London-based agency Tobias & Tobias]]
* [[Yocto Web Hob Design 0.0 — Archived|A preliminary design project]] by [http://www.jimkosem.com/ Jim Kosem]
 
=== Web Hob information architecture ===
 
This document represents the content structure of the Web Hob application.
 
[[File:Web_Hob_content_structure.pdf]]
 
=== Different approaches to multi-user workflows ===
 
This document outlines the different approaches we have uncovered so far to facilitate multi-user and team work with Web Hob.
 
* [[File:Multiuser_support_in_Web_Hob.pdf]]
 
=== Visualisations index ===
 
The build analysis functionality in Web Hob will include several graphical presentations of build data. The first step to design them is [[visualisations |listing them all]].

Latest revision as of 21:51, 30 November 2023

Toaster is a web-based interface to OpenEmbedded and BitBake.

Screenshot of Toaster 2.1

General discussion about Toaster happens on a dedicated mailing list: https://lists.yoctoproject.org/listinfo/toaster

Using Toaster

Toaster can run in various modes and setups.

  • Local mode - in this mode Toaster is setup for use as a local development tool. It can be used to configure builds or just as a receiver for builds done on the command line with bitbake. You can launch it like this:
$ source oe-init-build-env
$ source toaster start

You then navigate to the link in your browser (e.g. http://localhost:8000) and configure a project. Or start building in the normal way with bitbake via the command line. Toaster will automatically pick up the builds and you will be able to see them on the build dashboard in your browser.

  • Production mode - All the same functionality as the local mode but with the web server setup as a shared service for multiple developers to use, this sets up Toaster as a wsgi application and requires additional configuration.

Toaster How-to's

Specific pages with Toaster how-tos are available below.

About Toaster

Analysis of builds using Toaster

In progress documentation

We are currently preparing the documentation for the Toaster build functionality. The content here is just a brain dump of what we need to cover (in no particular order). Feel free to add and create content as you see fit: