Eclipse integration

= Maemo Eclipse Integration 2nd Edition features for each prerelease =

These feature lists roughly correspond to backlog items, but are intended to be a more high-level summaries of goals for the releases (actual planning, division of stories for sprints, resource allocation, etc. is not the goal).

Latest public releases are:
 * Beta 2 release, Release Notes, Known Issues
 * Beta 1 release, Release Notes, Known Issues
 * Alpha 2 release, Release Notes

Detailed plans for each product can be found from their Garage project pages.

Maemo Eclipse Integration 2nd Edition project plans to release several prereleases

 * With Alpha 1 release middle of November 2008 true development process for all Maemo Eclipse Integration components started with Garage open source projects using agile development process
 * With Alpha 2 release end of February 2009 a lot of new features were added to the Maemo Eclipse Integration components. Initial support for Windows host PC was implemented. All but Maemo Mica Eclipse plugin framework products were released in Maemo Garage. Mica framework will be release in future when framework will be stable enough to be usable also for other than just ESbox and Pluthon Maemo Eclipse plugin development
 * With Beta 1 release (week 21 middle of May) major upgrades for many generic Eclipse components were introduced, a lot of new functionality of all components were implemented, good support for Windows host PCs and initial support for Mac OS X host PCs were introduced for PC Connectivity, Mica Eclipse plugin framework was released as separate product, first integration effort to support Fremantle development environment was done, SDK Virtual Images were updated to Ubuntu Intrepid level.
 * With Beta 2 release (week 27 beginning of July) usable support for Fremantle development environment, good support for Mac OS X for Maemo PC Connectivity, Mica plugin framework refactored and cleaned up, Maemo Flasher-3.5 beta Tools released and integrated to Eclipse, localization support added to the ESbox, first Windows and Mac OS X configuration tools for PC Connectivity released, a lot of stability fixes for existing components and also some new functionality.
 * With Prefinal release (week 37 middle of September) much improved support for Fremantle SDK development environment and new N900 device, improved support for Windows and Mac OS X as host PC, Mica plugin framework ready for third party plugin development, more automatic configuration of host PC for PC Connectivity using ZeroConf (Avahi and DHCP), Samba support to enable disk mounts between Maemo device and Windows host PCs, Eclipse installation wizard for automated SDK Virtual Image installation, a lot of stability fixes for existing components.

Maemo Eclipse Integration release versioning schema for Eclipse plugins
Eclipse Integration project, version numbers for plugin releases are composed of four (4) segments: 3 integers and a string respectively named major.minor.service.qualifier. The page  describes guidelines for the first three segments, which relate to API promises in official supported releases. These rules do not apply to intermediate builds, however, so we will hold the major.minor.service segments at "2.0.0", indicating an API break from Eclipse Integration v1.

Based on this, we will follow this convention in the whole version number:


 * "R " indicates fully tested and stable official release, released according to the following schedule.
 * " M or I or N" indicates that release is not fully tested official release but some prerelease.

The page  describes, somewhat roughly, the versioning of intermediate releases. Based on this, we will follow this convention in the qualifier segment:


 * "M " indicates milestones, which are integration tested and stable, released according to the following schedule.
 * "I " indicates integration builds, which are developer tested, released every two weeks as sprint artifacts.
 * "N ", if used, indicates nightly builds, which are untested and unstable.

Eclipse Integration Subprojects

 * ESbox project: http://esbox.garage.maemo.org/
 * Pluthon project: http://pluthon.garage.maemo.org/
 * Mica project: http://mica.garage.maemo.org/
 * PC Connectivity project: http://pc-connectivity.garage.maemo.org/
 * SDK Virtual Image project: http://maemovmware.garage.maemo.org/
 * Maemo Flasher-3.5 Tools (no Garage project because flasher is closed binary)

New features planned for Prefinal release (2.0.0M6, wk36)
Prefinal release will be available from Garage projects and maemo repositories and it will make the first Release Candidate for final release.

Notice especially that this Prefinal release will also replace old Eclipse Integration Edition 1 release meaning that support for Edition 1 will be discontinued and Edition 1 deliverables or documentation will not be available anymore.

Eclipse Integration components now support the latest Debian based Linuxes, Windows XP SP3, Windows Vista SP1 and Mac OS X 10.5 Leopard all with x86/32bit architectures.

Support for other than above listed operating systems has not been tested but should be possible if chosen operating system supports Eclipse IDE, if similar functionality for Host PC Connectivity is available for that operating system (for example most Linuxes like RedHat should have that) and if operating system is able to run Maemo SDK Virtual Image (in practice supports either QEmu, VMWare or VirtualBox).

Product infrastructure

 * Support for Eclipse Integration Edition 1 discontinued for Diablo
 * Support for earlier Ubuntu Gutsy and Hardy based SDK Virtual Images discontinued
 * All documentation in maemo.org and Garage projects updated to Edition 2 level
 * Maemo PC Connectivity components released in Frementle extras-devel repository
 * Maemo PC Connectivity components released in Diablo extras-devel repository
 * Eclipse components
 * released from ESBox and Pluthon Garage projects as full installation (including also Eclipse 3.4.2 IDE)
 * released from Maemo Eclipse update P2 site as update to Beta 2

Product configuration

 * Diablo 4.1.2 SDK and platform image used as base
 * Fremantle 5.0 SDK Beta 2 and platform image used as base
 * Latest Cygwin 1.5.25-15 as base for Windows porting framework
 * Latest MacPorts 1.9.0 as base for Mac OS X porting framework
 * Maemo Flasher-3.5 Tool Betas for Linux, Windows XP/Vista (x86/32-bit) and Mac OS X (x86 and PPC/32-bit)

Maemo Mica plugin framework

 * pyDev component upgraded to the latest stable release
 * Package manager cleanup
 * Unify project package installer and machine package installer
 * Split out gathering of required packages to a separate step (and a separate page in the project package installer wizard)
 * Provide list of (package manager, package, repository) tuples to package installer engine
 * Have Scratcbox 1 installers just start with the list of tuples above
 * Improve localization support for C/C++ and Python application development

Maemo ESBox plugin for Eclipse

 * Using trace tool (ltrace) with SDK and Tablet for a process can be done online with Eclipse IDE
 * setting up trace environment and starting and stoping tracing is easy
 * viewing trace date online from Tablet is possible through VNC
 * viewing trace data online from SDK is possible
 * Hover help integrated for online and local documentation
 * Integration to Maemo Fremantle C/C++ and Python documentation (API docs and Reference Manual)

Maemo Pluthon plugin for Eclipse

 * Hover help integrated for online and local documentation
 * Integration to pyMaemo Fremantle documentation (API docs and tutorial)

Maemo PC Connectivity

 * Support for restoring host PC specific environment
 * possibility to automatically restore previous environment triggered by connection establishment
 * when connection to host PC is restored also previously configured environment is restored
 * if host PC specific environment configuration is not available default environment is created e.g. disk mounts restored, sbrsh connections started, ...
 * Notice this requires also some support on host PC side to restore PC side environment.
 * Support for easily configurable connections and environment on host PC
 * autoimatically configure USB, BT and WLAN connections on host PC using DHCP server from Maemo device
 * configuration tool or script available for host PC so that there is no need to manual configuration after installation
 * configuration scripts available for all supported operating systems on host PC
 * configuration scripts work together with Maemo device services and configuration applets to setup and test connectivity
 * Support for IP forwarding between Maemo device and host PC
 * Maemo device can use public network through host PC
 * host PC can use public network through Maemo device
 * Support to use rsync
 * to backup Maemo device to the host PC (as new backup method in addition to using osso_backup program)
 * to copy large files between host PC and Maemo device
 * Support to localize PC Connectivity UI components
 * configuration applets in Maemo Device and configuration tools in host PC

Maemo SDK Virtual Image

 * Provide installation of official VMWare Tools as productivity enhancement tools for Ubuntu Desktop image for VMWare Player instead of OpenVMTools (if agreed to be ok with VMWare legal)
 * Document how Eclipse Integration Beta 2 version installed to the Desktop and Server images can be updated to Prefinal level
 * No new images created for Prefinal release but old images updatable by users

Integration testing

 * General stability improvements verified
 * if network connection between Maemo device and host PC gets broken system recovers itself when connection is re-established
 * if download or installation from maemo.org resources gets interrupted system cleans up and allows user to retry
 * if update of our own Eclipse components gets interrupted (any reason) from our update site system cleans up and restores latest stanble environment
 * if erros happen in SDK operations like with building with autotools, package creation etc system recovers from those and gives "usable" error messages
 * usage of features "unplanned" way either works as expected or gives proper error message
 * First draft for Maemo Eclipse Test Guide available for Eclipse components
 * explains how automatic build environment is linked to product development
 * explains how Eclipse unit tests can be implemented and run with automatic build system
 * explains how automatice unit test results are published
 * explains how integration testing is linked to product development
 * explains how integration testing is done and what tools are used
 * explains how test case management and test result publishing are done
 * explains what publically available test sets and related tools are used
 * explains what Maemo specific testing is done

THESE FEATURES FOR RELEASED PRODUCTS ARE HERE ONLY FOR DOCUMENTATION PURPOSES

New features in Beta 2 release (2.0.0M5, wk27 2009)
Eclipse Integration 2nd Edition Beta 2 Release Notes and Known Issues

Product infrastructure

 * Front pages in Garage projects updated to Edition 2 level
 * Support for old Ubuntu Hardy and Gutsy Maemo SDK Virtual Images discontinued
 * Beta 2 Maemo PC Connectivity components have been released in Frementle extras-devel repository
 * Beta 2 Maemo PC Connectivity components have been released in Diablo extras-devel
 * Beta 2 Eclipse components
 * released from ESBox and Pluthon Garage projects as full installation (including also Eclipse 3.4.2 IDE)
 * released from Maemo Eclipse update P2 site as update to Beta 1

Product configuration

 * Diablo 4.1.2 SDK and platform image used as base
 * Latest Fremantle Beta SDK and platform image used as base
 * Latest Cygwin 1.5.25-15 as base for Windows porting framework
 * Latest MacPorts 1.7.1 as base for Mac OS X porting framework
 * Maemo Flasher-3.5 Tools for Linux, Windows XP/Vista and Mac OS X

Maemo Mica plugin framework

 * Generalization of Mica framework to support better other than just ESBox and Pluthon plugins
 * general refactoring and cleanup for Mica
 * Maemo Flasher-3.5 Tool Beta
 * support to install flasher-3.5 beta tools automatically
 * flasher wizard support for flasher-3.5 beta
 * ESBox is able to warn user if current Maemo device connected to the host PC is NOT compatible with enabled Maemo SDK target
 * Eclipse Integration supports localization of developed components and applications
 * localization support is available for C/C++ programming languages
 * Remove IP address-based launch configuration
 * https://garage.maemo.org/tracker/index.php?func=detail&aid=3387&group_id=799&atid=2996
 * Improve SSH exchange keys support for SBRSH
 * https://garage.maemo.org/tracker/index.php?func=detail&aid=3827&group_id=799&atid=2996

Maemo ESBox plugin for Eclipse

 * Improvements to the OProfile and Valgrind integration
 * Support for Maemo Flasher-3.5 Beta Tool for Linux, Windows and Mac OS X
 * Externalize Strings wizard improvements for C/C++
 * Externalize Strings wizard improvements for Python
 * Updates for ESbox help

Maemo Pluthon plugin for Eclipse

 * More code templates for PluThon (with GTK, multimedia, d-bus, hildon widgets, ...)
 * Support for Maemo Flasher-3.5 Beta Tool for Linux, Windows and Mac OS X
 * Improved method to generate Debian packages on device
 * Uninstallation of generated Python Debian packages is now supported
 * Externalize Strings wizard improvements for Python
 * Updates for Pluthon help
 * Updataed pyMaemo tutorial and manual for Fremantle (http://pymaemo.garage.maemo.org/documentation_fremantle.html)

Maemo PC Connectivity

 * Support for easily configurable connections and environment on host PC
 * Windows tool to configure USB networking connection added
 * Mac OS X tool to configure BT connection added
 * manual configuration editing configuration files directly is possible
 * Host PC connectivity installation is done using installation script or tool
 * for Linux, Windows, Mac OS X host PCs there is an installation package that can be used to install Maemo PC Connectivity to the host PC
 * PC Connectivity environment settings in Maemo device can be backed up with osso-backup application (for example before reflashing Maemo device)

Maemo SDK Virtual Image

 * Productivity enhancement tools (Open VM Tools for VMWare and GuestAdditions for VirtualBox) can be installed manually also for Beta 1 level Ubuntu Server based Maemo SDK virtual Image
 * Beta 1 level Ubuntu Desktop based Maemo SDK virtual Image can be upgraded to Beta 2 level. See instructions from here http://maemovmware.garage.maemo.org/2nd_edition/update_maemo_vm.html

Integration testing

 * General product stability issues verified after refactorization of Mica, ESBox and PluThon was done
 * General product stability issues verified after support for Fremantle SDK environment was added
 * General product stability issues verified after support for Fremantle PC Connectivity was added

New features in Beta 1 release (2.0.0M4, wk21 2009)
Notice: Maemo Eclipse Integration 2nd Edition Beta 1 release includes final versions of standard Eclipse components that will be released also with final Eclipse Integration release.

Maemo Mica plugin framework

 * Update Eclipse IDE baseline components to Eclipse Ganymede SR2
 * Update pyDev, CDT, RSE, DSF and EMF components to the latest stable versions
 * Add Scratchbox 1 installer wizard and SDK installer wizard
 * Support for both Diablo and Fremantle SDK
 * Support SBRSH in sandboxless mode
 * Better SBRSH configuration UI
 * Flasher wizard for flashing Internet Tablet from Eclipse IDE
 * Support for P2 update site for Mica
 * Mica Garage site released for 2nd Edition

Maemo ESBox plugin for Eclipse

 * Provide one-time warning to users that running/debugging in SDK ARM rootstraps is not well-supported.
 * Support for Linux and Win32 host PC official and documented
 * Initial support for Mac OS X host PC (works and documented but not fully tested)
 * Full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X
 * Keep up with Scratchbox 2 changes
 * ESbox Garage site has separate Beta 1 documentation
 * Support for both Diablo and Fremantle SDK
 * Import Eclipse projects from Maemo SDK and Debian packages
 * C/C++ debug/optimized configuration support
 * Shared library debugging improvements
 * Python interpreter configuration improvements (support for Scratchbox and Tablets)
 * Support for P2 update site for ESbox
 * Installation wizard for Scratchbox, Diablo SDK and Fremantle SDK
 * SDK Virtual Image configuration improvements (like Eclipse installation wizard for Windows and Mac OS X for maemo SDK environments)

Maemo Pluthon plugin for Eclipse

 * Support for Linux and Win32 host PC official and documented
 * Initial support for Mac OS X host PC (works and documented but not fully tested)
 * Full connectivity support for Internet Tablet with SSH, RSE and SBRSH from Linux, Windows and Mac OS X
 * Pluthon Garage site has separate Beta 1 documentation
 * Support SBRSH natively on Linux, Win32 ans Mac OS X host PCs
 * Update to use the latest stable version 1.4.4 of PyDev component
 * Support for P2 update site for Pluthon
 * Installation wizard to setup Python development environment for host PC and Internet Tablet

Maemo PC Connectivity

 * Support for Linux, Win32 host PC official and documented
 * Initial support for Mac OS X host PC (works and documented but not fully tested)
 * Initial support for maemo porting framework with Cygwin
 * Full connectivity support with USB, BlueTooth and WLAN for Linux, Windows and Mac OS X
 * Full ssh, sftp, vnc and disk mount support for Linux, Windows and Mac OS X host PCs
 * Support for both Diablo and Fremantle SDK
 * Initial Fremantle/Diablo flasher support for Linux
 * Full support for VNC clients (native and Eclipse VNC plugin support)
 * Full support for Internet Tablet configuration with control panel applet and status bar plugin
 * Native SBRSH support for Linux, Win32 and Mac OS X
 * SBRSH to support session based sandbox option
 * SFTP support to access Internet Tablet file system with native host PC GUI clients
 * Support for Maemo SDK CPU Transparency mode
 * Support for installing Host PC Connectivity components for Linux, Win32 and Mac OS X host PCs
 * Support for configuring Host PC Connectivity components for Linux, Win32 and Mac OS X host PCs
 * Improved documentation for installing and configuring Host PC Connectivity on Linux, Win32 and Mac OS X host PCs
 * Tablet configuration applet allows easy configuration of sbrsh, vnc, unfs3, etc.
 * Tablet configuration applet supports several configuration environments that store configuration information for many services and connection types
 * Status bar plugin can be used to easily switch between predefined environments

Maemo SDK Virtual Image

 * Ubuntu Intrepid Server based Maemo SDK Virtual Image for Linux, Windows and Mac OS X
 * Provide full support for VMWare and QEMU virtualization technologies
 * Provide do-it-yourself support for VirtualBox
 * Server image includes just basic Ubuntu Intrepid Server and Host PC Connectivity environment prefonfigured and Maemo Diablo and Fremantle Development Environments can be installed with Eclipse installation wizard automatically
 * Ubuntu Intrepid Desktop based Maemo SDK Virtual Image for Linux, Windows and Mac OS X
 * Provide out-of-the-box ready Ubuntu Intrepid Desktop based image
 * Desktop image includes fully configured Maemo Diablo Development Environment and Fremantle Development Environment can be installed with Eclipse installation wizard automatically
 * Desktop image includes installers for GuestAdditions (for VirtualBox) and OpenVMTools (for VMWare)
 * Installer/tool to configure Maemo SDK Virtual Images for VirtualBox usage
 * Separate Beta 1 documentation for SDK Virtual Images on Garage site

Alpha 3 release was skipped (2.0.0M3, wk14 2009)
Notice: Maemo Eclipse Integration 2nd Edition Alpha 3 release was optional. Plan was that Alpha 3 release will be done but published (and announced) only if the quality level is good enough (equal or better than for Alpha 2). Because many basic Eclipse components (like Eclipse IDE itself, CDT, RSE, pyDev etc) were updated for Alpha 3 release it was not possible to have good enough quality for this release in given time schedule (about one month between Alpha 2 and Alpha 3 releases) and project decided to skip Alpha 3 release and target to have first Beta release out with good quality and with final versions of standard Eclipse components (no more major version updates for final). Beta 1 release planned for week 20 is not optional :).

New features in Alpha 2 release (2.0.0M2, wk09 2009)
Eclipse Integration 2nd Edition Alpha 2 Release Notes

Maemo Mica plugin framework

 * Be able to detect the platform installed on a device
 * Support installing packages and update repositories to device in a synchronized way (integration to apt-tools)
 * Autoconfigure Python Interpreter preferences
 * Better Python launch shortcut behavior (launch from project, send all files)
 * Improved SSH and RSE support (reduced password dialogs)
 * Initial support for VNC client
 * Automatically generate Debian structure for projects
 * All template projects can build Debian packages
 * Better support for mixed ESbox/PluThon targeting

Maemo ESBox plugin for Eclipse

 * Initial support for Windows hosting using VMware and QEMU virtual machines for maemo SDK
 * Support importing projects from apt repositories
 * Support installing packages and update repositories to Scratchbox in a synchronized way (integration to apt-tools)
 * Initial support for running/debugging with shared libraries with DSF
 * Initial support for SBRSH autoconfiguration with an "Exchange keys" button in SBRSH launch configurations
 * Initial C/C++ shared library template project
 * Initial integration to the latest Scratchbox 2 stable release
 * Fix issues with templates that need doctools support by automatically adding it to Scratchbox 1 devkits

Maemo Pluthon plugin for Eclipse

 * Prototype level support for Windows host PC
 * Integration with RSE, instead of custom SSH Connections
 * Better support for copying/running/tracing/debugging Python applications on Tablet

Maemo PC Connectivity

 * Prototype level support running sbrsh natively on Mac OS X or Windows host PC (verify if this can be done)
 * Support for following connectivity types, USB Networking, Bluetooth and Wlan
 * First version of Network Manager applet (no full functinality)
 * First version of Network Switcher status bar plugin (no full functionality)
 * Initial support for normal and advanced user modes (different UIs for modes) for configuration tools
 * Initial tools and scripts for host PC installation and configuration (for all supported operating systems)
 * VNC support for Linux and SDK virtual image
 * X-tunneling support for Linux and SDK virtual image

New features for Alpha 1 release (2.0.0M1, wk46 2008), released
Both ESBox and Pluthon plugin architecture was restructured to use common Maemo Eclipse plugin framework called Mica (Maemo Integration Common Architecture)

There were no changes with Alpha 1 release to these products:
 * Maemo PC Connectivity 1st Edition
 * Maemo SDK Virtual Image
 * Maemo C++ and Python programming language support

Maemo ESBox plugin for Eclipse

 * Architecture of plugin was restructured to support Mica plugin framework
 * New C/C++ and Python project wizards will automatically install missing build/runtime dependencies in Scratchbox
 * Eclipse DSF debugger framework integration
 * New template engine and wizard for C/C++ and Python
 * Build configurations support, there is a one-to-one mapping from build target to build configuration
 * Autotools files editing ,you can edit *.ac, *.m4, and *.am files with the editor provided
 * Eclipse TM/RSE framework integration with features such as remote file system explorer, remote process viewer, remote shell and terminal to the Internet Tablet
 * New download method Copy via RSE (in addition to Copy via SSH and Mount via SBRSH) is added for Maemo Remote Application launch configuration
 * Full product build which allows user to get all requried Eclipse components by downloading and installing just one distribution package
 * Some bug fixes

Maemo Pluthon plugin for Eclipse

 * Architecture of plugin was restructured to support Mica plugin framework
 * New template engine and wizard for Python
 * It is possible to select what files you want to upload to the Internet Tablet
 * Build configurations support, there is a one-to-one mapping from build target to build configuration
 * Python debugger now stops on the breakpoints of source code
 * Full product build which allows user to get all requried Eclipse components by downloading and installing just one distribution package
 * Some bug fixes