blob: 4279cf0ff4c800a607b4ec709cdc86146cee2159 [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Orion</title>
</head>
<style>
dt {
display: list-item;
list-style-position:outside;
list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
margin-left:16px;
}
dd {
margin-left:25px;
margin-bottom:5px;
}
</style>
<body>
<p>The Orion project is a proposed open source project under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=eclipse">Eclipse Project</a>.</p>
<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the
<a href="https://dev.eclipse.org/mailman/listinfo/orion-dev">orion-dev mailing list</a>.</p>
<h2 id="background">Background</h2>
<p>
At EclipseCon 2008, the Eclipse project team demonstrated
a prototype of a web-based Eclipse. We decided back then that we were too early
and did not continue working on the prototype. The browser technology we have
today was not yet available, and there was little community interest in working on
browser based tools at that time. Since then, there has been an explosion of interest
in browser-based tools, with efforts both within and outside of the Eclipse community.
</p>
<p>
Many of these efforts aim to bring the desktop IDE experience directly into
the browser, in some cases even using cross-compilation to bring tools written in
Java directly to the web. In the Eclipse project we also put significant resources into
exploring this approach, with the SWT Browser Edition work in the e4 incubator.
</p>
<p>
We have come to the conclusion that these efforts are not the right direction for
browser-based tools. The performance and UI design characteristics of desktop
applications do not translate well to the browser. We have chosen instead to pursue
a quite different direction. The Orion code base is a completely new implementation,
focused on web technologies and principles. The idea is to make the web itself the
development environment, instead of trying to bring existing desktop IDE concepts to
the browser.
</p>
<h2 id="scope">Scope</h2>
<!--
All projects must have a well-defined scope. Describe, concisely, what
is in-scope and (optionally) what is out-of-scope. An Eclipse project
cannot have an open-ended scope.
-->
<p>
The Orion project's focus is creating components, services, and libraries for building web-based
development tools. This includes browser client infrastructure built using widely adopted web
technologies such as HTML, JavaScript, and CSS. Also included is server-side infrastructure
needed by such development tools. This includes infrastructure supporting file management, search,
user management, preferences, generic source control, compare, file history, editors, and user
interface widgets and controls required to build development tools.
</p>
<p>
Also of importance are the necessary tools to be able to self-host, i.e. to develop Orion
using Orion itself. We believe this feedback loop of being our own customer is critical
to us producing stable, high quality, and truly useful development tools. As such, tools
for specific web technologies used by Orion will be in scope for this project. This includes
development tools for programming JavaScript, HTML5, CSS, web site production and related technologies.
Orion will also produce source control integration tools as required for our development
purposes. Producing these exemplary tools will allow us to continuously evaluate the
quality and value of our framework components and libraries.
</p>
<h3 id="out-of-scope">Out of Scope</h3>
<p>It is not our intention to duplicate efforts underway in other Eclipse projects.
However, given the broad scope, there is potential overlap with other Eclipse community projects.
Where possible and practical, we will seek reuse and collaboration. In particular, stand-alone
desktop tooling written in Java, as provided by projects such as Web Tools, is out of
scope for Orion. We may write tools in Java for Orion's server component, but will seek
collaboration where possible to avoid duplication with efforts in other Eclipse projects.
</p>
<p>
Defining and publishing official standards will be out of scope for the Orion project. We
will instead adopt existing standards where appropriate. We will collaborate with standards bodies such
as IETF, W3C, OSLC, OpenSocial, and OAuth, as necessary to achieve our development tool goals.
</p>
<p>
Specific development tools, other than those required to build Orion itself,
are out of scope. However, we strongly encourage those interested in using Orion to build such
tools to consider proposing projects at Eclipse or Eclipse Labs to do so. The Orion project
will collaborate with any such project to ensure the Orion tooling infrastructure supports
their requirements.
</p>
<h2 id="description">Description</h2>
<p>
Orion's goal is to become an open tool integration platform for web-based software development.
The project's vision is to move software development to the web as a web experience, as opposed
to just cloning the desktop IDE experience in a browser. The project will produce
framework components and libraries for building browser-based software development
tools of all kinds. The project will define mechanisms and infrastructure supporting
integration of tools within a browser-based client. The project will provide client-side
APIs for accessing Orion components and services in the browser, and HTTP-based APIs for
integration of server-based tools.
</p>
<h2 id="why-eclipse">Why Eclipse?</h2>
<p>
Orion will make Eclipse a player in the rapidly growing domain of web-based
software development. Eclipse is renowned as a world leader in producing open
source software development tools, but is currently focused primarily on desktop
tools written in Java. This project will open Eclipse to a new community of software
developers, tool-smiths, and companies in the domain of browser-based application
development.
</p>
<p>
Orion will benefit from developing at Eclipse over alternatives such as Eclipse Labs.
In particular, Eclipse's high standard of IP control and strong governance will ensure
Orion can be deployed widely in commercial applications. We will also benefit from
using the Eclipse Foundation's hardware infrastructure for hosting not only our source
control, but also our live Orion development servers.
</p>
</p>
<h2 id="initial-contribution">Initial Contribution</h2>
<p>The initial contribution has been donated by IBM. The current code base has been
developed by a handful of developers over a few months. Orion has a fast and scalable
code editor that runs on all major desktop browsers. There is a client UI written
in JavaScript and HTML that has the following capabilities:
<ul>
<li>A navigator to browse, search, copy, move, delete, and bookmark files</li>
<li>A page for launching and managing sites used to test a web application developed with Orion</li>
<li>A page for launching JavaScript unit tests, and for viewing the test results.</li>
<li>A page for viewing and editing the user's profile (changing name, password, etc).</li>
<li>A JavaScript plugin and service registry for installing client-side extensions from different web sites.</li>
<li>Initial support for git: viewing git status, staging/unstaging changes, and performing commits.</li>
<li>A compare editor for viewing differences between individual files.</li>
</ul>
The contribution also includes a simple Orion server, providing the following functionality:
<ul>
<li>A service for creating and managing user workspaces.</li>
<li>Services for creating, editing, importing, and exporting files in user workspaces.</li>
<li>Full text indexing and search using Apache Solr/Lucene.</li>
<li>Services for Git operations using JGit.</li>
<li>Authentication and authorization infrastructure, including OpenID login and simple form login support.</li>
</ul>
</p>
<p>
All code in the initial contribution is authored by IBM employees and the copyright is held by IBM.
The initial contribution has the following third party dependencies. Unless otherwise noted,
third party dependencies are licensed under the Apache Software License 2.0.
<ul>
<li>Apache Solr 1.4, Lucene 2.9, and their prerequisite Apache components.</li>
<li>Dojo 1.5 (BSD License)</li>
<li>NekoHTML 0.9.5</li>
<li>openid4java 0.9.5</li>
<li>Open AJAX 2.0.3</li>
<li>org.json 1.0 (JSON Java API License)</li>
<li>SLF4J 1.6 (MIT license)</li>
</ul>
</p>
<h2 id="legal-issues">Legal Issues</h2>
<p>
The client portion of Orion will be distributed under both the Eclipse Distribution License
and the Eclipse Public License. We believe a BSD-style license is required for broad adoption
of Orion technology in the web community. The server portion of Orion will be
distributed under the Eclipse Public License.
</p>
<p>
Orion uses a subset of Dojo 1.5 that has been approved for use in Eclipse projects. The
full Dojo library has not been approved for use in Eclipse.
</p>
<h2 id="committers">Committers</h2>
<p>The following individuals are proposed as initial committers to the project:</p>
<dl>
<dt>Andrew Niefer, IBM</dt>
<dd>Andrew is contributing to Orion in the area of build support, JavaScript testing
infrastructure, and compression/optimization work to improve Orion performance.
</dd>
<dt>Boris Bokowski, IBM</dt>
<dd>Boris is co-leading the Orion effort at IBM, with focus on the vision, the overall architecture
and the client-side experience.</dd>
<dt>Felipe Heidrich, IBM</dt>
<dd>Felipe is contributing to the Orion editor.</dd>
<dt>John Arthorne, IBM</dt>
<dd>John is contributing to the Orion server with focus on the file
and workspace infrastructure, as well as overall Orion API and documentation.</dd>
<dt>Libing Wang, IBM</dt>
<dd>Libing is contributing to the Orion client, with focus on tooling infrastructure.</dd>
<dt>Malgorzata Janczarska, IBM</dt>
<dd>Malgorzata (Gosia) is contributing to the Orion client and server, with focus
on authentication, user management, and source control integration.</dd>
<dt>Mark Macdonald, IBM</dt>
<dd>Mark is contributing to the Orion client, with focus on tooling infrastructure.</dd>
<dt>Mike Wilson, IBM</dt>
<dd>Mike (McQ) is the Eclipse Project PMC lead, and is contributing to Orion
with focus on the project vision and overall architectural direction.</dd>
<dt>Nayna Jain, IBM</dt>
<dd>Nayna is contributing in the area of security and authentication infrastructure.</dd>
<dt>Silenio Quarti, IBM</dt>
<dd>Silenio is contributing to the orion editor.</dd>
<dt>Simon Kaegi, IBM</dt>
<dd>Simon is co-leading the Orion effort at IBM, with focus on project planning and component architecture details. </dd>
<dt>Susan McCourt, IBM</dt>
<dd>Susan is focusing on client-side development and user experience.</dd>
<dt>Szymon Brandys, IBM</dt>
<dd>Szymon is contributing to the Orion client and server, with focus
on authorization and source control integration.</dd>
<dt>Tomasz Zarna, IBM</dt>
<dd>Tomasz is contributing to the Orion client and server, with focus
on source control integration.</dd>
</dl>
<p>We welcome additional committers and contributions.</p>
<h2 id="mentors">Mentors</h2>
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Mike Milinkovich</li>
<li>Gunnar Wagenknecht</li>
</ul>
<h2 id="interested-parties">Interested Parties</h2>
<p>The following individuals, organisations, companies and projects have
expressed interest in this project:</p>
<ul>
<li>IBM</li>
<li>SAP</li>
<li>Jas Sandhu, Microsoft Interoperability Strategy</li>
<li>Siemens</li>
<li>GitHub</li>
<li>Nitobi</li>
<li>Set Direction</li>
<li>MDS</li>
<li>Mozilla</li>
</ul>
<h2 id="project-scheduling">Project Scheduling</h2>
<p>
We are aiming to produce an initial incubating release to coincide with the June 2011
Indigo release train.
<h2 id="changes">Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>8-April-2011</td>
<td>Document created</td>
</tr>
</table>
</body>
</html>