SlideShare a Scribd company logo
Hibachi The  Ada Development Tools Project for Eclipse Tom GROSMAN,  Project Lead   [email_address]
Workshop Goals Understand Eclipse Discover Hibachi Grow the Hibachi  community
Workshop Overview Introduction Eclipse Hibachi Background Overview of Eclipse Hibachi projects goals  The Eclipse development process  The scope and area of application of Hibachi  Current Status  Initial release (Demo) Development resources in place  Future Direction  Development plan  Future Features Committer Presentations Expectations, Suggestions, Wishlist Open Discussion, Questions
What is Eclipse  ? Eclipse is an  open source   community  whose projects are focused on building an  open  development platform comprised of  extensible   frameworks , tools and runtimes for building, deploying and managing software across the lifecycle. A large and vibrant  ecosystem  of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the  Eclipse platform .   Eclipse is much more than a Java IDE !
What is Hibachi? Hibachi, an open source project under the  Eclipse   Tools  Project  is intended to Create a  standard ,  vendor   neutral  Ada development environment for  Eclipse  that will maintain the look and feel of the  CDT  and  JDT Provide a standard Ada environment with which third party tool developers can easily work, regardless of the choice of underlying compiler technology. Such tools would include, but are not limited to, modeling tools, editor tools, static and dynamic code analysis tools (ex coverage, profiling), refactoring tools, configuration management tools. 
Background Overview of Eclipse Eclipse Foundation Eclipse Platform Eclipse Community Eclipse Ecosystem Hibachi rationale and goals  The Eclipse development process  The scope and area of application of Hibachi
What is the Eclipse Foundation? The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects. The Foundation provides services to run the IT infrastructure, IP due diligence, mentor the open source projects during the Eclipse development process and provide marketing and business development support for the Eclipse community. The Eclipse Foundation does not actually develop the open source code. All of the open source software at Eclipse is developed by open source developers, called committers, which are volunteered or contributed by organizations and individuals. For more information about Eclipse and the Eclipse Foundation, visit www.eclipse.org
The Eclipse Platform Written in Java Portable  Runs on any architecture that has a J2SE VM running Freely downloadable from the web via eclipse.org Extensible via an extension point/plug-in mechanism implemented using robust, well-defined published APIs Extension (plugin) may be open source Extension may be proprietary Extension may be a combination Includes several plugins in basic configuration as delivered, such as JDT, a top-notch Java Development Toolkit as well as a Java compiler  Best-of-breed functionality available for all to use (example- CVS integration)
The Eclipse platform (cont) Releases are syncronized so the various platform components are compatible and available together Projects follow Eclipse development methodology (transparency, meritocracy, « code talks ») Projects are open source under Eclipse Public Licence (EPL) Uses standard bug tracking via Bugzilla Community is made up of users, testers, contributers and committers  All code is peer reviewed
Eclipse Open Source Over 60 projects Over 800 committers Eclipse is used for  Enterprise Development  Embedded and Device Development  Rich Client Platform  Application Frameworks  Application Lifecycle Management (ALM)  Language IDE …
Examples of Eclipse projects JDT (Java development) CDT (C/C++ development) Photran (Fortran) UML2 PDE (Plugin Development Environment) Subversive (Configuration Management) TPTP (Testing/Profiling Tools) DSDP (Embedded Development) …
RCP  - Rich Client Platform 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 just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the  Rich Client 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 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-in developer in this case.  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 application need only require two plug-ins,  org.eclipse.ui  and  org.eclipse.core.runtime , and their prerequisites.  However, rich client applications are free to use any API deemed necessary for their feature set, and can require any plug-ins above the bare minimum. Examples include the Help UI, and the Update Manager.
DSDP-  Device Software Development Platform The Device Software Development Platform (DSDP) was established as a top-level project to make the Eclipse platform more suitable for embedded development. DSDP is supported by a growing number of vendors to create a common open source framework and exemplary tools to enable better integration of Eclipse plugins from various sources with target devices, operating systems, and development tools. Initially, DSDP focuses on building infrastructure for Target Management, Device Debugging, Mobile Java, and Embedded GUI's.
The Eclipse Community Committers Devoted developers (at least 50%) Write access to code repository Nominated and elected by current committers Responsible for project architecture and direction Responsive to community needs A privelege based on participation
Contributors Able to contribute via Bugzilla New features Bug fixes Documentation Participate in newsgroup, mailing list Add to Hibachi Wiki, FAQs, How-To Guides Testers (writing or running tests) On path to becoming a project committer
Adopters Use services and extension points to work with their own “add-on” Influence Hibachi architecture and direction May also be committer or contributor
Users End Users May- not even be aware that they are using Eclipse Rebranding RCP, eRCP
The Eclipse Ecosystem Eclipse Foundation Eclipse Management Organization Eclipse Members Strategic (IBM, Intel, Motorola, WindRiver) Add-in Provider (AdaCore, DDC-I, EADS, LynuxWorks, Mentor Graphics, OC Systems,Thales, TimeSys) Associate  Eclipse Projects Adopter/Integrators Users
Eclipse Principles Open Source Rules of Engagement Quality Culture Collective Reputation Eclipse Ecosystem Three Communities Clear and Concise Freedom, Autonomy and Evolution Just Enough Process
The Three Laws of Eclipse (With a nod to Issac Asimov) A committer may not, through action or inaction, violate IP cleanliness   Clean Code .  Making sure that all incoming code is legally contributed. Approved Libraries .  Making sure that all third-party code included, or merely referenced, is cleared by Eclipse Legal through a contribution questionnaire. Paper'ed People  Making sure that all committers have committer agreements covering each of the committer's projects.
Three Eclipse Laws (cont) A committer may not, through action or inaction, disenfranchise contributors  Public Queue.  All bugs and tasks are tracked at the public eclipse.org bugzilla Available Tools.  All the source code and all the tools used to build a project are available for everyone to use. Transparent Elections.  Elections for new committers are open and public, with full records and justifications.
Three Eclipse Laws (cont) A committer may not, through action or inaction, surprise the membership  Open Plans.  Planning and status reports and meetings are open to all. Most projects use the wiki. Public Reviews.  At major events in a project lifecycle,  reviews  are held to inform the membership.  Prominent Announcements.  When starting a major new feature or effort that does not require a formal review, committers send an announcement alerting the members to potential future new cool stuff.
Development Process Mentors  Project Lifecycle Pre-Proposal  Proposal  Incubation  Mature  Top-Level  Archived  Reviews Creation Review  Graduation Review  Release Review  Promotion Review  Continuation Review  Termination Review  Membership Involvement  Grievance Handling
Why Eclipse, Why Hibachi ? Customer/Market demand Competition from other language IDEs Understanding Value Added Proposition Force multiplier Attract more third party integrators Simplify synchronizing updates Coopetition- A new paradigm in the Ada industry ?
Goals 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.
Hibachi  Opensource (EPL) Extensible Well documented API Based on existing Ada plugin technology  Participation of major active Ada players Participation of academia
Hibachi Participation  of open source Ada community Participation of industrial partners Creation Review- 17 September 2007 Project Approved by EMO 24 September 2007 Current phase- Incubation  Project mentors- Doug Schaefer (QNX/CDT Project Lead, Doug Gaff, WindRiver/DSDP Project Lead) First release Q4 2007
Hibachi Development Practices Transparent discussions, transparent decisions, transparent direction Test cases produced with code All code peer reviewed User Documentation produced with code Agile Development Nightly automated builds Nightly automated test suites Meritocracy based (Code talks!)
Releases Practices Agile development Frequent Milestones Reference platforms Windows Linux Solaris Additional platforms MacOS (MacAda project) Solaris x86 “ All in one” distribution Gnu Ada toolchain
Current Status Resources in place  Initial release description Hibachi Demo
Resources 7 Diverse Initial Committers AdaCore, Aonix, CohesionForce, DDC-I Initial code base (AonixADT) IP scrubbed Fully functional Support for GNAT and ObjectAda Project “provisioned” Home Page  Newsgroup Developer Mailing list Wiki pages set up Contributor/Adopter interest Praxis OCSystems Green Hills Software Institute for Software (Switzerland) GnuAda Group and MacAda groups
Initial Release Version 0.5 (incubation) Eclipse 3.3 (Europa) Windows, Linux, SPARC Solaris Available Q4 2007 Full AonixADT Code Base Initial GNAT and ObjectAda toolchain support
An Ada Eclipse Plugin Ada Navigator View Ada Editor Perspective   tabs Console   View Ada Configurations View Context Sensitive Menu
Completely Unreadable Slide (Features List) Perspectives Views (AdaNavigator, Ada Configurations, Disassembly,…) Builder Managed Standard Automatic MultiLanguage/MultiProject Wizards Toolchains Update Manager Language completion Structure highlighting Code assist Formatting (syntactic, semantic, indentation, comment toggling) Launcher Ada Configurations Navigator (file system) Outline (package exploreer Ada Navigator (Navigator + Outline) Searchable Help, Dynamiuc Help, Cheat Sheats Compare (local history, other files) CMS (CVS, Subversion, Clearcase, …) Search File (String matching) Ada (Semantic searching) Reference (Where used) Bookmarks Problems (navigation) Tasks Update management Debugger Task inspection (stack, locals, suspend/kill) Attach to running process Variable/expression/memory/register inspection and modification Breakpoints (conditional, disable, action on break) Multilanguage
Future Direction Committer presentations  Development plan Future Features
Committer Presentations How the committer expects to contribute to Hibachi, and use the Hibachi technology David Phillips,  CTO - CohesionForce Greg Gicca,  Director of Safety and Security Product Marketing - AdaCore
Future Releases v0.7 (incubation) Q1 2008 Open API for additional toolchains Additional toolchains (DDC-I, AdaCore GNAT) v0.9 (incubation) Q2 2008 CDT technology rapproachment More APIs, More stable APIs v1.0 (mature- Graduation review) Q3 2008 Ada 2005 support (if not already done) DSDP enabled Eclipse 3.4 (Ganymede)
Future features Unit testing (CUTE, …) Where Used reimplemention Ada 2005 support Refactoring (AST development) Cheat Sheets Reformatter (in Java) Mouseover information improvements Generic ARM lookup More Wizards (Builder, stub generation) Code Coverage extension points Ada83 support Code folding Error correction suggestion Automatic With insertion With tree browser Call tree browser
Discussion Expectations Suggestions  Wishlist Questions
Sources of information Project page (Wiki, FAQ, release plans, tutorials, docs, presentations…) http://www.eclipse.org/hibachi/ Newsgroup  news://news.eclipse.org/eclipse.tools.hibachi Developer mailing list https://dev.eclipse.org/mailman/listinfo/hibachi-dev Download page http://www.eclipse.org/cdt/downloads.php* Source Repository http://dev.eclipse.org/viewcvs/index.cgi/?root=Tools_Project* Bugzilla https://bugs.eclipse.org/bugs/

More Related Content

SIGAda Hibachi Workshop Presentation

  • 1. Hibachi The Ada Development Tools Project for Eclipse Tom GROSMAN, Project Lead [email_address]
  • 2. Workshop Goals Understand Eclipse Discover Hibachi Grow the Hibachi community
  • 3. Workshop Overview Introduction Eclipse Hibachi Background Overview of Eclipse Hibachi projects goals The Eclipse development process The scope and area of application of Hibachi Current Status Initial release (Demo) Development resources in place Future Direction Development plan Future Features Committer Presentations Expectations, Suggestions, Wishlist Open Discussion, Questions
  • 4. What is Eclipse ? Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks , tools and runtimes for building, deploying and managing software across the lifecycle. A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform . Eclipse is much more than a Java IDE !
  • 5. What is Hibachi? Hibachi, an open source project under the Eclipse Tools Project is intended to Create a standard , vendor neutral  Ada development environment for Eclipse that will maintain the look and feel of the CDT and JDT Provide a standard Ada environment with which third party tool developers can easily work, regardless of the choice of underlying compiler technology. Such tools would include, but are not limited to, modeling tools, editor tools, static and dynamic code analysis tools (ex coverage, profiling), refactoring tools, configuration management tools. 
  • 6. Background Overview of Eclipse Eclipse Foundation Eclipse Platform Eclipse Community Eclipse Ecosystem Hibachi rationale and goals The Eclipse development process The scope and area of application of Hibachi
  • 7. What is the Eclipse Foundation? The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects. The Foundation provides services to run the IT infrastructure, IP due diligence, mentor the open source projects during the Eclipse development process and provide marketing and business development support for the Eclipse community. The Eclipse Foundation does not actually develop the open source code. All of the open source software at Eclipse is developed by open source developers, called committers, which are volunteered or contributed by organizations and individuals. For more information about Eclipse and the Eclipse Foundation, visit www.eclipse.org
  • 8. The Eclipse Platform Written in Java Portable Runs on any architecture that has a J2SE VM running Freely downloadable from the web via eclipse.org Extensible via an extension point/plug-in mechanism implemented using robust, well-defined published APIs Extension (plugin) may be open source Extension may be proprietary Extension may be a combination Includes several plugins in basic configuration as delivered, such as JDT, a top-notch Java Development Toolkit as well as a Java compiler Best-of-breed functionality available for all to use (example- CVS integration)
  • 9. The Eclipse platform (cont) Releases are syncronized so the various platform components are compatible and available together Projects follow Eclipse development methodology (transparency, meritocracy, « code talks ») Projects are open source under Eclipse Public Licence (EPL) Uses standard bug tracking via Bugzilla Community is made up of users, testers, contributers and committers All code is peer reviewed
  • 10. Eclipse Open Source Over 60 projects Over 800 committers Eclipse is used for Enterprise Development Embedded and Device Development Rich Client Platform Application Frameworks Application Lifecycle Management (ALM) Language IDE …
  • 11. Examples of Eclipse projects JDT (Java development) CDT (C/C++ development) Photran (Fortran) UML2 PDE (Plugin Development Environment) Subversive (Configuration Management) TPTP (Testing/Profiling Tools) DSDP (Embedded Development) …
  • 12. RCP - Rich Client Platform 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 just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the Rich Client 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 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-in developer in this case. 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 application need only require two plug-ins, org.eclipse.ui and org.eclipse.core.runtime , and their prerequisites. However, rich client applications are free to use any API deemed necessary for their feature set, and can require any plug-ins above the bare minimum. Examples include the Help UI, and the Update Manager.
  • 13. DSDP- Device Software Development Platform The Device Software Development Platform (DSDP) was established as a top-level project to make the Eclipse platform more suitable for embedded development. DSDP is supported by a growing number of vendors to create a common open source framework and exemplary tools to enable better integration of Eclipse plugins from various sources with target devices, operating systems, and development tools. Initially, DSDP focuses on building infrastructure for Target Management, Device Debugging, Mobile Java, and Embedded GUI's.
  • 14. The Eclipse Community Committers Devoted developers (at least 50%) Write access to code repository Nominated and elected by current committers Responsible for project architecture and direction Responsive to community needs A privelege based on participation
  • 15. Contributors Able to contribute via Bugzilla New features Bug fixes Documentation Participate in newsgroup, mailing list Add to Hibachi Wiki, FAQs, How-To Guides Testers (writing or running tests) On path to becoming a project committer
  • 16. Adopters Use services and extension points to work with their own “add-on” Influence Hibachi architecture and direction May also be committer or contributor
  • 17. Users End Users May- not even be aware that they are using Eclipse Rebranding RCP, eRCP
  • 18. The Eclipse Ecosystem Eclipse Foundation Eclipse Management Organization Eclipse Members Strategic (IBM, Intel, Motorola, WindRiver) Add-in Provider (AdaCore, DDC-I, EADS, LynuxWorks, Mentor Graphics, OC Systems,Thales, TimeSys) Associate Eclipse Projects Adopter/Integrators Users
  • 19. Eclipse Principles Open Source Rules of Engagement Quality Culture Collective Reputation Eclipse Ecosystem Three Communities Clear and Concise Freedom, Autonomy and Evolution Just Enough Process
  • 20. The Three Laws of Eclipse (With a nod to Issac Asimov) A committer may not, through action or inaction, violate IP cleanliness Clean Code . Making sure that all incoming code is legally contributed. Approved Libraries . Making sure that all third-party code included, or merely referenced, is cleared by Eclipse Legal through a contribution questionnaire. Paper'ed People Making sure that all committers have committer agreements covering each of the committer's projects.
  • 21. Three Eclipse Laws (cont) A committer may not, through action or inaction, disenfranchise contributors Public Queue. All bugs and tasks are tracked at the public eclipse.org bugzilla Available Tools. All the source code and all the tools used to build a project are available for everyone to use. Transparent Elections. Elections for new committers are open and public, with full records and justifications.
  • 22. Three Eclipse Laws (cont) A committer may not, through action or inaction, surprise the membership Open Plans. Planning and status reports and meetings are open to all. Most projects use the wiki. Public Reviews. At major events in a project lifecycle, reviews are held to inform the membership. Prominent Announcements. When starting a major new feature or effort that does not require a formal review, committers send an announcement alerting the members to potential future new cool stuff.
  • 23. Development Process Mentors Project Lifecycle Pre-Proposal Proposal Incubation Mature Top-Level Archived Reviews Creation Review Graduation Review Release Review Promotion Review Continuation Review Termination Review Membership Involvement Grievance Handling
  • 24. Why Eclipse, Why Hibachi ? Customer/Market demand Competition from other language IDEs Understanding Value Added Proposition Force multiplier Attract more third party integrators Simplify synchronizing updates Coopetition- A new paradigm in the Ada industry ?
  • 25. Goals 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.
  • 26. Hibachi Opensource (EPL) Extensible Well documented API Based on existing Ada plugin technology Participation of major active Ada players Participation of academia
  • 27. Hibachi Participation of open source Ada community Participation of industrial partners Creation Review- 17 September 2007 Project Approved by EMO 24 September 2007 Current phase- Incubation Project mentors- Doug Schaefer (QNX/CDT Project Lead, Doug Gaff, WindRiver/DSDP Project Lead) First release Q4 2007
  • 28. Hibachi Development Practices Transparent discussions, transparent decisions, transparent direction Test cases produced with code All code peer reviewed User Documentation produced with code Agile Development Nightly automated builds Nightly automated test suites Meritocracy based (Code talks!)
  • 29. Releases Practices Agile development Frequent Milestones Reference platforms Windows Linux Solaris Additional platforms MacOS (MacAda project) Solaris x86 “ All in one” distribution Gnu Ada toolchain
  • 30. Current Status Resources in place Initial release description Hibachi Demo
  • 31. Resources 7 Diverse Initial Committers AdaCore, Aonix, CohesionForce, DDC-I Initial code base (AonixADT) IP scrubbed Fully functional Support for GNAT and ObjectAda Project “provisioned” Home Page Newsgroup Developer Mailing list Wiki pages set up Contributor/Adopter interest Praxis OCSystems Green Hills Software Institute for Software (Switzerland) GnuAda Group and MacAda groups
  • 32. Initial Release Version 0.5 (incubation) Eclipse 3.3 (Europa) Windows, Linux, SPARC Solaris Available Q4 2007 Full AonixADT Code Base Initial GNAT and ObjectAda toolchain support
  • 33. An Ada Eclipse Plugin Ada Navigator View Ada Editor Perspective tabs Console View Ada Configurations View Context Sensitive Menu
  • 34. Completely Unreadable Slide (Features List) Perspectives Views (AdaNavigator, Ada Configurations, Disassembly,…) Builder Managed Standard Automatic MultiLanguage/MultiProject Wizards Toolchains Update Manager Language completion Structure highlighting Code assist Formatting (syntactic, semantic, indentation, comment toggling) Launcher Ada Configurations Navigator (file system) Outline (package exploreer Ada Navigator (Navigator + Outline) Searchable Help, Dynamiuc Help, Cheat Sheats Compare (local history, other files) CMS (CVS, Subversion, Clearcase, …) Search File (String matching) Ada (Semantic searching) Reference (Where used) Bookmarks Problems (navigation) Tasks Update management Debugger Task inspection (stack, locals, suspend/kill) Attach to running process Variable/expression/memory/register inspection and modification Breakpoints (conditional, disable, action on break) Multilanguage
  • 35. Future Direction Committer presentations Development plan Future Features
  • 36. Committer Presentations How the committer expects to contribute to Hibachi, and use the Hibachi technology David Phillips, CTO - CohesionForce Greg Gicca, Director of Safety and Security Product Marketing - AdaCore
  • 37. Future Releases v0.7 (incubation) Q1 2008 Open API for additional toolchains Additional toolchains (DDC-I, AdaCore GNAT) v0.9 (incubation) Q2 2008 CDT technology rapproachment More APIs, More stable APIs v1.0 (mature- Graduation review) Q3 2008 Ada 2005 support (if not already done) DSDP enabled Eclipse 3.4 (Ganymede)
  • 38. Future features Unit testing (CUTE, …) Where Used reimplemention Ada 2005 support Refactoring (AST development) Cheat Sheets Reformatter (in Java) Mouseover information improvements Generic ARM lookup More Wizards (Builder, stub generation) Code Coverage extension points Ada83 support Code folding Error correction suggestion Automatic With insertion With tree browser Call tree browser
  • 40. Sources of information Project page (Wiki, FAQ, release plans, tutorials, docs, presentations…) http://www.eclipse.org/hibachi/ Newsgroup news://news.eclipse.org/eclipse.tools.hibachi Developer mailing list https://dev.eclipse.org/mailman/listinfo/hibachi-dev Download page http://www.eclipse.org/cdt/downloads.php* Source Repository http://dev.eclipse.org/viewcvs/index.cgi/?root=Tools_Project* Bugzilla https://bugs.eclipse.org/bugs/