Skip to main content
Jump to: navigation, search

Difference between revisions of "ECE2011/Starting an Eclipse Project: The first 90 days… and the year that follows/Content"

Line 29: Line 29:
 
* since 1995 software development focus on Java
 
* since 1995 software development focus on Java
 
* ever since end-user projects in various industries
 
* ever since end-user projects in various industries
* UI oriented software development
+
** UI oriented software development
 
* lack of tooling for UI test automation - requirements:
 
* lack of tooling for UI test automation - requirements:
 
** no coding
 
** no coding
Line 37: Line 37:
 
** GUIdancer - Eclipse Community Award Winner 2010
 
** GUIdancer - Eclipse Community Award Winner 2010
  
==Why open source GUIdancer?==
+
==Why open source? - Why Eclipse?==
*  
+
* 13 months ago... open GUIdancer to the public
 
+
* commercial tooling does not sell good
==Why Eclipse?==
+
** open source tools outclass commercial tools
*  
+
** consulting, customizing and extending does
 +
* BX good at development & consulting - bad at sales
 +
* large companies require long term support
 +
** lack of trust in small & medium sized companies
 +
* entering the Eclipse world
 +
** mature&stable ecosystem + large community 
 +
** BREDEX Eclipse based - GUIdancer RCP based
  
 
==The beginning==
 
==The beginning==
Line 48: Line 54:
 
** gathering interested parties
 
** gathering interested parties
 
* internal processes
 
* internal processes
** restructuring - scalpel or chainsaw?
+
** ''restructuring'' - scalpel or chainsaw?
*** extract core functionality (90%) >> Jubula
+
*** extract '''95%''' functionality >> Jubula
** relocating - single SVN repository >> 3 git repos
+
** ''relocating'' - single SVN repository >> 3 git repos
** renaming - *.guidancer.* >> org.eclipse.jubula.*
+
** ''renaming'' - *.guidancer.* >> org.eclipse.jubula.*
** reviewing - What's ours? - What's not? ...
+
** ''reviewing'' - What's ours? - What's not? ...
  
 
=Intellectual Property Management=
 
=Intellectual Property Management=
Line 102: Line 108:
 
* Identified critical (non-EPL conform) libraries / licenses
 
* Identified critical (non-EPL conform) libraries / licenses
 
* GNU Lesser General Public License (LGPL):  
 
* GNU Lesser General Public License (LGPL):  
** Hibernate
+
** '''Hibernate'''
 
*** Jubula main data storage: backend database
 
*** Jubula main data storage: backend database
 
*** replace ORM-Framework
 
*** replace ORM-Framework
*** move to JPA and EclipseLink as persistence provider
+
*** move to '''JPA and EclipseLink''' as persistence provider
 
*** high risks & costs: three man weeks for API change
 
*** high risks & costs: three man weeks for API change
** JTopas - java string tokenizer and parser
+
** '''JTopas''' - java string tokenizer and parser
 
*** replace parsing library + subtle syntax changes
 
*** replace parsing library + subtle syntax changes
*** use of SableCC (also LGPL) artifacts which are non-LGPL
+
*** use of '''SableCC''' (also LGPL) artifacts which are non-LGPL
 
>> do things early! - high risk & cost & test effort
 
>> do things early! - high risk & cost & test effort
  
Line 126: Line 132:
 
=Eclipse infrastructure and build environment=
 
=Eclipse infrastructure and build environment=
  
==Release engineering requirements for Jubula==
+
==Jubulas release engineering requirements==
  
 
* Kill two birds with one stone - Jubula & GUIdancer
 
* Kill two birds with one stone - Jubula & GUIdancer
** single source: share & reuse the same Jubula core
+
** '''single source''': share & reuse the same Jubula core
 
** manage different targets / platforms / environments
 
** manage different targets / platforms / environments
 
*** Jubula: maintenance (3.7.0, ...), current (3.7.1) & upcoming (3,7.2, 3.8, ..., 4.2, ...) versions
 
*** Jubula: maintenance (3.7.0, ...), current (3.7.1) & upcoming (3,7.2, 3.8, ..., 4.2, ...) versions
Line 143: Line 149:
 
* CI @ eclipse: hudson.eclipse.org - nightly builds
 
* CI @ eclipse: hudson.eclipse.org - nightly builds
 
* Works like a charm!  
 
* Works like a charm!  
** ''automagically'' dependency management
+
** ''automagical'' dependency management
 
** p2-based target platform definitions + maven profiles
 
** p2-based target platform definitions + maven profiles
 
** git - fast, reliable & powerful
 
** git - fast, reliable & powerful
* currently ~ 70 artifacts: '''bundles''', features, update sites
+
* currently ~70+50 artifacts: '''bundles''', features, p2-repos
 
* constantly growing
 
* constantly growing
* recent stability issues in remote CI proved flexibility
+
* '''but:''' recent stability issues in remote CI proved / required flexibility
 
+
  
 
=Community=
 
=Community=
 +
==Why community is so important==
 +
* '''Synergy'''
  
 +
==Community channels==
 +
* for '''beginners / advanced / experts'''
 +
** Website ''eclipse.org''                        /jubula
 +
** Forum ''eclipse.org/forums''          /eclipse.jubula
 +
** Webinars ''live.eclipse.org''                /node/1031
 +
** Wiki ''wiki.eclipse.org''                /Jubula
 +
** Blog(s) ''planeteclipse.org''
 +
* for '''testers'''
 +
** Bugzilla ''bugs.eclipse.org/bugs''
 +
* for '''developer'''
 +
** Mailing lists
 +
* for people like you
 +
** talks at conferences, demo camps ...
 +
 +
==Jubula downloads - (no) rocket science==
 +
* BREDEX downloads - pre open source ~ 50 per month
 +
** [[Image:downloadStatJubula.png]]
 +
* Eclipse for Testers
 +
** Indigo ~ 25k downloads (8k per month)
 +
** Indigo SR 1 ~ 13k downloads (8k per month)
  
 
=Process=
 
=Process=
 +
==Eclipse schedule==
 +
*
 +
 +
==Pitfalls==
  
  
 
=Results=
 
=Results=

Revision as of 07:19, 28 October 2011

{Copyright:Copyright © 2011 Eclipse Foundation, Inc. and BREDEX GmbH, Made available under the Eclipse Public License v 1.0}

Starting an Eclipse Project: The first 90 days…

Wayne Beaton Markus Tiede

Agenda

  • What is Open Source?
  • Intellectual Property Management
  • Configuration Management and Build
  • Community
  • Process
  • Results

What is Open Source?

BREDEX - Who we are...

  • I am a software developer & test consultant @ BREDEX
  • since 2010 Eclipse committer & open-sourcer
    • Jubula and EPP >> Eclipse for Testers
  • BREDEX GmbH medium sized company located in Braunschweig, Germany - founded in 1987
  • Eclipse Strategic Developer Member & ASQF e.V.
  • Host of various (Eclipse) events
    • Braunschweiger Eclipse get-together since 2007
    • Eclipse Demo Camps 2009 / 2010 / 2011
    • Eclipse Testing Day 2010 / 2011
    • ...

BREDEX - What we do...

  • since 1995 software development focus on Java
  • ever since end-user projects in various industries
    • UI oriented software development
  • lack of tooling for UI test automation - requirements:
    • no coding
    • application independent
    • support for modularity, abstractness and reusability
  • since 2004 commercial tool for automated GUI-testing
    • GUIdancer - Eclipse Community Award Winner 2010

Why open source? - Why Eclipse?

  • 13 months ago... open GUIdancer to the public
  • commercial tooling does not sell good
    • open source tools outclass commercial tools
    • consulting, customizing and extending does
  • BX good at development & consulting - bad at sales
  • large companies require long term support
    • lack of trust in small & medium sized companies
  • entering the Eclipse world
    • mature&stable ecosystem + large community
    • BREDEX Eclipse based - GUIdancer RCP based

The beginning

  • 14th October '10 - initial public "Jubula" project proposal
  • internal processes
    • restructuring - scalpel or chainsaw?
      • extract 95% functionality >> Jubula
    • relocating - single SVN repository >> 3 git repos
    • renaming - *.guidancer.* >> org.eclipse.jubula.*
    • reviewing - What's ours? - What's not? ...

Intellectual Property Management

The Basics

  • I am not a lawyer
    • Ask your lawyer for legal advice
  • Intellectual Property
    • Intellectual property (IP) is a term referring to a number of distinct types of creations of the mind for which a set of exclusive rights are recognized—and the corresponding fields of law.

Assumption

Open Source Project wants to be successful

Assertion

Intellectual Property Management is important in every open source project

Clarification

Intellectual Property Management is important in source project that cares about adoption

Management?

  • Who owns the copyright?
  • Is the owner really the owner?
  • What license does the owner grant?
  • Does the license allow what we need to do?
  • Is the license valid?
  • If I use this code, will I be sued?

Contributions

IplogFlag.png

Question

Do you care about adopters?

Third-Party Libraries

Pre-req, Exempt Pre-req, Works with

Welcome to the real world... 350k LoC

  • Oct. / Nov. / Dec. 2010 - analyze API / 3rd-party code usage
  • Identified > 30 non-critical libraries / licenses
    • Apache license 1.1 and 2.0: POI, Commons Lang, Commons CLI, Commons codec, Commons IO, Commons Logging, ORO, BeanUtils, XMLBeans, Collections...
    • MIT license: SLF4J + New BSD license: Xstream
    • Custom / derived license e.g. based on Apache 1.1: dom4j
    • Eclipse Public Licenses: h2 Database

>> piggyback CQ in IPZilla + reuse / adjust API usage (versions) from Orbit >> low risk & cost: known API only different version

Welcome to the mean world...

  • Identified critical (non-EPL conform) libraries / licenses
  • GNU Lesser General Public License (LGPL):
    • Hibernate
      • Jubula main data storage: backend database
      • replace ORM-Framework
      • move to JPA and EclipseLink as persistence provider
      • high risks & costs: three man weeks for API change
    • JTopas - java string tokenizer and parser
      • replace parsing library + subtle syntax changes
      • use of SableCC (also LGPL) artifacts which are non-LGPL

>> do things early! - high risk & cost & test effort

Open your source - our timings

  • project proposal 14th Oct >> creation review 24th Nov
  • entering incubation phase
    • 3 months of preparation since project proposal
    • initial source code contribution - CQ4707 - 17th Dec
      • first feedback of initial triage: 23th Dec
      • conforms to Parallel IP >> preliminary approval
      • though > 20 textual references to clarify / adjust
    • second source code contribution: 5th Jan
  • initial source code check-in: 13th Jan
  • CQ legal approval: 9th March

Eclipse infrastructure and build environment

Jubulas release engineering requirements

  • Kill two birds with one stone - Jubula & GUIdancer
    • single source: share & reuse the same Jubula core
    • manage different targets / platforms / environments
      • Jubula: maintenance (3.7.0, ...), current (3.7.1) & upcoming (3,7.2, 3.8, ..., 4.2, ...) versions
      • GUIdancer: last stable major Eclipse service release
  • support for
    • artifact creation: bundle, fragment, feature, product, p2
    • artifact signing (release train requirement)
    • developer, local and remote builds - failsafe

Releng of Jubula @ eclipse.org

  • Maven3/Tycho 0.12.0
  • CI @ eclipse: hudson.eclipse.org - nightly builds
  • Works like a charm!
    • automagical dependency management
    • p2-based target platform definitions + maven profiles
    • git - fast, reliable & powerful
  • currently ~70+50 artifacts: bundles, features, p2-repos
  • constantly growing
  • but: recent stability issues in remote CI proved / required flexibility

Community

Why community is so important

  • Synergy

Community channels

  • for beginners / advanced / experts
    • Website eclipse.org /jubula
    • Forum eclipse.org/forums /eclipse.jubula
    • Webinars live.eclipse.org /node/1031
    • Wiki wiki.eclipse.org /Jubula
    • Blog(s) planeteclipse.org
  • for testers
    • Bugzilla bugs.eclipse.org/bugs
  • for developer
    • Mailing lists
  • for people like you
    • talks at conferences, demo camps ...

Jubula downloads - (no) rocket science

  • BREDEX downloads - pre open source ~ 50 per month
  • Eclipse for Testers
    • Indigo ~ 25k downloads (8k per month)
    • Indigo SR 1 ~ 13k downloads (8k per month)

Process

Eclipse schedule

Pitfalls

Results

Back to the top