Project Plan For Target Communication Framework, version 1.0 (Juno)

Introduction

TCF (Target Communication Framework) is a vendor-neutral, lightweight, extensible network protocol mainly for communicating with embedded systems (targets). Applications of TCF include system discovery and configuration, file system browsing, process launching, debugging, data transfer, and more. On top of the protocol specification, which is the core of TCF, the project includes a plain-C implementation of a lightweight extendable target agent, Java client API (usable stand-alone or on top of Eclipse), Python and Lua client APIs, complete debugger UI implementation in Eclipse, integration with CDT, Target Explorer, documentation and usage examples.

Release Deliverables

The TCF project delivers the Java protocol framework and exemplary tools as Eclipse plugins in the form of a p2 repository, as well as an exemplary C agent, Python and Lua bindings in the form of source code available from the project's git repositories.

Table of Contents

Release Milestones

0.02007-10-25
Initial contribution
Initial contribution of code to the Eclipse TM project, followed by a presentation and tutorial at EclipseCon 2008.
0.12008-06-25
First release
Initial release with TM 3.0. Releasing core protocol documentation, initial Java framework, C agent and examples, RSE integration, and debugger integrations for CDT and TCF - all via the prject's SVN repository.
0.22009-06-25
0.2 release
Maintenance release with TM 3.1. 47 bugs fixed. Improvements to debugger integrations, and additions to debugger services API.
0.32010-06-23
0.3 release
Maintenance release with TM 3.2. 34 bugs fixed. Support zerocopy transfer, UDP discovery, Linux x86_64. Add version info to protocol specification.
0.42011-06-22
0.4 release (with CDT 8.0 / Indigo)
Integration into the CDT build and release together with CDT, building the basis of the EDC debugger in CDT as well as Linuxtools trace upload for LTTng. Adding Terminal service, disassembly, watchpoints. Initial addition of Python binding and Target Explorer. 81 bugs fixed.
1.02012-06-27
1.0 release
Graduation release. Namespace refactoring for 1.0, migration to git and Tycho, independent build and downloads. Promotion of Python binding and Target Explorer. Addition of Lua shell to agent. 196 bugs fixed.

Table of Contents

Target Environments

For release 1.0, the tools run with Eclipse 3.7 (Indigo) and related dependencies (CDT, TM/RSE). All tools have been tested on Eclipse 3.8 and 4.2 (Juno) as well. Our plug-ins require Java >= 6.0.
The exemplary C agent runs on Linux (full-featured) and Windows (with limitations in debugging) but has been ported to other operating systems successfully.
The tools aim to have all strings externalized so as to facilitate internationalization. Mapfiles have been submitted to the Eclipse Babel Project for translation.

Table of Contents

Compatibility with Previous Releases

TCF Protocol Compatibility: The TCF 1.0 protocol is binary compatible on the wire with previous releases. New features have been added in a discoverable fashion, extending older versions of the protocol.

API Compatibility: The 1.0 release is not compatible with previous 0.x releases due to a namespace refactoring. Moving forward, we intend to keep any changes API compatible.

Binary (plug-in) Compatibility: We have no binary compatibility issues to discuss for 1.0.

Source Compatibility: We have no source compatibility issues to discuss for 1.0.

Table of Contents

Themes and Priorities

The core theme of TCF 1.0 is making it ready for graduation.

API refactoring for 1.0

While the functionality of TCF API's has matured over the years, its namespace is not appropriate for graduation. TCF API should be refactored into its own TCF namespace for graduation.
  • Committed

    • terminals services is missing some of the APIs exported by Java [372341] (target milestone: 1.0.0)
    • runcontrol service interface lacks some APIs [379583] (target milestone: 1.0.0)
    • Need an extended set_errno() API to be able to use a formatted error messages. [351589] (target milestone: 0.4.0)
    • API: Source code refactoring for TCF version 1.0 [363391] (target milestone: 1.0.0)

Make Target Explorer ready for 1.0

The Target Explorer framework was initially contributed in March 2011 but not yet widely announced. Defect fixes and cleanup is necessary to make it ready for 1.0
  • Committed

    • [TERMINALS][Serial] Add serial line support [370524] (target milestone: 1.0.0)
    • [TCF][File system] Minor improvements to the properties dialog of a file. [361322] (target milestone: 1.0.0)
    • [TERMINALS] Add terminals quick launch button to the global toolbar [361354] (target milestone: 1.0.0)
    • [TERMINALS] Implement window size changes between host widget and remote terminal [361359] (target milestone: 1.0.0)
    • [TERMINALS] Implement "Pin&Clone" for the "Terminals" view [361363] (target milestone: 1.0.0)
    • [TCF][File system] Cannot refresh the file system tree content [361494] (target milestone: 1.0.0)
    • Request to write data into a file failed on Linux. [362763] (target milestone: 1.0.0)
    • [TERMINALS][TELNET] Add Telnet terminal support [366374] (target milestone: 1.0.0)
    • [TERMINALS] Add support for DND of terminal tabs between views [367481] (target milestone: 1.0.0)
    • [TCF] Need a way to perform operations "silently" [367644] (target milestone: 1.0.0)
    • [TCF][UI] Add refresh actions for the roots of the file system and the process list in Target Explorer. [368508] (target milestone: 1.0.0)
    • [TCF][File System] Cannot paste copied files to a root directory. [371031] (target milestone: 1.0.0)
    • [TCF][UI] Re-introduce "New Peer" wizard page [377479] (target milestone: 1.0.0)
    • [UI] Rename "My Targets" category and polish icons [377491] (target milestone: 1.0.0)
    • AssertionErrors in TraceHandler when shutting down IDE with debug session open [378411] (target milestone: 1.0.0)
    • [TERMINALS] Buffer lines preference value not applied [375636] (target milestone: 1.0.0)
    • TCF Discovery messages should include a hostname / agent name [365054] (target milestone: 1.0.0)
    • [UI] Allow dynamic new wizard contributions [368243] (target milestone: 1.0.0)
    • Cannot open a peer with Eclipse 4.2M5 [372810] (target milestone: 1.0.0)
    • CCE in FilterMRUContribution [374828] (target milestone: 1.0.0)
    • [UI] Eliminate the term "peer" from the UI [377848] (target milestone: 1.0.0)
    • [UI] Rename "Target Explorer" view [377856] (target milestone: 1.0.0)
    • [VIEW] Add support for working sets [354578] (target milestone: 1.0.0)
    • [TCF][Process] Add support for remote process launching [354580] (target milestone: 1.0.0)
    • [TCF][File system] Add more file operations in the file system of Target Explorer. [361324] (target milestone: 1.0.0)
    • [TCF][File System] Provide "New file" and "New folder" wizards in Target Explorer. [363410] (target milestone: 1.0.0)
    • [TCF][File system] Provide column sorting and column customization [365266] (target milestone: 1.0.0)
    • [TCF][Process] Provide column sorting and column customization [365268] (target milestone: 1.0.0)
    • [TCF][File system] Add filtering [365269] (target milestone: 1.0.0)
    • [TCF][Process] Add filtering [365270] (target milestone: 1.0.0)
    • [TCF][Process] Add target polling support [365271] (target milestone: 1.0.0)
    • [TCF][Process] TCF debugger integration [365273] (target milestone: 1.0.0)
    • [TCF][File System] Persist the state of the columns and filters of the file tree. [366497] (target milestone: 1.0.0)
    • [TCF][File System] Improvement over the tree viewer columns and filters. [366670] (target milestone: 1.0.0)
    • [TCF][File System] Add a global refresh action in the toolbar of the file system tab. [366671] (target milestone: 1.0.0)
    • [TCF][File System] Provide and configure viewer filters based on OS platforms. [366778] (target milestone: 1.0.0)
    • [TCF][File System] Cannot synchronize the file which is left open. [367151] (target milestone: 1.0.0)
    • [UI] Integrate with tabbed properties view [367265] (target milestone: 1.0.0)
    • [TCF][File System] Double-click the file system node under a TCF agent brings up an error dialog. [367288] (target milestone: 1.0.0)
    • [TCF][File System] The file tree in the new wizard is empty. [367289] (target milestone: 1.0.0)
    • [UI] Add "Show In" menu to Target Explorer tree context menu [367641] (target milestone: 1.0.0)
    • [TCF][Process] Hide thread of single thread processes [367645] (target milestone: 1.0.0)
    • [UI] Add "Go Into" navigation [367646] (target milestone: 1.0.0)
    • [TCF][File system] "Permissions" should be a separate properties tab [367845] (target milestone: 1.0.0)
    • [TCF][File system] File system tree not populated if queried through a proxy [367962] (target milestone: 1.0.0)
    • [TCF][Process] Enhancement requests about process monitor. [368321] (target milestone: 1.0.0)
    • [TCF][Process] Update Properties View when a process is attached or detached. [368501] (target milestone: 1.0.0)
    • [TCF][Process] Add a context menu to "Process Monitor" [368502] (target milestone: 1.0.0)
    • [TCF][Process]Manual refresh of a selected process node is missing in Target Explorer. [368507] (target milestone: 1.0.0)
    • [TCF][Process] Add Properties dialog for the process list in Target Explorer and Process Monitor. [368509] (target milestone: 1.0.0)
    • [TCF][UI] Wrong tree hierarchy displayed when going into the process list root. [368511] (target milestone: 1.0.0)
    • [TCF][File system] Rework "Refresh" contribution [368533] (target milestone: 1.0.0)
    • [TCF][Process] Rework "Refresh" contribution [368534] (target milestone: 1.0.0)
    • [TCF][UI] Implement the generic IDeleteHandlerDelegate and integrate it to File System. [368801] (target milestone: 1.0.0)
    • Trying to run a remote process, the target file system explorer never resumes [369658] (target milestone: 1.0.0)
    • [TCF][File System] The "File System" tab is missing in the properties editor. [370786] (target milestone: 1.0.0)
    • [TCF][File System] The tree to select a folder in the "New" wizard does not apply current viewer filters. [371033] (target milestone: 1.0.0)
    • [TCF][File System] Move the call to getParent in the dispatch thread in CommonViewerListener. [371036] (target milestone: 1.0.0)
    • [TCF][File System] Parse the format of a given TCF URL. [371571] (target milestone: 1.0.0)
    • [TCF][File system] Fail to open remote file [372083] (target milestone: 1.0.0)
    • [TCF][File system] Allow DnD from external programs [372084] (target milestone: 1.0.0)
    • [TCF][Process] "Terminate" action missing [372085] (target milestone: 1.0.0)
    • [TCF][Process] Running remote process fails [372388] (target milestone: 1.0.0)
    • [TCF][File System] Dragging directories from external programs to File System does not work! [372622] (target milestone: 1.0.0)
    • [TCF][Process] Launching a process ends with an IOException. [372630] (target milestone: 1.0.0)
    • [VIEW] Improve view filter selection [372631] (target milestone: 1.0.0)
    • [VIEW] Improve view content selection [372632] (target milestone: 1.0.0)
    • [TCF][Target] No target is listed when going into "Neighborhood" node. [372717] (target milestone: 1.0.0)
    • [TCF][File System] Spaces in path caused NullPointerException. [375021] (target milestone: 1.0.0)
    • [TCF] Need confirmation dialog for delete peer operation [375938] (target milestone: 1.0.0)
    • [UI] Target Explorer view does not remember the expanded nodes [375940] (target milestone: 1.0.0)
    • [UI] The coloring of the Target Explorer view decoration is wrong [375941] (target milestone: 1.0.0)
    • [TCF][File system] Split up plug-in o.e.tcf.te.tcf.filesystem [376062] (target milestone: 1.0.0)
    • [TCF][File system] Cleanup messages files after split [377851] (target milestone: 1.0.0)
    • [TCF][File System] The Image of disk drives on Windows is not right. [378215] (target milestone: 1.0.0)
    • [TCF][Process Monitor] Lots of AssertionFailedExceptions are thrown when viewing process properties. [378217] (target milestone: 1.0.0)
    • [TCF][UI] Add status icon on top of Target Explorer editor pages. [379667] (target milestone: 1.0.0)
    • [TCF][UI] Provide a filter to match entries users are interested in in Target Explorer view. [379782] (target milestone: 1.0.0)
    • [TCF][UI] Add "Select All" and "Deselect All" to the cutomization dialog for filters and contents. [379875] (target milestone: 1.0.0)
    • [TCF][UI] Add searching actions in Target Explorer, File System Explorer and Process Monitor. [380095] (target milestone: 1.0.0)
    • [TCF][File system] Decorate remote file system nodes with system icons [345386] (target milestone: 1.0.0)
    • [TCF][File system]Minor enhancements of the file system tree. [365540] (target milestone: 1.0.0)

Provide stand-alone builds and repository

TCF used to be developed as a component of other projects such as Target Management or CDT. For the 1.0 release, we need to make TCF build and downloadable stand-alone.
  • Committed

    • [releng] tcf hudson builds for 1.0 and master promote into the same location [381001] (target milestone: 1.0.0)

Support for Eclipse 3.8 workbench

Our primary platform for TCF 1.0 will be Eclipse 3.7 (Indigo), yet full test runs will be performed on Eclipse 3.8 and 4.2 and defects will be fixed as they are found. Thanks to Eclipse compatibility rules of engagement, our features will likely "Just Work" on a 3.8 base.

Eclipse 4.2

Our 1.0 release as a part of Juno will work on top of Eclipse 4.2. We expect to be using the compatibility layer almost exclusively and have no 4.2-specific API calls or functionality.

Table of Contents

Appendix

Table of Contents

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