0.4

* Fixes:
   - Fix support for subfolders in assets/
   - Fix cases where Android Libraries have local Jars dependencies
   - Fix renaming of package through DSL to ensure resources are compiled in the new namespace
   - Fix DSL to add getSourceSets on the "android" extension.

0.3

* System requirements:
   - Gradle 1.3+ (tested on 1.3/1.4)
   - Android Platform Tools 16.0.2+
* New Features:
   - Renderscript support.
   - Support for multi resource folders. See 'multires' sample.
      * PNG crunch is now done incrementally and in parallel.
   - Support for multi asset folders.
   - Support for asset folders in Library Projects.
   - Support for versionName suffix provided by the BuildType.
   - Testing
      * Default sourceset for tests now src/instrumentTest (instrumentTest<Name> for flavors)
      * Instrumentation tests now:
          - started from "deviceCheck" instead of "check"
          - run on all connected devices in parallel.
          - break the build if any test fails.
          - generate an HTML report for each flavor/project, but also aggregated.
      * New plugin 'android-reporting' to aggregate android test results across projects. See 'flavorlib' sample.
   - Improved DSL:
      * replaced android.target with android.compileSdkVersion to make it less confusing with targetSdkVersion
      * signing information now a SigningConfig object reusable across BuildType and ProductFlavor
      * ability to relocate a full sourceSet. See 'migrated' sample.
      * API to manipulate Build Variants.
* Fixes:
   - Default Java compile target set to 1.6.
   - Fix generation of R classes in case libraries share same package name as the app project.

0.2

* Fixed support for windows.
* Added support for customized sourceset. (http://tools.android.com/tech-docs/new-build-system/using-the-new-build-system#TOC-Working-with-and-Customizing-SourceSets)
* Added support for dependency per configuration.
* Fixed support for dependency on local jar files.
* New samples "migrated" and "flavorlib"

0.1: initial release