Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "RT/IP FAQ"

< RT
(What does it mean to "distribute" something?)
Line 8: Line 8:
  
 
===What does it mean to "distribute" something?===
 
===What does it mean to "distribute" something?===
If something is freely available from and eclipse.org server, then it is being distributed by Eclipse. Examples are (but not limited to): downloads, CVS/SVN/GIT, bugzilla, mailing lists, eclipse.org blogs, ...  So putting some third party code in your project's CVS repo is distribution regardless of whether or not the project includes the library in a release.
+
If something is freely available from an eclipse.org server, then it is being distributed by Eclipse. Examples are (but not limited to): downloads, CVS/SVN/GIT, bugzilla, mailing lists, eclipse.org blogs, ...  So putting some third party code in your project's CVS repo is distribution regardless of whether or not the project includes the library in a release.
  
 
=== What is "defacto" or "implied" distribution?===
 
=== What is "defacto" or "implied" distribution?===

Revision as of 12:29, 28 May 2010

THIS IS A DRAFT DOCUMENT

What are CQs for?

CQs all for the management and tracking of references to and distribution of third-party artifacts. Roughly speaking they serve three parties:

  1. Eclipse Consumers: CQs and the IP log generated from them, allow consumers to know what they are buying into when they consider using your project.
  2. Eclipse IP team: CQs enable the IP team to review and track the use and distribution of third-party artifacts.
  3. PMCs: CQs give the PMCs visibility into their project's relationship to the world outside Eclipse. They are then able to guide projects to similar function in Eclipse, help in generalizing infrastructure choices and ensure vendor-neutrality.

What does it mean to "distribute" something?

If something is freely available from an eclipse.org server, then it is being distributed by Eclipse. Examples are (but not limited to): downloads, CVS/SVN/GIT, bugzilla, mailing lists, eclipse.org blogs, ... So putting some third party code in your project's CVS repo is distribution regardless of whether or not the project includes the library in a release.

What is "defacto" or "implied" distribution?

Even if your project's zip file or release repository does not include a particular third party artifact, if project's function requires that the artifact be acquired by the projects consumer, then you have implicitly distributed that artifact. Works-with dependencies capture cases where that distribution is optional.

What does it mean to "reference" some third party artifact?

References to third-party code can be found in source code (e.g., Java, C, ...), configuration files, build files (scripts, POMs, ...). So, a Java file that imports the org.junit package references Junit. Simiarly, a POM.xml that lists hibernate.jar as a dependency references Hibernate.

What is a "works-with" dependency?

put IP policy wording here

What is the purpose of the works-with dependencies?

put IP policy wording here

When contemplating optional work-with status for an artifact, what factors should be considered?

The key thing here is whether or not the project requesting the dependency largely works without the third-party artifact. If it does and is simply enhanced in performance or function with the addition of the dependency then it likely qualifies as an optional works-with.

Do I enter CQs for works-with dependencies?

No. You consult in an open and transparent way with your PMC to gain approval for your proposed works-with dependency. Once that approval is granted, your relationship with the library is tracked by opening a CQ and referencing the mailing list discussion that approved the use.

Can works-with dependencies be version-independent?

Yes. Works-with dependencies are for tracking loosely coupled relationships to third-party code that is not distributed directly by your project. It makes sense in many cases to be version independent.

What are exempt-prereqs?

put IP policy wording here

My project's releases do not include a particular third party lib and only use it for testing. Do I need to do anything in IP-land? If so, what? (and why?)

By their very nature test are optional function for a project. A project should work perfectly fine without its tests. The addition of tests (and the third party artifacts they may need) enhances the project's output by adding testability. As such, an artifact needed solely for testing purposes can be covered by works-with dependencies.

Our build fetches a lib from some non-eclipse.org repo (e.g., Maven Central) but the lib is not part of the release. What now?

Since your project is referencing the third-party artifact, you need to document this. If it truly is just a testing related dependency then talk with your PMC about a works-with relationship. Otherwise, enter a normal CQ.

Back to the top