
<!DOCTYPE html>
<html lang="en">
<head>
  
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>The Eclipse Dash Project | The Eclipse Foundation</title>
<meta property="og:title" content="The Eclipse Dash Project | The Eclipse Foundation" />
<meta name="twitter:title" content="The Eclipse Dash Project | The Eclipse Foundation" />

<meta name="description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
<meta property="og:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
<meta name="twitter:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate …">
<meta name="author" content="Christopher Guindon"/>
<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@ECDTools" />
<meta name="twitter:creator" content="@ECDTools" />
<meta property="og:url" content="https://www.eclipse.org/dash/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">


<meta name="generator" content="Hugo 0.81.0" />
<link rel="canonical" href="https://www.eclipse.org/dash/" />

<link rel="alternate" href="/dash/index.xml" type="application/rss+xml" title="">


<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
  
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
  
<script>
	
		var tableClasses = "table";
	
</script>
  
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>

  
</head>
<body>
  

<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

<a class="sr-only" href="#content">Skip to main content</a>
<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
  

<div class="clearfix toolbar-container-wrapper">
  <div class="container">
    <div class="text-right toolbar-row row hidden-print">
      <div class="col-md-24 row-toolbar-col">
        <ul class="list-inline">
          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
          
        </ul>
      </div>
    </div>
  </div>
</div>
<div class="navbar-wrapper">
  <div class="container">
    <div class="row" id="header-row">
      <div class="col-sm-5 col-md-4" id="header-left">
        <div class="wrapper-logo-default">

            

            
            
            

            
        
            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
            </a>
            

        </div>
      </div>
      
      
        
      
      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
        
        
        
        
        
        
        
        
          <div class="float-right hidden-xs" id="btn-call-for-action">
            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
          </div>
        
        <div class="navbar float-sm-right yamm" id="main-menu">
          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
            <ul class="nav navbar-nav">
              



<li>
  <a class="" href="/dash/projects">
  
  Projects
  </a>
  
</li>


<li>
  <a class="" href="/dash/org/workinggroups">
  
  Working Groups
  </a>
  
</li>


<li>
  <a class="" href="/dash/membership">
  
  Members
  </a>
  
</li>


<li class="dropdown eclipse-more hidden-xs">
  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Community</strong></p>
            </li>
            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
            <li><a href="http://events.eclipse.org">Events</a></li>
            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Eclipse IDE</strong></p>
            </li>
            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
            <li><a href="https://help.eclipse.org">Documentation</a></li>
            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
          </ul>
        </div>
      </div>
    </li>
  </ul>
</li>




<li class="dropdown eclipse-more hidden-xs">
  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <div class="col-sm-24">
            <p><strong>Search</strong></p>
            <div class="row">
              <div class="col-md-24">
                <div id="custom-search-form" class="reset-box-sizing">
                  <script>
                    (function() {
                      var cx = '011805775785170369411:p3ec0igo0qq';
                      var gcse = document.createElement('script');
                      gcse.type = 'text/javascript';
                      gcse.async = true;
                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
                      '//cse.google.com/cse.js?cx=' + cx;
                      var s = document.getElementsByTagName('script')[0];
                      s.parentNode.insertBefore(gcse, s);
                    })();
                  </script>
                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </li>
  </ul>
</li>

            </ul>
          </div>
          
<div class="navbar-header">
  
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
  
  <div class="wrapper-logo-mobile">
      
      
      

        

      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
      </a>
    
  </div>
</div>

        </div>
      </div>
    </div>
  </div>
</div>
  


</header>

  
<section class="default-breadcrumbs hidden-print" id="breadcrumb">
  <div class="container">
    <h3 class="sr-only">Breadcrumb</h3>
    <div class="row">
      <div class="col-sm-24">
        <ol class="breadcrumb">
          
          
          <li class="active">
            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
          </li>
        
        </ol>
        
      </div>
    </div>
  </div>
</section>

  
  






 
 
<main>
  <div class="container">
    
      <div class="row">
        <div class="col-md-18 padding-bottom-30">
    

    
  
  <h2 id="what-is-the-eclipse-dash-project">What is the Eclipse Dash Project?</h2>
<div id="rightcolumn" class="float-right">
  <div class="sideitem">
    <h6>Incubation</h6>
    <div style="text-align: center">
      <a href="//eclipse.org/projects/what-is-incubation.php"><img
        src="//eclipse.org/images/egg-incubation.png" alt="Incubation" class="padding-left-30 padding-right-"/></a>
    </div>
  </div>
</div>
<p>Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.</p>
<h2 id="components">Components</h2>
<h3 id="eclipse-project-handbook">Eclipse Project Handbook</h3>
<p>This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.</p>
<ul>
<li>View <a href="/projects/handbook">the handbook</a>;</li>
<li>Clone <a href="https://git.eclipse.org/r/#/admin/projects/dash/org.eclipse.dash.handbook">the repository</a> (via Gerrit); or</li>
<li>Report <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Dash&amp;component=Handbook">an issue</a>.</li>
</ul>
<h3 id="gently-dependency-scanner">Gently Dependency Scanner</h3>
<p><strong>Coming soon!</strong></p>
<p>This is a collection of tools for rooting through content to determine dependencies, legal documentation conformance, etc.</p>
<h2 id="the-rest-of-the-story">The Rest of The Story</h2>
<p>See our <a href="http://wiki.eclipse.org/Dash_Project">wiki pages</a> for discussions, directions, plans, accomplishments, and all the rest.</p>
 
  
  

  

     
      
      </div>
        <div class="col-md-6  padding-bottom-30">
          
            


  
  

  
  
  

  
    
    
      
        <aside id="main-sidebar" class="subpage-sidebar">
        <ul id="leftnav" class="ul-left-nav fa-ul hidden-print">
        <li class="separator">
          <a class="separator" href="/dash/home">Eclipse Dash</a>
        </li>
        
          
            <li>
              <i class="fa fa-caret-right fa-fw"></i>
              <a href="https://projects.eclipse.org/projects/technology.dash" target="_self">About This Project</a>
            </li>
          
        
          
            <li>
              <i class="fa fa-caret-right fa-fw"></i>
              <a href="https://wiki.eclipse.org/Dash_Project" target="_self">Wiki</a>
            </li>
          
        
        </ul>
        </aside>
      
  

          
        </div>
      </div>
    
  </div>
</main>
  
  
  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
    <div class="container">
      <div class="row">
        <div class="col-sm-24 featured-container">
        </div>
      </div>
    </div>
  </div>

  
<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer id="solstice-footer" class="">
  <div class="container">
    <div class="row">
      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
        <h2 class="section-title">Eclipse Foundation</h2>
        <ul class="nav">
          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
          <li><a href="https://www.eclipse.org/membership">Members</a></li>
          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
        </ul>
      </section>
      <section class="col-sm-6 hidden-print" id="footer-legal">
        <h2 class="section-title">Legal</h2>
        <ul class="nav">
          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
        </ul>
      </section>
      <section class="col-sm-6 hidden-print" id="footer-useful-links">
        <h2 class="section-title">Useful Links</h2>
        <ul class="nav">
          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
          <li><a href="//help.eclipse.org/">Documentation</a></li>
          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
        </ul>
      </section>
      <section class="col-sm-6 hidden-print" id="footer-other">
        <h2 class="section-title">Other</h2>
        <ul class="nav">
          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
          <li><a href="https://status.eclipse.org">Service Status</a></li>
        </ul>
      </section>
      <div class="col-sm-24 margin-top-20">
        <div class="row">
          <div id="copyright" class="col-md-16">
            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
          </div>
          
<div class="col-md-8 social-media">
  <ul class="list-inline">
    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
    </a></li>
  </ul>
</div>
        </div>
      </div>
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>

<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>


    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>





<script>
(function($, document) {
  
  
  
    $("#featured-story").eclipseFdnApi({
      type: "featuredStory"
    });
  
  
    $("#featured-footer").eclipseFdnApi({
      type: "featuredFooter"
    });
  
})(jQuery, document);
</script>

  
</body>
</html>

