= Linux Tools 2.1 Release Review =
Planned Review Date: 2013-09-10

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

Author:  Jeff Johnston <jjohnstn@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=tools.linuxtools

== 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
* plugins bridging the CDT's hover help functionality with the various open source API documentation formats and tools; called libhover
* Valgrind integration for memcheck, massif, cachegrind and helgrind
* ChangeLog management tools

== New in 2.1 ==
* OPerf profiling support
* Enhanced SystemTap editor
** indentation and comment support
* Enhanced Perf Diff View
** support to show old, new, and diff from same view
* More New and Noteworthy for 2.1:
** http://www.eclipse.org/linuxtools/new/2.1
** (will be moved to http://www.eclipse.org/linuxtools/new after 2.1 is released)

=== Maturity and Communities ===
* A number of years of development and adoption by a variety of companies and many users
* Tools included in Linux distributions
* Open source and commercial extension of plugins and APIs
* Multiple organizations (6 at the time of writing), committers, and contributors involved in community:
** http://www.eclipse.org/projects/project.php?id=tools.linuxtools

=== Openness ===
* Project uses open communication media:
** mailing list, IRC, Bugzilla
* Discussions happen in public and all are invited to any project phone calls
* Project schedule, policies, and procedures are clearly documented and followed

=== "Eclipse way" ===
* All development occurs in Eclipse git repositories
* Eclipse IP policy strictly adhered to
* A copy of our 2.1 IP log, once approved by the Eclipse Legal team, will be archived here:
** http://www.eclipse.org/linuxtools/doc/2.1-approvedIPLog.html
* Eclipse development process followed including releases, documentation, ramp-down, etc.
* Interaction and integration with other Eclipse projects

== APIs ==
* Our APIs have been reviewed and we consider those that are exposed to be suitable for adopters to use.  They will remain stable for the duration of our 2.x lifecycle. 
* As always, the project appreciates feedback via Bugzilla or our mailing list.  This is especially true of adopters and their API needs.

== Architectural Issues ==
* Ongoing work to integrate with tracing and profiling toolkits will enable us to have more extensible frameworks with exemplary implementations.
* Despite being user-focused, we have a few components which provide extension points:
** our profiling tool framework whose use is demonstrated by all of our profiling integration plug-ins: Gcov, Gprof, Perf, OProfile and Valgrind
** 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
** our LTTng component. This plugin provides an extension point to integrate any type of trace and an extension point for producing UML2 sequence diagrams from traces

== Tool Usability ==
* Our releases thus far have been well-received and at present have satisfied users.  This 2.1 release will hopefully continue to grow our base of satisfied users.
* Our work integrating native profiling tools like LTTng, perf, OProfile, and Valgrind has been introduced to excited audiences. We aim to improve the power of these tools within the IDE making them easier to use and to support additional functionality that is provided via the command line.  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.  Note that some of our plugins will shortly migrated to our incubator (see below).

== Bugzilla ==
* For our 2.1 release we will have 0 outstanding release-blocker bugs.
* We closed or resolved over 20 bugs during our 2.1 release cycle:
https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;classification=Tools;product=Linux%20Tools;target_milestone=2.1;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;bugidtype=include;list_id=2295921

== Standards ==
* Our project conforms to the following standards, some of which are ad-hoc and some which are more well-defined:
** 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 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 ==
* Our project aims to release minor releases (2.2, etc.) ahead of Eclipse maintenance releases

== 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 such as EclipseCon, the Red Hat Summit, etc.
* Our team members maintain the following blogs:
** http://akurtakov.blogspot.com/ (part of Planet Eclipse)
* We interact often with the CDT project and make use of the GEF and CDT projects
* We are growing our community of adopters

== 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=tools.linuxtools
* A copy of our 2.1 IP log, once approved by the Eclipse Legal team, is archived here:
** http://www.eclipse.org/linuxtools/doc/2.1-approvedIPLog.html

== Committers ==
# Anithra P Janakiraman
# Alexander Kurtakov
# Alexandre Montplaisir
# Bernd Hufmann
# Camilo Bernal
# Krzysztof Daniel
# Daniel Henrique Barboza
# Elliott Baron
# Francois Chouinard
# Jeff Johnston
# Matthew Khouzam
# Niels Thykier
# Otavio Pontes
# Patrick Tasse
# Roland Grunberg
# Severin Gehwolf
# Sami Wagiaalla
# Xavier Raynaud

== Legal ==
This document copyright 2013, Mozilla and others; licensed under the EPL v1.0.
