eclipse test & performance tools platform project
Contributing to the Project

This project proposal is in the Proposal Phase and is posted here to solicit additional project participation and ways the project can be leveraged from the Eclipse membership-at-large. You are invited to comment on and/or join the project. Please send all feedback to the eclipse.test-and-performance newsgroup or the test-and-performance-proposal mailing list.

This document was inspired by the Contributing to the CDT document.


People often ask, "What does it take to get involved with the development of the Test & Performance Project?" There are many ways to get involved. On the lightweight end of scale, there is involvement by using the Hyades Platform and providing feedback and sharing your experiences on the Eclipse and Test & Performance Project newsgroups. Beyond that, you can report problems that you discover, so that they may be addressed in future releases. A deeper level of involvement would be to actually solve some of the problems that you or others have uncovered by modifying/writing the necessary code and creating patches that can applied by the project committers. The final, and most beneficial way to get involved, is to take responsibility for a significant piece of development work, whether it's enhancing a particular area of the tool or creating new functionality.

The purpose of this document is to help people and organizations understand what it means to "commit" to the Test & Performance Project development at this highest level. Basically, it involves a commitment to describe, develop, test and document your contributions.

Commitment to Development

Communicating Your Desires/Intentions
The first step involves informing the Test & Performance Project user community and other development team members of your proposal(s). The mechanism for this is to create Bugzilla entries to describe the enhancements or new capabilities you propose to do. The mailing lists and/or newgroups could also be used for discussing or proposing, in a more informal way, enhancements or new capabilities. Anyway, Buzilla is seen here as a central repository of reference for enhancement demands.

Bugzilla is the open source change management system used by Eclipse projects. To set these Bugzilla entries apart from other problem reports, the word "plan" should be used in the keywords field, and the severity of the entry should be set to "enhancement". Following these guidelines will ensure that all of these proposals get picked up by the appropriate query and recorded in the plan for the upcoming release.

Feature specifications (what your code will do) and design specifications (how it will do it) are an important aspect of the development effort. These specifications will allow the Test & Performance Project community and the rest of the development team to understand what you are doing and to provide feedback. The format of these documents is not important, the content is.

Becoming a Committer
Every Developer's contribution is welcomed. And over time, Developers can become Committers. A Committer is a Developer who has write access to the source code repository for the associated Project (or Subsystem), and has voting rights allowing to affect the future of the Project (or Subsystem); other Developers define patches and submit them, indirectly, through Committers. A Developer gains such Committer rights through frequent and valuable contributions to a Project (or Subsystem in the case of large Projects). For more information in what it means to be or to become a Test & Performance Project Committer, see the Test & Performance Project Charter. We should point out that creating and submitting quality patches is the best way to obtain Committer privileges for future work.

Delivering the Code
Once the feature and design documents have been distribution to the rest of the Test & Performance Project community and feedback has been harvested, its time to start pushing the code changes into the development stream. For Developers that have Committer privileges, these changes can be pushed directly into the stream. Developers without Committer privileges create patches that get reviewed and applied by Committers. Patch requests are communicated via the Project mailing lists. Being a Committer entails certain responsibilities on its own which won't be discussed here.

Commitment To Testing
Everyone that contributes content to Eclipse projects is expected to test their contributions. When contributing a significant enhancement or feature, that commitment means more than just assuring the community that the code has been tested. It means documenting a test plan and committing to execute that testing on release candidate builds. The Eclipse method of generating releases is to generate a series of release candidate builds after all of the development has been completed. Each release candidate goes through a test-fix cycle where everyone tests their contributions and communicates their findings. A collective decision is made as to which problems will get fixed for the next release candidate, and the process is repeated. Fewer and fewer fixes will be "blessed" as we progress through the release candidates.

So, committing to contribute significant code to the Test & Performance Project also means committing to participate in the test-fix cycles by executing your test plans against the release candidates build leading up to the final release build.

Commitment to Documentation
An important part of any enhancement or addition to the TPP is making sure that the on-line help of the tool stays current with the changes. The responsibility for writing/modifying/updating the on-line help content that is associated with some part of the tool lies with the contributors of the code. Unless the contributors have Committer privileges, the on-line documentation content would get submitted as a patch, much the same as code. And, like code, producing and submitting quality documentation patches is the way to obtain documentation committer privileges.

Until a Documentation Style Guide is available for the Test & Performance Project, you may refer to the CDT Documentation Style Guide to help maintain a constant look and feel for documentation originating from different contributors. There also a couple of links that take you to additional information on how to contribute help content for Eclipse projects.

So, finally, committing to contribute code to the Test & Performance Project also means committing to contributing the associated on-line documentation content for the part of the tool that is being enhanced or created.