Orion

The project has been created.

Orion

The Orion project is a proposed open source project under the Eclipse Project.

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 orion-dev mailing list.

Background

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.

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.

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.

Scope

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.

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.

Out of Scope

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.

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.

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.

Description

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.

Why Eclipse?

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.

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.

Initial Contribution

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:

  • A navigator to browse, search, copy, move, delete, and bookmark files
  • A page for launching and managing sites used to test a web application developed with Orion
  • A page for launching JavaScript unit tests, and for viewing the test results.
  • A page for viewing and editing the user's profile (changing name, password, etc).
  • A JavaScript plugin and service registry for installing client-side extensions from different web sites.
  • Initial support for git: viewing git status, staging/unstaging changes, and performing commits.
  • A compare editor for viewing differences between individual files.
The contribution also includes a simple Orion server, providing the following functionality:
  • A service for creating and managing user workspaces.
  • Services for creating, editing, importing, and exporting files in user workspaces.
  • Full text indexing and search using Apache Solr/Lucene.
  • Services for Git operations using JGit.
  • Authentication and authorization infrastructure, including OpenID login and simple form login support.

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.

  • Apache Solr 1.4, Lucene 2.9, and their prerequisite Apache components.
  • Dojo 1.5 (BSD License)
  • NekoHTML 0.9.5
  • openid4java 0.9.5
  • Open AJAX 2.0.3
  • org.json 1.0 (JSON Java API License)
  • SLF4J 1.6 (MIT license)

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.

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.

Committers

The following individuals are proposed as initial committers to the project:

Andrew Niefer, IBM
Andrew is contributing to Orion in the area of build support, JavaScript testing infrastructure, and compression/optimization work to improve Orion performance.
Boris Bokowski, IBM
Boris is co-leading the Orion effort at IBM, with focus on the vision, the overall architecture and the client-side experience.
Felipe Heidrich, IBM
Felipe is contributing to the Orion editor.
John Arthorne, IBM
John is contributing to the Orion server with focus on the file and workspace infrastructure, as well as overall Orion API and documentation.
Libing Wang, IBM
Libing is contributing to the Orion client, with focus on tooling infrastructure.
Malgorzata Janczarska, IBM
Malgorzata (Gosia) is contributing to the Orion client and server, with focus on authentication, user management, and source control integration.
Mark Macdonald, IBM
Mark is contributing to the Orion client, with focus on tooling infrastructure.
Mike Wilson, IBM
Mike (McQ) is the Eclipse Project PMC lead, and is contributing to Orion with focus on the project vision and overall architectural direction.
Nayna Jain, IBM
Nayna is contributing in the area of security and authentication infrastructure.
Silenio Quarti, IBM
Silenio is contributing to the orion editor.
Simon Kaegi, IBM
Simon is co-leading the Orion effort at IBM, with focus on project planning and component architecture details.
Susan McCourt, IBM
Susan is focusing on client-side development and user experience.
Szymon Brandys, IBM
Szymon is contributing to the Orion client and server, with focus on authorization and source control integration.
Tomasz Zarna, IBM
Tomasz is contributing to the Orion client and server, with focus on source control integration.

We welcome additional committers and contributions.

Mentors

The following Architecture Council members will mentor this project:

  • Mike Milinkovich
  • Gunnar Wagenknecht

Interested Parties

The following individuals, organisations, companies and projects have expressed interest in this project:

  • IBM
  • SAP
  • Jas Sandhu, Microsoft Interoperability Strategy
  • Siemens
  • GitHub
  • Nitobi
  • Set Direction
  • MDS
  • Mozilla

Project Scheduling

We are aiming to produce an initial incubating release to coincide with the June 2011 Indigo release train.

Changes to this Document

Date Change
8-April-2011 Document created