Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "ECE2011/Starting an Eclipse Project: The first 90 days… and the year that follows/Content"
Line 15: | Line 15: | ||
==BREDEX - Who we are & what we do...== | ==BREDEX - Who we are & what we do...== | ||
− | * I am a software developer & test consultant | + | * I am a software developer & test consultant |
− | * | + | ** [[Image:Org_eclipse_jubula-ece11-first90-committer.jpg]] Eclipse committer & open-sourcer |
− | + | [[Image:Org_eclipse_jubula-ece11-first90-bxLogo.png]] | |
+ | * Jubula and EPP >> ''Eclipse for Testers'' | ||
+ | [[Image:Org_eclipse_jubula-ece11-first90-jubulaLogo.jpg]] | ||
* BREDEX GmbH medium sized company located in Braunschweig, Germany - founded in 1987 | * BREDEX GmbH medium sized company located in Braunschweig, Germany - founded in 1987 | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-eclipseStrategic.jpg]] | |
− | * Eclipse events: | + | * Eclipse events: Get-Togethers, Demo-Camps, Testing-Days |
− | * since 2004 | + | [[Image:Org_eclipse_jubula-ece11-first90-eclipseDemoCamp.jpg]] |
− | + | * since 2004 tool for automated GUI-testing - GUIdancer | |
+ | [[Image:Org_eclipse_jubula-ece11-first90-eclipseCommunityAward.jpg]] | ||
==Why open source? - Why Eclipse?== | ==Why open source? - Why Eclipse?== | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-money.jpg]] | |
* commercial tooling does not sell well | * commercial tooling does not sell well | ||
** consulting, customizing and extending does | ** consulting, customizing and extending does | ||
** open source tools outclass commercial tools | ** open source tools outclass commercial tools | ||
− | * BX good at development & consulting | + | * BX good at development & consulting |
+ | ** bad at sales | ||
+ | |||
+ | ==Why open source? - Why Eclipse?== | ||
+ | [[Image:Org_eclipse_jubula-ece11-first90-rost.jpg]] | ||
* large companies require long term support | * large companies require long term support | ||
** lack of trust in small & medium sized companies | ** lack of trust in small & medium sized companies | ||
Line 42: | Line 49: | ||
* internal processes | * internal processes | ||
** ''restructuring'' - scalpel or chainsaw? | ** ''restructuring'' - scalpel or chainsaw? | ||
− | *** extract ~'''95%''' functionality >> 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.* | ||
Line 83: | Line 90: | ||
==Welcome to the real world... 350k LoC== | ==Welcome to the real world... 350k LoC== | ||
− | * Oct. | + | * Oct. - Dec. 2010 - analyze API / 3rd-party code usage |
* Identified > 30 non-critical libraries / licenses | * Identified > 30 non-critical libraries / licenses | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-nonCriticalLicenses.jpeg]] | |
− | + | >> piggyback CQ in IPZilla + reuse / adjust API usage from Orbit | |
− | + | ||
− | + | ||
− | >> piggyback CQ in IPZilla + reuse / adjust API usage | + | |
>> low risk & cost: known API only different version | >> low risk & cost: known API only different version | ||
Line 106: | Line 110: | ||
==Opening (y)our source - day 1 to 95== | ==Opening (y)our source - day 1 to 95== | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-hTimeline.png]] | |
− | + | * first feedback of initial triage | |
− | + | ** conforms to Parallel IP >> preliminary approval | |
− | + | ** though > 20 textual references to clarify / adjust | |
− | + | ||
− | + | ||
− | + | ||
** second source code contribution: '''5th Jan''' | ** second source code contribution: '''5th Jan''' | ||
* initial source code check-in: '''13th Jan''' | * initial source code check-in: '''13th Jan''' | ||
− | |||
=Eclipse infrastructure and build environment= | =Eclipse infrastructure and build environment= | ||
==Jubula's release engineering requirements== | ==Jubula's release engineering requirements== | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-dependencies.jpg]] | |
− | * 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 | |
− | + | ** GUIdancer: last stable major Eclipse service release | |
+ | |||
+ | ==Jubula's release engineering requirements== | ||
+ | [[Image:Org_eclipse_jubula-ece11-first90-package.jpg]] | ||
* support for | * support for | ||
** artifact creation: bundle, fragment, feature, product, p2 | ** artifact creation: bundle, fragment, feature, product, p2 | ||
Line 145: | Line 148: | ||
=Community= | =Community= | ||
==Why community is so important== | ==Why community is so important== | ||
− | [[Image:Org_eclipse_jubula-compActivity.png]] | + | [[Image:Org_eclipse_jubula-ece11-first90-compActivity.png]] |
* we successfully entered stage 1 - getting used & being promoted | * we successfully entered stage 1 - getting used & being promoted | ||
* currently: issue single sourcing | * currently: issue single sourcing | ||
Line 151: | Line 154: | ||
** BREDEX ~ 5 committers | ** BREDEX ~ 5 committers | ||
** Eclipse ~ 4 million users | ** Eclipse ~ 4 million users | ||
− | *** 1% | + | *** 1% potential users >> 40k |
*** 1% participate / extend >> 400 | *** 1% participate / extend >> 400 | ||
** collaboration / integration with other Eclipse projects ( > 60) | ** collaboration / integration with other Eclipse projects ( > 60) | ||
Line 162: | Line 165: | ||
** Wiki ''wiki.eclipse.org'' /Jubula | ** Wiki ''wiki.eclipse.org'' /Jubula | ||
** Blog(s) ''planeteclipse.org'' | ** Blog(s) ''planeteclipse.org'' | ||
− | * for ''' | + | * for '''developers''' |
** Mailing lists | ** Mailing lists | ||
* for '''testers''' | * for '''testers''' | ||
Line 170: | Line 173: | ||
=Process= | =Process= | ||
==Joining the release train - side effects== | ==Joining the release train - side effects== | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-scheduleEmpty.png]] | |
− | + | >> being a part of Indigo - '''www.eclipse.org/downloads''' | |
− | + | >> create an own Eclipse Package '''"Eclipse for Testers"''' | |
− | + | ==Joining the release train - side effects== | |
− | + | [[Image:Org_eclipse_jubula-ece11-first90-scheduleEcl.png]] | |
− | + | >> Eclipse schedule - very well planned / structured | |
− | + | >> long beforehand integration / aggregation runs | |
− | + | ==Joining the release train - side effects== | |
+ | [[Image:Org_eclipse_jubula-ece11-first90-scheduleBx.png]] | ||
+ | >> externally determined timeline | ||
+ | >> largely unknown requirements = costs | ||
+ | ==Joining the release train - side effects== | ||
+ | [[Image:Org_eclipse_jubula-ece11-first90-scheduleBoth.png]] | ||
>> major problems synching in- and external deadlines and requirements | >> major problems synching in- and external deadlines and requirements | ||
==We are agile (again)== | ==We are agile (again)== | ||
* recovered from these effects after 4 months | * recovered from these effects after 4 months | ||
− | |||
− | |||
− | |||
− | |||
* In sync with the Eclipse schedule + 1 week | * In sync with the Eclipse schedule + 1 week | ||
** accepted external timeline | ** accepted external timeline | ||
− | ** focus on | + | ** focus on internal requirements |
+ | * completion of major technical & process adjustments | ||
* 100% compatible: Jubula, "Eclipse for Testers" and GUIdancer | * 100% compatible: Jubula, "Eclipse for Testers" and GUIdancer | ||
Line 194: | Line 199: | ||
==Jubula downloads - (no) rocket science== | ==Jubula downloads - (no) rocket science== | ||
* BREDEX downloads - pre open source ~ 50 per month | * BREDEX downloads - pre open source ~ 50 per month | ||
− | ** [[Image:Org_eclipse_jubula-downloadStatJubula.png]] | + | ** [[Image:Org_eclipse_jubula-ece11-first90-downloadStatJubula.png]] |
* Eclipse for Testers | * Eclipse for Testers | ||
** Indigo ~ 25k downloads (8k per month) | ** Indigo ~ 25k downloads (8k per month) | ||
Line 200: | Line 205: | ||
==Our plans for the future== | ==Our plans for the future== | ||
− | * | + | * EclipseSource: RAP - ARIA collaboration |
* extend community | * extend community | ||
+ | ** awaiting feedback & requirements | ||
* increase Eclipse inner-/inter-project usage | * increase Eclipse inner-/inter-project usage | ||
** e.g. EPP testing | ** e.g. EPP testing | ||
− | + | [[Image:Org_eclipse_jubula-ece11-first90-rap.jpg]] | |
− | * open source | + | * open more source |
** non EPL conform code jubula_lab @ eclipse labs | ** non EPL conform code jubula_lab @ eclipse labs | ||
** functional UI tests and AUTs | ** functional UI tests and AUTs | ||
+ | * participate Juno |
Revision as of 07:32, 1 November 2011
{Copyright:Copyright © 2011 Eclipse Foundation, Inc. and BREDEX GmbH, Made available under the Eclipse Public License v 1.0}
Contents
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 & what we do...
- Jubula and EPP >> Eclipse for Testers
- BREDEX GmbH medium sized company located in Braunschweig, Germany - founded in 1987
- Eclipse events: Get-Togethers, Demo-Camps, Testing-Days
- since 2004 tool for automated GUI-testing - GUIdancer
Why open source? - Why Eclipse?
- commercial tooling does not sell well
- consulting, customizing and extending does
- open source tools outclass commercial tools
- BX good at development & consulting
- bad at sales
Why open source? - Why Eclipse?
- 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 - day 1 (-14)
- 14th October '10 - initial public "Jubula" project proposal
- http://www.eclipse.org/proposals/jubula
- gathering interested parties
- 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? ...
- restructuring - scalpel or chainsaw?
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
Question
Do you care about adopters?
Third-Party Libraries
Pre-req, Exempt Pre-req, Works with
Welcome to the real world... 350k LoC
- Oct. - Dec. 2010 - analyze API / 3rd-party code usage
- Identified > 30 non-critical libraries / licenses
>> piggyback CQ in IPZilla + reuse / adjust API usage 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
- Hibernate
>> do things early! - high risk & cost & test effort
Opening (y)our source - day 1 to 95
- first feedback of initial triage
- 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
Eclipse infrastructure and build environment
Jubula's 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
Jubula's release engineering requirements
File:Org eclipse jubula-ece11-first90-package.jpg
- 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 >> scales very well
- but: recent stability issues in remote CI proved / required flexibility
Community
Why community is so important
- we successfully entered stage 1 - getting used & being promoted
- currently: issue single sourcing
- huge synergy potential
- BREDEX ~ 5 committers
- Eclipse ~ 4 million users
- 1% potential users >> 40k
- 1% participate / extend >> 400
- collaboration / integration with other Eclipse projects ( > 60)
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 developers
- Mailing lists
- for testers
- Bugzilla bugs.eclipse.org/bugs
- for people like you: talks at conferences, demo camps ...
Process
Joining the release train - side effects
>> being a part of Indigo - www.eclipse.org/downloads >> create an own Eclipse Package "Eclipse for Testers"
Joining the release train - side effects
>> Eclipse schedule - very well planned / structured >> long beforehand integration / aggregation runs
Joining the release train - side effects
>> externally determined timeline >> largely unknown requirements = costs
Joining the release train - side effects
>> major problems synching in- and external deadlines and requirements
We are agile (again)
- recovered from these effects after 4 months
- In sync with the Eclipse schedule + 1 week
- accepted external timeline
- focus on internal requirements
- completion of major technical & process adjustments
- 100% compatible: Jubula, "Eclipse for Testers" and GUIdancer
Results
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)
Our plans for the future
- EclipseSource: RAP - ARIA collaboration
- extend community
- awaiting feedback & requirements
- increase Eclipse inner-/inter-project usage
- e.g. EPP testing
- open more source
- non EPL conform code jubula_lab @ eclipse labs
- functional UI tests and AUTs
- participate Juno