Eclipse Way
Tomasz Zarna
Eclipse Platform commiter @ IBM
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Agenda
•Eclipse Way
•Working with Community
•Code coverage and static code analysis
•Code review with Gerrit
•Easy multi-tasking with Mylyn
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
How We Got Here
•Java strategic technology for IBM
•Need to compete with MS VS and other Java IDEs
•Created in 1998 by IBM/OTI teams responsible for VisualAge
•In 2001 opened to open source
•In 2004 Eclipse Foundation was created
•Eclipse already well regarded tooling platform
•In mid 2004 Eclipse 3.0 ships, now based on OSGi
•Eclipse becomes more and more an RCP platform
•Thousands of Eclipse based products on the market, from ST
to fully loaded IDEs
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Krakow Software Lab
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Application Lifecycle
Req
Dev Test Ops
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Application Lifecycle
Req
Dev Test Ops
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Planning
•Community input
•Discuss propositions on bug reports
•Committed, proposed items
•We drop items to maintain schedule
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Continuous Integration
•Releases - e.g. R3.7
•Stable - e.g. 3.8M5
•Integration Builds - e.g. I20120511-1540
•Nightly Builds - e.g. N20120626-1232
Always beta:
We work on nightly builds so we try to keep them running
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Milestones
•There are 7 milestones, each takes 6 weeks
•Shipping is hard, that’s why we do it 7 times a release
•Customers can rebase more frequently
•Plan, develop, test, release, retrospective
•We play all the roles
•New and Noteworthy
•Feed the community
•Make people move to milestone builds
•Fewer completed than more in progress
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
The Covergence Process
•M6 - API freeze
•M7 - feature freeze
•RC1 - another commiter, PMC for API changes
•RC2 - two commiters
•RC3 - two commiters, compoment lead
•RC4 - two compoment leads, any lead can veto
Commiting Into RCs:
Release Candidates time is when you never want to have a
buildbrake
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Community
•Inital investment
•Community grows and becomes self supporting, we don’t
have to grow
•Early feedback
•Open technical discussions, even more important than
open bugs
•Transparency, good for distributed teams
•The village effect
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Google Summer of Code
•The Eclipse Foundation is one of 180 organisations
•20 slots out of 1200+ assigned to EF
•Topics: RCP, IDE, Java, C/C++, JGit, ECF, javascript, Orion
•$
•Internships in KSL
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
EclEmma
• http://www.eclemma.org
• EMMA, instrumentation
• EPL
• Eclipse 3.1 and Java 1.4
• Update site: http://update.eclemma.org
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
FindBugs
• http://findbugs.sourceforge.net
• Apache Commons BCEL + bug patterns
• LGPL
• Eclipse 3.3 and Java 1.5
• Update site: http://findbugs.cs.umd.edu/eclipse
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
PMD
• http://pmd.sourceforge.net
• AST + rule sets
• BSD-style
• Update site: http://pmd.sf.net/eclipse
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Code review with Gerrit
Gerrit
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Code review with Gerrit
Gerrit Hudson
pull
+1
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Code review with Gerrit
Gerrit Hudson
pull
+1
+2
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Code review with Gerrit
Gerrit Hudson
pull
+1
Git
+2push
pull
pull
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Easy multi-tasking with Mylyn
• http://www.eclipse.org/mylyn/
• Task focused-interface, task management tool
• EPL
• Eclipse 3.6 and Java 1.5
• Update site:
http://download.eclipse.org/mylyn/snapshots/weekly
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Repository connectors
• Assembla Tickets
• Atlassian JIRA , Bamboo, Crucible, FishEye
• Bugzilla
• CodeBeamer Eclipse Studio
• CollabNet Issue Tracker, formerly IssueZilla
• CollabNet TeamForge
• CollabNet Project Tracker
• EmForge
• EPlanner
• FogBugz
• GitHub Connector
• Google Calendar
• Google Code
• Google Gmail
• HP Quality Center
• IBM Rational ClearQuest
• Industrial Connector
• Mantis
• Origo
• QcMylyn
• Microsoft Outlook & Exchange
• ProjectKoach
• Rally
• Redmine
• Request Tracker (RT)
• Remember The Milk
• ScrumWorks Basic
• ScrumWorks Pro
• Serena Business Mashups 2009
• Google SpreadSheet Template
• TD/OMS
• ThoughtWorks Studios Mingle
• Trac
• Track+
• Unfuddle
• Web Templates
• XPlanner
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Thank you!
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Legal Notice
 IBM and the IBM logo are trademarks or registered
trademarks of IBM Corporation, in the United States, other
countries or both.
 Java and all Java-based marks, among others, are
trademarks or registered trademarks of Sun Microsystems in
the United States, other countries or both.
 Eclipse and the Eclipse logo are trademarks of Eclipse
Foundation, Inc.
 Other company, product and service names may be
trademarks or service marks of others.
28
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Keeping It Big
How can you build something that can last 10 years and be:
 Industry leading
 Extendable
 Constantly evolving
Well, you need to have those:
 Modularity
 Scalability
 Stable APIs
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
Stable API
Stable APIs are critical to sustain growth. Clients can add
features instead of updating to new API. So, it has to be:
 Consistent and wise
 Any decision made today will impact where you can go tommorow
API compatibility is a huge commitment so we take a
defensive approach:
 Don’t add until there is at least one client
 Exhibit less rather then more
 Expose more if needed
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
JDT
• An incremental Java compiler, implemented as an Eclipse
builder
• Preferences: Java > Compiler > Error/Warnings
 Code style
 Potential programming problems
 Name shadowing and conflicts
 Deprecated and restricted API
 Unnecessary code
 Generic types
 Annotations
Eclipse Way | Copyright © IBM Corp., 2012. All rights reserved.
API Tooling
•Invalid API usage
•Execution environments

Eclipse Way

  • 1.
    Eclipse Way Tomasz Zarna EclipsePlatform commiter @ IBM
  • 2.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Agenda •Eclipse Way •Working with Community •Code coverage and static code analysis •Code review with Gerrit •Easy multi-tasking with Mylyn
  • 3.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. How We Got Here •Java strategic technology for IBM •Need to compete with MS VS and other Java IDEs •Created in 1998 by IBM/OTI teams responsible for VisualAge •In 2001 opened to open source •In 2004 Eclipse Foundation was created •Eclipse already well regarded tooling platform •In mid 2004 Eclipse 3.0 ships, now based on OSGi •Eclipse becomes more and more an RCP platform •Thousands of Eclipse based products on the market, from ST to fully loaded IDEs
  • 4.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Krakow Software Lab
  • 5.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Application Lifecycle Req Dev Test Ops
  • 6.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Application Lifecycle Req Dev Test Ops
  • 7.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Planning •Community input •Discuss propositions on bug reports •Committed, proposed items •We drop items to maintain schedule
  • 8.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Continuous Integration •Releases - e.g. R3.7 •Stable - e.g. 3.8M5 •Integration Builds - e.g. I20120511-1540 •Nightly Builds - e.g. N20120626-1232 Always beta: We work on nightly builds so we try to keep them running
  • 9.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Milestones •There are 7 milestones, each takes 6 weeks •Shipping is hard, that’s why we do it 7 times a release •Customers can rebase more frequently •Plan, develop, test, release, retrospective •We play all the roles •New and Noteworthy •Feed the community •Make people move to milestone builds •Fewer completed than more in progress
  • 10.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. The Covergence Process •M6 - API freeze •M7 - feature freeze •RC1 - another commiter, PMC for API changes •RC2 - two commiters •RC3 - two commiters, compoment lead •RC4 - two compoment leads, any lead can veto Commiting Into RCs: Release Candidates time is when you never want to have a buildbrake
  • 11.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Community •Inital investment •Community grows and becomes self supporting, we don’t have to grow •Early feedback •Open technical discussions, even more important than open bugs •Transparency, good for distributed teams •The village effect
  • 12.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Google Summer of Code •The Eclipse Foundation is one of 180 organisations •20 slots out of 1200+ assigned to EF •Topics: RCP, IDE, Java, C/C++, JGit, ECF, javascript, Orion •$ •Internships in KSL
  • 13.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. EclEmma • http://www.eclemma.org • EMMA, instrumentation • EPL • Eclipse 3.1 and Java 1.4 • Update site: http://update.eclemma.org
  • 14.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved.
  • 15.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. FindBugs • http://findbugs.sourceforge.net • Apache Commons BCEL + bug patterns • LGPL • Eclipse 3.3 and Java 1.5 • Update site: http://findbugs.cs.umd.edu/eclipse
  • 16.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved.
  • 17.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. PMD • http://pmd.sourceforge.net • AST + rule sets • BSD-style • Update site: http://pmd.sf.net/eclipse
  • 18.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved.
  • 19.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Code review with Gerrit Gerrit
  • 20.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Code review with Gerrit Gerrit Hudson pull +1
  • 21.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Code review with Gerrit Gerrit Hudson pull +1 +2
  • 22.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Code review with Gerrit Gerrit Hudson pull +1 Git +2push pull pull
  • 23.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Easy multi-tasking with Mylyn • http://www.eclipse.org/mylyn/ • Task focused-interface, task management tool • EPL • Eclipse 3.6 and Java 1.5 • Update site: http://download.eclipse.org/mylyn/snapshots/weekly
  • 24.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved.
  • 25.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved.
  • 26.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Repository connectors • Assembla Tickets • Atlassian JIRA , Bamboo, Crucible, FishEye • Bugzilla • CodeBeamer Eclipse Studio • CollabNet Issue Tracker, formerly IssueZilla • CollabNet TeamForge • CollabNet Project Tracker • EmForge • EPlanner • FogBugz • GitHub Connector • Google Calendar • Google Code • Google Gmail • HP Quality Center • IBM Rational ClearQuest • Industrial Connector • Mantis • Origo • QcMylyn • Microsoft Outlook & Exchange • ProjectKoach • Rally • Redmine • Request Tracker (RT) • Remember The Milk • ScrumWorks Basic • ScrumWorks Pro • Serena Business Mashups 2009 • Google SpreadSheet Template • TD/OMS • ThoughtWorks Studios Mingle • Trac • Track+ • Unfuddle • Web Templates • XPlanner
  • 27.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Thank you!
  • 28.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Legal Notice  IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation, in the United States, other countries or both.  Java and all Java-based marks, among others, are trademarks or registered trademarks of Sun Microsystems in the United States, other countries or both.  Eclipse and the Eclipse logo are trademarks of Eclipse Foundation, Inc.  Other company, product and service names may be trademarks or service marks of others. 28
  • 29.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Keeping It Big How can you build something that can last 10 years and be:  Industry leading  Extendable  Constantly evolving Well, you need to have those:  Modularity  Scalability  Stable APIs
  • 30.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. Stable API Stable APIs are critical to sustain growth. Clients can add features instead of updating to new API. So, it has to be:  Consistent and wise  Any decision made today will impact where you can go tommorow API compatibility is a huge commitment so we take a defensive approach:  Don’t add until there is at least one client  Exhibit less rather then more  Expose more if needed
  • 31.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. JDT • An incremental Java compiler, implemented as an Eclipse builder • Preferences: Java > Compiler > Error/Warnings  Code style  Potential programming problems  Name shadowing and conflicts  Deprecated and restricted API  Unnecessary code  Generic types  Annotations
  • 32.
    Eclipse Way |Copyright © IBM Corp., 2012. All rights reserved. API Tooling •Invalid API usage •Execution environments