= Linux Tools 0.7 Release Review =
Planned Review Date: 2011-02-09

Communication Channel:  linuxtools-dev@eclipse.org (https://dev.eclipse.org/mailman/listinfo/linuxtools-dev)

Author:  Andrew Overholt <overholt redhat com>

== Introduction ==
* The Linux Tools project is a two-faceted project
# Firstly, it provides tools and frameworks for writing tools relevant to Linux developers.
# Secondly, it provides a place for Linux distributions to collaboratively overcome issues surrounding distribution packaging of Eclipse technology. The project produces both best practices and tools related to packaging.
* Project plan:  http://www.eclipse.org/projects/project-plan.php?projectid=technology.linux-distros

== Features ==
* a framework for integrating native profiling tools with the CDT
* visualization, fetching, and control of LTTng traces
* GCov code coverage tool integration
* GProf integration including function-based profiling and integration with the CDT
* an RPM .spec editor with rpmlint integration
* plugins integrating the OProfile profiler with the CDT
* a Zest (GEF)-powered C/C++ call graph integrated with the CDT, powered by SystemTap
* GNU Autotools CDT additions
* plugins bridging the CDT's hover help functionality with the various open source API documentation formats; called libhover
* Valgrind integration for memcheck, massif, and cachegrind
* a tool to help building and packaging Eclipse plugins as RPMs named RPM Stubby
* change log management tools
* an editor, launcher, and data visualizer for SystemTap scripts

== New in 0.7 ==
* largely a bug-fix release
* Valgrind plugin supports working on Mac OS
* LTTng new features and performance improvements
* More New and Noteworthy for 0.7:
** http://www.eclipse.org/linuxtools/new-0.7/
** (will be moved to http://www.eclipse.org/linuxtools/new after 0.7 is released)

== Non-Code Aspects ==
* 0.7 contains standardized help maintained in Eclipse wiki and processed by Mylyn WikiText.
* After our 0.1 release we did a series of screencasts with audio. They are still relevant and are all available via our downloads page:  http://www.eclipse.org/linuxtools/downloads.php

== APIs ==
* Being a pre-1.0 release, our APIs are subject to change.
* We continue to internalize unnecessarily public APIs and have done much work in this area for 0.7.  We have also worked to further reduce usage of internal APIs from underlying projects.
* We will converge on stability – and document such stability – in our APIs well before our 1.0 release.

== Architectural Issues ==
* As we work towards our 1.0 release, we will continue to better define our APIs while stabilizing them and documenting them.  We have recently begun running API tooling scans and publishing the results:  http://www.eclipse.org/linuxtools/api .
* On-going work to integrate with tracing and profiling toolkits will enable us to have more extensible frameworks with exemplary implementations.  Integration for the profiling tool 'perf' has recently been done by a community member using our profiling framework.
* Despite being user-focused, we have a few components which provide extension points:
** our profiling tool framework whose use is demonstrated by our OProfile and Valgrind integration plugins
** our ChangeLog plugin which allows for extensible parsers, formatters, and editors. The extensibility of formatters is demonstrated by our RPM .spec editor
** our libhover component. This plugin provides an extension point that defines a common documentation format for C library hover help

== Tool Usability ==
* Our releases thus far have been well-received and at present have satisfied users. This 0.7 release will hopefully grow this base of satisfied users.  In addition to improved quality through bug fixes, we hope that the increased exposure of being a part of Helios will garner more satisfied users. 
* Due to the large number of people packaging software for RPM-based distributions, our .spec editor has become one of our more popular features.
** The in-line warnings and error checking as well as templates and completion are incredibly useful features.
* Our work integrating native profiling tools like LTTng, OProfile, and Valgrind has been introduced to excited audiences. We aim to bring the power of these tools into the IDE while making them trivial to use.  Developers making use of our tools will be able to focus on their own projects and not on setting up the underlying tools.

== End-of-Life ==
* We have no end-of-life issues to discuss at this time.

== Bugzilla ==
* For our 0.7 release we will have 0 outstanding release-blocker bugs.
* We closed over 52 bugs during our 0.7 release cycle:
https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Linux+Tools&target_milestone=0.7&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0

== Standards ==
* Our project conforms to the following ad-hoc standards:
** Fedora RPM packaging guidelines
*** http://fedoraproject.org/wiki/Packaging/Guidelines
** Informal conventions around use of the GNU Autotools
** GNU ChangeLog formatting
*** http://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs
* LTTng trace format
** http://lttng.org

== UI Usability ==
* Our project aims to conform to the Eclipse user interface guidelines.
* All of our user interface components support keyboard navigation.
* We now support interactivity of our Valgrind BIRT-generated charts and intend on further increasing our accessibility.
* All of our strings are externalized but we currently have no language packs
* Our strings are registered in Babel for use by translators

== Schedule ==
* We plan on having our 0.7.1 release as part of the Helios SR2 update
* Our project aims to release minor releases (0.6, 0.6.1, 0.7, 0.7.1 etc.) every two to three months
* We plan to spend a lot of time over the next year standardizing our APIs and getting ready for a 1.0 as part of Indigo

== Communities ==
* Our project has a strong relationship with the various Linux distributions (Fedora, Mandriva, Debian, Ubuntu, etc.) with many using our eclipse-build project's output for their Eclipse SDK packages
* The majority of our project's interactions occur on IRC (#eclipse-linux) and our mailing list (linuxtools-dev@eclipse.org)
* We have a centralized update site and use eclipse.org bugzilla for all of our planning and bug tracking
* We make use of our newsgroup for user feedback
* Our project members often speak at conferences (see below)
* Our team members maintain the following blogs:
** http://overholt.ca/wp/ (part of Planet Eclipse)
** http://akurtakov.blogspot.com/ (part of Planet Fedora)
* We interact often with the CDT project and make use of the BIRT, GEF, and CDT projects
* We are growing our community of adopters
* An update on our project's progress was given at EclipseCon 2009:
** http://www.eclipsecon.org/2009/sessions?id=466
* An update on our project's progress was given at the [http://www.grancanariadesktopsummit.org Gran Canaria Desktop Summit] in July 2009:
** http://www.grancanariadesktopsummit.org/node/194
* An update on our project's progress with respect to tracing tools was given at the [http://ltt.polymtl.ca/tracingwiki/index.php/TracingMiniSummit2009 Tracing Mini-Summit] in July 2009.
* Now that we have a standardized release process and plan, we are working to ensure that our three communities are properly nurtured at all times.
* Following our recent releases we have had a number of parties come forward to express interest in using, distributing, helping, and contributing.  Work is underway to standardize profiling and tracing frameworks and exemplary tooling.
* EclipseCon 2010 featured a number of talks regarding "the Linux IDE" and what our future holds
** [https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1203 "A world-class Linux IDE: how do we get there from here?"]
** [https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1298 "Troubleshooting Linux Systems? Come and learn what the new LTTng Eclipse plug-in can do for you!"]
** [https://www.eclipsecon.org/submissions/2010/view_talk.php?id=1595 a birds-of-a-feather session for those interested in helping shape the future of "the Linux IDE"]

== IP Log ==
* Our IP log including information about all CQs, external contributions, and committers can be found here
** http://www.eclipse.org/projects/ip_log.php?projectid=technology.linux-distros
* A copy of our 0.7 IP log, once approved by the Eclipse Legal team, will be archived here:
** http://www.eclipse.org/linuxtools/doc/0.7-approvedIPLog.pdf