As part of the Eclipse Development Process, projects are required to maintain a log that details their intellectual property contributions. This log must include all third-party code that is either distributed or leveraged by the project, identities of the committers who regularly contribute, and the identities of other contributors along with their contributions. The log should further indicate the licenses in use by the project and other information relevant to provenance of the code maintained and distributed by the project. Projects are required to submit their log for review by the Eclipse IP team at key points in their life-cycle, including moves, releases, and graduation.
Much of the content of the logs can be generated using information that is available through the various databases maintained by the Eclipse Foundation. The current tool, an automated IP Log generator known as the IP Log Tool, uses information from these databases. This current generation of tool has limited flexibility.
It is the purpose of this project to provide tools to assist committers with the management of intellectual property related to their project. This includes tools to assist with the generation and maintenance of IP Logs, the ability to submit logs to the Eclipse Foundation IP team for review, and the ability to compare logs against project distributions (to ensure that an IP Log reflects the contents of a project's downloads, p2 repositories, Maven repositories and other similar distribution mechanisms). As part of this project, we further intend to explore enabling the user to specify mappings between third-party contributions noted in the logs (contribution questionnaires) and the library files distributed by the project. Other matters related to IP management by Eclipse projects may be considered by the project.
The IP Log Tool uses an XML-based file format to store the log information. This XML format is defined by an XML Schema (XSD) maintained by the Eclipse Foundation . Maintenance of this schema is not within the scope of this project (and is therefore not, strictly speaking, an API of this project). The project will, however, maintain compatibility with this schema. The ability to read older versions of the schema (as it matures) will remain in-scope; the ability to write older versions is out of scope.
Web services used by the project are not strictly owned by the project and are therefore out of scope.
The new generation of IP Log Tool provides much more flexibility than the current generation by leveraging the Eclipse platform and several Eclipse technologies. Specifically, the new IP Log Tool is an Eclipse-based application that uses EMF technology (including EMF Compare) that pulls data from Eclipse Foundation databases via RESTful web services. All editing of the log is done within an Eclipse IDE (or, potentially, an RCP application) and stored in the file system. The log maintainer can choose where and how to store the XML-based log file. The EMF tooling provides a very flexible editor that allows for complete customisation. The use of EMF Compare allows for easy comparison between a customised log and the information stored in Eclipse Foundation databases (it further allows for consolidation of those changes).
The IP Log Tool is primarily a consumer of Eclipse Technology and as such, we do not currently anticipate that we will be producing many APIs. Having said that, the project will take advantage of any opportunities to make the tool extensible.
In addition to being a useful tool for Eclipse committers, this project also serves as a show case for Eclipse technology.
More Detail and an Example
The first thing you see when you use the tool is the wizard. The wizard can populate a new IP Log with information gathered from the various Eclipse Foundation databases. As you can see from the screenshot, the user is presented with a hierarchical list of all active Eclipse projects.
Here, the eRCP project from the Eclipse RT top-level project has been selected. When the user clicks "Finish", the wizard makes a call out to a web service running at the Eclipse Foundation to gather all the necessary information. The results, which are saved in a file in the workspace, are displayed in the editor.
This editor has been generated using EMF. With almost no work, the editor is completely functional (with help from the Properties view). We envision eventually having a page for each part of the IP Log (committers, third-party contributions, contributors and their contributions, etc.).
One of the bigger challenges of maintaining an IP Log is keeping it up to date. EMF Compare provides the ability to compare what is captured in the log against the information found in the Eclipse databases, and selectively update the log with those changes (we are able to just reuse the same web service that was used to do the initial population of the log). Here's what the compare editor looks like after a few changes are made to the initial log:
Right now the compare and update works directly out of the editor. Eventually, you'll be able to do the compare without even opening the log. Note the "Copy current change from right to left" icon, , above the "Eclipse Foundation Databases" panel that users can employ to make updates to their log. The functionality that permits movement from left to right has been disabled: at least for now, Eclipse Foundation Databases cannot be updated using this tool.
The current implementation of the IP Log Tool, which will serve as the initial contribution, supports one-way retrieval of information from Eclipse Foundation Servers. Specifically, it does not send any data to the Eclipse Foundation. Since the current implementation only pulls data, there is currently no authentication and authorisation strategy in place. As the project develops, such strategy may be required.
The initial contribution was completed entirely by Wayne Beaton, an employee of the Eclipse Foundation. Copyright is assigned to the Eclipse Foundation, and the work is all distributed under the Eclipse Public License. Some parts of the code have been generated using EMF.
We are unaware of any legal issues at this time.
The following individuals are proposed as initial committers to the project:
- Wayne Beaton, The Eclipse Foundation (Project Lead)
- Gabe O'Brien, The Eclipse Foundation
The following Architecture Council members will mentor this project:
- Wayne Beaton
- Chris Aniszczyk
The following individuals, organisations, companies and projects have expressed interest in this project:
|January 2010||Project provisioned. Initial contribution sent to IP team for review. Code contributed. Regular Build script created.|
|March 2010||Initial release (0.1) featuring EMF-generated editors and preview feature that renders XML-based log in HTML (via XSLT) for easy viewing.|
|Summer 2010||Second release (0.2) including specialised editors and ability to submit log for IP review directly from workspace.|
Changes to this Document