= Linux Tools 1.0 Release Review =
Planned Review Date: 2012-06-27

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

== Release and Graduation Plan ==
* Our 1.0 release coincides with our graduation from incubation and move to the Tools top-level project
* All committers will remain the same (see below for list; no new committers)
* Bugs will be filed to move p2 repos and other downloadable content
* All wiki pages and HTML content will be updated to reflect new download locations
* Incubation labelling and icons will be removed
* No major renaming or refactoring required
* git repo will remain in its present location
* Hudson jobs will remain at their present URLs

== 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
* change log management tools

== New in 1.0 ==
* Plugins integrating with Linux 'perf' tool
* More New and Noteworthy for 1.0:
** http://www.eclipse.org/linuxtools/new-1.0
** (will be moved to http://www.eclipse.org/linuxtools/new after 1.0 is released)

== Non-Code Aspects ==
* Linux Tools has moved to the Tools top-level project
** This does not affect our git URL but does affect our p2 repo URL which will now be:  http://download.eclipse.org/tools/linuxtools/update

=== 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=technology.linux-distros

=== 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
* IP log approved and archived for 1.0 release:
** http://www.eclipse.org/linuxtools/doc/1.0-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 1.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.  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
** 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 1.0 release will hopefully continue to grow our base of satisfied users.  In addition to improved quality through bug fixes, we hope that the increased exposure of being a part of Juno, migrating to the Tools top-level project, and going 1.0 will garner more happy users. 
* Our work integrating native profiling tools like LTTng, perf, 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.  Note that some of our plugins will shortly migrated to our incubator (see below).

== Incubator ==
* Shortly after our 1.0 release, we plan to create a project incubator where we will experiment with new ideas and new tools.  The first plugins that will move to the incubator will be our SystemTap-driven C/C++ call graph tool and our SystemTap management plugins. 

== Bugzilla ==
* For our 1.0 release we will have 0 outstanding release-blocker bugs.
* We closed or resolved over 79 bugs during our 1.0 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=1.0&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 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 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 are tentatively planning on having a 1.1 release a month or two after our 1.0 release.  This will pick up some new features (most notably remote project enablement) which did not get finished in time for 1.0. 
* Our project aims to release minor releases (1.1, 1.2, etc.) every two to three months

== 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)
** http://overholt.ca/wp/ (part of Planet Eclipse)
* We interact often with the CDT project and make use of the BIRT, 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=technology.linux-distros
* A copy of our 1.0 IP log, once approved by the Eclipse Legal team, is archived here:
** http://www.eclipse.org/linuxtools/doc/1.0-approvedIPLog.html

== Committers ==
# Anithra P Janakiraman
# Alexander Kurtakov
# Alexandre Montplaisir
# Andrew Overholt
# Bernd Hufmann
# Chris Aniszczyk
# 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 2012, Mozilla and others; licensed under the EPL v1.0.