===================
Helium Feature List
===================
 
.. index::
  module: Helium Feature List

.. contents::

.. index::
  single: feature - Framework

Framework
=========

.. index::
  single: feature - Logging

Logging
-------

* Individual log files created for most build stages.
* A summary log file is created from individual log files.

  * Shows categorized messages divided into errors, significant warnings and warnings.

.. index::
  single: feature - Signalling

Signaling
----------

* Build engineer can be signaled via email and SMS at many key points during the build.

  * The triggering and choice of when to signal can be configured.
  
.. index::
  single: feature - Validation

Validation
----------

* Validate an Ant configuration against the data model.

.. index::
  single: feature - Password Handling

Password handling
-----------------

* Query passwords from a .netrc file or request via a dialog.

.. index::
  single: feature - Diamonds logging

Diamonds logging
----------------
* Can upload build id, start and end time, creator, host name, release label.
* Can upload stage start and end time based on the configuration of stages
* Can upload build tools name and its version information.
* Can upload release location.
* Can parse multiple scan log file.
* Can upload build faults related information.
* Can upload BOM contents.
* Can upload "number of object files" and "number of generated files".
* Can upload build system and number of processors.
* Can upload distribution policy file related errors like missing, invalid encoding and error type A, B, C.
* Can upload List of Illegal APIs names if disable.analysis.tool is not set.
* Can upload custom build tags.
* Logging can be skipped if desired.


.. index::
  single: feature - Documentation

Documentation
-------------

* Quick start, manual, tutorials, How-To's and development guidelines in HTML format.
* Helium API documents the Ant targets and properties.
* Documentation for Python and Java APIs and custom Ant tasks.


.. index::
  single: feature - build stages

Build stages
============

.. index::
  single: feature - startup

Startup
-------

* A number of build configurations can be run on several machines from a single work area.
* A subcon release can be bootstrapped to download required libraries for building ROMs.

.. index::
  single: feature Synergy operations

Synergy operations
------------------

* Update a Synergy work area.

  * Create snapshots.
  * Checkout projects and update with folders and tasks.
  
* Build management functions.

.. index::
  single: feature Mercurial operations

Mercurial operations
--------------------

* Set or show the current branch name
* Checkout a repository
* Export the header and diffs for one or more changesets
* Display information about an item
* Create a new repository in the given directory
* Show revision history of entire repository or files
* Pull changes from the specified source
* Remove the specified files on the next commit
* Add one or more tags for the current or given revision
* List repository tags
* Update working directory

.. index::
  single: feature - Preparation

Preparation
-----------

* Checking the build machine environment for required tools.
* Build drive creation through subst'ing.
* Preparation of the build area.

  * Copy operations, with content filtering.
  * Unzip operations, with content filtering.
  * Extraction of ICDs/ICFs in order.
  * Checks content is available before starting preparation steps.

* Support for Dragonfly workspace creation.
* BOM and BOM delta creation.

  * HTML and plain text output files.

* Unarchive a release from network.

.. index::
  single: feature - compilation

Compilation
-----------

* Compilation using System Definition XML format.

  * The System Definition files are pre-processed to insert Ant properties

* Different build systems can be selected.

  * Symbian EBS.
  * Electric Cloud (EC) with history file management.
  * Symbian Build System (Raptor).
  
* A clean target allows a clean configuration to be built.
  
* cMaker support (clean, export, what).

.. index::
  single: feature - SIS files

SIS files
---------

* SIS files can be built.

.. index::
  single: feature - Quality Assurance

Quality assurance
-----------------
* Policy file validation.
* Build duplicates detection.
* Internal exports detection.
* Codescanner task.

.. index::
  single: feature - Publishing

Publishing
----------

* Create zips of the EE build area.

  * Content can be split across zips depending on number of files and file sizes.
  * In release metadata it holds md5checksum value and size of all the zip files.
* Zipping using EBS / EC based on the build system.
* Create delta zips for each localised region.
* Publish at several points during the build to a network directory.
* Zip content selected based on distribution.policy file content.
* Zip content selected based on component exports.

.. index::
  single: feature - Localisation

Localisation
------------

* S60 3.2.x support

  * Support for S60 localisation tool.
  * Support for localise resources tool which localises using in EBS / EC based on the build system.
  * Possibility to provide a different set of configuration for each region.
  * Locales_xx.iby generation that support override directive from SP.
  * Cenrep generation for variants (languagepack and customer).
  * Languagepack automation (Should be moved to SP/iMaker in the future).
  
* S60 5.0.x support

  * DTD localisation.
  * Regional variation.

.. index::
  single: feature - iMaker image creation

iMaker image creation
---------------------

* Creates EE images.
* Image creation using EBS / EC based on the build system
* Language pack creation/automation.
* Customer variant creation.
* Creates SW version string for the images and override the one in ROM. (through Helium/iMaker feature).
* Firmware ID generation and automatic inclusion (through iMaker feature).
* Debug image creation (through Helium/iMaker feature).
* Core image creation.
* Auto-detection of variant folder.
* Variation from variant folder (no export/clean-export to epoc32).
* Automatic region switching.
* (Future feature) Support for languagepack automation (through iMaker, still RD feature at the moment).

.. index::
  single: feature - Release Notes Creation

Release notes creation
----------------------

* Modifies a RTF template with values from build.
* Adds table of errors and warnings.
* Generates list of baselines, projects and tasks used.

.. index::
  single: feature - Delta Releasing

Delta releasing
---------------

* Creates a MD5 list of files in a build area.
* Compares a set of these files and zips new/ changed.
* Generates a XML file for SymDEC of files deleted.
 
.. index::
  single: feature - Testing

Testing
-------

 ATS test package generation for API (unit and/or Module) and UI test

 ============== ======== =========== === ======= ========= ===========
 Test Framework PKG File Dir Parsing CTC Tracing sis files Test Assets
 ============== ======== =========== === ======= ========= ===========
 **STIF**          -          -       -     -        -          
 **TEF**           -
 **RTEST**         -
 **MTF**           -
 **EUnit**         -                  -     -        -          
 **ASTE**                                                       -
 ============== ======== =========== === ======= ========= ===========

 - Supported
  
  
.. index::
  single: feature - IDO builds

IDO builds
----------
* Codescanner integration for IDO.
* Build area preparation for IDO (ADO base copying).

Other features
==============

.. index::
  single: feature - Interation

Integration
-----------

* Overlays can be validated to check the need for merging.
* Automated merge task creation.

.. index::
  single: feature - Miscallaneous

Miscellaneous
-------------

* Clean the build areas root directory of old builds based on a dialog selection.
* Print a list of target dependencies.
* The source code can be scanned for words that are classed as 'bad words' i.e. words that should not be used within the code e.g. Nokia product names, competitor names and competitor product names, these ''bad words'' are counted and displayed at the end of the build process

.. index::
  single: feature - Supported SCM tools

Supported SCM tools
-------------------

* Synergy
* Mercurial

.. index::
  single: feature - Nokia Build stages

Nokia Build stages
==================

.. index::
  single: feature - FOTA update packages creation

FOTA update packages creation 
-----------------------------
* Generation of FOTA packages between 2 published releases.
* Generation of FOTA toggle packages for TRUE test.
* Support of MakeUPCT: generation of _fota.cnf and .fota.conf files.

.. index::
  single: feature - Data packaging

Data packaging
--------------

* Generates VPL and DCP and signature files.
* Compresses images.
* Flashes phone to generate SPR.
* Creates input for gMES and NSU.
* Installer creation using InstallShield.

.. index::
  single: feature - UDA creation

UDA and Mass Memory Creation
----------------------------

* UDA creation using iMaker
* Mass Memory using ImageTool

.. index::
  single: feature - RnD SDK creation

RnD SDK creation
----------------

* RndSDK creation tool is used to create an SDK using S60 released Rnd environment.
* It generates the eclipse based html-documentation for the APIs present in the Rnd Environment.
* The APIs in the S60 Rnd environment can be filtered, based on the required API categories Public, Domain etc.
* The output is a zip file containing the Rnd SDK environment, along with the documentation of the APIs present in it.
* The developer can extract and use the RndSDK for further development.

.. index::
  single: feature - API Analysis

API analysis
------------

* API Analysis takes input from apidescr.xml, generated by the Analysis tool from S60 build environment and generates count of SDK, Domain and Internal APIs for diamonds logging.
* The analysis can be run as part of the RnD SDK or independently. 
* API  tests are supported by `Testing`_

.. index::
  single: feature - Releasing

Releasing
---------

* Upload content to network.
* Release to Grace.
