Meego Wiki
Views

Quality/Compliance

From MeeGo wiki
< Quality(Difference between revisions)
Jump to: navigation, search
(Specification)
 
(One intermediate revision not shown)
Line 7: Line 7:
==MeeGo Compliant Device Overview==
==MeeGo Compliant Device Overview==
-
For MeeGo compliant devices, we're taking a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.
+
MeeGo uses a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack.  Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).
In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on).  A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).
-
It's important to note that the device profiles won't require the inclusion of a complete user experience - but rather the UI framework providing core user interaction and APIs.  
+
It's important to note that the device profiles won't require the inclusion of a complete user experience (UX) - but rather the UI framework providing core user interaction and APIs.  
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.
A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.
Line 32: Line 32:
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.
A core part of the program is the Compliance Specification, which describes the rules and requirements for complying.  There's more to the program (trademark licensing, application process, etc.) which will be added later.
 +
 +
If you plan to use the MeeGo name or trademark in association with your product, please submit a zipfile of all .html files generated by [[Quality/ComplianceTools|dist-compliance-tool]] along with your request to brian.warner@linuxfoundation.org.
== Specification ==
== Specification ==

Latest revision as of 21:12, 13 June 2011

Contents

MeeGo Compliance

The MeeGo compliance program is designed to make sure things stay compatible, such that the devices supporting a particular MeeGo version can run the same software, and so that app developers know how to build software which will run across the family. Simply put, we want to make it possible for an application developer to write a MeeGo compliant application once and run it on any MeeGo compliant device.

MeeGo compliance addresses two categories of compliance: MeeGo compliant applications and MeeGo compliant devices / software products (which will be referred to simply as "devices"). In both cases, the use of the MeeGo brand will be granted based on being compliant. Following is an overview of the approach for each of these categories.

MeeGo Compliant Device Overview

MeeGo uses a stack-based compliance approach, meaning that all MeeGo devices must use the same core software stack. Referring to the MeeGo architecture diagram, this core software stack is the MeeGo OS base layer plus the MeeGo OS Middleware layer.

In addition to a sharing the same core software stack, MeeGo compliance will have profiles for each device category (Netbook, Handset, and so on). A profile specifies additional required components for the profile (e.g. providing device category APIs), minimum hardware requirements and minimum hardware component requirements (such as cellular modem in the handset profile).

It's important to note that the device profiles won't require the inclusion of a complete user experience (UX) - but rather the UI framework providing core user interaction and APIs.

A MeeGo compliant device would be compliant to the MeeGo core software stack definition and one (or more) device category profiles.

MeeGo Compliant Application Overview

Given that definition of compliance for devices / software products, MeeGo compliance for applications will verify that an application's external dependencies are satisfied by a MeeGo compliant device (in other words, that any libraries or other dependencies of the application are provided within the core software stack and target device profile)

An application can be written to be dependent only on the MeeGo core software stack - in which case it would run on any MeeGo compliant device. However, applications with UI would typically target a specific device profile - so for example an application could be MeeGo Handset Compliant - meaning that it would run on any device compliant with the MeeGo Handset profile.

More Detail on Stack Based Compliance

Stack-based compliance means that a compliant device / software product must use the MeeGo package set without re-packaging - including the MeeGo version of RPM and the MeeGo package names.

Compliance requires the use of the MeeGo source packages for required components, and that any applied patches (e.g. to fix bugs found in the field) must not effect API, ABI, or defined functionality of interfaces.

Additional packages (beyond those required by compliance) may be added as long as they don't override MeeGo packages or provide functions with the same namespace of MeeGo APIs. Of course there will also be additional packages and components required to adapt MeeGo to run on a specific hardware platform (we call this "Hardware Adaptation Software" in MeeGo) - the compliance specification will call out any specific packages or components that may vary based on hardware capabilities.

Some details on how this is implemented can be seen at Compliance_Implementaion.

A core part of the program is the Compliance Specification, which describes the rules and requirements for complying. There's more to the program (trademark licensing, application process, etc.) which will be added later.

If you plan to use the MeeGo name or trademark in association with your product, please submit a zipfile of all .html files generated by dist-compliance-tool along with your request to brian.warner@linuxfoundation.org.

Specification

Current approved version: File:MeeGo-Compliance-Spec-1.1.0.0.pdf

The specification is intended to match up with MeeGo releases, so it uses a similar numbering scheme. Completed specifications are approved by the TSG. Comments on the specification can go to the meego-dev mailing list, for profile specifications you may also use the mailing list for that workgroup. For specific bugs, feature requests, etc. please file bugs in the MeeGo bugzilla, there is a Compliance category.

The 1.2 specification is open for review/comment. The initial draft is: Spec 1.1.80.1.

Work in progress on profile specifications, develop directly in the wiki (see instructions):

Some pre-release review versions leading up to 1.1 are archived (links to these may be removed later, although the files will remain in place): Spec 1.0.99.9 | Spec 1.0.99.5 | Spec 1.0.99.4 | Spec 1.0.99.3 | Spec 1.0.99.2 | Spec 1.0.99.1 | Spec 1.0.99.7 | Spec 1.0.80.8

Compliance Tools

The Compliance Tools are used to check compliance for MeeGo Distributions or MeeGo Applications. The reference input is the MeeGo core package/file list and a minimal MeeGo reference image created by MIC2, which will contain all the required core packages, as well as source rpms.

For MeeGo distribution compliance checking, the input needs to include the OS image and the source rpms for all the packages.

For MeeGo Application compliance checking, the input is the application rpm file.

See ComplianceTools for details.

MeeGo 1.2 Compliance Program Schedule

Tasks:

  • Preliminary compliance package list (i.e. the minimum set of required on-device packages) - now covered by package patterns
  • Next Rev of compliance spec including profiles
  • 1.2 version of compliance tools for distribution / device
  • 1.2 version of compliance tools for applications

Talks about Compliance

At the Meego Conference 2010, Mark Skarpness gave a talk on Compliance

Personal tools