TPTP Build Tools
The TPTP project has a collection of tools to generate information useful for release managers or project leads to visualize the contents of each release, and provide developers with information about API usage and problems with the their plugins.
Here are some release engineering tasks:
Displaying Release Information
- Display the organization of the project - project components and their associated plugins and committers.
- Release information is captured in release XML files, and HTML reports can be generated to display project information on the web site.
- Example: TPTP project matrix
- See Release XML wiki for information of release XML
Report on release contents
- Most eclipse projects deliver eclipse features and plugins. There are many details about the configuration of features and plugins. TPTP has a tool that generates a report with the information of the features and plugins of a release. The tools can be run every build to provide an up-to-date report. The information provided by the report include:
- list of features
- list of plugins
- the nested structure of features
- ID of features and plugins
- how plugins are packaged - in jar files or in directory structures
- dependencies of each feature and plugins
- the sub-features and plugins of each feature
- the parent feature of each plugin
- The report provide these information in an HTML report, without the need of installing the project.
- Example: Featuredoc for TPTP 4.2.1 (http://download.eclipse.org/tptp/4.2.1/TPTP-4.2.1-200609071820D/featuredoc/)
- Code of the featuredoc is availabe in TPTP CVS (repository: dev.eclipse.org:/cvsroot/tptp, path: platform/org.eclipse.tptp.platform.releng.tools)
- Usage of the program:
usage: java org.eclipse.tptp.platform.releng.tools.FeatureDoc <eclipse_home> <features> <outputDir> <project_name> <show_osgi_stat> eclipse_home: install directory of eclipse features: list of feature directory names (featureId_version) separated by commas outputDir: output directory project_name: name of the project. (Enclose project name with double quotes if there are more than one word.) show_osgi_stat: yes or no; show whether plugins have manifest.mf file and packaged as jar file
- The change of API from release to release need to be tracked to make sure public APIs are not changed or deleted to ensure backward compatibility. TPTP uses an opensource source tool called JDiff (http://javadiff.sourceforge.net/) to generate reports on API changes. Here is what an API change report looks like: http://download.eclipse.org/tptp/4.2.1/jdiff/Platform/public/changes.html
Plugin Version Number Tracking
Report on Internal API Usage
- The use of internal API of other projects is discouraged because internal API can change without notice, and TPTP can be broken by upgrading a dependency. The build uses a script to generate a report on all Java files that contain the use of non-TPTP internal packages.
- The reports look like this: http://download.eclipse.org/tptp/4.2.1/TPTP-4.2.1-200609071820D/internal-pkg-use.txt
- The script http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/platform/org.eclipse.hyades.releng.builder/master/bash/internal-pkg-use.sh?rev=1.1&cvsroot=TPTP_Project&content-type=text/plain can be adopted by other projects.
Checking Copyright statements
- Finding files with missing copyright statements
- Finding files with incorrect copyright years
- Finding all copyright statements in the code