<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
/* 221934 - this page to remain on eclipse.org */

$pageTitle 		= "The Eclipse IP Process in Cartoons";

include( '../_commonLeftNav.php' );

ob_start();
?>
    <div id="maincontent">
	<div id="midcolumn">
		
<h1>The Eclipse IP Process in Eight Cartoons</h1>
<p><em>(With a tip of the hat to <a href="http://xkcd.com/297/">xkcd</a>.)</em></p>

<div align="center">
<img src="images/1-committers.gif"/><br>
Committers can write code in the source code repository.
<p>
<HR width="200">
<img src="images/2-contributors.gif"/><br>
Contributors must attach their contributions to <a href="https://git.eclipse.org/r">Gerrit</a> or </a><a href="https://bugs.eclipse.org/bugs/">Bugzilla</a> for a committer to review and commit.
<p>
<HR width="200">
<img src="images/3-big-contributions.gif"/><br>
Big chunks of code from contributors (and, of course, initial contributions to projects) must<br>
be reviewed and approved
by Eclipse Legal via the <a href="https://dev.eclipse.org/ipzilla/">CQ (Contribution Questionnaire) process</a>.
<p>
<HR width="200">
<img src="images/4-third-party.gif"/><br>
Third party code and libraries must be reviewed and approved via a CQ.
<p>
<HR width="200">
<img src="images/5-cryptography.gif"/><br>
Code with cryptography and other interesting issues must be reviewed and approved via a CQ.
<p>
<HR width="200">
<img src="images/6-release-reviews.gif"/><br>
Projects must have a <a href="/projects/dev_process/release-review.php">release review</a>, including Eclipse Legal approval<br>
of dots on i's and crosses on t's (<a href="/legal/guidetolegaldoc2.php">about files, copyrights, ...</a>), before an official release.
<p>
<HR width="200">
<img src="images/7-dependency.gif"/><br>
Projects that depend on third-party code, even if the code is not hosted<br>
at eclipse.org, must have that <a href="/org/documents/Eclipse_Policy_and_Procedure_for_3rd_Party_Dependencies_Final.pdf">dependency 
approved via CQ</a>.
<p>
<HR width="200">
<img src="images/8-parallel-ip.gif"/><br>
Incubation projects may use the <a href="/projects/dev_process/parallel-ip-process.php">parallel ip process</a>.
<p>
Mature projects may use parallel ip if the contribution represents a minor change to a previously approved package.
<p>
<HR width="200">
</div>

<p><b>Disclaimer:</b> Of course, because the IP process is a legal thing, we must remind you: 
these cartoons are just a summary of the <a href="/legal/EclipseLegalProcessPoster.pdf">full IP Process</a> and related <a href="/org/documents/Eclipse_IP_Policy.pdf">IP policy</a>,
<a href="/legal/committerguidelines.php">due diligence procedures</a>, and 
<a href="/legal/">legal documents</a>. Committers are expected to know and follow 
the official Board-defined processes.
</p>

<?php include( '../_commonFooter.php' ); ?>

</div>
</div>

<?php
	# Paste your HTML content between the EOHTML markers!	
	$html = ob_get_contents();
	ob_end_clean();

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>