Qt Project – 2 years later · 21 Qt 5.2 Main features: ‒ New V4 engine in QML 2 ‒ Even faster...
Transcript of Qt Project – 2 years later · 21 Qt 5.2 Main features: ‒ New V4 engine in QML 2 ‒ Even faster...
Qt Project –2 years later
Thiago Macieira, Qt Core MaintainerEdinburgh, Oct 2013
2
Who am I?
● Software Architect at Intel’s Open Source Technology Center (OTC) since 2011
‒ Living in Portland, Oregon
● Maintainer of two modules in the Qt Project
‒ QtCore and QtDBus
● MBA and double degree in Engineering
● Previously, led the “Qt Open Governance” project
‒ Ended with the creation of the Qt Project
4
A little bit of history
1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2013Tro
lltech
founded
Qt 1.0
Qt 2.0
Qt 3.0
Qt 4.0
Qt 5.0Qt 2
.2.0 – GPLv2
Qt 4.3.4 – G
PLv3
Qt 4.5.0 – LGPLv2
Daily tarballsCopyright assignment
Git repositoryLicensing
Access to development version:Contributions:
Thiago starts
worki
ng on Qt
5
Motivations
● Desire to really be an open project
‒ MeeGo
● Fix problems with the 2009 Contribution Model
● Fix problems with the development workflow
6
Fixing the earlier problems
● Continuous Integration was slow and cumbersome
● Bad commits stayed on forever
● Review system was ad-hoc
‒ Using pastebins
● Some rights were reserved to Nokia engineers
● Legal IP scanning was in the way
7
Desire / goals
● One workflow for everyone, regardless of employer
‒ Merit-based open project
● Fast, reliable CI that stopped bad commits
● Co-exist with the commercial businesses
8
The Qt Project is born
● Independent foundation owns the servers
● CI-controlled branches in Git
● Review system using Gerrit
● Meritocratic approval of contributions
● Decisions on mailing lists
9
Principles
Fair Transparent
Inclusive Meritocratic
10
Qt Project CIQt ProjectApproverWho: Contributors
How it works
Code
Review
Improve
Approve Test
Done
11
Branching model
12
The good: what we’ve achieved
● First major Qt release in 7 years*
● Two feature releases – Qt 4.8 (Dec/2011) and Qt 5.1 (June/2013)
● 5 feature releases of Qt Creator (2.4 through 2.8)
● A lot of patch releases, alphas, betas, release candidates and other “Qt Labs” projects
*: Qt 5.0 beat E17 and the end of the world by two days!
13
The good: the community
● Live, vibrant community
● Active IRC channels and mailing lists
● Three Qt Contributor Summit events
Last in July 2013, with 200 participants
● Qt Developer Days for Qt users sold out in the past 2 years
14
Some other numbers
48900 commits approved ● 68900 commits submitted
Average: 656.2 / week
● By 592 different email addresses
● Some 120 different companies
Qt 570%
Qt 45%
Qt Creator22%
Other3%
Average: 465.7 commits / week
15
Qt Project* top employers – 2011-10-24 to 2013-10-20
*: Qt 5 and Qt Creator only
16
Qt Project* top authors – 2011-10-24 to 2013-10-20
*: Qt 5 and Qt Creator only
ChristmasChristmasEaster
Easter
Qt 5.0 feature freeze
Nokia strategychange Summer
17
The bad: what we had to survive
● Loss of the main project sponsor in May 2012
● Loss of 25% of the contributors in Aug 2012
● Loss of marketing team
● Delay of Qt 5.0 until the end of 2012
‒ Some modules abandoned
● WebKit / Blink split
18
The ugly: oops...
● We added a new JavaScript engine in Qt 5.0
● We had three different engines for 5.0
● We added a very efficient scene graph for 5.0
● We replaced that JavaScript engine in Qt 5.2
● We now have four JavaScript engines
● We replaced the scene graph with a better one in 5.2
19
Addons
● New area for modules with specific uses
‒ Experimental technology
‒ Restricted use-cases
● Hosted by the Qt Project
‒ Great way to attract new contributors!
20
Reasons for success of the project
● Everyone treated fairly, based on merit only
● Decisions based on technical quality of the code
‒ Hierarchy only for breaking stalemates
● Yearly contributor summits for face-to-face discussions
‒ Breaks the ice!
21
Qt 5.2
● Main features:
‒ New V4 engine in QML 2‒ Even faster scene graph in Qt Quick 2‒ Full support* for Android and iOS
And working very well on Android without Dalvik too‒ Qt Quick Controls‒ New modules: Bluetooth, NFC, Positioning, platform-specific extras‒ And a lot more (command line parser FTW!)
*: excluding QtWebKitl
Beta released today!