<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<meta content="text/html; charset=UTF-8" http-equiv="content-type">
		<title>2019 Annual Eclipse Community Report</title>
	</head>
	<body lang="EN-US">
		<div id="maincontent">
            <div id="midcolumn">
                <h1>2020 Annual Eclipse Foundation Community Report</h1>

<p>Welcome to the ninth annual Eclipse Foundation Community Report. Comments and feedback on the style and content would be appreciated at emo@eclipse.org.</p>

<p>Except where otherwise noted this report covers the period April 1, 2019 to March 31, 2020.</p>

<p><strong>TABLE OF CONTENTS</strong></p>

<ul>
  <li><a href="#a_1">Our Executive Director&rsquo;s Summary: <br />
  An Incredible Year, and The Road Ahead</a></li>
  <li><a href="#a_2">Who We Are</a></li>
  <li><a href="#a_3">Our 2020 Strategy</a></li>
  <li><a href="#a_4">Our Board&rsquo;s Key Decisions</a></li>
  <li><a href="#a_5">Our Financials</a></li>
  <li><a href="#a_6">Our Membership</a></li>
  <li><a href="#a_7">Our Working Groups</a></li>
  <li><a href="#a_8">Our Engagement with Our Community through Conferences &amp; Events</a></li>
  <li><a href="#a_9">Our Marketing and Brand Management</a></li>
  <li><a href="#a_10">Intellectual Property Management</a></li>
  <li><a href="#a_11">Simultaneous Release</a></li>
  <li><a href="#a_12">Committers and Projects</a></li>
  <li><a href="#a_13">Our Engagement in Research</a></li>
  <li><a href="#a_14">Our Infrastructure and Community Support</a></li>
  <li><a href="#a_15">Previous Years' Reports</a></li>
</ul>

<h2 id="a_1">Our Executive Director&rsquo;s Summary: <br />
An Incredible Year, and The Road Ahead</h2>

<p>Welcome to the 2020 Eclipse Foundation Community Report - I hope you find it insightful!&nbsp;</p>

<p>I&rsquo;ve had the pleasure of overseeing the production of this annual Community Report since it was first introduced in 2012. The Foundation has seen many, many changes over the years, and the past 12 months are certainly no exception. Through this report, our staff highlights many of the accomplishments of our community, and that list is significant!</p>

<p>Many of our major projects have seen important milestones, including the Simultaneous Release with the Eclipse IDE and packages continuing to evolve with quarterly releases, Jakarta EE 8 being released in September 2019, and new releases in many of our IoT projects. In total, 485 project releases were done over the past 12 months. As of March 2020, the Foundation has stewardship of over 240 million lines of code in the Eclipse repositories. The Eclipse Foundation codebase is conservatively valued at over $13 billion using the industry standard COCOMO model.</p>

<p>On the &ldquo;what&rsquo;s new&rdquo; front, we have seen a plethora of new projects, members, and working groups - all of which mean the Foundation continues to evolve as a dynamic, diverse community. For example, the Foundation stood up five new working groups in Q1-2020 alone, each of which represents a significant new initiative by members, and collectively, represents a major push by the Foundation into new and exciting new technical areas. To highlight just a few of these new working groups and their areas of interest:</p>

<ul>
  <li><a href="https://tangle.ee/">Tangle EE</a> working group, focused on distributed ledger technology;&nbsp;</li>
  <li><a href="https://ecdtools.eclipse.org/">Eclipse Cloud Development Tools</a> working group, focused on providing open source implementations of standards, services and frameworks that enable developing for and in the cloud; and&nbsp;</li>
  <li><a href="https://sparkplug.eclipse.org/">Eclipse Sparkplug</a>, focused on establishing an open source software<strong> </strong>specification that provides MQTT clients the framework to seamlessly integrate data from their applications, sensors, devices, and gateways within the MQTT Infrastructure.</li>
</ul>

<p>Details regarding the activities of all our working groups are described in the working group section of this report.&nbsp;&nbsp;</p>

<p>Also, in the &ldquo;new&rdquo; category, Eclipse Foundation is pleased to welcome 29 (and counting) new members who joined in 2020 as part of their participation in the OpenHardware Group, a new open source not-for-profit organization dedicated to fostering collaboration among global hardware and software designers in the development of open source cores, related IP, tools, and software. Through this &ldquo;dual membership&rdquo; model, OpenHardware is leveraging the Eclipse Foundation&rsquo;s governance framework and project infrastructure, which is yet another way Eclipse is engaging with the ever-evolving open source community.&nbsp;&nbsp;</p>

<p>Of particular importance, the Foundation continues to make a major investment in marketing and messaging on behalf of, and along with, its members and working groups. A continued focus on driving awareness of our technologies through press releases, surveys, white papers, and more is increasing the awareness of our many initiatives.&nbsp;&nbsp;</p>

<p>Like all businesses, the Foundation has been impacted directly by the Covid-19 pandemic.&nbsp; While this pandemic began in Q1 of 2020, and so is not reflected directly in this report in any significant way, the pandemic will pervade everything the Foundation does in the upcoming year. At this point, we have seen the activity in most of our community continue to thrive. But even though advancing our technology is exciting, we know the health, safety, and well being of our community members, and their families, is what matters most. To that end, we have taken strides to protect our staff through the pandemic, and will continue to do so for as long as it takes. We are grateful for the understanding of our community as we do so.&nbsp;</p>

<p>To enable us to continue to evolve, I am very pleased to report the Foundation also made major changes to our overall governance structure. Of note, the Board and our Members approved the most significant changes to our Bylaws since our inception. These changes were driven by a desire to have the Bylaws reflect the Foundation&rsquo;s broad and welcoming approach to supporting its vision of being the leading community for individuals and organizations to collaborate on commercially-friendly open source. The full list of changes is on our website, but I wish to highlight that our Purpose is now to &ldquo;<em>provide vendor-neutral, open development of open source technologies, specifications, platforms, runtimes, frameworks, and tools.&rdquo;</em> This change makes clear that Eclipse is a &ldquo;big tent&rdquo; of open source technologies, and we continue to engage with both our existing and new projects.</p>

<p>And last but definitely not least, I&rsquo;m pleased to report that the Board took the dramatic step of adopting and approving our new International Strategy. While the details of this strategy can be found in our recent announcement, I&rsquo;m pleased to highlight that at the core of this strategy is the news that we are redomiciling the Foundation as a European-based organization, based in Brussels. Eclipse Foundation AISBL will be uniquely positioned to leverage our international growth to foster global industry collaboration on strategic open source projects in various technology domains, such as the cloud, edge computing, artificial intelligence, connected vehicles, telecommunications, and the Internet of Things.&nbsp;</p>

<p>As always, we welcome your comments and feedback. Let us know your thoughts at <a href="mailto:emo@eclipse.org">emo@eclipse.org</a> or on Twitter @EclipseFdn.&nbsp; </p>

<h2 id="a_2">Who We Are</h2>

<p>The Eclipse Foundation&rsquo;s mission is summarized as follows:</p>

<p><em>The Eclipse Foundation&rsquo;s purpose is to advance our open source software projects and to cultivate their communities and business ecosystems.&nbsp;</em></p>

<p>The dedication to this purpose makes the Eclipse community a unique open source community. That is, Eclipse&rsquo;s ongoing success comes from this unique combination of a consistent interest in building open source code and community, and a sustained commitment to creating a commercially successful ecosystem around that code.&nbsp;</p>

<p>In short, our vision for the Eclipse community is this:</p>

<p><em>To be the leading community for individuals and organizations to collaborate on commercially-friendly open source.</em></p>

<h2 id="a_3">Our 2020 Strategy</h2>

<p>The following are the strategic goals of the Eclipse Foundation for 2020, as established by the Board of Directors. Overall, these goals represent a continued drive towards meeting our vision for the Eclipse community.&nbsp;&nbsp;</p>

<ol>
  <li style="list-style-type:decimal">
  <p><strong>Communicate the Eclipse Foundation&rsquo;s differentiated value proposition</strong>. The Foundation has gone through a major transition over the years, from its initial days focused strictly on the original Eclipse project, RCP, and tooling, to the 375+ projects under our stewardship today.&nbsp; Similarly, the value proposition of bringing projects to Eclipse, and the ongoing evolution of those projects under the Foundation&rsquo;s stewardship, has evolved dramatically over time.&nbsp; For example, we continue to offer strong intellectual property management services for all projects that are highly beneficial to both the producers and consumers of the technology, but how we implement our IP services has changed dramatically.&nbsp; We also provide a much richer set of services around marketing and communications, telling the stories of our projects and our members in a way that is of great value to both.&nbsp; Overall, the Foundation&rsquo;s clear differentiator is our focus on commercial-friendly open source, and the fact that our antitrust, IP policies, and governance structure all drive benefit to our members.&nbsp; The Board&rsquo;s mandate is to highlight and promote this differentiator to drive our continued growth and evolution.&nbsp;</p>
  </li>
  <li style="list-style-type:decimal">
  <p><strong>Promote working groups as an effective model for open governance, collaboration, marketing, and industry adoption</strong>.&nbsp; The Eclipse Working Group model, based on the Eclipse Foundation Working Group Process, has evolved into an effective, light-weight governance structure that enables member organizations to come together to drive shared commercial interests in Eclipse projects and promotion of Eclipse technologies and open specifications.&nbsp; The Board has established the goal of promoting this model as a means to drive membership and project recruitment.&nbsp;</p>
  </li>
  <li style="list-style-type:decimal">
  <p><strong>Attract and foster new projects and working groups focused on emerging technologies</strong>.&nbsp; Attracting new projects has been one of the continuous objectives of the Foundation for a number of years.&nbsp; The Eclipse Foundation staff and leading members of our community seek to attract and cultivate projects and members in emerging technology domains. And as noted in the previous goal, we will use the working group model as a vehicle to manage the successful launch of strategic, high profile projects with broad industry interest.&nbsp; The recent decision to transition the Foundation to be a European-based organization will further enable us to differentiate our value proposition in this regard.&nbsp;</p>
  </li>
  <li style="list-style-type:decimal">
  <p><strong>Cultivate the growth of our existing projects, communities, working groups, and ecosystems</strong>. The creation of a large community of commercial and open source organizations that rely on and/or complement Eclipse technology continues to be a major factor in the success of Eclipse, and a key differentiator in the marketplace. Each time an Eclipse technology is used in the development of a product, service, or application, the entire Eclipse community is strengthened. Our goal in 2020 is to continue to focus our attention on the success of our working groups and on our Eclipse projects that focus on particular industry segments such as cloud native Java, IoT, edge, distributed ledger, web development, mobile, automotive, and science, and to continue to support and assist our broad set of Eclipse projects in the growth and vibrancy of their communities. We will also continue to leverage our Eclipse Foundation Specification Process (EFSP), which is a key differentiator in the open source marketplace. Based on the success of Jakarta EE&rsquo;s use of the EFSP, we are seeing new working groups such as Sparkplug, AsciiDoc, and MicroProfile all adopting the EFSP as a means to drive broad industry adoption.&nbsp;&nbsp;</p>
  </li>
  <li style="list-style-type:decimal">
  <p><strong>Continuously increase value for all its membership classes</strong>.&nbsp; The Eclipse Foundation serves many members whose primary interest is leveraging Eclipse technologies in proprietary offerings such as products and services. The Eclipse Foundation continues to focus its energies to ensure that commercial opportunity exists within the Eclipse ecosystem. As a specific initiative, the Foundation will continue to invest in new ways to engage with the broader ecosystem for our projects. Building off the success of JakartaOne Livestream events held over the past 12 months, our objective is to enable working groups and their communities to host virtual events. <br />
  <br />
  Committers are also members of the Eclipse Foundation and are in many ways the backbone of our organization. Over the past year, improvements to the IP process, updates to the Eclipse Development Process (EDP), and other measures, have been taken to make it simpler for committers to fulfill their responsibilities in stewardship of our codebase.&nbsp; In the coming year, we will begin hosting a new European-based GitLab forge as a means to provide the best tools available for our projects.&nbsp;</p>
  </li>
  <li style="list-style-type:decimal">
  <p><strong>Increase and diversify our membership, contributors, and revenue sources</strong>.&nbsp; Aligned with the five strategic goals listed above is an explicit goal to increase and diversify our revenue, particularly by growing membership and working groups.&nbsp; Specifically, the goal is to both increase the number of new members as well as to increase the revenues from existing members by demonstrating to members the value to them of increasing their level of membership and/or having them participate in additional working groups. To support the value proposition, we are introducing an Adopters program, intended to make it simpler for adopters of Eclipse technologies to indicate their support.&nbsp; We will also be making changes to the Eclipse IDE and other projects to make it easier for those who wish to contribute financially to the long term health of these projects.&nbsp; And we are continuing to streamline our processes to make it simpler for developers to engage with our projects, all in the interest of diversification and creating a healthy Eclipse ecosystem.&nbsp;&nbsp;</p>
  </li>
</ol>

<h2 id="a_4">Our Board&rsquo;s Key Decisions&nbsp;</h2>

<p>Over the past year, the Board has made a number of strategic decisions that will impact how Eclipse evolves in the future. A brief summary of these is listed below. More details are in the <a href="http://www.eclipse.org/org/foundation/minutes.php#board">minutes of the Board</a>, found on our website.</p>

<ul>
  <li><em>Approval of the Foundation&rsquo;s International Strategy</em>. In March 2020, building off of the Foundation&rsquo;s existing presence as the de facto largest open source organization in Europe, and to better position the Foundation as the leading international open source Foundation, the Board took the decision to approve the establishment of non-profit open source organizations based in Belgium and Canada under the name &ldquo;Eclipse Foundation.&rdquo; The details of this decision are described here: eclipse.org/europe&nbsp;&nbsp;</li>
  <li><em>Updates to the Eclipse Bylaws. </em>The Board introduced changes to the <a href="https://www.eclipse.org/org/documents/eclipse_foundation-bylaws.pdf">Eclipse Bylaws</a> for the first time in many years, and these were subsequently approved by the Membership At-Large and came into effect on January 1, 2020. The Bylaws had remained largely unchanged from the Foundation&rsquo;s establishment in 2004, when the primary focus was on the Eclipse IDE and related projects. The changes made in 2019 better reflect the fact the Foundation is now home to more than 300 Eclipse projects, is more open to using licenses other than just the Eclipse Public License, and more generally positions the Foundation to serve as a welcoming, well-governed open source organization for the future. Specific changes include an update of the Purpose of the Foundation, changes in the Board and membership-at-large rights and responsibilities, and modernization of many of the governance processes.&nbsp;&nbsp;&nbsp;</li>
  <li><em>Updates to the IP Policy</em>. The Board took the decision to update the Foundation&rsquo;s <a href="https://www.eclipse.org/org/documents/Eclipse_IP_Policy.pdf">IP Policy</a>. These changes reduced the effort required by committers and staff in reviewing the third party dependencies used by our projects, by focusing our efforts on license compliance. Overall, these updates reflect the much broader number of projects, and their intellectual property requirements, and also align with the changes made to the Eclipse Bylaws.&nbsp;&nbsp;</li>
  <li><em>Updates to the Working Group Process. </em>The Foundation introduced working groups many years ago as a means to enable open collaboration among member companies on initiatives that go beyond projects, including joint marketing, creating open specifications, branding programs, etc. The Working Group Process document is similar to the Eclipse Development Process in that it defines the Foundation&rsquo;s governance process for working groups. The Board took the decision to update the <a href="https://www.eclipse.org/org/workinggroups/process.php">Working Group Process</a> to Version 2.0 to more clearly define the steps involved in creating and operating a working group, as well as to clarify the respective roles and responsibilities of those involved.&nbsp;&nbsp;</li>
  <li><em>Updates to the Eclipse Code of Conduct</em>. The Board updated the Eclipse <a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Community Code of Conduct</a>, based on changes introduced in the open source community more generally.</li>
  <li><em>Creation of Eclipse Foundation Affiliates Membership Guidelines</em>. The Board introduced the <a href="https://www.eclipse.org/org/documents/eclipse_affiliates_membership_guidelines.pdf">Eclipse Foundation Affiliates Membership Guidelines</a> as a supporting document to the Eclipse Bylaws, and as a means to make clearer the rights and benefits afforded to affiliated organizations who are each members of the Foundation.</li>
  <li><em>Decision to have all Eclipse specification projects use EFSP</em>. The Foundation introduced the <a href="https://www.eclipse.org/projects/efsp/">Eclipse Foundation Specification Process</a> (EFSP) in 2018, and a number of Eclipse projects that generate open specifications have already adopted the EFSP. As a next step in ensuring the adoption of the EFSP, the Board took the decision to ensure that, as soon as is practicable, all specification projects at Eclipse adopt the EFSP.</li>
  <li><em>Updates to the Eclipse Vulnerability Reporting Policy</em>. The Board updated the <a href="https://www.eclipse.org/security/policy.php">Eclipse Vulnerability Reporting Policy</a>, renaming it from its previous name of &ldquo;Eclipse Security Policy.&rdquo;&nbsp;&nbsp;&nbsp;&nbsp;</li>
  <li><em>Increase to the Executive Director&rsquo;s discretion on project licensing.</em> The Eclipse Foundation has its own license - the Eclipse Public License - that is sometimes referred to as a &ldquo;weak copyleft&rdquo; license. The EPL was refreshed in 2017. Under our Bylaws, use of any license other than the EPL requires Board approval. The Board expanded the Executive Director&rsquo;s existing authority regarding licensing by delegating to the Executive Director&nbsp; the ability to approve projects to now include the Apache License v2.0, the BSD 3 Clause license, and the MIT license.</li>
</ul>

<h2 id="a_5">Our Financials</h2>

<p>The Eclipse Foundation&rsquo;s fiscal year end is December 31. Our auditors are the firm Deloitte &amp; Touche, LLP. The Eclipse Foundation is incorporated in the State of Delaware, USA as a 501(c)6 not-for-profit. Our headquarters are located in Ottawa, Canada. The Eclipse Foundation also has a wholly-owned German subsidiary, Eclipse Foundation Europe GmbH. The Board approved the 2019 audited financial statements at its March 24, 2020 Board meeting.&nbsp;</p>

<p>In summary, the organization continues to be on a solid financial footing, membership renewals remained strong, working group revenue exceeded targets while website advertising and donations declined compared to 2018. The financial impact of strategic membership is always significant to the Foundation. We were pleased to have the IOTA Foundation, Huawei, and Konduit KK all join as strategic members in 2019. Both Payara and Tomitribe stepped back from Strategic membership in 2019, as the requirement for Strategic members of Jakarta working group to be Strategic members of the Foundation were relaxed by the Jakarta EE Steering Committee in 2018.</p>

<p>Working group revenue growth grew in 2019, notably with the introduction of participation fees for Strategic members of Jakarta EE. Of note, the Strategic members of the Jakarta EE working group each committed to a minimum of three (3) years of funding to the working group. This is a first for working groups at Eclipse, and provides a funding model that enables the working group, and the Foundation in support of it, to make a significant, sustained investment in the working group&rsquo;s objectives. This funding model has already been adopted in Q1 2020 by the Eclipse Cloud Development Tools working group and the Eclipse Sparkplug Working Group.&nbsp;</p>

<p>Looking ahead to 2020, the Board approved a balanced budget in December 2019, forecasting $6.9M of expenses on total revenue of $6.9M. The table below provides a summary of the Foundation&rsquo;s net income over the past five years. Of course, the Covid-19 global pandemic, which began mid-way through Q1 2020, is impacting all businesses, including the Foundation. At the time of writing this report at the end of March, it is uncertain what the specifics of the impact will be on the Foundation&rsquo;s revenues and operations. Management will provide updates on any impacts both to the Board at its regular meetings, as well as to our membership at-large through our monthly member newsletters and member meetings.</p>

<p><strong>Eclipse Foundation Income and Expenses, by Year</strong></p>


<table class="table table-stripped">
  <thead>
    <tr>
      <th>
      <p>In US $ millions</p>
      </th>
      <th>
      <p>2016</p>
      </th>
      <th>
      <p>2017</p>
      </th>
      <th>
      <p>2018</p>
      </th>
      <th>
      <p>2019</p>
      </th>
      <th>
      <p>2020 Budget</p>
      </th>
      <th>&nbsp;</th>
    </tr>
  </thead>
  <tbody>
    
    <tr>
      <td>
      <p>Revenue</p>
      </td>
      <td>
      <p>5.4</p>
      </td>
      <td>
      <p>5.6</p>
      </td>
      <td>
      <p>5.9</p>
      </td>
      <td>
      <p>5.7</p>
      </td>
      <td>
      <p>6.9</p>
      </td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>
      <p>Expenses</p>
      </td>
      <td>
      <p>5.6</p>
      </td>
      <td>
      <p>5.7</p>
      </td>
      <td>
      <p>6.2</p>
      </td>
      <td>
      <p>6.2</p>
      </td>
      <td>
      <p>6.9</p>
      </td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>
      <p>Net Income</p>
      </td>
      <td>
      <p>(0.2)</p>
      </td>
      <td>
      <p>(0.1)</p>
      </td>
      <td>
      <p>(0.3)</p>
      </td>
      <td>
      <p>(0.5)</p>
      </td>
      <td>
      <p>0.0</p>
      </td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>


<p>&nbsp;</p>

<h2 id="a_6">Our Membership</h2>

<p>As of March 31, 2020, the Eclipse Foundation has 13 strategic members.&nbsp;&nbsp;</p>

<p><strong>Eclipse Foundation Strategic Members - March 31, 2020</strong></p>

<p><img src="/org/foundation/reports/images/2020/membership.png" /></p>

<p>Of note, the Eclipse Foundation also counts over 1,613 committers. Committers are entitled to membership in the Foundation, and play a valuable role in the Eclipse Foundation governance, including representation on the Eclipse Board and on many working group steering committees.&nbsp;&nbsp;&nbsp;</p>

<p>As of March 31, 2020, the Foundation counts 318 organizations as members. A total of 76 new companies joined as new members of the Foundation from April 1, 2019 through March 31, 2020.&nbsp;&nbsp;</p>

<p>Of note, approximately 53% of new members that joined in 2019 did so as a direct result of their involvement in one or more Eclipse working groups. We believe this is proof that engagement in working groups continues to be a significant value proposition for participation in Eclipse membership.&nbsp;&nbsp;</p>

<p>New for 2020, 29 of the new Eclipse Foundation Solutions members have joined as part of their membership in OpenHW Group, a new Canada-based open hardware nonprofit organization dedicated to fostering collaboration among global hardware and software designers in the development of open source cores, related IP, tools, and software. OpenHW Group and the Eclipse Foundation have agreed that OpenHW Group&rsquo;s projects will leverage Eclipse Foundation&rsquo;s processes, infrastructure, and policies wherever possible, and, in general, share member benefits wherever possible. All OpenHW Group Platinum, Gold, and Silver members are also Solutions members of Eclipse Foundation.&nbsp;&nbsp;&nbsp;</p>

<p>A full list of our members can be seen on our <a href="https://www.eclipse.org/membership/exploreMembership.php#allmembers">Explore Our Members</a> page.&nbsp; The complete list of new members joining Eclipse Foundation in the past year include</p>

<p>Universite de Montreal, Velocity Career Labs, JC Information Management GmbH, Eteration A.S, Incenda AI, Verifa Oy, AVL List GmbH, University of Luxembourg, Snyk LTD.,Hangzhou Yungu IoT Standard Development Center, Perforce Software, Concordia University Ptidej Team CSSE, Accessec GmbH, Adcubum AG, BiiLabs Co, Ltd, WZL of RWTH Aachen University, Aloxy, Energinet, Geometric Energy Corporation, Lulea University of Technology, AKITA Blockchain Solutions Pte Ltd, Cedalo AG, Konduit KK, Huawei, Software Institute, Universit&agrave; della Svizzera italiana, Bird Software Solutions Ltd, Canary Labs, Sterwen Technology, Denso Corporation, Wind River Systems Inc, Science+ Computing, OSB Alliance, STMicroelectronics, TmaxSoft Co.,Ltd, Otto Von Guericke University Magdeburg, ORing Industrial Networking Corp., Engie Labs CRIGEN-CSAI, Iotify, Kingdee Apusic Cloud Computing, NEC Corporation, Dell Technologies, Primeton Information technologies, WhiteSource, Dash7 Alliance, openKonsequenz, Couchbase, Ashling Microsystems Limited, Axiomise Limited, Barcelona Supercomputing Center (BSC), CMC Microsystems, Datum TC, Futurewei Technologies, Inc., GreenWaves Technologies, Hensoldt Cyber GmbH, IAR Systems Group AB, Metrics Technologies Inc, Mitacs, NVIDIA, NXP USA, Inc., OPERSYS Inc., Pingtouge Semiconductors Co. Ltd (C-Sky), Praesum Communications, Silicon Laboratories Inc., Symbiotic GmbH, The University of Utah, UltraSoC Technologies Ltd., University of Bologna, University of Ottawa, Verifai Inc., VeriSilicon, Imperas Software, ECSPEC, University of Toronto, Polytechnique Montreal.&nbsp;</p>

<h2 id="a_7">Our Working Groups</h2>

<h3>Overview</h3>

<p>Eclipse has experienced tremendous growth in its<a href="https://www.eclipse.org/org/workinggroups/explore.php"> Working Groups</a> over the last year. We had an 85% increase, growing to 14 working groups in our portfolio. All Eclipse working groups have defined Charters and formalized Participation Agreements as required by the<a href="https://www.eclipse.org/org/workinggroups/explore.php"> Eclipse Working Group Process</a>.</p>

<p>Eclipse working groups now have over 100 members who are collaborating, demonstrating leadership, and committing to open innovation to develop new industry platforms in a variety of industries. More than 100 Eclipse projects are now affiliated with working groups.</p>

<p><strong>Eclipse Working Groups by Members</strong></p>

<p><img src="/org/foundation/reports/images/2020/chart-wg-members.png" title="Chart" /></p>

<p><strong>Eclipse Working Groups by Projects</strong></p>

<p><img src="/org/foundation/reports/images/2020/chart-wg-projects.png" title="Chart" /></p>

<p>Specific details follow on each working group. If you would like more information or wish to join us, please contact us via <a href="mailto:workinggroups@eclipse-foundation.org">email</a>.</p>

<h3>Jakarta EE</h3>

<p><img src="/org/foundation/reports/images/2020/logo-jakarta-ee.png" /></p>

<p>The <strong>Jakarta EE Working Group</strong> now comprises six Strategic, one Enterprise, and eight Participant members, and over 170 committers. The working group, and the corresponding Eclipse Enterprise for Java (EE4J) top-level project, is an open source initiative intended to create technical specifications, implementations of those APIs, and Technology Compatibility Kits (TCKs) for Java runtimes that enable development, deployment, and management of server-side and cloud-native applications. EE4J is based on the Java&trade; Platform, Enterprise Edition (Java EE) standards. Since it was formed, the Jakarta EE Working Group has focused on the move of Java EE technologies to the Eclipse Foundation where they will evolve under the Jakarta EE brand, with the goal of accelerating business application development for a cloud-native world.&nbsp;</p>

<p>For the past 12 months, the group has been focused on delivering <strong>Jakarta EE 8</strong> and creating plans for the <strong>Jakarta EE 9</strong> release that will address problems related to restrictions imposed by <em>javax </em>namespace use and deprecation of identified unused specifications, and provide support for Java SE 11. The goal is to enable easy migration to the new <em>jakarta</em> namespace, to create a platform for future innovations, and to lower entry barriers for other implementations to become Jakarta EE compatible.&nbsp;&nbsp;</p>

<p>Jakarta EE Working Group achievements include<strong> </strong>the following:</p>

<ul>
  <li><a href="https://jakarta.ee/release/">Jakarta EE 8 release</a>, September 10,2019. With support from the community, the Working Group delivered the first Jakarta EE release. The move of Java EE from Oracle to the Eclipse Foundation is complete.</li>
  <li>Publication of the 2019 <a href="https://jakarta.ee/documents/insights/2019-jakarta-ee-developer-survey.pdf">Jakarta EE Developer Survey findings</a>.</li>
  <li>Seven vendors with Jakarta EE 8 compatible products.
  <ul>
    <li style="list-style-type: circle;">Seven Full Profile Compatible Products and four Web Profile Compatible Products <a href="https://jakarta.ee/compatibility/">https://jakarta.ee/compatibility/</a></li>
  </ul>
  </li>
  <li>The inaugural <a href="https://jakartaone.org/">JakartaOne Livestream</a> event was held on September 10, 2019 with 1,400 attendees and over 18 hours of live content. The feedback from the event was extremely positive.</li>
  <li><a href="https://jakartaone.org/japan2020/">JakartaOne Livestream - Japan</a>, the first regional language-specific event was held on February 26, 2020 with 213 attendees. It featured 10 speakers (two keynotes, five vendor talks and three technical talks).</li>
  <li>The Jakara EE working group was recognized by Oracle&rsquo;s Java Platform Group with a <strong>Duke Award</strong> in recognition of open source contributions to the Java ecosystem.</li>
  <li>New community outreach programs were introduced as follows:
  <ul>
    <li style="list-style-type: circle;">For JUGs T
    <ul>
      <li style="list-style-type: square;"><a href="https://jakarta.ee/community/adopt-a-spec/">Adopt-a-Spec</a></li>
      <li style="list-style-type: square;"><a href="https://www.crowdcast.io/jakarta4jugs">Crowdcast account for JUGs</a> virtual MeetUps&nbsp;</li>
    </ul>
    </li>
    <li style="list-style-type: circle;">Establishing a Studio Jakarta EE channel</li>
  </ul>
  </li>
  <li>The Jakara EE working group has created and is working towards executing a 2020 Program and Marketing Plan.</li>
  <li>The Jakarta EE working group has published a <a href="https://eclipse-ee4j.github.io/jakartaee-platform/jakartaee9/JakartaEE9ReleasePlan">Jakarta EE 9 Release Plan</a>, and is focused on its delivery.</li>
</ul>

<p>For reference:</p>

<ul>
  <li><a href="https://drive.google.com/open?id=1S053agg7BeBM4wSaGhtbANE6tlFBc3Ap0Z-e-xdEOnM">Jakarta EE 2020 Program Plan</a></li>
  <li><a href="https://docs.google.com/presentation/d/1AvMvVIpSG45MAojv_Lggn2QoagbIrKTyCnssLFAJbkw/edit?usp=sharing">Jakarta EE 2020 Marketing Plan</a></li>
  <li>The Eclipse Foundation completed work on ensuring copyright licenses from all past contributors to Java EE specifications under the <a href="https://jcp.org/en/home/index">Java Community Process</a> (JCP)in order to relicense the specification documents under the license of the corresponding project (generally the Eclipse Public License 2.0). The specification documents are released to the corresponding projects.The community is still working on &ldquo;Jakartafying&rdquo; the specification documents.</li>
  <li>The <a href="https://www.surveymonkey.com/r/Y67ML5T">2020 Jakarta EE Developer Survey</a> (launched in April 2020).</li>
</ul>

<h3>Internet of Things (IoT)</h3>

<p><img src="/org/foundation/reports/images/2020/logo-iot.png" /></p>

<p>With over eight million lines of code across almost 45 projects, supported by over 40 of the world&rsquo;s leading IoT ecosystem players, the Eclipse IoT Working Group is the leading open source community for production-grade IoT innovation. The technology portfolio includes technology for constrained devices, IoT gateways, edge computing, and IoT cloud platforms.</p>

<p>New members of the Eclipse IoT Working Group in the past 12 months include Aloxy, Canary Labs, Cedalo, Dash7 Alliance, Kichwa Coders, The Linux Foundation, and the Pacific Northwest National Laboratory.</p>

<p>During the last 12 months, the Eclipse IoT working group completely revamped its messaging and website. The <a href="https://blogs.eclipse.org/post/christopher-guindon/eclipse-iot-website-redesign">new version of the website</a> was launched in March 2020. Initial feedback from the community has been very positive. We hope to get community members to contribute new content during the rest of the year, specifically use cases and testbeds.</p>

<p>A number of new projects joined the Eclipse IoT community in the past year, including</p>

<ul>
  <li><a href="https://projects.eclipse.org/proposals/eclipse-embedded-cc-development-tools">Eclipse Embedded CDT</a>: Set of Eclipse IDE plugins targeted at embedded developers with support for the ARM and RISC-V architectures.&nbsp;</li>
  <li><a href="https://projects.eclipse.org/proposals/eclipse-hara">Eclipse Hara</a>: Reference software agent implementing the <a href="https://www.eclipse.org/hawkbit/">Eclipse hawkBit</a> device API.&nbsp;</li>
  <li><a href="https://www.eclipse.org/packages/">Eclipse IoT Packages</a>: An initiative to create easy to deploy combinations of Eclipse IoT components, based on end-to-end scenarios, that can be deployed on the top of Kubernetes and Helm.</li>
  <li><a href="https://projects.eclipse.org/proposals/streamsheets">Eclipse Streamsheets</a>: Platform for processing stream data using a spreadsheet-like interface and spreadsheet-like formulas.</li>
  <li><a href="https://projects.eclipse.org/proposals/eclipse-zenoh">Eclipse zenoh</a>: Provides a stack that unifies data in motion, data in-use and data at rest. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks. Eclipse zenoh is leveraged by <a href="https://fog05.io/">Eclipse fog05</a>.</li>
</ul>

<p>The Eclipse IoT Working Group continues to undertake a number of community outreach and development programs.</p>

<ul>
  <li>Eclipse IoT Days were hosted in Grenoble (France) and Santa Clara (CA, USA).&nbsp;</li>
  <li>A complete IoT and Edge Computing track was included in the EclipseCon Europe 2019 program.</li>
  <li>In April 2019, the WG published the results of the <a href="https://www.slideshare.net/Eclipse-IoT/iot-developer-survey-2019-report">fifth IoT Developer Survey</a>, which saw the number of respondents grow by 240% from the previous year. The results of the fifth survey were published on April 17, 2019. The survey is the most quoted of its kind in the industry.&nbsp;</li>
  <li>From October 7 to December 2, 2019, the WG ran the first edition of its <a href="http://eclipse-5413615.hs-sites.com/iot-adoption-survey-results-2019">IoT Commercial Adoption Survey</a>. This new survey, which complements our existing developer survey, was answered by 366 respondents. Results were published in February 2020. The survey received significant coverage in the media and reinforces the thought leadership of the Foundation in the IoT ecosystem.</li>
  <li>Eclipse IoT supported and promoted its members through participation at several trade shows, including Bosch Connected World, EclipseCon Europe, the Embedded Linux Conference, IoT World, Red Hat Summit, and others.</li>
  <li>The working group organized five webinars under the banner of its <a href="https://www.meetup.com/Virtual-IoT/">Virtual IoT Meetup</a>. Total membership in the meetup stands at 2,539 as of March 31, 2020.&nbsp;</li>
</ul>

<h3>openMDM</h3>

<p><img src="/org/foundation/reports/images/2020/logo-openmdm.png" /></p>

<p>The Eclipse <strong>openMDM</strong> (measured data management) working group aims to foster and support an open and innovative ecosystem providing tools and systems, qualification kits, and adapters for standardized and vendor independent management of measurement data in accordance with the ASAM ODS (Open Data Services) standard.</p>

<p>Since May 2017, the <a href="https://www.openmdm.org/">openMDM working group</a> has collected membership fees to fund a product manager and a development team. The Eclipse Foundation contracts the product manager as well as a standing development team on behalf of&nbsp; the working group. Under this approach, the development of technology in the <a href="https://projects.eclipse.org/projects/technology.mdmbl/">Eclipse MDM|BL</a> project has continued to progress nicely.&nbsp;</p>

<p>This project technology has enabled the Driver Members of the openMDM working group to move forward with building in-house solutions and products based on MDM|BL, thus creating new opportunities for the consulting and product companies in the openMDM ecosystem.&nbsp;</p>

<p>In 2019, the development team also continued to issue minor releases of MDM|BL and integration of external contributions from working group member companies Daimler and BMW, as well as an external company (MTU).</p>

<p>In 2019, the Eclipse Foundation EF team helped the openMDM working group become more active in outreach and to recruit new members. Our exhibit at the <a href="https://www.asam.net/conferences-events/detail/asam-international-conference-2019/">ASAM International Conference</a> was received very well, and was supported by representatives from a number of the member companies of the working group.</p>

<p>In Q1 of 2020, the development team funded by the openMDM working group delivered the 5.1.0 release of&nbsp; Eclipse MDM|BL. The new release added great features including ATFX import / export, internationalization for the web front end, reading / writing measurement data, upgraded to Eclipse Glassfish 5 and Angular 7 and bug fixing to take down the technical debt.</p>

<h3>openPASS</h3>

<p><img src="/org/foundation/reports/images/2020/logo-openpass.png" /></p>

<p>The <strong>openPASS </strong>Working Group was initiated in August 2017 by three German car manufacturers: BMW, Daimler, and Volkswagen. In 2018, the German T&Uuml;V S&uuml;d, Toyota Europe, and Robert Bosch also joined the openPASS Working Group. The current members are BMW, Daimler (TSS GmbH), Bosch, Toyota (Motor Europe NV SA), T&Uuml;V S&Uuml;D, and Volkswagen (Group of America, Inc.).</p>

<p>The rise of advanced driver assistance systems (ADAS) and partially automated driving functions leads to the need for virtual simulation to assess these systems and their effects. This especially refers, but is not limited to, safety effects in traffic. There are various methods and tools for prospective evaluation of safety systems with respect to traffic safety.&nbsp;</p>

<p>The <a href="https://wiki.eclipse.org/OpenPASS-WG">openPASS</a> working group is implementing the methodology in the Eclipse sim@openPASS project. The project supports both the reliability and transparency of results obtained by simulation. The growing number, complexity, and variety of those vehicle functions make simulation an essential part in research, development, testing, public rating, and homologation. Thus, it is directly or indirectly, required by all stakeholders in vehicle safety, such as manufacturers, suppliers, insurance companies, legislators, consumer advocates, academia, and others. Work on the related <a href="https://projects.eclipse.org/proposals/simopenpass">Eclipse sim@opemPASS</a> project started immediately after the creation of the working group.</p>

<p>In 2019, T&Uuml;V S&Uuml;D hired a product manager who was appointed the Steering Committee chair. In the position he supports the working group&rsquo;s technical planning and coordinates execution for the sim@openPASS project. The project manager is also driving outreach, and creation of a new website with the Eclipse Foundation team. The team is in the planning process for the next releases.&nbsp;</p>

<p>Also, the first meetings with the German based ASAM organization have been conducted. The openPASS and openMobility working groups are both heavy consumers of the openScenario and openDrive standards that are part of ASAM&rsquo;s standards portfolio. In the future we hope that more conversation regarding joint marketing and cross-pollination is conducted. Both WGs are valuable to ASAM as early adopters of ongoing work.&nbsp;</p>

<p>In March of 2020, the openPASS working group presented an overview and strategic initiatives of openPASS to the NHTSA (National Highway Traffic Safety Administration). This is being driven by the steering committee to support technical planning and execution for the sim@openPASS project. The project manager continues to drive the development plan and outreach. The team continues to plan for the next releases.</p>

<h3>OpenADx</h3>

<p><img src="/org/foundation/reports/images/2020/logo-openadx.png" /></p>

<p>On August 27, 2019, the Eclipse Foundation launched the OpenADx (Open, Autonomous Driving Accelerator) Working Group, an automotive industry collaboration focused on creating better compatibility, interfaces, and broader interoperability for the autonomous driving software development stack. This working group established a much needed vendor-neutral home for industry-wide collaboration in order to speed innovation and productization. OpenADx is enabling developers from OEMs, Tier-1 suppliers and tool providers to work together to create innovations that will benefit the entire industry. The working group launched with original members AVL, Bosch, Eteration, IBM, itemis, JC Information Management, Red Hat, and Siemens.</p>

<p>In 2019 the working group established its working mode with the steering committee that is working toward goals for the first year. One of the goals of the working group is to focus on membership growth and becoming attractive to institutions and companies. Since the launch,&nbsp; Microsoft, ADLink, Denso, University of Applied Science and Arts Dortmund, and Science &amp; Computing AG (subsidiary of Atos) have joined the working group.&nbsp;</p>

<p>The working group is providing direction and support for the <a href="https://projects.eclipse.org/projects/technology.iceoryx">Eclipse iceoryx</a> project and the proposed <a href="https://projects.eclipse.org/proposals/eclipse-cloe">Eclipse Cloe</a> project. Eclipse Cloe is an enhanced middleware solution for closed-loop simulations, while Eclipse iceoryx is a middleware with a zero-copy shared memory approach which is optimized for the huge data inter-process-communication. More recently, OpenADx is exploring a partnership with Eclipse Cyclone DDS in the context of Open Robotics. Eclipse iceoryx is complementary and is being built into Eclipse Cyclone DDS.&nbsp;</p>

<p>OpenADx and openMDM are discussing cross-working group activities. OpenADx and openMDM continue to discuss cross-working group activities and are planning a joint general assembly meeting later this year.</p>

<h3>openMobility</h3>

<p><img src="/org/foundation/reports/images/2020/logo-openmobility.png" /></p>

<p>On July 13, 2019, the Eclipse Foundation announced the launch of the openMobility Working Group. This group will focus on open and shared collaboration around one of the major issues in urban planning around autonomous vehicles and future transportation requirements - traffic simulation and modelling.</p>

<p>Based on the cutting-edge <a href="https://projects.eclipse.org/projects/technology.sumo">Eclipse Simulation of Urban Mobility (SUMO)</a> project that originated at the German Aerospace Center, the openMobility Working Group brings together researchers and industry to create a common simulation platform for urban areas in a shared collaboration, open source environment. This framework will provide the tools for a detailed simulation of the movement of people and vehicles as well as their communication systems. It will be critical in testing driver assistance systems, predicting and optimizing traffic, and evaluating new business concepts such as Mobility-as-a-Service.</p>

<p>The openMobility Working Group started in the incubation phase and rapidly worked toward becoming a mature working group with membership growth. In late 2019, AVL joined.</p>

<p>In Q1 2020, the openMobility working group matured to the operational state. Also, in addition to the Eclipse SUMO project, Fraunhofer FOKUS led the successful creation of the <a href="https://projects.eclipse.org/projects/technology.mosaic">Eclipse MOSAIC</a> project and the <a href="https://projects.eclipse.org/projects/technology.adore">Eclipse Automated Driving Open Research (ADORe)</a> project. OpenMobility has strong momentum.</p>

<h3>openGENESIS</h3>

<p><img src="/org/foundation/reports/images/2020/logo-opengenesis.png" /></p>

<p>The openGENESIS working group was founded by the Eclipse Foundation in July, 2019 with T&Uuml;V S&Uuml;D, DFKI, iMotion, Incenda AI, and the University of Luxembourg. While the group is small and focused, the topics the group wants to address reach far beyond the automotive industry. Cross-domain functions may include work on artificial intelligence (AI) quality assurance, AI algorithm inspection methods and tools, testing, and field observation. Interest in future work has been coming from aerospace and industrial internet (I4.0) industry players.</p>

<p>OpenGENESIS&rsquo;s mission is to provide knowledge, methods, and tools for the assessment of AI that is used within autonomous driving applications. Before deployment onto public roads, learning algorithms must be proven safe and roadworthy. However, our current understanding of AI&rsquo;s complex functionality is limited, especially in relation to machine learning algorithms. OpenGENESIS will provide both public and regulatory authorities with approaches to help them deal with the challenges of AI approval and certification. To date, the working group has been working in the area of data labeling and machine learning.</p>

<h3>Science</h3>

<p><img src="/org/foundation/reports/images/2020/logo-science.png" /></p>

<p>The Science Working Group (SWG), founded in June 2014, works to solve the problems of making science software interoperable and interchangeable. The Science Working Group consists of 10 members and 11 projects. In 2019, the Science working group <a href="https://science.eclipse.org/">website</a> was refreshed by the working group in collaboration with the Eclipse Foundation.</p>

<p>The group has the following members:</p>

<ul>
  <li>Steering Committee members: Itema, Oak Ridge National Laboratory, and the Eclipse Foundation</li>
  <li>Participating members: Airbus, Clemson University, IFP Energies Nouvelles, iSencia Belgium, Lablicate, Open Analytics, Soleil Synchrotron, Tech&rsquo;Advantage Group, The Facility for Rare Isotope Beams, and Uppsala University</li>
</ul>

<p>In its fifth year, the following projects were active in the working group:</p>

<ul>
  <li>Eclipse ICE, EAVP, TeXlipse, January, Triquetrum, Chemclipse, SWTChart, StatET, DAWNSci, XACC, and Rich Beans</li>
  <li>No new projects were added to the portfolio in this reporting period</li>
</ul>

<p>The Science project had a &ldquo;coordinated&rdquo; release in October 2019. The aim was to have as many projects provide support for a common Eclipse platform as possible. The projects in this release were</p>

<ul>
  <li>Eclipse January 2.3.0 &ndash; minor release that involved a reorganization of sub-interfaces to allow alternate implementations to be provided</li>
  <li>Eclipse Triquetrum 0.3.0 &ndash; minor release to support update version of Ptolemy II, Eclipse, and JDK. Updates EPL to 2.0</li>
  <li>Eclipse StatET 4.0.1 &ndash; bugfix release</li>
  <li>Eclipse XACC 1.0.0 &ndash; graduation release</li>
</ul>

<p>In addition, a number of Science projects have had releases since then, including</p>

<ul>
  <li>Eclipse ChemClipse 0.8.0 &ndash; major release that includes UI enhancements and API improvements</li>
  <li>Eclipse SWTChart&nbsp; 0.12.0 &ndash; minor release that adds internationalization support, additional export options, and bug fixes</li>
  <li>Eclipse StatET 4.1.0 &ndash; minor release that adds&nbsp; improvements to the content and context information assistants</li>
</ul>

<p>The most recent <a href="https://www.eclipse.org/community/eclipse_newsletter/2019/april/">Eclipse Science Newsletter</a> was published in April 2019.</p>

<p>The Steering Committee has also worked with Eclipse Foundation leadership to address key initiatives for 2019, including holding a physical conference, updating membership and group information on the <a href="https://science.eclipse.org/">website</a> (https://science.eclipse.org/), and recruiting new members.</p>

<h3>Sparkplug</h3>

<p><img src="/org/foundation/reports/images/2020/logo-sparkplug.png" /></p>

<p>Eclipse Sparkplug is a protocol specification defining standard payloads, standard topic structures, and session management on the top of the MQTT protocol. The working group seeks to drive the evolution and adoption of Sparkplug and related MQTT-based technologies that enable the creation of open, collaborative, interoperable, and scalable Industrial IoT (IIoT) solutions, and to provide support for Industry 4.0.</p>

<p>The Eclipse Sparkplug working group was launched in February 2020. The founding members are Canary Labs, Chevron, Cirrus Link, Inductive Automation, HiveMQ, and ORing.&nbsp;</p>

<p>The steering committee was formed and the charter formally approved during Q1 of 2020. High level goals for the rest of 2020 include the establishment of a specification committee, the submission of a project proposal for the specification (including the code of a Test Compatibility Kit), and the establishment of a branding and compatibility program.</p>

<h3>Edge Native</h3>

<p><img src="/org/foundation/reports/images/2020/logo-edge-native.png" /></p>

<p>The Eclipse Foundation officially launched its Edge Native working group on December 10, 2019. The launch press release was published that day, and a live announcement was made during the Edge Computing World conference in Mountain View, California. The Foundation and working group members amplified the news through their respective social media channels. Overall, the launch was very successful, resulting in close to 20 press articles being written.</p>

<p>The founding members of the working group are ADLINK Technology, Bosch, Edgeworx, Eurotech, Huawei, Intel, Kynetics, and Siemens. During Q1 of 2020, the working group formed its steering committee and formally adopted its charter.&nbsp;</p>

<p>There are currently three Eclipse projects related to the working group: <a href="https://fog05.io">Eclipse fog05</a>, <a href="https://iofog.org">Eclipse ioFog</a> and <a href="http://zenoh.io">Eclipse zenoh</a>. All three currently reside under the IoT top-level project.</p>

<p>The Eclipse fog05 project made its initial release under the Eclipse development process in March 2020. ADLINK Technology also factored out its zenoh protocol from fog05 and submitted a project proposal for it, which has been approved. The zenoh project subsequently entered the incubation phase.</p>

<p>The Eclipse ioFog project made three releases of its v1.x series in 2019 and prepared its v2.0 release during the quarter. An important new feature in ioFog 2.0 is the integration of project Skupper, by Red Hat, as a networking proxy. We think the close collaboration between Edgeworx and Red Hat on this initiative is an indication of Red Hat&rsquo;s growing interest in the working group.</p>

<h3>Cloud Dev Tools</h3>

<p><img src="/org/foundation/reports/images/2020/logo-cloud-dev-tools.png" /></p>

<p>The Eclipse Cloud Dev (ECD) Tools working group was launched successfully in Q3 of 2019 with five strategic members and four participating members. In Q4, the ECD Tools working group formally established its Steering and Marketing &amp; Brand Committees. They were formed from representatives of the Strategic members. The Participant members also nominated and voted for their representatives to these committees. The working group&rsquo;s top five technical priorities were defined and agreed on and a draft budget was created to support the group&rsquo;s initiatives in 2020.</p>

<p>In Q1 of 2020, the working group further defined the top five technical priorities and started the process of communicating and bringing together interested companies to collaborate. The Eclipse Theia project delivered its 1.0 release, which was very well received and written up in the press. The <a href="https://open-vsx.org/">Open VSX Registry</a> for LSP plugins was also established by working group member TypeFox. The registry will move to the Foundation later in 2020.</p>

<p>This working group drives the evolution and broad adoption of de facto standards for cloud development tools, including language support, extensions, and developer workspace definition.</p>

<h3>Tangle EE</h3>

<p><img src="/org/foundation/reports/images/2020/logo-tangle-ee.png" /></p>

<p>Together with the IOTA Foundation, the <a href="https://tangle.ee/">Tangle EE</a> working group was launched in February, 2020 to develop commercial applications on distributed ledger technology.&nbsp;</p>

<p>Dell Technologies and STMicroelectronics are among the founding members of the new working group, along with 13 other member organizations: Software AG, Object Management Group,&nbsp; accessec, Energinet, BiiLabs, Calypso Network Association, ENGIE Lab CRIGEN, RWTH Aachen University, AKITA, Geometric Energy Corporation, TMForum, Otto von Guericke University Magdeburg, and IoTIFY.</p>

<p>Several projects will be formed under the Eclipse Foundation to drive open-source collaboration and commercial adoption. Business and academia will come together to develop tooling and provide thought-leadership in key IOTA use case areas. The first two projects will explore decentralized marketplaces, which facilitate real-time trading of data and services, and decentralized identity, which enables a unified identity for people, organizations, and devices.</p>

<p>The working group held its kick-off meeting on March 18, 2020.</p>

<h3>LocationTech and PolarSys</h3>

<p>The LocationTech and PolarSys working groups have both been sunsetted as ongoing operating working groups.&nbsp; In both cases, the Eclipse projects related to the working groups continue to be active, but the industry initiatives and associated member funding that were driving shared activities in support of those projects have been wound down. This is part of the natural evolution of our working groups, as defined in the <a href="https://www.eclipse.org/org/workinggroups/process.php">Eclipse Foundation Working Group Process</a>.&nbsp;&nbsp;&nbsp;</p>

<h2 id="a_8">Our Engagement with Our Community through Conferences &amp; Events</h2>

<p>One of the key activities of the Eclipse Foundation and the Eclipse community is engagement.&nbsp; One way we engage is through conferences and events, those hosted by Eclipse and industry events in which we participate. We also seek to foster this engagement through many channels, including our web properties (<a href="http://www.eclipse.org">www.eclipse.org</a> and our working group websites). We continue to have very active mailing lists and forums, and have recently introduced team facilities such as Slack and Mattermost for many projects and working groups. Collectively, the Foundation staff and our community together engage via social media, and we have added various YouTube channels, aggregate blog sites, etc., as a means of disseminating information.&nbsp;&nbsp;</p>

<p>Of course, the primary event hosted by Eclipse is our EclipseCon conference, held each year in October. In 2019, our community once again came together at the Forum in Ludwigsburg, Germany, where the event has been held for over 10 years. The 2019 EclipseCon was a great success as measured by the feedback given through surveys, in particular the quality of the talks, the strong Community Day held on the first day, and the overall diversity and engagement of attendees.&nbsp;&nbsp;</p>

<p>EclipseCon 2020 will be a significant departure for Eclipse. Due to the global Covid-19 pandemic, the Eclipse Board took the decision to not hold EclipseCon as a physical event in Germany, but instead to produce EclipseCon as a virtual event. The dates remain the same (the week of October 19, 2020), but the format will be strictly online. This decision was taken, of course, to ensure the overall health and safety of our community, and to allow all stakeholders, including speakers, sponsors, suppliers, and organizers to plan well in advance for the virtual event. As part of their decision, the Board made clear the intent is to once again return to Ludwigsburg in October 2021.&nbsp;</p>

<p><img src="/org/foundation/reports/images/2020/logo-eclipsecon-2020.png" /></p>

<p>Details about EclipseCon 2020 are available on the EclipseCon website. One of the positive side effects is that we expect there to be a larger attendance at the event, and all in the community are welcome to participate.&nbsp;&nbsp;</p>

<p>The Foundation continues to support other virtual events as well. The Jakarta EE Livestream series of events was launched over the past 12 months (see details below in the section describing Jakarta EE), and has been a huge success as measured by attendance and feedback. Other working groups are in the process of establishing their own series of virtual events, and we expect this to be an ongoing service provided to the community.&nbsp;&nbsp;</p>

<p>Finally, the Foundation continues to engage in broader industry events.&nbsp; This participation is done on behalf of the members and working groups, where the Foundation showcases the various Eclipse projects and technologies as a means to drive interest and awareness in our projects.&nbsp;</p>

<p>For more information, visit our <a href="https://events.eclipse.org/">events page</a> to follow the full calendar of conferences and events relevant to the Eclipse community.&nbsp;&nbsp;</p>

<h2 id="a_9">Our Marketing and Brand Management</h2>

<p>The Eclipse Foundation was covered in 244 press articles from April 1, 2019 to March 31, 2020. This is an approximately 30% year-over-year improvement over April 1, 2018 to March 31, 2019 (188 articles). Factors driving the continued growth in media coverage include a concerted PR/AR strategy executed around working group launches and significant project milestones, as well as active collaboration with community members to amplify our reach through the development of key messages and social media kits. In June 2019, the Foundation engaged Nichols Communications, an expert press and analyst firm, to help drive visibility and expand credibility across our core technology pillars.</p>

<p>As part of the Foundation&rsquo;s brand platform execution, a new business value <a href="https://www.eclipse.org/org/value/">pillar page</a> was launched featuring collateral and content highlighting the Eclipse Foundation&rsquo;s value proposition as the platform for entrepreneurial collaboration on sustainable, product-ready open source. Several resources were published, including an<a href="https://www.eclipse.org/org/value/public/pdf/business_of_open_source_ebook.pdf"> eBook</a> (featuring Deborah Bryant from Red Hat, Todd Moore from IBM, and Tyler Jewell, the founder of CodeEnvy), an <a href="https://www.eclipse.org/org/value/public/pdf/business_of_open_source_infographic.pdf">infographic</a>, and a social video series. In the first month of publication, the eBook was downloaded over 68,000 times. The content and page were promoted with blogs and a social media campaign over the course of the year.</p>

<h3>Working Group Launch Announcements</h3>

<ul>
  <li>On May 13, 2019, a <a href="https://www.globenewswire.com/news-release/2019/05/13/1822364/0/en/Eclipse-Foundation-Launches-openMobility-Working-Group.html">press release </a>was issued announcing the launch of the <a href="https://openmobility.eclipse.org/">openMobility Working Group</a> which enables open and shared collaboration on tools for a detailed simulation of the movement of people and vehicles as well as their communication systems.</li>
  <li>On August 27, 2019, a <a href="https://www.globenewswire.com/news-release/2019/08/27/1906959/0/en/OpenADx-Becomes-Eclipse-Working-Group-Focused-on-Interoperability-in-the-Autonomous-Driving-Software-Stack.html">press release</a> was issued announcing the launch of the OpenADx Working Group, an automotive industry collaboration focused on creating better compatibility, interfaces, and broader interoperability for the autonomous driving software development stack. The working group launched with original members AVL, Bosch, Eteration, IBM, itemis, JC Information Management, Red Hat<a href="https://www.globenewswire.com/Tracker?data=2OiC_LcIKwF_bfALXHzxFr5Y7JXpAkok6LqYkMnn5ERIHM47D57CkpWMnYY3e48m">,</a> and Siemens.&nbsp;</li>
  <li>A <a href="https://www.globenewswire.com/news-release/2019/10/08/1926424/0/en/The-Eclipse-Foundation-Launches-The-Eclipse-Cloud-Development-Tools-Working-Group-for-Cloud-Native-Software.html">press release</a> was issued to announce the launch of the Eclipse Cloud Development Tools (ECD) Working Group on October 8, 2019. Founding members of the ECD WG include Broadcom, EclipseSource, Ericsson, IBM, Intel, Red Hat, SAP, Software AG, and Typefox.&nbsp;</li>
  <li>The <a href="https://edgenative.eclipse.org/">Edge Native Working Group</a> was launched at the Edge Computing World conference on December 10, 2019. A <a href="https://www.globenewswire.com/news-release/2019/12/10/1958428/0/en/The-Eclipse-Foundation-Launches-the-Edge-Native-Working-Group-to-Deliver-Production-Grade-Code-for-Open-Source-Edge-Computing.html">press release</a> was issued, supported by founding members including ADLINK, Bosch, Edgeworx, Eurotech, Huawei, Intel, Kynetics, and Siemens. The working group will drive the evolution and broad adoption of open source projects for edge computing, including Eclipse ioFog and Eclipse fog05.</li>
  <li>On February 3, 2020, a <a href="https://www.globenewswire.com/news-release/2020/02/03/1978911/0/en/The-Eclipse-Foundation-Launches-the-Sparkplug-Working-Group-to-Bring-Device-Communications-Standardization-to-the-Industrial-Internet-of-Things-and-Industrial-Automation.html">press release </a>was issued announcing the launch of the Sparkplug Working Group, an industry collaboration focused on driving the evolution and broad adoption of the Eclipse Sparkplug Specification that enables the creation of open, interoperable, Industrial IoT (IIoT) solutions utilizing MQTT. To accompany the launch, a new working group <a href="https://sparkplug.eclipse.org/">website</a> was unveiled. The working group was launched with the support of founding members Chevron, Canary Labs, Cirrus Link Solutions, HiveMQ, Inductive Automation, and ORing.&nbsp;</li>
  <li>The Tangle EE Working Group was launched with a <a href="https://www.eclipse.org/org/press-release/20200212-iota.php">press release </a>and the unveiling of a <a href="https://tangle.ee/">new website</a> on February 11, 2020. The working group launched with the support of founding members IOTA Foundation, Dell Technologies, STMicroelectronics, Software AG, Object Management Group, accessec, Energinet, BiiLabs, Calypso Network Association, ENGIE Lab CRIGEN, RWTH Aachen University, AKITA, Geometric Energy Corporation, TMForum, Otto von Guericke University Magdeburg, and IoTIFY.&nbsp;</li>
</ul>

<h3>Jakarta EE Marketing</h3>

<ul>
  <li>With broad community support, the release of the Jakarta EE 8 Full Platform and Web Profile specifications and related Technology Compatibility Kits (TCKs) was <a href="https://www.globenewswire.com/news-release/2019/09/10/1913300/0/en/The-Eclipse-Foundation-Releases-Jakarta-EE-8-Specifications-Completes-Transition-to-Eclipse-Foundation-as-the-New-Home-for-Open-Source-Cloud-Native-Java.html">announced</a> on September 10, 2019. As part of the release, a new <a href="https://jakarta.ee/release/">pillar page</a> on the <a href="https://jakarta.ee/">jakarta.ee</a> website was unveiled to promote <a href="https://jakarta.ee/compatibility/">compatible products</a>, link to the <a href="https://jakarta.ee/specifications/">specifications</a>, and share resources with ecosystem stakeholders. Over the course of the year, additional Jakarta EE compatible products have been promoted on Jakarta EE social media channels.&nbsp;&nbsp;</li>
  <li>To coincide with the Jakarta EE 8 release, the JakartaOne Livestream virtual conference was held on September 10, 2019. The culmination of months of planning, the 18-hour event included 16 talks focused on Cloud Native Java, keynotes from Mike Milinkovich and James Gosling, as well as industry keynotes from Jakarta EE Working Group Steering Committee members, demos, and panel discussions. Over 1,400 attendees from around the world registered for the event. The feedback indicated an 86% satisfaction rate among attendees. The session recordings can be viewed on demand at <a href="http://jakartaone.org/">jakartaone.org</a>.</li>
  <li>The Jakarta EE Working Group published a new eBook, <a href="https://outreach.jakartaee.org/cloud-native-java-ebook">Fulfilling the Vision for Open Source, Cloud Native Java</a>, on September 10, 2019. This free publication explores our community&rsquo;s perspective on what cloud native Java is, why it matters so much to so many enterprises, and where Jakarta EE technologies are headed. Community members Adam Bien, Sebastian Daschner, Josh Juneau, Mark Little, and Reza Rahman contributed their insights and expertise to the eBook.</li>
  <li>At the Oracle Code One conference and tradeshow, Mike Milinkovich accepted the Duke&rsquo;s Choice Award on behalf of the Jakarta EE community. The Jakarta EE Working Group was recognized for outstanding open source contributions to the Java ecosystem. A <a href="https://www.globenewswire.com/news-release/2019/09/17/1916531/0/en/The-Eclipse-Foundation-Wins-Duke-s-Choice-Award-for-Open-Source-Contributions-to-the-Java-Ecosystem.html">press release</a> was issued on September 17, 2019 to publicize the award.&nbsp;</li>
  <li>The JakartaOne Livestream Japan virtual conference was held on February 26, 2020. The Jakarta EE community&rsquo;s first major Japanese-language virtual event focused on Cloud Native Java. During the event, 10 speakers delivered two keynotes, five vendor talks, and three technical talks. Over 200 attendees registered for the event and 159 attended live, with 89 replays. The feedback from the attendees was overwhelmingly positive. This success sets the stage for future regional events driven by our global community. The session recordings can be viewed on demand at <a href="https://jakartaone.org/japan2020/">jakartaone.org/japan2020</a>.&nbsp;</li>
  <li>Support was provided to aid the rebranding of the Java EE Guardians to the <a href="https://twitter.com/jee_ambassadors">Jakarta EE Ambassadors</a>. The &ldquo;Ambassadors&quot; (re)name achieved a wide consensus within the Java EE Guardians community. Foundation staff collaborated with the Jakarta EE Ambassadors to design a logo and promote the name change on social channels. The Jakarta EE Ambassadors have completed the rebranding: <a href="https://jakartaee-ambassadors.io/">https://jakartaee-ambassadors.io/</a>.&nbsp;</li>
  <li>To accompany updates to the <a href="https://jakarta.ee/legal/trademark_guidelines/">Jakarta EE Trademark Guidelines</a> and the introduction of the <a href="https://jakarta.ee/legal/trademark_guidelines/jakarta-ee-trademark-license.pdf">Jakarta EE Trademark License</a>, a <a href="https://jakarta.ee/legal/trademark_guidelines/jakarta-ee-branding-guidelines.pdf">Jakarta EE Brand Usage Handbook</a> was developed to provide full guidelines on the usage of the Jakarta EE Marks (including the Jakarta EE Member and Compatible Product Logos).</li>
  <li>The <a href="https://www.meetup.com/jakartatechtalks_/">Jakarta Tech Talks</a> webinar series continued to be well received by the community. The Tech Talks received almost 10,000 views from April 2019 to March 2020.</li>
  <li>A recruitment prospectus to drive membership growth was delivered for Jakarta EE working group: <a href="https://jakarta.ee/documents/membership/jakarta-ee-membership-prospectus.pdf">https://jakarta.ee/documents/membership/jakarta-ee-membership-prospectus.pdf</a>&nbsp;</li>
</ul>

<h3>Eclipse IoT Marketing</h3>

<ul>
  <li>With community support, the revamped <a href="http://iot.eclipse.org">Eclipse IoT website</a> was unveiled on March 24, 2020 and promoted on social channels. The design project was a major undertaking including the addition of over 5,000 lines of code, the removal of 77,000 lines of code from the code base, 15 <a href="https://github.com/EclipseFdn/iot.eclipse.org/projects/3#column-6757970">closed issues</a>, and 84 <a href="https://github.com/EclipseFdn/iot.eclipse.org/pull/339/commits">commits</a>. The Eclipse IoT community was consulted and engaged in the process through the creation of a public <a href="https://github.com/EclipseFdn/iot.eclipse.org/projects/3">GitHub project</a> with <a href="https://github.com/EclipseFdn/iot.eclipse.org/projects/3">two milestones</a>.
  <br/><img src="/org/foundation/reports/images/2020/screenshot-iot-website.jpg" />
  </li>
</ul>

<ul>
  <li>
  <p>The Eclipse IoT working group launched a campaign to identify adopters of Eclipse IoT projects. Companies &mdash; whether or not they are working group members &mdash; can be listed as adopters at <a href="https://iot.eclipse.org/adopters/">https://iot.eclipse.org/adopters/</a>. Adopters can submit their organization&rsquo;s logo by creating a<a href="https://github.com/EclipseFdn/iot.eclipse.org/issues/new?template=adopter_request.md"> GitHub issue</a>. As of March 31, 2020, over 30 organizations have provided their logos as adopters of 12 projects. The intent is to roll out the campaign to other Foundation and working group websites over time.</p>
  </li>
</ul>

<h3>Eclipse Cloud Development Tools Working Group Marketing</h3>

<ul>
  <li>Supported by Red Hat and Broadcom, the release of Eclipse Che 7 was <a href="https://www.globenewswire.com/news-release/2019/09/17/1916522/0/en/The-Eclipse-Foundation-Releases-Eclipse-Che-7-the-First-Kubernetes-Native-IDE-to-Make-Creating-Cloud-Native-Applications-Easier-Faster-and-More-Secure.html">announced</a> on September 17, 2019, at the Oracle Code One conference and tradeshow. Che 7 is the first developer workspace server and IDE for creating cloud native, enterprise applications on Kubernetes. Che 7 comes with a pre-packaged web-based IDE, based on an extended version of <a href="https://theia-ide.org/">Eclipse Theia</a> to provide an in-browser Visual Studio Code experience.</li>
  <li>In Q1 2020, an ECD WG logo was created and a new working group <a href="https://sparkplug.eclipse.org/">website</a> was unveiled.</li>
  <li>Supported by the ECD WG, the release of <a href="https://theia-ide.org/">Eclipse Theia</a> 1.0 was <a href="https://www.eclipse.org/org/press-release/20200331-theia.php">announced</a> on March 31, 2020. Theia is an extensible platform that enables IDE developers, organizations, and vendors to create multi-language Cloud and Desktop IDEs. Theia is being developed by a <a href="https://projects.eclipse.org/projects/ecd.theia/who">diverse community</a> of contributors, committers, and supporting companies such TypeFox, Ericsson, Red Hat, and ARM. The launch was covered in over 20 press articles.</li>
</ul>

<h3>Ongoing Marketing Research&nbsp;</h3>

<ul>
  <li>On behalf of our members, the Foundation&rsquo;s Marketing team has been working to engage the community and industry at large to gather insights on the marketplace. Going forward, the overarching goal is to enhance the value we provide our members by delivering high-quality market intelligence through surveys.</li>
  <li>The fifth annual IoT Developer Survey results were <a href="http://www.globenewswire.com/news-release/2019/04/17/1805318/0/en/New-Survey-of-More-Than-1-700-IoT-Developers-Reveals-Top-Hardware-Software-Stack-Choices.html">unveiled</a> on April 17, 2019. Over 1,700 individuals (more than three times the previous year&rsquo;s respondents) completed the survey. <a href="https://outreach.eclipse.foundation/download-the-eclipse-iot-developer-survey-results">The survey report </a>was posted on the Eclipse IoT Working Group website. The 2020 edition of the survey will be launched in May 2020.</li>
  <li>The results of the second annual Jakarta EE Developer Survey were published on the jakarta.ee website and an accompanying press release was <a href="https://www.globenewswire.com/news-release/2019/05/09/1820952/0/en/New-Eclipse-Foundation-Community-Survey-of-Java-Developers-Shows-Cloud-Native-Adoption-Accelerating-Dramatically-with-Jakarta-EE.html">issued</a> on May 9, 2019. The survey of nearly 1,800 global respondents provides critical insights into the state of cloud native innovation for enterprise java development globally, including expected growth rates for Java applications in the cloud as well as leading architectures, applications, and technologies. The 2020 survey was developed to be conducted in April 2020.&nbsp;</li>
  <li>The results of our first <a href="https://outreach.eclipse.foundation/iot-adoption-2019">IoT Commercial Adoption survey</a> were published on March 10, 2020 with the issuance of a <a href="https://www.eclipse.org/org/press-release/20200310-iot-commercial-adoption-survey-2019.php">press release</a>. The goal of the survey was to go beyond the annual IoT Developer survey we have conducted since 2015 to gain a better understanding of the IoT market landscape from the perspective of a broader spectrum of industry stakeholders. From early October to December 2019, 366 individuals participated in the survey. As of March 31, the survey has been covered in 18 press articles. The plan is to conduct the 2020 version of the survey in Q4 2020.</li>
</ul>

<h3>Eclipse IDE&nbsp;</h3>

<ul>
  <li>The Eclipse IDE quarterly simultaneous releases of Eclipse projects were promoted on <a href="http://www.eclipse.org">www.eclipse.org</a> and via social media channels.</li>
  <li>A new <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=553853">splash screen</a> for the Eclipse IDE was designed for 4.16 (2020-06) and subsequent releases. The project team was provided with the art design files to enable modifications for future releases.
  <br/><img src="/org/foundation/reports/images/2020/screenshot-eclipse-ide-2020-06.jpg" /></li>
</ul>


<h3>EclipseCon Rebranding and Website Refresh</h3>

<p>For EclipseCon 2020, the EclipseCon logo has been revamped. The hexagon shape in the logo represents the &ldquo;building blocks&rdquo; of collaboration that the EclipseCon event fosters within our community. The white lines that lead outside of the hexagon represent the openness and transparency that the Eclipse community prides itself on. To align with the new branding, the look and feel of the <a href="https://www.eclipsecon.org/">eclipsecon.org</a> website has been updated.</p>

<p><img src="/org/foundation/reports/images/2020/logo-eclipsecon-2020.png" /></p>

<h3>Social Media</h3>

<ul>
  <li>The Foundation&rsquo;s presence on key social media platforms grew steadily from April 2019 to March 2020, with <a href="https://twitter.com/EclipseFdn">Eclipse Foundation Twitter</a> followers increasing by 9% and <a href="https://www.linkedin.com/company/eclipse-foundation/">Eclipse Foundation LinkedIn</a> followers growing by over 50%. Over the same period, Jakarta EE Twitter followers increased by 46% and Eclipse IoT Twitter followers grew by 17%.</li>
  <li>Subscribers to the Foundation&rsquo;s <a href="https://www.youtube.com/channel/UCej18QqbZDxuYxyERPgs2Fw">YouTube channel</a> grew by 10% during the same period.&nbsp;</li>
</ul>

<h3>Eclipse Community Newsletter</h3>

<ul>
  <li>
  <p>The <a href="https://www.eclipse.org/community/eclipse_newsletter/">Eclipse Community Newsletter</a> experienced strong growth, driven in large part by community-sourced technical content and consistent promotion on social media channels. The total number of subscribers increased by 23% year-over-year to reach 370,000 total subscribers in March 2020.</p>
  </li>
</ul>

<h2 id="a_10">Intellectual Property Management</h2>

<p>The Eclipse Foundation is in the process of making a major update to the implementation of our Intellectual Property Policy, specifically in the way that we manage third party content.&nbsp;</p>

<p>In the context of the Eclipse IP Policy, &ldquo;third party content&rdquo; is content that is leveraged by the Eclipse open source project, but not otherwise produced or managed by an Eclipse open source project. A library produced by, say, an Apache Software Foundation open source project, is considered to be third party content. Previously, the IP Policy required that all third party content must be vetted by the Eclipse IP Team before it can be used by an Eclipse Project. In late 2019 and early 2020, we started the process of turning this around.&nbsp;</p>

<p>Eclipse project teams may now introduce new third party content during a development cycle without first checking with the IP Team. That is, a project team may commit build scripts, code references, etc. to third party content to their source code repository without first creating a contribution questionnaire (CQ) to request IP Team review and approval of the third party content. At least during the development period between releases, the onus is on the project team to - with reasonable confidence - ensure any third party content that they introduce is license compatible with the project&rsquo;s license. Before any content may be included in any formal release the project team must validate that the third party content licenses are compatible with the project license.</p>

<p>As part of that release review, the Eclipse IP Team engages in a review of the project&rsquo;s record of intellectual property contributions and third party content use (the IP Log). It is during that IP Log review that the IP Team validates the state of license compatibility of all third party content.&nbsp;</p>

<p>Note that we changed the Eclipse Development Process in late 2018 to make it so that a project team may engage in any number of major and minor releases for an entire year following a successful release review. In the case where a release does not require a review (and so there is no trigger to engage in an IP Log review), the onus falls on the project team to ensure the license compatibility of all referenced third party content. Should they require it, project teams can still engage the IP Team to help with the validation, even when a formal review is not required.</p>

<p>An important part of making this work is leveraging existing databases of information. The short version is that we are getting out of the business of scanning through every single bit of source code ourselves, and will instead leverage what we have already learned and trust sources of license information (and contribute to these other sources of information).&nbsp;</p>

<p>We currently have two trusted sources of license information: The Eclipse Foundation&rsquo;s IPZilla and <a href="http://clearlydefined.io">ClearlyDefined</a>. The IPZilla database has been painstakingly built over most of the lifespan of the Eclipse Foundation; it contains a vast wealth of deeply vetted information about many versions of many third party libraries. ClearlyDefined is a project of the Open Source Initiative (OSI) that combines automated harvesting of software repositories and curation by trusted members of the community to produce a massive database of license information. The Eclipse Foundation&rsquo;s IP Team has been working closely with the ClearlyDefined community, providing input into their processes and helping to curate their data.</p>

<p>We are moving away from using IPZilla as a means of tracking the use of third party content, and leveraging it only as a means of tracking the vetting process. This will have an impact on how we generate intellectual property logs. In practical terms, this means that Eclipse open source project teams no longer create tracking (piggyback) records (contribution questionnaires or &ldquo;CQs&rdquo;) in our IPZilla system. In fact, committers will generally have to engage directly with the IP Team (i.e., create CQs) far less, as they will only need to do so to vet third party content that is unknown to our trusted sources of license information.</p>

<p>We have been engaging with the Eclipse Architecture Council and individual project teams as we evolve our IP Due Diligence process; and have started rolling this out more generally.</p>

<h2 id="a_11">Simultaneous Release</h2>

<p>In 2019, the Eclipse Community shipped the first full year of quarterly-based simultaneous releases. As of May 2020, a total of eight successful quarterly releases have been shipped, with the most recent in March 2020. In that release, a total of 74 Eclipse open source projects shipped an estimated 73 million lines of code.</p>

<p><img src="/org/foundation/reports/images/2020/chart-simrel_quarter.jpg" title="Chart" /></p>

<p class="small"><em>Simultaneous Release Metrics by Quarter</em></p>

<p>This predictable release schedule has been a key part of the Eclipse Community&#39;s success over the years, and is an important part of the success of the Eclipse ecosystem.</p>

<h2 id="a_12">Committers and Projects</h2>

<p>In late 2018 and through much of 2019, we engaged in a process to update our committer agreements. This required that we engage with all of our member companies and individual committers to get them to sign new documents. At the end of this multiple-month process, we were forced to retire those committers that we either could not contact, or could not get to sign the new agreement. This accounts for the step drop that we see in our committer numbers in the summer of 2019.</p>

<p><img src="/org/foundation/reports/images/2020/chart-committers-projects.png" /></p>

<p>The number of new committers that we bring on board year-after-year is climbing, demonstrating a healthy growth in our committer ranks as we return to our 1,631 high water mark from June 2019. (We added a few more than 240 new committers in 2019.)</p>

<p><img src="/org/foundation/reports/images/2020/chart-committers-by-year.png" title="Chart" /></p>

<p class="small"><em>New Committers by Year</em></p>

<p>The number of proposals for new Eclipse open source projects that we receive year-after-year went down a bit in 2019, but is generally on an upward trend. Note that the spike in 2018 includes a large number of projects that are part of the Jakarta EE effort.</p>

<p><img src="/org/foundation/reports/images/2020/chart-project-proposals-by-year.png" title="Chart" /></p>

<p class="small"><em>New Project Proposals by Year</em></p>

<p>The following projects were proposed at the Eclipse Foundation in 2019:</p>

<ul>
  <li><strong>Eclipse Open VSX</strong> provides technology for a marketplace of runtime extensions for cloud IDEs such as Eclipse Theia.</li>
  <li><strong>Starter for Jakarta EE</strong>&nbsp; is a source code generator for Jakarta EE projects that provides functionality for generating skeleton Jakarta EE projects with optional samples and comment-like documentation backed by various vendor implementations.</li>
  <li><strong>Eclipse Embedded C/C++ Development Tools</strong> provides a family of Eclipse plug-ins for multi-platform embedded C/C++ ARM and RISC-V development.</li>
  <li><strong>Eclipse Hara</strong> provides a reference agent software implementation featuring the Eclipse hawkBit device API.</li>
  <li><strong>Eclipse Streamsheet</strong>s provides a platform for processing stream data using a spreadsheet-like interface and spreadsheet-like formulas.&nbsp;</li>
  <li><strong>Eclipse zenoh</strong> provides a stack that unifies data in motion, data in-use, and data at rest.</li>
  <li><strong>Eclipse SmartMDSD</strong> provides model-driven tooling for service-oriented and component-based robotics software development.</li>
  <li><strong>Eclipse ESCET</strong> provides a toolkit for the development of supervisory controllers.</li>
  <li><strong>Eclipse Free BIRD</strong> Tools provide visual tooling to support the development, testing, and understanding of the artefacts produced by the European Central Banks BIRD project.</li>
  <li><strong>Eclipse LemMinX</strong> (aka XML Language Server) provides an LSP implementation for the XML language.</li>
  <li><strong>Eclipse MOSAIC</strong> provides a multi-domain/multi-scale co-simulation environment for virtual testing of connected and automated driving and mobility solutions.&nbsp;</li>
  <li><strong>Eclipse Skills</strong> provides a framework to gamify the learning experience of users for the Eclipse IDE and RCP applications.</li>
  <li><strong>Eclipse SeCo Blocks Suite</strong> provides tools and components that facilitate the development of decentralized applications.</li>
  <li><strong>Eclipse Che4z</strong> provides a lightweight hosted IDE, based on Eclipse Che, accessible via a browser for the new-age mainframe application developers.&nbsp;</li>
  <li><strong>Eclipse EMF.cloud</strong> provides tools and components that facilitate the adoption of EMF in cloud-based deployment scenarios.</li>
  <li><strong>Eclipse JKube</strong> provides plugins and libraries for the Java build tools for building and deploying applications for Kubernetes.</li>
  <li><strong>Eclipse IoT Packages</strong> provides deployment instructions and scripts for deploying packages of Eclipse IoT projects to Kubernetes based platforms using Helm charts.</li>
  <li><strong>Eclipse iceoryx</strong> provides algorithms and libraries for shared memory communication on POSIX operating systems.</li>
  <li><strong>Eclipse Vulnerability Assessment Tool </strong>analyses Java and Python applications to identify, assess and mitigate the use of open-source dependencies with known vulnerabilities.</li>
  <li><strong>Eclipse Tempest</strong> provides tools to help build high-quality cloud-native applications for Kubernetes.</li>
  <li><strong>Eclipse GLSP</strong> provides extensible components to enable the development of diagram editors including edit functionality in (distributed) web-applications via a client-server protocol.</li>
  <li><strong>Eclipse Cargo Tracker</strong> provides an example application that showcases core Jakarta EE technologies.</li>
  <li><strong>Jakarta Bean Validation </strong>defines and maintains the Jakarta Bean Validation specification and related artifacts.</li>
  <li><strong>Jakarta Contexts and Dependency Injection</strong> defines and maintains the Jakarta Contexts and Dependency Injection specification and related artifacts.</li>
  <li><strong>Jakarta EE Examples</strong> provides example applications of Jakarta EE technology.</li>
  <li><strong>Eclipse Cloe</strong> provides simulation middleware and simulation-engine bindings for connecting simulation engines to the &quot;software under test&quot;.</li>
  <li><strong>Eclipse Repairnator</strong> transfers academic results in the domain of intelligent continuous integration (&ldquo;AI for CI&rdquo;) to industry.</li>
  <li><strong>Eclipse ShellWax</strong> provides a rich editor for shell script files using an existing language server for the purpose.</li>
  <li><strong>Eclipse Kiso</strong> provides software stacks, reference hardware design and relevant environments for connecting IoT devices to the network.</li>
  <li><strong>Eclipse Dartboard</strong> provides a development environment for Dart (and Flutter) developers in the Eclipse IDE.</li>
</ul>

<h2 id="a_13">Our Engagement in Research</h2>

<p>Since 2013, the Foundation has increased its collaboration with academics, researchers, and industries by participating in several European funded research projects. The Foundation&rsquo;s main objective in these projects is to help the consortium engaged in each project build an open source platform and community around their respective EU research project.</p>

<p>The positive side effects include</p>

<ul>
  <li>Eclipse Foundation&rsquo;s recognition as an expert in building open source communities;&nbsp;</li>
  <li>The opportunity to bring new academic and industrial members to the Foundation;</li>
  <li>The opportunity to promote and disseminate existing Eclipse projects into such international consortia.</li>
</ul>

<p>As of March 2020, Eclipse Foundation Europe finished three major European research projects.</p>

<ol>
  <li><a href="https://www.crossminer.org/">Crossminer</a>: Started in January 2017. CROSSMINER enables the monitoring, in-depth analysis, and evidence-based selection of open source components, and facilitates knowledge extraction from large open-source software repositories.</li>
  <li><a href="https://itea3.org/project/appstacle.html">Appstacle</a>: Started in April 2017. APPSTACLE stands for open standard APplication Platform for carS and TrAnsportation vehiCLEs. Appstacle aims to establish a standard car-to-cloud connection, open for external applications and the use of open source software wherever possible without compromising safety and security.&nbsp;</li>
  <li><a href="http://www.basys40.de/">BaSys 4.0</a>: Started in fall 2016. The goal of BaSys 4.0 is the creation of an Industry 4.0 base system for factories to ensure efficient transformations in the production processes.</li>
</ol>

<p>All of them received a positive review from the European and German reviewers and officers.</p>

<p>Eclipse Foundation is also a <a href="https://www.eclipse.org/org/research/">research partner</a> in eight large European research projects.</p>

<ol>
  <li><a href="http://robmosys.eu/">RobMoSys</a>: Started in January 2017. RobMoSys envisions an integrated approach built on top of the current code-centric robotic platforms by applying model-driven methods and tools.</li>
  <li><a href="http://brain-iot.eu">BRAIN-IoT:</a> Started in January 2018. BRAIN-IoT aims at establishing a framework and methodology that supports smart autonomous and cooperative behaviors of populations of heterogeneous IoT platforms that closely interact with Cyber-Physical systems (CPS).</li>
  <li><a href="https://pdp4e-project.eu/">PDP4E</a>: Started in May 2018. PDP4E aims to widespread the creation of products, systems, and services that better protect the privacy and personal data of EU citizens by endowing software and systems engineers with methods and software tools on data protection principles applications.</li>
  <li><a href="http://www.basys40.de/">BaSys 4.2</a>: Started in May 2019. BaSys 4.2 is the follow up of BaSys 4.0 The goal of BaSys 4.2 is to continue the work initiated by BaSys 4.0 in the creation of an Industry 4.0 base system for factories to ensure efficient transformations in the production processes. This project is initiating an Automation Working Group at Eclipse.</li>
  <li><a href="https://arrowhead.eu/arrowheadtools">ArrowHead Tools</a>: Started in May 2019. The project will provide engineering processes, integration platform, tools and tool chains for the cost-efficient development of digitalisation, connectivity and automation system solutions in various fields of application.</li>
  <li><a href="https://www.panorama-research.org/">Panorama</a>: Started in May 2019. Aims to research model-based methods and tools to master development of heterogeneous embedded hardware/software systems in collaboration with diverse and heterogeneous parties by providing best practice, novel analysis approaches, and guidance for development.</li>
  <li><a href="https://www.fab-os.org/en/">FabOS:</a> Started in September 2019. FabOS is the IT backbone for the versatile automation of the factory of the future and the foundation of an ecosystem for data-driven services and AI applications.</li>
  <li><a href="https://smartclide.eu/">SmartCLIDE</a>: Started in January 2020. The main objective of SmartCLIDE is to propose a radically new smart cloud-native development environment, based on the coding-by-demonstration principle, that will support creators of cloud services in the discovery, creation, composition, testing, and deployment of full-stack data-centered services and applications in the cloud.</li>
</ol>

<h2 id="a_14">Our Infrastructure and Community Support&nbsp;</h2>

<p>The EMO is committed to providing a robust and dependable server and software infrastructure, including professional support staff to assist projects and working groups in achieving their goals effectively and efficiently, as well as steadily improving services to the Eclipse committers and the projects they work on. Here is a sampling of some infrastructure metrics, plus some improvements we have put into place over the past year.</p>

<h3>Servers and Infrastructure</h3>

<p>Core service availability (Git/Gerrit, www.eclipse.org, and Bugzilla) for calendar year 2019 was 99.996%, up from 99.992% in calendar year 2018. 2019 was our best year yet for service stability and availability.</p>

<p><img src="/org/foundation/reports/images/2020/chart-service-availability.png" /></p>

<p>This stellar uptime performance will be diminished in 2020, as aging hardware caused a 120-minute&nbsp; blackout outage on Feb 7, 2020 (internally code named: BLACK_FRIDAY). Since then, the IT team has been working diligently to replace aging hardware, eliminate Single Points of Failure, and improve internal processes and communications with our community.</p>

<h3>Development Tools</h3>

<p>Many components of our development tools, such as Bugzilla, Gerrit, and MediaWiki, have not been upgraded or updated this year. A Gerrit upgrade was aborted in early 2019, and there are plans to resume the update in 2020 as Gerrit development is very active. Bugzilla has not seen a new major release since 2015. Although the current Gerrit+Bugzilla+Wiki forge is functional, Bugzilla and Wiki are showing their age, and the lack of integration between the tools makes them unappealing to new developers.&nbsp;</p>

<p>As part of both our efforts to modernize as well as our commitment to transition to be European-based, we are setting up an instance of GitLab for use by projects.&nbsp; This is expected to be operational in the summer of 2020, and is expected to serve as a longer-term home for projects desiring to be hosted at Eclipse, including to serve as a modern and integrated replacement for the current forge.</p>

<h3>GitHub</h3>

<p>As most new projects hosted at the Eclipse Foundation choose GitHub as their development platform, our webdev team has modernized and tightened the integration between Eclipse project teams and GitHub, enabling committers to have more control over their environment -- notably, adding the ability to assign issues to contributors.</p>

<p>Further streamlining was made to the document- and agreement-signing processes, allowing committers to sign agreements electronically via HelloSign.</p>

<h3>Common Build Infrastructure</h3>

<p>Our modest Kubernetes cluster, based on Red Hat OpenShift, has proven to be quite capable. Jiro -- our in-house Jenkins Instance Running on Openshift -- is now used by over 180 projects, with 194 Jenkins instances running on Kubernetes. Jiro&rsquo;s flexibility allows projects to select build images better suited to their needs and to attach external build agents running anything from Windows and Mac to Linux on Power and IBM AIX.</p>

<h3>Developers, Developers, Developers</h3>

<p>Eclipse&rsquo;s account database now sits at 492,000 accounts, with an average growth rate of over 2,500 new accounts each month.</p>
                
                
            </div>
		</div>
	</body>
</html>
