blob: 2725cfbda2d7382c3d311e8b43fd349ee74e53b8 [file] [log] [blame]
<!--
This document is provided as a template along with some guidance for creating
your project proposal. This is just a template. Feel free to change it as
you see fit (add sections, remove section). We feel, however, that the
suggestions represented in this document represent the reasonable minimum
amount of information to move forward.
Please keep the formatting in this document simple. Please do not edit
this document in Microsoft Word as it adds huge piles of markup that make
it difficult to restyle.
More information is available here:
http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
Direct any questions about this template to emo@eclipse.org
-->
<html>
<head>
<!--
Provide some meta-data about the proposal here. We will use this information
to generate some of the boilerplate content for the top of the document. This
includes an <h1> header tag.
It'll look something like this:
**
<h1>[proposal-name]</h1>
<p>The [proposal-name] project is a proposed open source project under the
[container-name] Project</a>.</p>
<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to
<a href="[communication-channel-url]">[communication-channel-name]</a>.</p>
**
Note that we use very simple regular expression parsing to pull this out
(it's faster than trying to parse the HTML. Keep this simple. Keep each meta
tag on a single line.
-->
<!-- e.g. Woolsey, IAM, Higgins, ... -->
<meta name="proposal-name" content="Woolsey" />
<!-- e.g. technology.dash.iplogtools, technology.higgins, ... -->
<meta name="short-name" content="technology.woolsey" />
<!-- e.g. "Modeling", "EMFT", "Dash", ... -->
<meta name="container-name" content="Dash" />
<!-- Can be a bug, Forum, newsgroup, ... -->
<meta name="communication-channel-url" content="http://www.eclipse.org/forums/eclipse.woolsey" />
<meta name="communication-channel-name" content="Woolsey forum" />
<title>Woolsey</title>
</head>
<body>
<h2>Background</h2>
<!--
Optionally provide the background that has lead you to creating this project.
-->
<p>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.</p>
<p>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.</p>
<h2>Scope</h2>
<!--
All projects must have a well-defined scope. Describe, concisely, what
is in-scope and (optionally) what is out-of-scope. An Eclipse project
cannot have an open-ended scope.
-->
<p>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.</p>
<p>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 [<a href="#iplog_xsd">1</a>].
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.</p>
<p>Web services used by the project are not strictly owned by the
project and are therefore out of scope.</p>
<h2>Description</h2>
<!--
Describe the project here. Be concise, but provide enough information that
somebody who doesn't already know very much about your project idea or domain
has at least a fighting chance of understanding its purpose.
-->
<p>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).</p>
<p>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.</p>
<p>In addition to being a useful tool for Eclipse committers, this
project also serves as a show case for Eclipse technology.</p>
<h3>More Detail and an Example</h3>
<p>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.</p>
<p><a
href="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-wizard.png"><img
src="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-wizard-300x245.png"
alt="The IP Log Tool Wizard" width="300" height="245"
class="size-medium wp-image-865" /></a></p>
<p>Here, the <a href="http://www.eclipse.org/ercp">eRCP</a> project
from the <a href="http://www.eclipse.org/rt">Eclipse RT</a> 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.</p>
<p><a
href="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-editor.png"><img
src="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-editor-300x249.png"
alt="IP Log Tool Editor" width="300" height="249"
class="size-medium wp-image-866" /></a></p>
<p>This editor has been generated using <a
href="http://www.eclipse.org/emf">EMF</a>. With almost no work, the
editor is completely functional (with help from the <em>Properties</em>
view). We envision eventually having a page for each part of the IP Log
(committers, third-party contributions, contributors and their
contributions, etc.).</p>
<p>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:</p>
<p><a
href="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-compare.png"><img
src="http://dev.eclipse.org/blogs/wayne/files/2009/09/iplog-compare-300x204.png"
alt="IP Log Tool Compare" width="300" height="204"
class="size-medium wp-image-867" /></a></p>
<p>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,
<a
href="http://dev.eclipse.org/blogs/wayne/files/2009/09/right-to-left.png"><img
src="http://dev.eclipse.org/blogs/wayne/files/2009/09/right-to-left.png"
alt="" width="19" height="20" class="alignnone size-full wp-image-873" /></a>,
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.</p>
<h2>Initial Contribution</h2>
<!--
Describe any existing code that will be contributed to the project.
-->
<p>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.</p>
<p>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.</p>
<h2>Legal Issues</h2>
<!--
Please describe any potential legal issues in this section. Does somebody else
own the trademark to the project name? Is there some issue that prevents you
from licensing the project under the Eclipse Public License? Are parts of the
code available under some other license? Are there any LGPL/GPL bits that you
absolutely require?
-->
<p>We are unaware of any legal issues at this time.</p>
<h2>Committers</h2>
<!--
List any initial committers that should be provisioned along with the
new project. Include affiliation, but do not include email addresses at
this point.
-->
<p>The following individuals are proposed as initial committers to
the project:</p>
<ul>
<li>Wayne Beaton, The Eclipse Foundation (Project Lead)</li>
<li>Gabe O'Brien, The Eclipse Foundation</li>
</ul>
<h2>Mentors</h2>
<!--
New Eclipse projects require a minimum of two mentors from the Architecture
Council. You need to identify two mentors before the project is created. The
proposal can be posted before this section is filled in (it's a little easier
to find a mentor when the proposal itself is public).
-->
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Wayne Beaton</li>
<li>Chris Aniszczyk</li>
</ul>
<h2>Interested Parties</h2>
<!--
Provide a list of individuals, organisations, companies, and other Eclipse
projects that are interested in this project. This list will provide some
insight into who your project's community will ultimately include. Where
possible, include affiliations. Do not include email addresses.
-->
<p>The following individuals, organisations, companies and projects
have expressed interest in this project:</p>
<ul>
<li>TBD</li>
</ul>
<h2>Project Scheduling</h2>
<!--
Describe, in rough terms, what the basic scheduling of the project will
be. You might, for example, include an indication of when an initial contribution
should be expected, when your first build will be ready, etc. Exact
dates are not required.
-->
<table>
<tr>
<td>January&nbsp;2010</td>
<td>Project provisioned. Initial contribution sent to IP team for review. Code
contributed. Regular Build script created.</td>
</tr>
<tr>
<td>March&nbsp;2010</td>
<td>Initial release (0.1) featuring EMF-generated editors and
preview feature that renders XML-based log in HTML (via XSLT) for easy
viewing.</td>
</tr>
<tr>
<td>Summer&nbsp;2010</td>
<td>Second release (0.2) including specialised editors and
ability to submit log for IP review directly from workspace.</td>
</tr>
</table>
<h2>Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>20-December-2009</td>
<td>Document created</td>
</tr>
</table>
<hr />
<p>[<a name="iplog_xsd"></a>1] <a
href="http://eclipse.org/projects/xml/iplog.xsd">http://eclipse.org/projects/xml/iplog.xsd</a>.</p>
</body>
</html>