# How to Contribute

XStream is nothing without contributions from the user community. There are many ways to contribute. We are constantly working on the software and documentation, so it's a good idea to contact the team on the user or development mailing lists to avoid duplicating effort.

## Documentation

One of the traditional weak points of open source software is the documentation. Any help with this aspect of the project will be welcomed with open arms, or at the very least with open email clients!

## Examples

We are working on one or two examples of using XStream, but we can always do with more.

## Feature Requests

We eat our own dogfood, but we're also happy to feed other people's dogs (if you'll excuse a stretched dachshund metaphor!). If you want to request a new feature you can either make a request through the issue tracker or by sending a message to the development mailing list. The benefit of any new features will be discussed on the mailing list, so its a good idea to sign up so that you can stick your oar in.

## Bug Reports

You can report bugs through the issue tracker interface or the development mailing list. Additional brownie points are awarded for bug reports that include a failing unit test.

## Bug Fixes

If you want lots of brownie points, send a fix along with your bug report and failing unit test. Bug fixes are best sent as patches that we can apply to the codebase. Remember to tell us which version the patch should be applied against, or we'll get very confused. To be accepted into the codebase, patches must be released under the same license as XStream itself.

## New Code

If you have a new feature request, then we'll listen extra hard if you show us how it works. A new feature might be best implemented as a patch to an existing class or as a new class. The XStream API contains many extension points that allow new functionality to be integrated into the framework. We are rather anal about testing, so if you send us some code without any tests we will probably ask you to write the tests tests as well before we add it to the codebase.

## Write Your Own XStream Extension

If you have a project that builds upon XStream we will be happy to announce your project on the XStream site.

## Become a Committer

We follow the Codehaus manifesto when it comes to expanding the core team.

# Software

- About XStream
- News
- Change History
- About Versioning

# Evaluating XStream

- Two Minute Tutorial
- Object references
- Tweaking the Output
- License
- Download
- References
- Statistics

# Using XStream

- Architecture Overview
- Converters
- Frequently Asked Questions
- Users' Mailing List
- JavaDoc Core
- JavaDoc Benchmark
- Reporting Issues

# Tutorials

- Two Minute Tutorial
- Alias Tutorial
- Annotations Tutorial
- Converter Tutorial
- Object Streams Tutorial
- Persistence API Tutorial
- JSON Tutorial

# Developing XStream

- How to Contribute
- Developers' Mailing List
- Development Team
- Source Repository
- Continuous Integration