Project Plan For Orion, version 0.5

Introduction

Last revised 13:00 ET June 21, 2012.

Please send comments about this plan to the orion-dev@eclipse.org developer mailing list.

This document lays out the feature and API set for the next feature release of the Orion project after 0.4, designated release 0.5.

Plans do not materialize out of nowhere, nor are they entirely static. To ensure the planning process is transparent and open to the entire Eclipse community, we (the Orion project leadership) post plans in an embryonic form and revise them throughout the release cycle.

The first part of the plan deals with the important matters of release deliverables, release milestones, target operating environments, and release-to-release compatibility. These are all things that need to be clear for any release, even if no features were to change.

The remainder of the plan consists of plan items for components of the Orion project. Each plan item covers a feature or API that is to be added to the Orion project deliverables, or some aspect of the Orion project that is to be improved. Each plan item has its own entry in the Eclipse bugzilla database, with a title and a concise summary (usually a single paragraph) that explains the work item at a suitably high enough level so that everyone can readily understand what the work item is without having to understand the nitty-gritty detail.

Not all plan items represent the same amount of work; some may be quite large, others, quite small. Some plan items may involve work that is localized to a single component; others may involve coordinated changes to several components; other may pervade the entire project. Although some plan items are for work that is more pressing than others, the plan items appear in no particular order.

With the previous release as the starting point, this is the plan for how we will enhance and improve it. Fixing bugs, improving test coverage, documentation, examples, performance tuning, usability, etc. are considered routine ongoing maintenance activities and are not included in this plan unless they would also involve a significant change to the API or feature set, or involve a significant amount of work. The intent of the plan is to account for all interesting feature work.

The current status of each plan item is noted:

  • Committed plan item - A committed plan item is one that we have decided to address for the release.
  • Proposed plan item - A proposed plan item is one that we are considering addressing for the release. Although we are actively investigating it, we are not yet in a position to commit to it, or to say that we won't be able to address it. After due consideration, a proposal will either be committed or deferred.
  • Deferred plan item - A reasonable proposal that will not make it in to this release for some reason is marked as deferred with a brief note as to why it was deferred. Deferred plan items may resurface as committed plan items at a later point.

Release Deliverables

The release deliverables have the same form as previous releases, namely:

  • Source code release for all Orion project deliverables, available as versions tagged "R0_5" in the Orion project Git repositories.
  • Packaged Orion server download for Windows, Mac, and Linux
  • Hosted Orion beta server on http://orionhub.org

Table of Contents

Release Milestones

Release milestones will be occurring at roughly 6 week intervals, followed by a short end-game consisting of three release candidates.

M104/13/2012
0.5M1
M205/25/2012
0.5M2
RC106/08/2012
0.5RC1
RC206/15/2012
0.5RC2
RC306/22/2012
0.5RC3

A more detailed, milestone-level plan for the Orion project can be found on the Orion Milestone Plan wiki page.

Our target is to complete 0.5 in late June 2012, in concert with the Juno announcements. All release deliverables will be available for download as soon as the release has been tested and validated in the target operating configurations listed below.

Table of Contents

Target Environments

In order to remain current, each Orion project release targets reasonably current operating environments. We focus our testing on a handful of popular combinations of operating systems, Web browsers, and Java platforms; these are our reference platforms. Orion undoubtedly runs fine in many operating environments beyond the reference platforms we test. However, since we do not systematically test them we cannot vouch for them. Problems encountered when running Orion on a non-reference platform that cannot be recreated on any reference platform will be given lower priority than problems with running Orion on a reference platform.

Orion has two broad classes of target environments:

  1. Client target environments Indicates environments supported for end users of Orion-based web applications.
  2. Server target environments Indicates requirements for the platform where the Orion server is installed.

Most of the Orion client code is built on HTML5, CSS3, and ECMAScript 5 (JavaScript). As such, the chief dependence is on a web browser that supplies rendering and interpretation of these languages. In general, Orion requires the most recent major release of the major browsers it supports. Due to the fast pace of development in the browser world, supporting older browser versions is not a priority for Orion at this early stage of its development.

Orion 0.5 is tested and validated on the following reference client target environments:

Operating System Version Browsers
Windows 7 Chrome
Firefox
Internet Explorer 9.0
Red Hat Enterprise Linux 6 Chrome
Firefox
Apple Mac OS X 10.7.2 Safari 5.1.1

Most of the Orion server code is "pure" Java code and has no direct dependence on the underlying operating system. The chief dependence is therefore on the Java Platform itself. Portions are targeted to specific classes of operating environments, requiring their source code to only reference facilities available in particular class libraries (e.g. Java SE 5, Java SE 6, etc). In general, the 0.5 release of the Orion server is developed and tested on Java SE 6.

The Orion 0.5 server is tested and validated on the following reference server target environments:

Operating System Version Hardware JRE
Windows 7 x86 32-bit Oracle Java 6 Update 29
IBM Java 6 SR9 FP2
x86 64-bit
Red Hat Enterprise Linux 6 x86 32-bit Oracle Java 6 Update 29
IBM Java 6 SR9 FP2
x86 64-bit
Apple Mac OS X 10.7 Universal 64-bit Java for Mac OS X 10.7 Update 1

As stated above, we expect that Orion works fine on other current Java VM and OS versions but we cannot flag these as reference platforms without significant community support for testing them.

Internationalization

Orion cannot currently be used as the basis for internationalized products. One of the plan items for the 0.5 release is to continue the work into finalizing an internationalization framework and applying it to the user interface. Only English strings are in plan to be provided.

Table of Contents

Compatibility with Previous Releases

Compatibility of Release 0.5 with 0.4

Orion 0.5 offers no formal compatibility with Orion 0.4. While some plugins designed for Orion 0.4 may continue to function when installed in Orion 0.5, there may be changes to APIs and library functions used by the plugin that have changed in incompatible ways that prevent it from installing or operating properly.

Table of Contents

Themes and Priorities

The plan items listed below were defined according to contributor requirements and community feedback. Each plan item covers a feature or API that is to be added to the Orion project deliverables, or some aspect of the Orion project that is to be improved. Each plan item has its own entry in the Eclipse bugzilla database, with a title and a concise summary (usually a single paragraph) that explains the work item at a suitably high enough level so that everyone can readily understand what the work item entails.

Not all plan items represent the same amount of work; some may be quite large, others, quite small. Although some plan items are for work that is more pressing than others, the plan items appear in no particular order. See the corresponding bugzilla items for up-to-date status information on ongoing work and planned delivery milestones.

The current status of each plan item is noted:

  • Committed plan item - A committed plan item is one that we have decided to address for the release. In bugzilla, this is reflected by having a concrete target milestone assigned.
  • Proposed plan item - A proposed plan item is one that we are considering addressing for the release. Although we are actively investigating it, we are not yet in a position to commit to it, or to say that we won't be able to address it. After due consideration, a proposal will either be committed or deferred. In bugzilla, such items are reflected by having a target milestone "0.3" or "---" assigned.
  • Deferred plan item - A reasonable proposal that will not make it in to this release for some reason is marked as deferred with a brief note as to why it was deferred. Deferred plan items may resurface as committed plan items at a later point. In bugzilla, such items are reflected by having a target milestone "---" assigned.

Language Tooling

Orion 0.4 saw an increase in language tooling through the use of external components such as CodeMirror. Work has started on integrating Esprima into Orion for both syntax highlighting, outline views and potentially syntax checking. In addition through investigations on workflows, deeper support for Python, Ruby and PHP may be considered. The debug platform progressed in 0.4 and work will continue alongside the console investigations. Since work on Globalization has begun within Orion, it will be a focus to provide tooling to assist with JavaScript localization.

  • Committed
    • Esprima a component within Orion. This is awaiting the results of an Eclipse Foundation CQ. Use Esprima for JavaScript tooling such as syntax highlighting, outline, content assist and syntax checking where possible. [Client]
  • Proposed

    None at this time.

  • Deferred
    • Deeper integration between Orion editors and debug platform. Provide a link between setting and clearing breakpoints within the Orion editor and transitioning from debugger to editor. [Client]
    • CodeMirror a component within Orion. This is awaiting the results of an Eclipse Foundation CQ. Used for syntax highlighting numerous languages. This has proven difficult to get a CQ for [Client]
    • Need a JavaScript parser that can handle errors. The current parser cannot continue after encountering errors. This limits the flexibility on what can be done in the editor while the user is continually editing code. Leverage work done to make the Esprima parser capable of error recovery. Waiting on a newer version of Esprima before this code can be contributed into Orion [Client]

Platform

This theme includes currency with the existing 3rd party libraries used and providing existing and new core features that are modular.

  • Committed
    • Authentication integration with service registry Deferred from 0.4. [Client]
    • Cross Site and Cross Application visual elements Work on the method to both consume visual components within the Orion look and feel and also how to provide Orion trim plugins to external appliations to maintain consistent functionality across sites. This was worked on but can use more work [Client]
    • Command Line Console Investigate adding the GCLI command line framework, and using it for debug, git, and deployment commands. [Client]
    • Bidi support in Editor [Client]
    • Update our 3rd party libraries including DoJo, JSDoc and Solr [Client]
    • URI Templates Finalize the API, use consistently within Orion pages and document how to integrate using URI Templates. [Client]
    • Localization support Continue the localization of the Orion components. Utilize the work done within the Editor toward other Orion areas. Ensure there is a solution for localizing plugins. Work on tooling to assist developers in localizing their JavaScript applications. [Client]
    • Improved infrastructure for preferences Leverage the new settings page and layout to support additional preferences options for plugins. [Client, Server]
    • Accessibility Finalize the sweep of accessibility testing and document how developers test accessibility [Client]
  • Proposed
  • Deferred
    • Improve Task Support Sequenced tasks and extending the existing support for login notification to have a wider range of capabilities. [Client]
    • Improved specification for Plugin Model Plugin Model and Architecture for describing, identifying, discovering and installing. Support plugin catalogs via a feed as well as page redirection [Client]
    • Generic Mechanism for Cross-Page Communication Support notification across pages in a generic way, and use the support for updating Git pages when files or the Git repository are modified on other pages. [Client]

User Experience

In 0.4 there was signifiant work done to improve the look, feel and usibility of the UI. In 0.5 this effort will continue, focussing on cross site integration. In addition, several items were carried over from 0.4.

  • Committed
    • Improve workflow for accepting contributions from git repositories [Client]
    • Fix landing page (deferred from 0.4) [Client]
    • Unify look and feel of Git pages [Client]
    • Improve file upload workflow Including single files and drag and drop [Client][Server]
    • Searching improvements Advanced search (attributes, size, etc), phrase search and case insensitive file name search. [Client][Server]
  • Proposed

    None at this time.

  • Deferred
    • Investigate Gerrit review flow [Client]
    • Add support and UI for Git Stash, submodule support [Client][Server]

Infrastructure

This theme includes currency with the existing 3rd party libraries used and providing existing and new core features that are modular.

  • Committed

    None at this time.

  • Proposed

    None at this time.

  • Deferred
    • Improve the test coverage and capabilities. Investigate JavaScript code coverage tools to see if there are ways to report on the completeness of the current testing. [Releng]

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"