eclipse development process€¦ · parallel ip •parallel ip (conforming projects only)...

51
Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Eclipse Development Process Wayne Beaton The Eclipse Foundation

Upload: others

Post on 26-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Eclipse Development Process

Wayne BeatonThe Eclipse Foundation

Page 2: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Agenda•Background

•Principles

•Lifecycle

•Processes and Tools

Page 3: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

The Eclipse Development Process (EDP)

•High-level process for managing Eclipse projects

•Project Creation, Planning, Milestones, ReleaseCandidates, Reviews, and Releases

•Not a technical development process (i.e. Scrum, XP)

•The Eclipse Architecture Council (esp. Dave Carver)have started some work in this area

•Exists to help you and your project be successful

Page 4: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Definition: Committer and Contributor•Contributor is anybody who contributes code to yourproject

•All contributions must be tracked, attributed

•Projects must maintain an IP Log (more later)

•Contributors who demonstrate consistent value may beinvited to become committers

•Only committers can write code to an eclipse.org coderepository

•Being an Eclipse committer is more about responsibilitythan power

Page 5: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Definition: Meritocracy•Committers may join a project at creation time

•After creation, new committers must demonstrate merit

•Provide proof that they are worthy of the responsibility

•What is "Merit"?

•Varies by project

•Transparent track record of top-quality contribution

•Employment status is not enough

Page 6: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Definition: Eclipse Management Organization (EMO)

•Foundation staff

•Councils

•Architecture Council

•Planning Council

•Requirements Council

•EMO(ED)

•Executive Director and delegates

Page 7: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Principles

Page 8: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Eclipse Principles•Openness

•Transparency

•Quality work

• Intellectual Property Cleanliness

Page 9: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Openness•Accept/invite ideas, contributions, ... from the community

•Facilitate/invite participation!

•Grow your committer/adopter/user base!

•Projects are required to

•Maintain an up-to-date project plan

•Maintain project data via the Foundation Portal

•Make regular releases

Page 10: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Transparency•Outsiders must be able to see what you're doing

•Adopters need to make their own plans

•Contributors need to know where they can contribute

•Committers need to know what they should be doing

•Conversations must be captured in an open forum

•eclipse.org mailing lists, newsgroups, forums, bugs

•Phone and face-to-face conversations must be captured

•Meeting minutes on project website, mailing list, wiki, ...

Page 11: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Community•Ultimately, openness and transparency are aboutgrowing community

•Adopters, users, contributors, committers

•Diversity makes your project better

•Adopters become contributors, contributors becomecommitters

•Shared vision, shared burden

•Let go

•Share control with your community

•Build concensus

Page 12: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Quality Work•Quality work is, well, quality work

•APIs must be carefully designed

•Based the needs of the wider adopter community

•Documentation is important!

Page 13: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Intellectual Property (IP)•Code authors retain copyright

• Individual or company

•Contributions are subject to theEclipse IP Due DiligenceProcess

•All committers must be familiarwith this process

http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf

Page 14: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

IP Cleanliness•We must ensure that all of our code is free of issues

•Who owns the code?

•Are their claims of ownership valid?

•Provenance

•Did the code really come from where the owner says itcame from?

•Licenses

• Is the code available under the EPL?

• Is the license otherwise compatible with the EPL?

• It's all about mitigating risk to users and adopters

Page 15: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Lifecycle

Page 16: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Definition: Operating Projects•Where all the (real) work happens

•CVS/SVN/Git* repository

•Read-access to all

•Write access by committers only

•Has a project website

•Builds/Downloads/Releases

•Project leader(s), committers

•Have a well-defined scope

•Approved by EMO(ED), PMC

Page 17: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Defintion: Container Projects•A container for other projects

•May contain other container projects

•Nesting is limited in practice to three levels

•Website/Builds/Downloads/Releases

•Container projects oftentimes provide an aggregatedbuild/downloads/releases of contained (sub)projects

•Project leader(s), committers*

•Have a well-defined scope

•Approved by EMO(ED), PMC

Page 18: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Definition: Top-level Projects•Special kind of container project

•Have a charter

•Approved by Eclipse Board of Directors

•Have a Project Management Committee (PMC)

•PMC is ultimately responsible its projec

•Approves IP contributions

•Liason between project and EMO

Page 19: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Interchangeable Language•Project

•Operating Project, Container Project, Top-level Project

•Subproject

•Operating project, Container Project

•Component

•Operating Project (typically 3rd level)

Page 20: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Proposals•All projects start with a proposal

•Describes the nature of the project

•Specific focus on scope

• Initial contributions

• Intial contributors, interested parties, ...

•Proposals are posted for community review

•Minimum of two-weeks of review before creation

•Community given the opportunity to find out more,provide guidance

•Proposals end with either creation or withdrawal

Page 21: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Where?•All projects must be created under a top-level orcontainer project

•Project must conform to Charter/scope of container

•Project leadership must accept the project

Page 22: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Reviews•Key lifecycle points are celebrated with a review

•Creation, Release, Move, Restructuring, Termination

•Reviews require documentation

•HTML document, slide presentation, bug

•Reviews require a review period of one week

•To give community a chance to be heard

•Gives the project a chance to document successes andfailures, regroup, celebrate, ...

Page 23: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Project Creation•Creation review document

•May be created from proposal

•Often presented as slides (historical)

•Community given chance to review/comment

•Ends with a New Project Provisioning Request (NPPR)

•Kicks off the provisioning process

•Website, code repository, committers, ...

Page 24: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Incubation•New projects start in incubation

•Committers are learning the EDP

• Initial contributions are being processed

•APIs are in a state of flux

•Builds, downloads, plans, ... being created

Page 25: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Requirements• Two Architecture Council mentors

• Project must clearly label itself

• Incubation logo on project home page and primarydownload page.

• Zip files for builds and milestones must include theword "incubation" in the filename

• Bundle-Names must include the world "incubation"

• Feature names must include the word "incubation"

• "0.x" releases only

Page 26: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Benefits of Incubation• Lowered Expectations

•APIs and quality in flux

•Maleable

•More flexibility to make changes to APIs andimplementation

• "API is forever"

•Time to develop community

•Leverage Parallel IP (later)

Page 27: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Mentors•From the Architecture Council

• "Been there, done that"

•Familiar with the EDP

•Provide guidance and assistance

•Architecture Council

• Leadership, best practices

•Members appointed from each Top-level project,nominated by other members

Page 28: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Releases•All projects are expected to make releases

• "0.x" only for incubating projects

•Releases require community review

•Community given opportunity to pose questions

•Not required for service ("*.*.x") releases

•Review documentation

•Description of new and removed features and APIs

•Discussion of community development activities

•Demonstration of IP cleanliness

Page 29: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Version Numbers•maj.min.srv.qualifer

•Major segment indicates breakage in the API

•Minor segment indicates "externally visible" changes

•Service segment indicates bug fixes

•Qualifier segment indicates a particular build

Page 30: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Graduation•Releases 1.0 or greater

•Graduation review is typically combined with a releasereview

•Project becomes "Mature"

•Maturity implies a level of, well, maturity

•Mature build, technical development process,knowledgeable committers, ...

• "API is forever"

Page 31: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Termination•Projects that have reached their natural end-of-life areterminated and archived

•Nothing more to do

•Questions answered (research)

•Failure to develop community or traction

•Termination review documentation

•Describe reasons for termination

•Failed termination review may result in a continuation

•Project may continue under different leadership and/orcommitters

Page 32: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Processes and Tools

Page 33: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Contributions•Contribution must be accepted through Bugzilla

•Contributor implicitly agrees to Eclipse Terms of Use

•Contributor implicitly permits us to use and distributortheir code under the EPL

•Contributor retains copyright

• Ideally, code contributions should be attached to a bug

•Attachments can be flagged, making them easy toidentify by our IP Log tools

Page 34: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Contribution Questionnaires (CQ)•Track significant contributionsand third-party libraries

•Must pass muster before beingadded to code repository

•May be granted parallel IP

• "Significant?" - Read the IP DueDiligence Poster

Page 35: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

IPZilla•The tool used to track contributions and third-partylibraries

•Access IPZilla through the Developer Portal

•Help you find existing CQs

•Guide you through the CQ creation process

•A modified instance of Bugzilla

•Comments, state tracking, notification, ...

Page 36: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

What's in a CQ?•Where this code or third-party library came from

•Code for the library

•Each library needs its own CQ

•A "library" may manifest as multiple JAR files

•List of applicable licenses

Page 37: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Piggyback CQs•For libraries that are already used by other projects

• "Piggyback" on the due diligence of the previous work

•Libraries should eventually land in Orbit

Page 38: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Third-Party Libraries• IP Team reviews the license, copyright, and provenanceof all third-party libraries

•CQ is required for each distinct version of a third-partylibrary

•CQs for new versions of an approved third-party librarymay qualify for parallel IP

•Approved third-party libraries can be stored ineclipse.org code repositories and distributed fromeclipse.org servers

Page 39: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Parallel IP

•Parallel IP (conforming projects only)

•Libraries can be used while they are being checked

•May need to be removed

• Incubating projects can leverage for any third-partylibrary

•Subject to approval of IP team

•Mature projects can leverage for new versions ofalready-approved libraries

Page 40: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Works-With Dependencies•Project code does not require the third party software tobe present

•Eclipse software may call or invoke it if it is present

•Or... project code will work with multiple software choices

•The choice of which to use is up to the user

•At least one of those must be a pre-req (see below) orapproved by the EMO

Page 41: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Exempt Pre-req•Prerequisite that is not subject to IP due diligence

•Classified as "exempt" by the EMO if:

•The software is pervasive in nature;

•Expected to be already on the user's machine; and/or a

•An IP review would be either impossible, impractical, orinadvisable

Examples: Windows XP, Sun JRE

Page 42: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Legal Questions?•Ask your project lead, or a member of the ArchitectureCouncil

•They have access, through the Developer Portal, toEclipse Foundation staff to pose questions

•Answers do not (and cannot) constitute legal advice(IANAL)

• If you need solid legal advice, you must consult yourown counsel

Page 43: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

IP Logs•Required for release and move reviews

•Should be accessible for adopters

•Captures

•All current committers

•All contributions (no matter how small) a project

•All third-party software

•Project licenses

Page 44: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

IP Log Tools•Two tools

•Automated IP Log Tool (Deprecated)

•Eclipse-based IP Log Tool

•Both pull data from Foundation Databases

•Project data

•Bugzilla

• IPZilla

•Both allow you to manipulate the data

•Only as good as the source data

Page 45: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Make it Work for You•Categorize Bugzilla entires

•Mark contributions

•Mark bug as FIXED

•Tag attachments with iplog+

•Categorize IPZilla contributions

• Identify as third party

Page 46: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Developer Portalhttp://portal.eclipse.org

•Log in with your EclipseBugzilla ID

•Elect/vote for committers

•Personal information

•Project data

Page 47: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Project Data•Keep this information up-to-date

•Used to populate ProjectSummary pages (and otherplaces)

•Helps your community keeptrack of the project

•Source code, releases,download urls, project plan,documentation, ...

Page 48: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Project Summary

Page 49: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

It's All About Community•Openness

•Transparency

•Quality

• IP Cleanliness

•Diversity

•Adoption

•Growth

Page 50: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

Afterthoughts•Git at Eclipse

•Eclipse Corner

•Planet Eclipse

•Eclipse Blogs

Page 51: Eclipse Development Process€¦ · Parallel IP •Parallel IP (conforming projects only) •Libraries can be used while they are being checked •May need to be removed •Incubating

Copyright © 2010 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0

More InformationI'll see you at EclipseCon!