From Proprietary to Community:
The Open Sourcing of Enyo
Ben Combee
@unwiredben
Technical Lead, Enyo JS Framework
LG Silicon Valley Labs
7/25/2013 - OSCON 2013
What is this talk?
- Not a talk about programming with Enyo
- Not a talk about why you should use Enyo
- It's a human story
- with death marches
- with corporate mergers
- with personal strife
- with a happy ending
Wayback Machine to 2007
iPhone is announced and released
The Palm Treo line of phones
has been dominant,
but the end of Palm OS is in sight
Internally, we launch Project Nova
It's based on Java.
Then It's 2008
Nova takes longer to develop than planned.
Difficulty of Java development is blamed.
A team of Palm engineers working on
putting WebKit on phone discovers that
the web runtime is a pretty good
app environment.
Project Luna is born.
2009: The Launch
...and by that, I mean the launch of
the Palm Pre
June 6, 2009
Why do we remember this?
"webos20090606" is the webOS developer mode unlock code
Also accepted: "upupdowndownleftrightleftrightbastart"
2010: The Enyo Odyssey
Palm releases Ares, a web-based IDE
for building Mojo apps
2010: THE ENYO ODYSSEY
HP buys Palm, effective July 1st
2010: THE ENYO ODYSSEY
Enyo is shown at the
November Developer Day in NYC
2011: A Year of CHange
In February, we reveal the HP Veer, HP Pre3, and HP TouchPad
Enyo is a big part of the presentation.
The crunch time to get the TouchPad
ready to ship continues, having
started back in December.
2011: A YEAR OF CHANGE
HP TouchPad is released in July featuring
mostly Enyo-based web apps
2011: A YEAR OF CHANGE
...then in mid-August,
HP's CEO Leo Apotheker
decides to cancel all webOS hardware
and sell off the PC business.
...then in mid-December
HP's new CEO Meg Whitman
decides to keep the webOS software team
and open source much of the system
2012: When We Get Open
enyojs.com launched in January
Enyo 1.0 (from TouchPad)
and Enyo 2.0 beta released
Matt & his engineers in SF office leave
for Google in May to form a
Web Components team
2012: WHEN WE GET OPEN
Enyo 2.0 launch celebrated at Fluent 2012
2.0 final released at end of June
and doors opened for community contributions
2.1 released that Fall, while work continues
on building Ares 2, a new web-based IDE
for Enyo 2-based app development
2013: The BIG SCREEN
Enyo 2.2 released in February
HP sells webOS & Enyo teams and
licenses IP to LG Electronics
LG Silicon Valley Labs opens in May
(we're hiring!)
Enyo engineer gives talk at OSCON,
makes self reference
What Worked in Open Sourcing This?
- HP had great internal processes for releasing IP
- Open Source Review Board
- legal team familiar with licenses
- Strong developer relationships
- Figured out "Developer Certificate of Origin"
before taking many external contributions
- Development pause gave us opportunity
to clean up code and build release strategy
WHAT WORKED?
- Shipping in a commercial product
proved the code and design
- Having world-class design team to help
with widget development
- Early strategy of developing & testing
in desktop browsers meant good
compatibility from start
WHAT DIDN'T Work?
- Team was used to working privately
and owning code
- A bit too much "Not Invented Here"
meant we didn't inter-operate with
some community practices
- Would have been better to open
Enyo 1 with TouchPad launch to
better pick up on early buzz
SOME GREAT PRACTICES
- Embracing GitHub for code & wiki
- Using JIRA's free issue tracker
- Having internal dev team use
pull requests with reviews like
external contributors
- Having web site section on "Contributing"
- Setting up separate developer forum
and contributor mailing list
- Building unit tests & samples
- Using Travis CI to do code linting &
unit test runs for all PRs
THE FUTURE
Enyo JS continues with a lot of internal
and external development
Currently, about 10% of code changes
come from outside LG & HP
Focus has shifted a bit since LG acquisition...
but expect some BIG things.