tdc2014 tizen common_20140603

28
Tizen:Common A new development profile for Tizen 3 Stéphane Desneux Senior Software Engineer Eurogiciel <[email protected]>

Post on 18-Oct-2014

1.005 views

Category:

Technology


2 download

DESCRIPTION

https://www.tizen.org/events/tizen-developer-conference/2014/tizencommon-new-development-profile-tizen-3 Tizen:Common: a new development profile for Tizen 3 Tizen:Common provides a common development/build/test environment for Tizen 3. With the coming multiplication of verticals, creating a Common build base was becoming critical. All profiles will inherit from Tizen:Common and add their profile-specific features. This talk will focus on the following topics: * Tizen:Common architecture * New features coming in Tizen:Common (Tizen 3): Multiuser, Wayland, 64 bits, Crosswalk, Buxton, SMACK, 3D UI * Development, build, test workflow (OBS, GBS) * Images availability * Hardware reference targets * Use cases: development, integration, QA Year: 2014 Track: Platform development Presenter(s): Stéphane Desneux, EUROGICIEL Location: Continental 5 Scheduled Time: Tuesday, 3 June 2014 - 12:15pm to 12:55pm

TRANSCRIPT

Page 1: Tdc2014 tizen common_20140603

Tizen:Common A new development profile for Tizen 3

Stéphane DesneuxSenior Software Engineer

Eurogiciel<[email protected]>

Page 2: Tdc2014 tizen common_20140603

2

Eurogiciel

● IT Services Company● Open source development and integration:

● Several maintainers in multiple domains on tizen.org● Embedded systems for real-time multimedia:

● Widi/Miracast stack● Wayland/Weston● Webkit2 with HW acceleration

● Applications development● HTML5/CSS3, jquery, jqmobi, Cordova ...

● Location : Vannes (Brittany), France

Page 3: Tdc2014 tizen common_20140603

3

Agenda

● Why Tizen:Common ?● Overall view● Inside Tizen:Common● Roadmap● Demo & Questions

Page 4: Tdc2014 tizen common_20140603

Why Tizen:Common ?

Page 5: Tdc2014 tizen common_20140603

5

More Profiles

● More profiles to handle:● Mobile● IVI● TV● Household equipments● Wearables

● Creating a common base was becoming critical:● Keep compatibility between profiles● Not all hardware can be made available to all developers● Work done in Tizen:Common benefits to all profiles

Page 6: Tdc2014 tizen common_20140603

6

Easing Development Process

● Access to a platform development kit for anyone● Intel Architecture:

● 32 bits & 64 bits100% Open Source including Graphic Drivers

● Classic : Laptop, NUC, ...● Industrial : VTC1010● Hackers : Minnowboard-Max

● ARM Architecture:● 32 bits & 64 bits● Odroid-U3 (Samsung Exynos 4412 Prime, Mali 400 GPU)● Other -unsupported- boards are reported to work

Page 7: Tdc2014 tizen common_20140603

7

An Integration Point

● Define a common base for most profiles● Any package in 2 or more profiles should be included in Tizen:Common● Most packages in Tizen:Common are integrated in all profiles● Control of memory foot print / dependencies

● Tool to test that major features should not break other profiles● Multi user● SMACK● Cynara● Crosswalk● Weston/Wayland ● ...

Page 8: Tdc2014 tizen common_20140603

Overall view

Page 9: Tdc2014 tizen common_20140603

9

Architecture Coverage – where is Tizen:Common ?

SMACK

Page 10: Tdc2014 tizen common_20140603

10

Architecture Coverage – where is Tizen:Common ?

SMACK

Core

Shared

HAL/Private

Page 11: Tdc2014 tizen common_20140603

11

Subprojects

● Common-Micro● HAL (kernel, firmwares)● Systemd, PAM, SMACK● Base tools (coreutils, rpm ...)● Network connectivity

● Common-Light● Wayland● Crosswalk● Middleware● Bluetooth● Multimedia

● Dev-Tools● Build toolchain● Debug tools● Console tools● Test applications● QA Tools and Test Suites

● Shared components● Toolkits: EFL, Qt5● Middleware: Ofono, Calendar

Page 12: Tdc2014 tizen common_20140603

12

How to Create a New Tizen Profile

MobileMobile

CoreCore

IVIIVI ......

Ofo

noO

fono

......Qt

Qt

EF

LE

FL

Dev

elD

evel

QA

& T

ests

QA

& T

ests

ProfilesProfiles

CommonCommon

Base (mandatory)Base (mandatory) Shared (optional)Shared (optional)ToolsTools

HA

L / p

latfo

rmH

AL

/ pla

tform

Page 13: Tdc2014 tizen common_20140603

13

Packages Types

● Core packages● Used in all Tizen 3 profiles● Examples: Core APIs, Application Framework, Cynara, Crosswalk ...

● Shared packages● Used in some Tizen 3 profiles, but not all● Examples: EFL, Qt5, Ofono ...

● Private packages● Used exclusively in Tizen:Common, not to be used by any profile● Includes all packages located in gerrit:profile/common/*● Example: kernel-common, weston-common, profile/common/meta ...

Page 14: Tdc2014 tizen common_20140603

14

Multi-product Support from a Unified Code Base

● New feature:● Integration on Tizen:Common first● Enable multi-architecture quick test● Enable synchronized integration for key features

● Major changes to be tested against Tizen:Common● Profile synchronization on Tizen:Common very regularly

● Syncing every week is advisable● A profile remains master of its own integration pace

Page 15: Tdc2014 tizen common_20140603

Inside Tizen:Common

Page 16: Tdc2014 tizen common_20140603

16

Build Workflow

● Uses the new 'repa' tool● Creates a prerelease build for every submission● OBS Project: home:prerelease:<target project>:<submission id>

Ex: home:prerelease:Tizen:Common:submit:tizen_common:20140529.194900● Prerelease Builds:

● All packages depending on the submitted packages are rebuilt● Prerelease Images are also available for testing

Available on: http://download.tizen.org/build/prerelease/tizen/common/...URL is also indicated in prerelease project description (header on OBS UI)

● Automatic QA sanity tests can then be run on prerelease images

Page 17: Tdc2014 tizen common_20140603

17

Acceptance Criteria

● Most packages in Tizen:Common will be pulled by other profiles● High acceptance criteria are needed

● Consequence: a submission will be accepted if:

● Prerelease build is clean in all architectures: ia32, x86_64, armv7l ... AND

● Prerelease images are all built successfully AND

● QA Sanity tests pass on all prerelease images

Page 18: Tdc2014 tizen common_20140603

18

Guidelines for Maintainers● Local build with multiple architectures:

● use 'gbs build -A <arch>' to test before submitting● Use 'gbs submit -t <target>' to choose the right project:

● Target = 'tizen_common' to send to Tizen:Common onlyTypical usage: integrate new features

● Target = 'tizen_<profile>' to send to a specific profile onlyTypical usage: submit a change on a profile-specific package

● Target = 'tizen' to broadcast to all profilesTypical usage: bug fixing

● Use group submissions when needed:● when multiple packages must be changed simultaneously● use 'gbs submit --tag <tag>'

Page 19: Tdc2014 tizen common_20140603

19

OBS Project & Bug Tracking

● On OBS: 'Tizen:Common' project● ~730 packages● cleanup in progress

● 5 repositories (4 architectures)● x86● x86_64● armv7l (repository published, images for ODroid-U3 coming soon)● aarch64 (ARM 64 bits): coming soon● emulator32 (x86 repository for SDK)

● Bug reports ● new JIRA project 'TC'

Page 20: Tdc2014 tizen common_20140603

20

Images Types and Flavours

● Main:● common-wayland-mbr-<arch> : raw image for USB/SSD/HDD

● Minimal:● common-minimal-mbr-<arch> : raw image for USB/SSD/HDD

● Emulator:● common-emulator-wayland-i586 : ia32 only, tarball for qemu (SDK)

● Installer: ● common-installer-mbr-i586 : ia32 only, small raw image for USB sticks

● Extra tags:● *-qa-unsafe-*: allows automatic login through SSH (QA tests, Developers)● *-mbr-* or *-efi-*: type of boot loader (EFI support coming soon)

Page 21: Tdc2014 tizen common_20140603

21

Snapshots & Releases

● Snapshots● created at the end of a build cycle in the main OBS project● automatic QA Sanity tests are run on each snapshot

● Daily Release● Selection of the best snapshot of the day● Extra automatic QA tests are run

● Weekly Release● Selection of the best daily release of the week● Extensive automatic & manual QA tests● Published on Wednesday

Page 22: Tdc2014 tizen common_20140603

22

Keeping Synced with Tizen:Common

Common

Submissions on tizen:accepted on tizen_$profile only if

accepted on tizen_common(bug fixes)

Profile

c

b

a Submissions on tizen_$profile

(specific pkgs)

daily

weekly1

2

3

ed

4

s

yncx

y

z

Submissions on tizen_common

(new features)

12

34

Page 23: Tdc2014 tizen common_20140603

Roadmap

Page 24: Tdc2014 tizen common_20140603

24

Recent History● Components:

● Multiuser mode (partial)● Single Weston instance (RDP available for developers)● Crosswalk 7.35.x● EFL 1.9.3● Mesa 10.1.3● Qt5 5.3.0● Gumd, Cynara (early integration)

● Snapshots and Images:● ARM build (armv7l with neon FPU, beta image for AllWinner-A20/Olimex)● Emulator image (32 bits)● Installer image

Page 25: Tdc2014 tizen common_20140603

25

Roadmap

● Milestones:● 3.0 Common 2014 Q2 : end of May 2014, currently in development● 3.0 Common 2014 Q3 : end of Aug 2014● 3.0 Common 2014 Q4 : end of Nov 2014

● Features● Alpha Q2 2014

● Crosswalk, Multiuser, Smack, Wayland● Buxton, Cynara coming in June 2014

● Beta Q3 2014● 3D UI, new Bluetooth FW, Wifi FW, ARM64, EFL upgrade, User accounts management

Page 26: Tdc2014 tizen common_20140603

Demo & Questions

Page 27: Tdc2014 tizen common_20140603

27

Links

● Snapshots: http://download.tizen.org/snapshots/tizen/common● Daily Releases:http://download.tizen.org/releases/daily/tizen/common● Weekly Releases: http://download.tizen.org/releases/weekly/tizen/common● Wiki

● Tizen Common: http://wiki.tizen.org/wiki/Common● Tizen 3.0: https://wiki.tizen.org/wiki/Tizen_3.0

● OBS Project: https://build.tizen.org/project/show?project=Tizen%3ACommon● JIRA Project: https://bugs.tizen.org/jira/browse/TC

Page 28: Tdc2014 tizen common_20140603