Toaster

From Yocto Project
Jump to navigationJump to search

Toaster is a Web-based interface to the Bitbake build system and the Poky distribution inside the Yocto Project. This project was formely known as Web Hob / Webhob / webhob, and you may still find references to the old name in the documentation.

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

Project planning is available below, and the design documents we follow.

User interface

The design of the user interface takes place in iterations, and most recent designs supersede older ones.

The latest iteration is always available at: http://www.yoctoproject.org/toaster

The document File:Toaster 1.6 content structure.pdf shows the content structure of Toaster in the 1.6 release.

Other design documentation

Old design documents

Architecture and component design

We are planning the capabilities of Toaster 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. In the first stage, synchronized with the planning of Yocto Project 1.5 release, we implemented the back end of a build analysis / image inspection module. As part of the Yocto Project 1.6 release, we are building a web-based graphical user interface for the build analysis / image inspection module.

Toaster 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.

Installation and Running

Before you start, make sure you install the packages required by the Yocto Project

Using the Yocto Project 1.6 "Daisy" release or the master branch

You need this stuff ready

  • Django 1.5; easiest way is to install system wide with pip install django=="1.5"
  • Make sure that port 8000 and 8200 are free, i.e. no servers on them

To get it up and running

  • clone the master tree: http://git.yoctoproject.org/git/poky
  • set up a build as normal: source poky/oe-init-build-env
  • at this point edit local.conf, or layers, etc.
  • start Toaster system: source toaster start
  • run builds normally: bitbake core-image-minimal
  • to see the web interface: xdg-open http://localhost:8000/
  • to stop Toaster: source toaster stop

Using the Dora + Toaster release (part of Yocto Project 1.5)

You need this stuff ready

  • Django 1.4.5; easiest way is to install system wide with pip install django=="1.4.5"
  • Make sure that port 8000 and 8200 are free, i.e. no servers on them

To get it up and running

Bitbake extra options

This is an overview of extra options needed for Bitbake. These should be automatically added by Toaster in a conf/toaster.conf file that is enabled when the system starts through the toaster command.

The gritty details are here:

Toaster needs the toaster bbclass enabled in Bitbake in order to record target image package information. INHERIT += "toaster"

This enables the toaster bbclass in Bitbake, needed to record target image package information.

INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"

This enables buildhistory in Bitbake, needed to record target image package information. This last command is not strictly needed, yet without it buildhistory will not work right in it's own right.

A bunch of files are created and used under the build/ directory:

  • toaster.sqlite - the database file
  • toaster_web.log - the log file of the web server
  • toaster_ui.log - the log file of the ui component
  • .toastermain.pid - contains the pid of the web server
  • .toasterui.pid - contains the pid of the DSI data bridge
  • bitbake-cookerdaemon.log - the log file of the bitbake server

Deleting a Build from the Toaster Database

By default, Toaster stores all build data in a toaster.sqlite database file located in the "Build Directory".

You can delete builds from the Toaster database using two bespoke commands (buildslit and builddelete) added to

/poky/bitbake/lib/toaster/manage.py

Follow these steps to delete a build:

1. Identify the build: Run the following command from your "Build Directory" to display a user-readable, tabbed list of build IDs and identification information:

    $ python ../bitbake/lib/toaster/manage.py buildslist

2. Delete a specific build: Using the build ID displayed in the previous step, run the following command to delete a specific build:

    $ python ../bitbake/lib/toaster/manage.py builddelete <build_id>

The build and all related information is deleted from the Toaster database. The deletion operation traverses the ForeignKey relationships recursively.

When using the buildslist and builddelete commands, you need to consider the following:

  • For default configurations, your working directory must be the "Build Directory". Using these command from the "Build Directory" allows Toaster to find the toaster.sqlite file, which is located in the "Build Directory".
  • For other database configurations, it is possible that you can use these commands from a directory other than the "Build directory". To do so, the toastermain/settings.py file must be configured to point to the correct database backend.

It is recommended to always call manage.py from the "Build Directory".

Testing

Documentation and results related to Toaster Quality Assurance.

Contributing to Toaster

Toaster is a community effort and welcomes your contribution.

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

There have been 2 main pieces of work related to Web Hob so far:

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.

Visualisations index

The build analysis functionality in Web Hob will include several graphical presentations of build data. The first step to design them is listing them all.