Presentation about the Hibachi project, a plugin for Eclipse supporting Ada development.
By Tom GROSMAN. Licensed under the Eclipse Public License v1.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
BackgroundBackground– Overview of EclipseOverview of Eclipse– Hibachi projects goals Hibachi projects goals – The Eclipse development process The Eclipse development process – The scope and area of application of Hibachi The scope and area of application of Hibachi
Current Status Current Status – Initial release (Demo)Initial release (Demo)– Development resources in place Development resources in place
Future Direction Future Direction – Development plan Development plan – Future FeaturesFuture Features– Committer PresentationsCommitter Presentations
Expectations, Suggestions, WishlistExpectations, Suggestions, Wishlist– Open Discussion, QuestionsOpen Discussion, Questions
Eclipse is an Eclipse is an open sourceopen source communitycommunity whose whose projects are focused on building an projects are focused on building an openopen development platform comprised of development platform comprised of extensibleextensible frameworksframeworks, tools and runtimes for building, , tools and runtimes for building, deploying and managing software across the deploying and managing software across the lifecycle. A large and vibrant lifecycle. A large and vibrant ecosystemecosystem of major of major technology vendors, innovative start-ups, technology vendors, innovative start-ups, universities, research institutions and individuals universities, research institutions and individuals extend, complement and support the extend, complement and support the Eclipse Eclipse platformplatform..
Eclipse is much more than a Java IDE ! Eclipse is much more than a Java IDE !
Hibachi, an open source project under the Hibachi, an open source project under the EclipseEclipse ToolsTools Project Project is intended to is intended to
Create a Create a standardstandard, , vendorvendor neutralneutral Ada development Ada development environment for environment for EclipseEclipse that will maintain the look and that will maintain the look and feel of the feel of the CDTCDT and and JDTJDT
Provide a standard Ada environment with which third Provide a standard Ada environment with which third party tool developers can easily work, regardless of party tool developers can easily work, regardless of the choice of underlying compiler technology. Such the choice of underlying compiler technology. Such tools would include, but are not limited to, modeling tools would include, but are not limited to, modeling tools, editor tools, static and dynamic code analysis tools, editor tools, static and dynamic code analysis tools (ex coverage, profiling), refactoring tools, tools (ex coverage, profiling), refactoring tools, configuration management tools. configuration management tools.
– Overview of EclipseOverview of Eclipse Eclipse FoundationEclipse Foundation Eclipse PlatformEclipse Platform Eclipse CommunityEclipse Community Eclipse EcosystemEclipse Ecosystem
– Hibachi rationale and goals Hibachi rationale and goals – The Eclipse development process The Eclipse development process – The scope and area of application of The scope and area of application of
What is the Eclipse Foundation?What is the Eclipse Foundation?
The Eclipse Foundation is a not-for-profit, member supported The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects. The Foundation corporation that hosts the Eclipse projects. The Foundation provides services to run the IT infrastructure, IP due diligence, provides services to run the IT infrastructure, IP due diligence, mentor the open source projects during the Eclipse mentor the open source projects during the Eclipse development process and provide marketing and business development process and provide marketing and business development support for the Eclipse community.development support for the Eclipse community.
The Eclipse Foundation does not actually develop the open The Eclipse Foundation does not actually develop the open source code. All of the open source software at Eclipse is source code. All of the open source software at Eclipse is developed by open source developers, called committers, developed by open source developers, called committers, which are volunteered or contributed by organizations and which are volunteered or contributed by organizations and individuals.individuals.
For more information about Eclipse and the Eclipse For more information about Eclipse and the Eclipse Foundation, visit www.eclipse.orgFoundation, visit www.eclipse.org
The Eclipse PlatformThe Eclipse Platform Written in JavaWritten in Java
– Portable Portable Runs on any architecture that has a J2SE VM runningRuns on any architecture that has a J2SE VM running
Freely downloadable from the web via eclipse.orgFreely downloadable from the web via eclipse.org
Extensible via an extension point/plug-in mechanism implemented Extensible via an extension point/plug-in mechanism implemented using robust, well-defined published APIsusing robust, well-defined published APIs– Extension (plugin) may be open sourceExtension (plugin) may be open source– Extension may be proprietaryExtension may be proprietary– Extension may be a combinationExtension may be a combination
Includes several plugins in basic configuration as delivered, such as Includes several plugins in basic configuration as delivered, such as JDT, a top-notch Java Development Toolkit as well as a Java compiler JDT, a top-notch Java Development Toolkit as well as a Java compiler
Best-of-breed functionality available for all to use (example- CVS Best-of-breed functionality available for all to use (example- CVS integration)integration)
The Eclipse platform (cont)The Eclipse platform (cont)
Releases are syncronized so the various platform components Releases are syncronized so the various platform components are compatible and available togetherare compatible and available together
Projects follow Eclipse development methodologyProjects follow Eclipse development methodology(transparency, meritocracy, « code talks »)(transparency, meritocracy, « code talks »)
Projects are open source under Eclipse Public Licence (EPL)Projects are open source under Eclipse Public Licence (EPL)
Uses standard bug tracking via BugzillaUses standard bug tracking via Bugzilla
Community is made up of users, testers, contributers and Community is made up of users, testers, contributers and committers committers
All code is peer reviewedAll code is peer reviewed
RCP - Rich Client RCP - Rich Client PlatformPlatform While the Eclipse platform is designed to serve as an open tools While the Eclipse platform is designed to serve as an open tools
platform, it is architected so that its components could be used to build platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the build a rich client application is collectively known as the Rich Client Rich Client PlatformPlatform. .
Applications other than IDEs can be built using a subset of the platform. Applications other than IDEs can be built using a subset of the platform. These rich applications are still based on a dynamic plug-in model, and These rich applications are still based on a dynamic plug-in model, and the UI is built using the same toolkits and extension points. The layout the UI is built using the same toolkits and extension points. The layout and function of the workbench is under fine-grained control of the plug-and function of the workbench is under fine-grained control of the plug-in developer in this case. in developer in this case.
When we say that the Rich Client Platform is the minimal set of plug-ins When we say that the Rich Client Platform is the minimal set of plug-ins needed to build a platform application with a UI, we mean that your needed to build a platform application with a UI, we mean that your application need only require two plug-ins, application need only require two plug-ins, org.eclipse.uiorg.eclipse.ui and and org.eclipse.core.runtimeorg.eclipse.core.runtime, and their prerequisites. , and their prerequisites.
However, rich client applications are free to use any API deemed However, rich client applications are free to use any API deemed necessary for their feature set, and can require any plug-ins above the necessary for their feature set, and can require any plug-ins above the bare minimum. Examples include the Help UI, and the Update Manager. bare minimum. Examples include the Help UI, and the Update Manager.
DSDP- DSDP- Device Software Development Device Software Development PlatformPlatform
The Device Software Development Platform The Device Software Development Platform (DSDP) was established as a top-level project (DSDP) was established as a top-level project to make the Eclipse platform more suitable for to make the Eclipse platform more suitable for embedded development. DSDP is supported by embedded development. DSDP is supported by a growing number of vendors to create a a growing number of vendors to create a common open source framework and common open source framework and exemplary tools to enable better integration of exemplary tools to enable better integration of Eclipse plugins from various sources with Eclipse plugins from various sources with target devices, operating systems, and target devices, operating systems, and development tools. Initially, DSDP focuses on development tools. Initially, DSDP focuses on building infrastructure for Target Management, building infrastructure for Target Management, Device Debugging, Mobile Java, and Embedded Device Debugging, Mobile Java, and Embedded GUI's. GUI's.
CommittersCommitters– Devoted developers (at least 50%)Devoted developers (at least 50%)– Write access to code repositoryWrite access to code repository– Nominated and elected by current Nominated and elected by current
committerscommitters– Responsible for project architecture and Responsible for project architecture and
directiondirection– Responsive to community needsResponsive to community needs– A privelege based on participationA privelege based on participation
Able to contribute via BugzillaAble to contribute via Bugzilla– New featuresNew features– Bug fixesBug fixes– DocumentationDocumentation
Participate in newsgroup, mailing listParticipate in newsgroup, mailing list Add to Hibachi Wiki, FAQs, How-To GuidesAdd to Hibachi Wiki, FAQs, How-To Guides Testers (writing or running tests)Testers (writing or running tests) On path to becoming a project committerOn path to becoming a project committer
Open Source Rules of EngagementOpen Source Rules of Engagement Quality CultureQuality Culture Collective ReputationCollective Reputation Eclipse EcosystemEclipse Ecosystem Three CommunitiesThree Communities Clear and ConciseClear and Concise Freedom, Autonomy and EvolutionFreedom, Autonomy and Evolution Just Enough ProcessJust Enough Process
The Three Laws of The Three Laws of EclipseEclipse(With a nod to Issac Asimov)(With a nod to Issac Asimov)
1.1. A committer may not, through action A committer may not, through action or inaction, violate IP cleanlinessor inaction, violate IP cleanliness
– Clean CodeClean Code.. Making sure that all incoming code Making sure that all incoming code is legally contributed.is legally contributed.
– Approved LibrariesApproved Libraries.. Making sure that all third- Making sure that all third-party code included, or merely referenced, is party code included, or merely referenced, is cleared by Eclipse Legal through a contribution cleared by Eclipse Legal through a contribution questionnaire.questionnaire.
– Paper'ed PeoplePaper'ed People Making sure that all Making sure that all committers have committer agreements covering committers have committer agreements covering each of the committer's projects. each of the committer's projects.
– Public Queue.Public Queue. All bugs and tasks are tracked at the All bugs and tasks are tracked at the public eclipse.org bugzillapublic eclipse.org bugzilla
– Available Tools.Available Tools. All the source code and all the tools All the source code and all the tools
used to build a project are available for everyone to used to build a project are available for everyone to use.use.
– Transparent Elections.Transparent Elections. Elections for new Elections for new committers are open and public, with full records and committers are open and public, with full records and justifications. justifications.
Three Eclipse Laws Three Eclipse Laws (cont)(cont)3.3. A committer may not, through action or A committer may not, through action or
inaction, surprise the membership inaction, surprise the membership
– Open Plans.Open Plans. Planning and status reports and Planning and status reports and meetings are open to all. Most projects use the wiki.meetings are open to all. Most projects use the wiki.
– Public Reviews.Public Reviews. At major events in a project At major events in a project lifecycle, lifecycle, reviewsreviews are held to inform the membership. are held to inform the membership.
– Prominent Announcements.Prominent Announcements. When starting a When starting a major new feature or effort that does not require a major new feature or effort that does not require a formal review, committers send an announcement formal review, committers send an announcement alerting the members to potential future new cool alerting the members to potential future new cool stuff. stuff.
Customer/Market demandCustomer/Market demand Competition from other language IDEsCompetition from other language IDEs Understanding Value Added PropositionUnderstanding Value Added Proposition Force multiplierForce multiplier Attract more third party integratorsAttract more third party integrators Simplify synchronizing updatesSimplify synchronizing updates Coopetition- A new paradigm in the Coopetition- A new paradigm in the
Hibachi is intended to be a full-featured IDE for developing Ada native and embedded applications. Hibachi will independent of the underlying Ada compiler technology.
Hibachi will be architected in such a way as to allow integrators the possibility to extend or replace the functionality it provides.
Hibachi will provide an open framework for the integration and use of other tools used during the lifecycle of large-scale Ada application development. These tools include but are not limited to Static Analysis, Modeling, Testing and Verification, Performance Analysis, Documentation, Refactoring and Configuration Management.
Test cases produced with codeTest cases produced with code All code peer reviewedAll code peer reviewed User Documentation produced with User Documentation produced with
codecode Agile DevelopmentAgile Development Nightly automated buildsNightly automated builds Nightly automated test suitesNightly automated test suites Meritocracy based (Code talks!)Meritocracy based (Code talks!)
7 Diverse Initial Committers7 Diverse Initial Committers– AdaCore, Aonix, CohesionForce, DDC-IAdaCore, Aonix, CohesionForce, DDC-I
Initial code base (AonixADT)Initial code base (AonixADT)– IP scrubbedIP scrubbed– Fully functionalFully functional– Support for GNAT and ObjectAdaSupport for GNAT and ObjectAda
Project “provisioned”Project “provisioned”– Home Page Home Page – NewsgroupNewsgroup– Developer Mailing listDeveloper Mailing list– Wiki pages set upWiki pages set up
Contributor/Adopter interestContributor/Adopter interest– PraxisPraxis– OCSystemsOCSystems– Green Hills SoftwareGreen Hills Software– Institute for Software (Switzerland)Institute for Software (Switzerland)– GnuAda Group and MacAda groupsGnuAda Group and MacAda groups
How the committer expects to How the committer expects to contribute to Hibachi, and use the contribute to Hibachi, and use the Hibachi technologyHibachi technology
David Phillips, David Phillips, CTO - CohesionForceCTO - CohesionForce
Greg Gicca, Greg Gicca, Director of Safety and Director of Safety and
v0.7 (incubation) Q1 2008v0.7 (incubation) Q1 2008– Open API for additional toolchainsOpen API for additional toolchains– Additional toolchains (DDC-I, AdaCore GNAT)Additional toolchains (DDC-I, AdaCore GNAT)
v0.9 (incubation) Q2 2008v0.9 (incubation) Q2 2008– CDT technology rapproachmentCDT technology rapproachment– More APIs, More stable APIsMore APIs, More stable APIs
v1.0 (mature- Graduation review) Q3 2008v1.0 (mature- Graduation review) Q3 2008– Ada 2005 support (if not already done)Ada 2005 support (if not already done)– DSDP enabledDSDP enabled– Eclipse 3.4 (Ganymede)Eclipse 3.4 (Ganymede)
Unit testing (CUTE, …)Unit testing (CUTE, …) Where Used reimplementionWhere Used reimplemention Ada 2005 supportAda 2005 support Refactoring (AST development)Refactoring (AST development) Cheat SheetsCheat Sheets Reformatter (in Java)Reformatter (in Java) Mouseover information improvementsMouseover information improvements Generic ARM lookupGeneric ARM lookup More Wizards (Builder, stub generation)More Wizards (Builder, stub generation) Code Coverage extension pointsCode Coverage extension points Ada83 supportAda83 support Code foldingCode folding Error correction suggestionError correction suggestion Automatic With insertionAutomatic With insertion With tree browserWith tree browser Call tree browserCall tree browser