blob: fe5d6e9504ea0a6d4c075dc4ce4d79d551bb43b8 [file] [log] [blame]
<?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
#*****************************************************************************
#
# template.php
#
# Author: Denis Roy
# Date: 2005-06-16
#
# Description: Type your page comments here - these are not sent to the browser
#
#
#****************************************************************************
#
# Begin: page-specific settings. Change these.
$pageTitle = "DLTK 0.7 Project Plan";
$pageKeywords = "dltk, tcl, languages, eclipse, ide";
$pageAuthor = "Andrey Platov";
# Add page-specific Nav bars here
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# $Nav->addNavSeparator("My Page Links", "downloads.php");
# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
# End: page-specific settings
#
include("_sideIncubator.php");
# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML
<div id="maincontent">
<div id="midcolumn">
<h1>$pageTitle</h1>
<p>This document lays out feature and API set for DLTK release 0.7.</p>
<p>The first part of the plan deals with the important matters of release deliverables, release milestones, target operating environments. These are all things that need to be clear for any release, even if no features were to change.</p>
<p>With the DLTK source code 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. </p>
<p>The current status of each plan item is noted: </p>
<ul>
<li>Committed plan item - A committed plan item is one that we have decided to address for the release. </li>
<li>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. </li>
<li>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.</li>
</ul>
<h2>Release deliverables</h2>
<p>The release deliverables:</p>
<ul>
<li>Source code release for all DLTK project deliverables, available as versions tagged <strong>R0_7</strong> in the DLTK Project CVS repository.</li>
<li>DLTK Core (runtime binary and sources) (downloadable)</li>
<li>DLTK TCL (runtime binary and source) (downloadable)</li>
</ul>
<h2>Release milestones</h2>
<ul>
<li>DLTK 0.7M1 - August 29, 2006.</li>
<li>DLTK 0.7M2 - September 26, 2006.</li>
<li>DLTK 0.7M3 - October 24, 2006.</li>
<li>DLTK 0.7M4 - November 28, 2006.</li>
<li>DLTK 0.7M5 - December 25, 2006.</li>
<li>DLTK 0.7RC1 - January 19, 2007.</li>
<li>DLTK 0.7 - February 2, 2007.</li>
</ul>
<h3>Target Operating Environments</h3>
<p>In order to remain current, each DLTK release targets reasonably current operating environments. </p>
<p>Most of the DLTK 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 of the DLTK TCL( including TCL Debugger, Console, Launching, etc ) are targeted to specific classes of operating environment, requiring their source code to only reference facilities available in particular class libraries( e.g TCL Interpreter, etc ).</p>
<p>There are many different implementations of the Java Platform running atop a variety of operating systems. We focus DLTK testing on a handful of popular combinations of operating system, Java Platform and Eclipse Platform; these are our reference platforms. DLTK 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 DLTK with Eclipse on a non-reference platform that cannot be recreated on any reference platform will be given lower priority than problems with running DLTK with Eclipse on a reference platform.</p>
<p><strong>TODO:Add correct target operation systems table</strong></p>
<p>We expect that DLTK Eclipse will work fine on other Java 1.4/5.0/6.0 VMs running on window systems supported by SWT.</p>
<h2>DLTK Core</h2>
<p>The DLTK provides the most fundamental building blocks for each scripting language development.</p>
<h3>Committed Items</h3>
<ul>
<li>(committed) <strong>Indexing feature.</strong> DLTK should have implementation of language independent search index. This would enable, for example, fast search of required model elements, such as functions, variables. Also index would hold information about function calls, for use in call hierarchies view.</li>
<li>(committed) <strong>Buildpath support.</strong> Basic buildpath functionality should be implemented to provide support of accessing modules from Interpreter buidpaths. Element such as buildpath editing dialogs would be implemented.</li>
<li>(committed) <strong>Preference pages.</strong> Current release require following Eclipse preference pages to be implemented: editor configuration pages, language independent syntax highlighting configuration pages, interpreters configuration pages.</li>
<li>(committed) <strong>Package explorer.</strong> Language independent package explorer view implementation are required. View are similar to java package explorer, except for supporting any DLTK based language.</li>
<li>(committed) <strong>Editing and Navigation.</strong> Abstract language editor should have be extended to support of language independent content assistance, code folding, search, reference and declaration search, based on model and autoindenting based on language providers.</li>
<li>(committed) <strong>Outline view.</strong> DLTK model outline should be extended to implement usage of filtering providers. Such providers can filter content of outline based on edited language.</li>
<li>(committed) Interactive consoles.</strong> Simple interactive console, with assistance support extensibility interface would be implemented. Language dependent assistance providers should be used to provide assistance. This would enable, for example execution of any possible console application in Eclipse.</li>
<li>(committed) <strong>Running and Debugging.</strong> Language independent run/debug configuration editor would be implemented, which would support providing additional pages required by language dependent code. Also should be implemented DLTK Debugging SDK, which will support Eclipse debugging integration with language dependent implementations.</li>
<li>(committed) <strong>Documentation access.</strong> DLTK Model would be extended with documentation content. Model support of documentation providers would be implemented. This will give a way of implementation any possible documentation content providers. Documentation hinting would be implemented in DLTK editor.</li>
<li>(committed) <strong>Error reporting.</strong> DLTK Model should be extended with aˆ?erroraˆ?, aˆ?warningaˆ? annotations. And Editors would display annotations.</li>
</ul>
<h2>DLTK TCL</h2>
<p>The DLTK TCL provides support of TCL language IDE implementation based on DLTK.</p>
<h3>Committed Items</h3>
<ul>
<li>(committed) <strong>TCL Environment.</strong> We would provide following TCL environment features: TCL Perspective, TCL wizards( New TCL Package, New TCL Module, etc ).</li>
<li>(committed) <strong>TCL Buildpath support.</strong> DLTK Buildpath provider should be implemented to support TCL_LIB buildpaths.</li>
<li>(committed) <strong>Content assistance.</strong> TCL Editor should have implementation of editing content assistance such as command completion, argument hinting, argument completion.</li>
<li>(committed) <strong>Symbol navigation view.</strong> TCL navigation requires advanced navigation view, much more complicated then outline one. View would support displaying of all project commands, namespaces, packages, with filtering by regular expressions, source modules, packages, namespace.</li>
<li>(committed) <strong>Call hierarchies view.</strong> Call hierarchies view with TCL dependent logic should be implemented.</li>
<li>(committed) <strong>TCL Outline filtering.</strong> TCL Outline should implement filtering features for variables, procedures and namespaces.</li>
<li>(committed) <strong>Text based TCL Console.</strong> Text based DLTK console with basic assistance functionality.</li>
<li>(committed) <strong>Running and Debugging.</strong> DLTK Running/Debugging interfaces would be extended. This will give support of selection of TCL Interpreters. DLTK Debug interfaces would be implemented to provide integration with TCLPro debugger. Interactive console would be integrated to support execution of command at breakpoints.</li>
<li>(committed) <strong>Documentation access.</strong> DLTK Document providers for Man pages, and inline TCL documentation would be implemented. This will give documentation hinting feature to TCL editor.</li>
<li>(committed) <strong>Static Analysis.</strong> We would provide TCLChecker integration with model error interfaces. This will allow to display advanced error reporting.</li>
</ul>
<h2>Milestones</h2>
<h3>M0 ( DLTK TCL Demo Finalization )</h3>
<ul>
<li>Project infractructure
<ul>
<li>CVS</li>
<li>Build system/Nightly builds</li>
<li>Bug trackinng system</li>
<li>Wiki</li>
<li>Test automation.</li>
</ul>
</li>
<li>Preferences
<ul>
<li>Editor preferences</li>
<li>Syntax highlighting preferences.</li>
</ul>
</li>
<li>TCL Model
<ul>
<li>Variable reporting</li>
</ul>
</li>
<li>Editor
<ul>
<li>Outline Selection</li>
</ul>
</li>
</ul>
<h3>M1</h3>
<ul>
<li>Index feature
<ul>
<li>Index manager. </li>
<li>Indexer interfaces. </li>
<li>Name to model element cache (caching of all DLTK projects in workspace, support of dynamic updating, filtering). </li>
<li>Function to context call cache (caching of all function calls from all modules, from all project in workspace, support of dynamic updating, filtering). </li>
<li>Caches updating on edited files. Correct rollback of changes. </li>
<li>TCL source module indexer. </li>
<li>TCL package indexer. </li>
</ul>
</li>
</ul>
<ul>
<li>Buildpath support
<ul>
<li>Basic buildpath model support. </li>
<li>Buildpath properties pages.
<ul>
<li>Source folders page. </li>
<li>Required projects page. </li>
<li>Libraries page. </li>
<li>Order and export page. </li>
</ul>
</li>
<li>TCL_PATH implementation of buildpaths. </li>
</ul>
</li>
</ul>
<ul>
<li>Autoindenting
<ul>
<li>TCL Indenting strategy.
<ul>
<li>Automatically close strings, parentheses, brackets. </li>
<li>Smart caret position at line start and end. </li>
<li>Smart caret position in names. </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Outline view
<ul>
<li>Filtering support in outline view.
<ul>
<li>Variables filtering. </li>
<li>Procedures filtering. </li>
<li>Namespaces filtering. </li>
</ul>
</li>
</ul>
</li>
<li>TCL Perspective </li>
</ul>
<h3>M2</h3>
<ul>
<li>TCL program launcher
<ul>
<li>TCL program launcher. </li>
<li>TCL interpreter output parser. </li>
<li>Error annotations reporter. </li>
</ul>
</li>
</ul>
<ul>
<li>New TCL Package Wizard
<ul>
<li>Package creating operation. </li>
<li>New Package wizard. </li>
</ul>
</li>
</ul>
<ul>
<li>Code folding
<ul>
<li>Code folding editor provider. </li>
<li>Code folding editor properties page. </li>
</ul>
</li>
</ul>
<ul>
<li>DLTK Package explorer
<ul>
<li>Exploring of files. </li>
<li>Exploring of source module contents (Outline like view, integrated with package explorer). </li>
<li>Working set selection. </li>
<li>Filters support. </li>
</ul>
</li>
</ul>
<h3>M3</h3>
<ul>
<li>Content Assistance
<ul>
<li>Command completion.
<ul>
<li>Buildin commands. </li>
<li>Local commands. </li>
<li>Project commands, using index( with import correction ). </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>Command argument hinting.
<ul>
<li>Buildin command argument hinting. </li>
<li>Local command argument hinting. </li>
<li>Project commands arguments hinting. </li>
</ul>
</li>
<li>Variable completion.
<ul>
<li>Local variable completion. </li>
<li>Namespace variables completion. </li>
</ul>
</li>
<li>Content assistance properties pages. </li>
</ul>
</li>
</ul>
<ul>
<li>Symbol navigation view
<ul>
<li>All commands view. </li>
<li>Namespaces view. </li>
<li>Packages view. </li>
<li>Filtering support.
<ul>
<li>Filtering by regular expressions. </li>
<li>Filtering by model. </li>
<li>Filtering by package. </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Static analysis
<ul>
<li>Extend model with warning and error annotations support. </li>
<li>Extend editors to show warning and error annotations. </li>
<li>Extend TCL Parsers to report syntax errors. </li>
<li>Integration with TCLChecker. </li>
<li>TCLChecker properties page. </li>
<li>ReCheck on save feature. </li>
</ul>
</li>
<li>Documentation access
<ul>
<li>Extending model with documentation providers. </li>
<li>Documentation hovers
<ul>
<li>Showing of documentation hovers. </li>
<li>Documentation hovers properties page. </li>
</ul>
</li>
<li>Man pages documentation provider. </li>
<li>TCL Proc documentation parser and provider. </li>
</ul>
</li>
</ul>
<h3>M4</h3>
<ul>
<li>Advanced Navigation and search
<ul>
<li>Open declaration. </li>
<li>References search( workspace, project, using index feature ). </li>
<li>Declarations search( workspace, project, using index feature ). </li>
<li>Call hierarchies view.
<ul>
<li>Caller hierarchy. </li>
<li>Callee hierarchy. </li>
<li>Filtering support. </li>
<li>Search scope selection. </li>
</ul>
</li>
</ul>
</li>
<li>Text based console with assistance support
<ul>
<li>TCL console basic assistance support.
<ul>
<li>Command completion. </li>
<li>Argument hinting. </li>
<li>Variable completion. </li>
</ul>
</li>
<li>Push proc/file/selected region to Interactive Interpreter </li>
<li>Traditional up/down arrow history behavior </li>
<li>Save session to file. </li>
<li>Saveing of session inputs. Interactive script writing feature. </li>
</ul>
</li>
</ul>
<h3>M5</h3>
<ul>
<li>Debugger </li>
<li>
<ul>
<li>Breakpoints </li>
<li>Watchpoints </li>
<li>Integration with TclPro debugger from ActiveState.
<ul>
<li>Eclipse debugger implementation. </li>
<li>DBGp protocol implementation </li>
<li>Expression evaluation. </li>
<li>Multi-threaded debugging. </li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Make interactive Tcl console available at breakpoints </li>
</ul>
<h3>RC1</h3>
<ul>
<li>Testing </li>
<li>Bugfixing </li>
<li>Documentation writing. </li>
<li>Release building </li>
</ul>
<hr class="clearer" />
</div>
<div id="rightcolumn">
$incubatorSide
</div>
</div>
<!-- $Id -->
EOHTML;
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>