TM Future Planning

From Eclipsepedia

Jump to: navigation, search

Collect input for the planning process for RSE 2.0. Goals of this page are

  • Collect ideas and Requirements for RSE 2.0
  • Find out who needs what features
  • Find out who would be willing to work on what

As soon as a feature description is sufficiently clear and there is some group supporting a feature, Bugzilla entries should be used for tracking requests.

RSE 2.0 will be released with Eclipse 3.3 - presumably end of June 2007. See the Eclipse 3.3 draft plan and the Europa_Simultaneous_Release#Milestones_and_Release_Candidates. Rough timeline:

Planned Items

These items are currently planned to be added soon after the RSE 1.0 release. We are considering an RSE 1.1 service release in december, that would include the items below:

  • (Implementor: IBM) Add not-yet-ported features from RSE 7.0
    • User Actions, Compile Commands, Import/Export (12 person weeks, DD, plus some for testing)
  • (Implementor: WR) Integrate the Terminal View with RSE (in addition to the current Commands view) (152826)
    • Collaborate with WickedShell for further improvements (3 person weeks, MO)
  • (Implementor: Symbian) Add Autodetect as defined by the Autodetect group (140320, 142493)
  • (Implementor: IBM) Add encoding support for files that have different encodings than the platform default encodings. Also add encoding support for copy/paste of resources (163820).
    • (shouldn't be too huge)

Themes and Priorities

Our Themes and Priorities need to be aligned with the global and DSDP Requirements

  • (Theme: Better Platform) Adopt Platform Changes - RSE should adopt Eclipse Platform concepts wherever possible. For instance:
    • Move Commons Net packages into Orbit (needed for Europa)
    • Use Common Preferences for ssh and Proxy - Collaborate with Platform/Team on (119278)
    • Adopt the Commands framework with retargetable actions (e.g. for Properties)
    • Adopt ICU4J and Capabilities (needed for Europa)
    • Adoption of new Platform APIs from 3.2 -- these include field assist, SWT column sort indicators,etc. In 2.0, we should step up to the latest APIs, e.g. support Content Assist for Remote Search / Regular Expression field; use Eclipse IPath wherever possible for file path manipulations
    • Use existing Platform Extension Points for popup menus, property pages etc.
    • Improve drag&drop, copy&paste for Project Explorer, Package Explorer
    • TBD later:
      • Integrate Content Types / RSE File Types
      • Use Common Navigator for the Remote Systems View - Platform/Team Remote Explorer (138583)
  • (Theme: Growing Community) Make EFS work
    • important thing to have; 4 person weeks
    • EFS provider: Problem is SchedulingRules -- need to move the cache outside the workspace?
    • EFS browser: EFS contributions as RSE file services
    • Read-only flag handling in IFileService
    • Distinctions between RSE-files and EFS are: RSE is simpler, RSE is more target-fs-oriented (symlinks, permissions etc), RSE supports caching (EFS too?)
  • (Theme: Better Platform, Interest: WR) Improve SystemType flexibility
    • Allow contributors to disable SystemTypes (via capabilities; via enabler class)
    • Allow more dynamic icon decorators (connected/disconnected/others via decorator) (DaveM: have an error decorator somewhere)
    • Add "compatible" flag to extension point: e.g. special wizard for linux-over-HWDebug, but "compatible" with Linux
    • Register the wizard through the SystemType extension point, instead of separate extension point?
    • Extension point / API to add systemTypes dynamically?
    • New functionality needs to be compatible, OK with changing the syntax
  • (Theme: Eclipse Quality) Optimize APIs - Remove obsolete API. RSE APIs should be made smaller (less API, more internal) in order to make them easier to understand and maintain. Eliminate dead code. Clarify threading model.
    • e.g. asynchronous API (166338)
    • e.g. get rid of dynamicPopupMenuExtensions, popupMenus extension points - use Platform commands, expression language
    • e.g. propertyPages extension point - use Platform propertyPages?
    • e.g. get rid of systemtype extension point -- use systemType instead
    • e.g. get rid of ISubSystem.getProperties() and ISubSystem.setProperties()
    • e.g. get rid of performance logger
  • (Interest: WR) Further UI/Non-UI Refactoring - RSE code should be further refactored to split UI from non-UI parts. A Headless Eclipse should be able to perform Launches through RSE-provided services / subsystems.
    • Generalize and simplify the handling of "Shell" in RSE
    • Some more stuff should be migrated from UI to Core; do a little bit at a time?
    • See how much we can get done with (4 person weeks) effort - Kushal & DaveM, picking the most important items
  • Improve Support for File System Permissions
    • UI Tools for editing permissions
    • Maybe just make it possible to review permissions, IFileService.getPermissionsAsString()
    • IFileSystem support for read-only flag
  • (Interest: Symbian, WR) RSE should be more service-oriented (150498)
    • Services being grouped into a system
    • More dynamic enabling / disabling of subsystems / services based on availability
    • Allow Services (like a Registry) to be first-class objects, or hook them below Local?
    • Each SystemType to have a primary means of connection (defined by the wizard), plus additional registered optional services
    • Group system connections to logical units (multi-core / multi-system)
    • Owned by Javier (a matter of weeks)
  • (Theme: Facilitated On-Boarding) Improve the default Persistence Provider
    • Associate connections, profiles, filter pools etc. with projects
    • Store as normal XML files in the workspace, get rid of the RemoteSystemsConnections project (just like Launch Configs!)
      • This would potentially mean a radical change how filters, filter references and filter pools are handled; but seems to be more aligned with typical use cases, and be more usable
      • If we cannot get this to work, a workaround could be import / export wizards for connections and filters that write to / read from XML files in the workspace
    • Use fewer files for storage (improved performance, easier handling for checkin/checkout of team-shared data) - e.g. collapsing Property files by putting the current "directory" path into the Properties Key
    • Need to investigate more: want a specification for 2.0 even if we cannot implement it immediately (MartinO + DaveD)
    • Important to understand the long-term idea for user actions etc.

Items to be deferred beyond 2.0 due to lack of resources

  • (Interest: WR) Integrate improved Launching as defined by the Launching group
  • (Interest: WR) Define a standard for remote system properties as defined by the Spirit group (146090)
  • Add hooks for Lab Managers to integrate with RSE (checkin / check out target boards, discover target boards)
  • Re-think RSE SystemMessages: Do we need XML when we have Eclipse NLS / Java MessageFormat?
    • E.g. DStore_Service_Percent_Complete_Message -- multiple transformations for substitution
  • (Interest: IBM,WR) Improve Shell Pattern Matching on the client
    • Allow user-defined patterns (153274)
    • Provide an extension point for patterns but not let the user edit them
    • Server-side patterns vs. client-side patterns, want to have them consistent
      • Server-side file can be modified by the users, located in dstore daemon
      • Client-side patterns buried inside the jarfile --> copy it out of JAR into preferences on first start, allow users to modify through Preferences
  • (Interest: WR) Add Multicore / Multisystem capabilities to the RSE Tree
    • Support target groups as defined by the Connection Groups initiative
    • Filters on 1st level of System View (164807)
    • View for working with multiple shells concurrently exists
    • Right now we have grouping by profiles
    • Cluster definitions should be something different (being stored inside a profile)
    • Requirements currently unclear; instead of hacking up something wrong, better have no solution
    • PTP might come up with requirements