Jump to: navigation, search

Difference between revisions of "JaCoCo/Proposal"

Line 20: Line 20:
 
== Project Scope ==
 
== Project Scope ==
  
TODO
+
The primary scope of the JaCoCo project is to build a code coverage library that can be used by other tools to provide coverage reports.  To ensure that the library is usable we also maintain a small number of exemplary tools that use the library.  Currently this includes standalone example programs and Ant tasks.
 +
 
 +
Providing integration with other tools such as Hundson/Jenkins, Sonar and Maven are currently out of scope
  
 
== Future Roadmap ==
 
== Future Roadmap ==
  
The immediate priorities for JaCoCo in order of importance are:
+
* API cleanup
 
+
* Eclipse Plugin (EclEmma 2.0)
TODO
+
* Support filtering of untestable/synthetic code
  
 
== Concerns ==
 
== Concerns ==
Line 34: Line 36:
 
== Packaging and Deployment ==
 
== Packaging and Deployment ==
  
JaCoCo currently ships in the form of an Eclipse update site, and also an independent .zip/.tgz download. It would continue to ship in these forms.
+
JaCoCo currently ships in the form of a .zip download that contains the following:
 +
* JaCoCo Java agent jar continaing all dependencies
 +
* Ant jar containing all dependencies
 +
* runtime agent, ant task, core and reporting bundles (not required if using the all in one jars)
 +
* Documentation including usage examples
 +
 
 +
We will continue to use this archive for distributing the framework portion of JaCoCo but will provide a P2 repository containing the agent, core and report bundles to support the EclEmma 2.0 plugin.
 +
 
 +
All bundles will also be uploaded to a Maven2 repository to make the creation of a Maven2 plugin easier
  
 
== Organization ==
 
== Organization ==
Line 44: Line 54:
 
'''Initial committers'''
 
'''Initial committers'''
 
* Marc R. Hoffmann
 
* Marc R. Hoffmann
* Brock Janiczak
+
* Brock Janiczak, Individual
* Evgeny Mandrikov
+
* Evgeny Mandrikov, SonarSource
  
 
'''Interested parties'''
 
'''Interested parties'''

Revision as of 18:36, 3 April 2011

Draft proposal

This is a draft proposal, feel free to contribute to it!

Introduction

JaCoCo is a free code coverage library for Java, which is currently developed by the EclEmma team based on the lessons learned from using and integration existing libraries over the last three years.

JaCoCo is proposed as an open source project under the Eclipse Technology Project (http://www.eclipse.org/technology/). This proposal is still in the Project Proposal Phase, and is being made in order to call for more community participation. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jacoco newsgroup.

Background and Goal

There are several open source coverage technologies for Java available. While implementing the Eclipse plug-in EclEmma (http://www.eclemma.org/) the observation was that none of them are really designed for integration. Most of them are specifically fit to a particular tool (Ant tasks, command line, IDE plug-in) and do not offer a documented API that allows embedding in different contexts. One of the best and widely used available open source tools is EMMA (http://emma.sourceforge.net/). While EclEmma is based on it the EMMA library is not actively maintained any more by the original author. Due to the lack of regression tests maintenance and feature additions will become very difficult.

JaCoCo should become the standard backend technology for code coverage analysis in Java VM based environments. The focus is providing a lightweight, flexible and well documented library for integration with various build and development tools. Ant tasks are provided as reference usage scenarios. Other tools like a ready to use Eclipse plug-in (future version of EclEmma) or a Maven plug-in might follow.

Architecture and Extensibility

TODO

Project Scope

The primary scope of the JaCoCo project is to build a code coverage library that can be used by other tools to provide coverage reports. To ensure that the library is usable we also maintain a small number of exemplary tools that use the library. Currently this includes standalone example programs and Ant tasks.

Providing integration with other tools such as Hundson/Jenkins, Sonar and Maven are currently out of scope

Future Roadmap

  • API cleanup
  • Eclipse Plugin (EclEmma 2.0)
  • Support filtering of untestable/synthetic code

Concerns

TODO

Packaging and Deployment

JaCoCo currently ships in the form of a .zip download that contains the following:

  • JaCoCo Java agent jar continaing all dependencies
  • Ant jar containing all dependencies
  • runtime agent, ant task, core and reporting bundles (not required if using the all in one jars)
  • Documentation including usage examples

We will continue to use this archive for distributing the framework portion of JaCoCo but will provide a P2 repository containing the agent, core and report bundles to support the EclEmma 2.0 plugin.

All bundles will also be uploaded to a Maven2 repository to make the creation of a Maven2 plugin easier

Organization

Mentors

  • Chris Aniszczyk
  • TODO

Initial committers

  • Marc R. Hoffmann
  • Brock Janiczak, Individual
  • Evgeny Mandrikov, SonarSource

Interested parties

  • Chris Aniszczyk
  • Dave Carver