We prefer to receive code contributions in the form of github pull requests. When you submit a pull request, there are a few things to keep in mind. Please ensure code changes:

Changing the Public API

If you making changes to the public API, make sure dev@geode.apache.org is aware that the changes will affect the public API by sending an email with [DISCUSS] in the subject to describe your changes.  Due to the large number of Geode users, we try to avoid breaking compatibility between versions.

Backwards Compatibility

In general, nothing can be removed or modified in way that is not backwards compatible. If something is deprecated, it can be removed after a major release, provided there is a discussion on the dev list.  Backwards compatibility affects API's, client applications, and WAN clusters.  Support for rolling upgrades is another important consideration.

Javadocs and @since tags

All public and internal APIs should have useful javadocs. For all public 
APIs (anything not in /internal/), new additions to the javadocs 
should include an @since tag to let the users know when the feature was 
added. Eg

/**
   * Returns a collection of all of the CacheServers
   * that can serve the contents of this Cache> to clients.
   *
   * @see #addCacheServer
   *
   * @since 5.7
   */
  public List<CacheServer> getCacheServers();

Any feature which is deprecated should specify a link to the new alternative.

It's best to start small with bug fixes or smaller features. Please feel free to discuss things and ask for help on the mailing list if you are interested in contributing.