| <!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> |