1.5.9 (Pending)
* Fixed:  Prior to `1.5.8`, generating IntelliJ IDEA modules could generate a failure if the project included
          a dependency defined by a `JarTask` that specified a non-nil classifier. This failure scenario is now
          much more frequent given the changes to support external annotations that are packaged as jars. This
          crash is now avoided by changing guard from `artifact.respond_to?(:to_spec_hash)` to
          `artifact.is_a?(Buildr::Artifact)`.
* Fixed:  The `add_glassfish_remote_configuration` method and the `add_glassfish_configuration` method used the
          incorrect types for the default values for the `exploded` optional property. This is unlikely to have
          caused problems during normal usage but could lead to unexpected behaviour when the innards of these
          methods were monkey patched and expected the "correct" type for these properties.
* Fixed:  If all of the TestNG tests failed during the test setup then these tests would not be written to the
          list of failed tests which would mean that buildr would not mark the containing projects test task as
          failing when it runs. This has been patched to report any errors and fail the test task as expected.
* Added:  Add support for the GWT version `2.8.2-v20191108` released with the nonstandard group id.
* Added:  Add the `buildr/spotbugs` addon. Spotbugs is the successor of the Findbugs project and the buildr addon
          is based on the original findbugs addon.

1.5.8 (2019-07-14)
* Fixed:  Changed references to `https://repo1.maven.org/maven2` to use https where possible.
* Change: Use the `zapwhite` gem to manage file whitespace within repository.
* Fixed:  Replace references to long removed `http://www.ibiblio.org/maven2/` repository with
          `https://repo1.maven.org/maven2`.
* Fixed:  Ensure pom files used in tests use https when referring to maven repositories.
* Added:  Add support for downloading external annotations and attaching them to IntelliJ IDEA module dependencies.
* Added:  Detect external annotations in the local project and add them to the generated IntelliJ IDEA
          module when generating. The default location is `src/main/annotations` but other locations
          can be specified by modifying the `project.iml.annotation_paths` property.
* Fixed:  Explicitly specify the `:sourcepath` parameter for javadoc tool. This enables additional parameters
          such as `-packagenames` and `-subpackages` to be passed to the underling tool.
* Fixed:  Stop generating poms with the parent POM `org.sonatype.oss:oss-parent:8`. The last update was a long time
          ago (i.e. 2012) and it is no longer maintained. It was also deprecated several years ago and is not
          guaranteed to work in modern Maven deployments.

1.5.7 (2019-02-16)
* Fixed:  The fix that allowed special characters in usernames and passwords was only partially applied
          in the `1.5.6` release. The complete fix that correctly decoded usernames and passwords before
          passing them to HTTP library is now been applied.
* Change: GWT Addon: Added support for `:skip_merge_gwt_dependencies` parameter that makes it possible to
          avoid adding GWT dependencies to the project directly and thus the associated POM. This will be
          required to support GWT3.x and GWT2.x simultaneously as well as making it easier to manage
          dependencies in the POMs.
* Change: Javadoc: If the user does not supply an explicit `:sourcepath` to the doc/javadoc tool then
          default the value to `project.compile.sources`. This will stop javadoc from scanning the classpath
          for `*.java` files which can cause issues with projects that include `sources` classifier artifacts
          on the classpath. This is particularly relevant for GWT based projects that include artifacts with
          source embedded in the artifacts. This change also made it possible to remove an ugly hack in the
          GWT addon that removed the gwt artifacts from the javadoc path.
* Change: Drop deprecated Gem::Specification#has_rdoc= (no replacement) method. Submitted by Olle Jonsson.
* Change: Use https protocol to access Gem metadata. Submitted by Olle Jonsson.
* Change: Change RSpec shared_context usage to avoid warnings. Submitted by Olle Jonsson.
* Change: Migrated source control to Apache GitBox which supports using either GitHub or GitBox as the
          master repository.

1.5.6 (2018-05-10)
* Fixed:  Ensure that the username and passwords declared for repositories are correctly url encoded for
          the upload repositories when converted to a URL. (i.e. Ensure `Buildr.repositories.release_to`
          and `Buildr.repositories.snapshot_to` settings can have usernames and passwords with special
          characters).
* Added:  Add support for allowing some dependencies to include transitive dependencies via the
          `pom.include_transitive_dependencies` configuration setting.
* Added:  Add support for adding dependencies to the pom via the `pom.additional_dependencies` configuration
          setting. These dependencies are `compile` scope and are in addition to any derived from the normal
          compile dependencies.
* Fixed:  GWT Addon: Use version `1.0.2` of the `com.google.jsinterop:jsinterop-annotations:jar` artifact
          when using GWT 2.8.2 to align with version shipped with GWT.
* Fixed:  Dependencies added as `pom.provided_dependencies` or `pom.runtime_dependencies` and not included
          as compile dependencies were incorrectly omitted from pom.
* Fixed:  Dependencies added as `pom.provided_dependencies` and `pom.runtime_dependencies` were being
          incorrectly duplicated within the pom dependencies section. Now provided dependency scope takes
          precedence over runtime scoped dependency.
* Fixed:  Dependencies added to POMs will specify the classifier unless it is the default value.
* Added:  Add the `project.pom.dependency_filter` configuration property that can be set to a proc. The proc
          accepts a dependency and returns a boolean that determines whether the dependency is included in
          the generated pom or not.
* Fixed:  POMs generated by Buildr use the parent pom `org.sonatype.oss:oss-parent:pom:7` but this
          generates a warning in the latest version of Maven. Modern versions of Maven would thus
          ignore transitive dependencies declared in the pom. The parent pom has now been upgraded
          to `org.sonatype.oss:oss-parent:pom:8` which will result in modern Maven correctly picking
          up transitive dependencies.
* Change: JaCoCo Addon: Update JaCoCo version to 0.8.0 which in turns supports Java9.
* Added:  GWT Addon: Added support for `:gwtc_args` parameter to supply arbitrary parameters to
          the GWT compiler.
* Added:  Add support for sha512 digests to be generated for files during the upload. This is typically
          configured by adding `sha512` to the list of digests via a line such as:
          `repositories.release_to[:options] = {:digests => [:md5, :sha1, :sha512]}`
* Fixed:  The default upload tasks would often get a ReadTimeout when uploading using http to a remote
          server that did not have `KeepAlive` socket option enabled and the upload took more than 60
          seconds (the default socket read timeout). Some commercial maven repositories could trigger
          this scenario during upload of even modest size artifacts. Default the read_timeout to 10 minutes
          when during upload to work address this issue.

1.5.5 (2017-12-06)
* Fixed:  The concatenation extension released as part of 1.5.4 changed the way zip archives were
          constructed so that entries for some intermediate directories were elided. For most consumers
          of zip files this had no impact but some tools require the entries during scanning. (i.e. Older
          versions of Jruby that loaded ruby scripts from within a jar).
* Added:  IDEA Extension: Added support for passing `:iml_name` parameter to `ipr.add_gwt_configuration`

1.5.4 (2017-11-29)
* Added:  Findbugs Addon: Upgrade to version 3.0.1 of findbugs.
* Added:  GPG Addon: Add boolean configuration setting `project.gpg` that can be set to false via
          `project.gpg = false` to avoid signing and uploading packages. This is useful when some
          projects are not intended for publishing.
* Fixed:  JaCoCo Addon: Projects that have jacoco disabled will no longer appear in the JaCoCo reports.
* Change: JaCoCo Addon: Update JaCoCo version to 0.7.9.
* Fixed:  BUILDR-733 - Escape classpath entries in the pathing jar manifest. Submitted by Glenn Croes.
* Fixed:  Ensure that the pom is attached to the jar artifact with empty classifier rather than the last
          artifact of a type defined. Otherwise a project that defines multiple artifacts of the same type
          (i.e. `package(:jar)` and `package(:jar, :classifier => :gwt)`) could have the pom named after
          the package with the classifier rather than the package without a classifer. (i.e. the pom could
          be incorrectly defined as `mypackage-1.0.0-gwt.pom` rather than `mypackage-1.0.0.pom`).
* Added:  GWT Addon: Add support for GWT 2.8.2 release and make it the default version unless otherwise specified.
* Added:  GWT Addon: Added support for `:js_exports` boolean to enable "JsInteropExports".
* Added:  IDEA Extension: Added support for `:open_in_browser` boolean passed to `ipr.add_gwt_configuration`
* Added:  BUILDR-732 - Support bnd version 2.1.0 or more. Submitted By Eric Bruneton.
* Added:  Support to compiling Kotlin
* Fixed:  Remove section on development builds in the Contributing section.
* Added:  New way to concatenate file contents when merging several archives together.
* Added:  New way to transform file contents when merging several archives together.
* Fixed:  Removed .class files from being checked in.
* Added:  Support both Jetty 6 and Jetty 9 as addons. Added integration tests to cover their use.

1.5.3 (2017-05-17)
* Change: Add support for gwt 2.8.1 to gwt addon.
* Fixed:  Avoid error "undefined local variable or method `pom'" when invoking the `JarTask` without it being
  registered through the `package` helper`. Reported by Dieter Vrancken.

1.5.2 (2017-04-03)
* Change: Update TestNG version to 6.11.
* Change: BUILDR-731 - Enhance Sonar addon to support configuration of the project version. Submitted by Ross Mahony.
* Fixed:  Fix pom generation to eliminate invalid `classifier` element from being added to POM.

1.5.1 (2017-03-11)
* Change: In the 'buildr/git_auto_version' addon strip out any versions that start with a 'v' character as
          most projects on git repositories prefix version tags with a "v" to avoid collisions with any branches
          named after the version which are typically without the "v" character.
* Fixed:  GWT Addon: The GWT project publishes invalid jars that can not be included on source path when
          the javadoc tool is executing. Work around this issue in GWT by removing them from the documentation
          class path.
* Change: IDEA: Change the ordering of dependencies in the IDE module descriptor such that test dependencies are
          first to allow test dependencies to override/shadow compile dependencies.
* Fixed:  IDEA: Correctly configure the IDE module if the language level differs from the root project language level.
* Change: Add css2gss task to gwt addon to support conveting from deprecated css syntax to modern gss syntax.
* Change: Add support for gwt 2.8.0 to gwt addon.
* Change: Remove orderedhash gem.
* Change: Update jruby-openssl to 0.9.17
* Change: Move hoe to the development dependencies
* Fixed:  BUILDR-728 Snapshots metadata incorrectly created
* Fixed:  BUILDR-718 Deprecate SVN repository - remove links to SVN
* Change: BUILDR-724 Use scalamain to call scala projects
* Change: BUILDR-719 Change User-Agent when uploading artifacts
* Change: Set the OPEN_IN_BROWSER to false when building idea launch targets via add_glassfish_remote_configuration.
* Change: BUILDR-709 Integrate `buildr/custom_pom` into core and just make it the default pom generated.
* Fixed:  BUILDR-563 protobuf addon including source directories to protoc breaks build

1.5.0 (2016-09-23)
* Change: Update RJB to 1.5.4
* Change: Update rubyzip to 1.2.0
* Change: Update hoe to 3.15.0
* Change: Update net-ssh to 3.1.1
* Change: Update json_pure to 1.8.3
* Change: Update diff-lcs to 1.2.5
* Change: Update xml-simple to 1.1.5
* Change: Update jekyll to 3.1.3
* Change: Update rdoc to 4.2.2
* Change: Update ecj to 4.5.1
* Change: Added jekyll-textile-converter 0.1.0 to generate the site.
* Change: Move to default on Scala 2.11.
* Change: Remove Buildr::Project#on_define, deprecated in 1.3
* Change: Remove JavaWrapper, deprecated in 1.3
* Change: Remove JUnit::REQUIRES, deprecated in 1.3.3
* Change: Remove TestNG::REQUIRES, deprecated in 1.3.3
* Change: Remove Buildr::Ant::REQUIRES, deprecated in version 1.3.3
* Change: Remove Buildr::CompileTask#classpath, deprecated in version 1.3
* Change: Remove Buildr::TestTask responding to :using with .using('foo','bar'), deprecated in version 1.3
* Change: Remove addon/buildr/cobertura.rb, deprecated since 1.3.4
* Change: Remove addon/buildr/emma.rb, deprecated since 1.3.4
* Change: Remove support for Rakefile/rakefile, deprecated.
* Change: Remove project#target, project#reports, deprecated.
* Change: Remove JBehave::REQUIRES, deprecated.
* Change: Remove JMock::REQUIRES, deprecated.
* Change: Remove ScalaCheck::REQUIRES, deprecated.
* Change: Change Eclipse Scala project natures from ch.epfl.lamp.sdt.core.scalanature to org.scala-ide.sdt.core.scalanature
* Change: Fix the custom Google search widget on the website.
* Change: BUILDR-722 Remove links and image of the buildr book from the website.
* Added:  Travis badge to README.rdoc
* Added:  Added Rubygems badges to README.rdoc
* Added:  BUILDR-577 Allow remote repo to be added with http basic auth support. Submitted by Michael Guymon.
* Added:  BUILDR-523 Issue a warning when Java.classpath is modified after Java.load has happened
* Added:  BUILDR-594 Added support for changing the verification mode of SSL certificates
* Added:  BUILDR-595 Added support to providing custom SSL certificates
* Added:  BUILDR-572 Allow to upload unique version (timestamp based) snapshot artifacts to a repository. Submitted by Brice Figureau.
* Fixed:  BUILDR-207 remove 'Skipping tests' messages
* Added:  BUILDR-703 release: allow THIS_VERSION to be defined in another file
* Fixed:  BUILDR-674 Artifacts with bundle extension cannot be downloaded by Buildr
* Fixed:  BUILDR-565 resources are not included in the war if defined after package call
* Fixed:  BUILDR-621 ZipTask creates zip file with entries not sorted by path causing very slow unzipping.
* Fixed:  BUILDR-695 transitive doesn't support ${project.parent.version} in POM.
* Fixed:  BUILDR-653 Using Eclipse compiler (ECJ)
* Fixed:  BUILDR-476 Buildr doesn't respect company repository manager
* Fixed:  BUILDR-454 Definition-level parent-child references-by-name fail in 1.4.0 but not in 1.3.5. Submitted by Rhett Sutphin.
* Fixed:  BUILDR-620 resources.filter should not run on non-text files
* Fixed:  BUILDR-489 Java + Scala joint compiler fails if default encoding and source file encoding are not same and special characters have been used in source code
* Fixed:  BUILDR-486 Buildr-generated poms should include dependencies
* Fixed:  BUILDR-723 JavaTestFilter is unable to parse paths containing %2F
* Change: Update the custom_pom addon to generate poms with exclusions section that excludes
          all transitive dependencies. This is required as buildr dependencies are not
          transitive while Maven's dependencies are transitive by default.
* Change: Remove the BND aqute maven repository, as it was decommissioned. Use Maven Central instead.

1.4.25 (2016-04-18)
* Change: BUILDR-712 Update jruby-openssl dependency version or support a range of versions
* Change: Update gwt addon to add the GWT artifacts to project dependencies as specs rather
          than files.
* Change: Support the project.root_project utility method to retrieve the top level project.

1.4.24 (2016-03-19)
* Added:  Support the :no_invoke parameter being passed to Buildr.project() and
          Buildr.projects() to avoid attempting to call invoke when retrieving the projects.
* Added:  Add `exclude_paths` setting to pmd addon to allow paths to be explicitly excluded.
* Fixed:  Update jDepend addon to ensure target directories are invoked prior to attempting
          to analyze directories.
* Added:  Add jdepend.additional_project_names configuration to jDepend addon to
          ease merging in the source paths from multiple projects into one jDepend task.
* Added:  Add findbugs.additional_project_names configuration to Findbugs addon to
          ease merging in the source paths from multiple projects into one Findbugs task.
* Added:  Add checkstyle.additional_project_names configuration to Checkstyle addon to
          ease merging in the source paths from multiple projects into one Checkstyle task.
* Added:  Add pmd.additional_project_names configuration to PMD addon to ease merging in
          the source paths from multiple projects into one PMD task.
* Fixed:  In the PMD addon, check that the source directory exists before adding to
          sources directories to include.
* Fixed:  BUILDR-709 - Fix "Exception in jacoco.rb [TypeError : can't convert Array into
          String]". Submitted By Ross Mahony.
* Added:  Define the 'activate_jruby_facet' addon that activates the jruby facet in
          generated IDEA project modules.
* Change: Update the Intellij IDEA plugin to support marking directories as generated.
* Change: Update the Intellij IDEA plugin to correctly identify project paths as resource
          directories.
* Change: Update the default GWT version used in the GWT addon to the latest release 2.7.0.
* Fixed:  Fix GWT addon to explicitly add gwt-dev artifact to gwt compile path now that
          the bug that allowed unintended sharing has been fixed.
* Fixed:  Fix bug in IDEA module generation that resulted in dependencies in IDEA module
          using shared references to compile dependencies.
* Change: Update the checkstyle addon to use checkstyle 6.12.1.

1.4.23 (2015-06-12)
* Change: BUILDR-706 - Update the checkstyle addon use checkstyle 6.6. Submitted
          by Dieter Vrancken.
* Fixed:  Fix Buildr.rspec_present? so that it works under jruby 1.6.7.2
* Change: BUILDR-705 - Avoid attempting to load rspec classes unless Buildr.rspec_present?
          returns true. Reported By rbpandey.
* Fixed:  Remove debug output left in ipr.sql_dialect_mappings.

1.4.22 (2015-02-28)
* Change: BUILDR-704 - Updated the Sonar addon to support the latest version of SonarQube
          Runner. Submitted by Ross Mahony.
* Added:  Add support for ipr.add_glassfish_remote_configuration method that generates
          a remote glassfish configuration in IntelliJ IDEA project files.
* Added:  Add support for iml.prefix and ipr.prefix settings that prefix the generated
          IntelliJ IDEA project and module files.
* Change: Update the buildr gemspec so that rspec is no longer a required dependency.
          This enables end-users to use a different version of rspec and buildr in
          the same project. The rspec version MUST be be compatible with the version
          used by Buildr if rspec features are used from within Buildr. Buildr also
          issues a warning if the `check` method is called and rspec has not been loaded.
          The warning includes directions on how to resolve the issue. Submitted by r6p.
* Fixed:  A long standing bug existed such that if tests failed to compile, and the
          option Buildr.options.test is set to :all then the compilation error would
          not result in a failed build. As many people set the Buildr.options.test to
          :all in their continuous delivery/integration tools, this has caused some
          problems. This has been fixed by ensuring all the problems associated with
          the resolving the prerequisites are not caught when Buildr.options.test is
          set to :all.
* Change: Update checkstyle to 6.1.1. Submitted by neher.
* Fixed:  Avoid empty dependency issue in gwt addon if the attempting to gwt compile
          a project that has no src/main/java.
* Fixed:  Support dependencies in the gwt addon that are other local projects rather
          that artifacts, without forcing a compilation of dependency when parsing
          buildfile.
* Added:  Support configuration of sql dialect mapping in IDEA generated project files
          through methods on the ipr extension ipr.mssql_dialect_mapping,
          ipr.postgres_dialect_mapping and ipr.sql_dialect_mappings
* Added:  Support specification of the target project to which the gwt compilation
          artifacts are added as an asset, by using :target_project option.

1.4.21 (2014-11-28)
* Change: Upgrade atoulme-Antwrap to 0.7.5 to remove deprecation warnings in
          modern JRuby. Suggested by Pepijn Van Eeckhoudt.
* Change: Update the gwt addon to add the validation dependencies required for GWT
          compiles without requiring that the user specify the dependency.
* Change: Update ipr.add_gwt_configuration method to support GWT 2.7 configuration
          parameters and IDEA 14 parameters.
* Change: Upgrade jacoco to 0.7.2. Submitted by neher.
* Change: Update checkstyle addon to use Checkstyle 6.0.
* Added:  Updated the gwt addon to support the upcoming GWT 2.7.x release.
* Change: Enhance ipr.add_glassfish_configuration to support the ability to
          define the version of GlassFish in uses. Change the default to 4.1.0
          as that is the latest supported variant.
* Fixed:  Change the name of the GlassFish install in ipr.add_glassfish_configuration
          to use the same convention that IDEA uses by default. i.e. Name the
          installation "GlassFish 4.1.0" rather than "Glassfish 4.1.0".
* Change: Change the default version of the jdk in IDEA project files to 1.7.
* Change: Change the default version of the IDEA project files created to the
          current release version 13. To revert to the older versions specify
          ipr.version = '12' in your buildfile.
* Added:  Enhance the IdeaFile class to easily support mixing in of custom
          components from either the filesystem or from an artifact.
* Change: Update rjb to version 1.5.1.
* Added:  Update checkstyle addon to support downloading checkstyle checks
          as an artifact.
* Added:  Update checkstyle addon to supply checkstyle.config.dir property.
* Added:  Update pmd addon to support downloading rule files as an artifact.
* Change: Update pmd addon to use pmd version 5.1.3.
* Fixed:  BUILDR-702 - Retain Unix permission flags when merging
          zip files into another zip or tar archive. Submitted by Pepijn Van Eeckhoudt.

1.4.20 (2014-08-23)
* Fixed : BUILDR-688 - Disregard package-info.java files when determining if
          the Javac compiler should be run or not. Submitted by Pepijn Van
          Eeckhoudt.
* Fixed : Work around bug/feature of jruby 1.7.13 that caches Gem::Version
          objects based on constructor parameters that causes issues with
          Buildr as we mutate the version objects through monkey patching.
* Change: Upgrade rjb dependency to 1.4.9.
* Change: BUILDR-701 - Update to JUnit 4.11. Submitted by Jean-Philippe Caruana.
* Added:  Support the 'report_level' property on findbugs addon.
* Change: Update the findbugs addon to use the 3.0.0 version of Findbugs.
* Change: Update the findbugs addon to use the built-in findbugs stylesheet
          to generate the html report.
* Fixed:  Ensure that the 'source_paths' and 'extra_dependencies' properties
          in the findbugs addon does not contain arrays or nils.
* Fixed:  Ensure that the 'single_intermediate_layout' addon removes the top
          level target and reports directories during 'clean' phase.
* Added:  Enhance idea project generation of ejb facet by looking for ejb
          descriptors in location compatible with ejb-jars.
* Fixed:  Ensure that the 'source_paths' property in the pmd addon does not
          contain arrays or nils.

1.4.19 (2014-07-06)
* Fixed:  BUILDR-700 - Ensure SNAPSHOT artifacts, constructed using the
          download(artifact('group:artifact:jar:1-SNAPSHOT') =>
          'http://example.com/...') construct will correctly download the
          artifacts from configured URL.
* Fixed:  BUILDR-700 - Fix bug where buildr was truncating SNAPSHOT files
          that had not changed since last update check and HTTP was returning
          "HTTP Not Modified" status.
* Fixed:  Fix bug introduced in 1.4.18 version of custom_pom addon where
          poms are created for artifacts that have a classifier.

1.4.18 (2014-06-24)
* Fixed:  BUILDR-699 - Update the custom_pom addon to avoid failure when
          used with zip packages.
* Fixed:  BUILDR-694 - "buildr upload" fails: wrong number of arguments in
          progress bar read() in Ruby 2.1.0. Submitted By Mark Reibert.
* Change: Remove support for uploads to RubyForge.org with gem dependencies
          as the site no longer exists.
* Change: BUILDR-664 - Update Checkstyle addon so that extra_dependencies is
          the project dependencies by default. Move the checkstyle dependencies
          to the start of the classpath to avoid problems running checkstyle.
          Submitted by Dieter Vrancken.
* Fixed:  BUILDR-698 - Correct "Lines of code" example in documentation.
          Submitted By: Trejkaz.
* Added:  Add ipr.add_glassfish_configuration method for defining a local
          glassfish configuration within IDEA.
* Added:  Add ipr.add_ruby_script_configuration method for defining a ruby
          configuration within IDEA.
* Added:  Add ipr.add_java_configuration method for defining a java
          configuration within IDEA.
* Change: Include additional rules in default pmd rule set: 'finalizers' and
          'braces'.
* Change: Upgrade the version of PMD in use to 5.1.1.
* Change: Supply a default xsl file for generating the jdepend report.
* Fixed:  Fix the naming of css_lint addon file so it is made available
          as an addon.

1.4.17 (2014-05-25)
* Added:  Add the add_default_testng_configuration method to help IDEA
          project creation. Improves test coverage across 'default'
          configurations.
* Fixed:  Fix a bug where 'default' configurations in IDEA projects
          were being incorrectly created.
* Fixed:  Fix the vcs detection in IDEA addon for 1.8.6 (!) versions
          of ruby by reordering blocks.
* Change: Supply a default xsl file for generating the checkstyle
          report.
* Added:  Add csslint tasks css_lint:xml and css_lint:html that
          support source code analysis of CSS files.
* Added:  Add scss_lint tasks scss_lint:xml and scss_lint:html that
          support source code analysis of SCSS files.
* Added:  Import 'buildr/custom_pom' addon to make it easier to
          build POMs for projects publishing to Maven Central.
* Added:  Add flag to allow non portable extensions in wsgen addon.
* Fixed:  Avoid nil dereference bug in GWT addon when running GWT in
          a project that has no source directory.

1.4.16 (2014-05-03)
* Added:  Add the ability to generate a html report when using the
          jacoco addon. Extracted from the ode project.
* Fixed:  Remove the projectname.ids file when rebuilding the idea
          project file avoiding conflict with idea.
* Fixed:  Avoid passing duplicate -keep parameters to wsimport from
          wsgen addon.
* Change: Improved the error handling when generating java from wsdl
          in the wsgen addon.
* Change: Upgraded the Checkstyle plugin to use checkstyle 5.7 that
          improves Java 7 compatibility.
* Added:  Add support for configuration of the schema-pattern,
          table-pattern and default-schemas settings in idea's
          data source definitions.
* Change: Upgraded the PMD plugin to use pmd 5.0.5 which for Java 7
          compatibility.
* Change: Derive the version of GWT in gwt addon from supplied
          dependencies.
* Fixed:  Include the compiled classes on path for GWT addon to
          ensure the GWT compiler can load annotations.
* Change: Derive the GWT version from build settings if not
          explicitly specified by GWT addon.
* Change: Support prefixing the version generated by the
          gwt_auto_version addon with the environment
          variable "VERSION_PREFIX".
* Fixed:  Support overriding the GWT version used by the GWT addon.
* Fixed:  Fix problem when the :dependencies option was not
          passed to the GWT addon.
* Fixed:  Avoid crash in GPG addon if unable to create a pom
          for an artifact.
* Fixed:  Correct location of Git mirror in the README. Submitted
          by Marcos Sainz.

1.4.15 (2013-11-06)
* Change: Update to TestNG 6.8.7.
* Change: Updated the 'test_jar' package type to have a
          classifier of 'tests' and thus match maven
          conventions. Reported by Chris Bozic.
* Fixed:  BUILDR-689 - Ensure that war file includes generated
          assets rather than the "source" assets that may have
          been filtered.
* Fixed:  BUILDR-689 - Define assets task before the project is
          defined to avoid "undefined method `project='" if the
          project attempts to generate into the same directory.
* Added:  BUILDR-679 - Support uploading to a snapshot repository
          defined by repositories.snapshot_to if the artifact is
          a snapshot. Submitted by Tammo van Lessen.
* Change: Update the jaxb_xjc addon to add output directory to
          generated IDEA project files.
* Change: Update the default output directory used in the jaxb_xjc
          addon to use Maven conventions.
* Fixed:  Bug in IdeaProject.partition_dependencies resulted in
          projects being rebuilt if artifacts were added to the
          project with dependencies on the current project.
* Fixed:  BUILDR-605 - Ensure package task invokes included paths.
* Fixed:  BUILDR-609 - compile.from should accept Task argument.

1.4.14 (2013-10-11)
* Change: Remove highline dependency.
* Fixed:  BUILDR-682 - Fix the documentation for releasing using
          your own versioning scheme. Submitted by Jean-Philippe
          Caruana.
* Fixed:  BUILDR-681 - Stop empty projects creating target/webapp.
* Change: Add dependency from generated jws client source directory
          to the source wsdl in the wsgen addon.
* Fixed:  Fixed regression in gwt addon due to "pathing_jar"
          functionality in Java::Commands.java.
* Change: Support disabling the new "pathing_jar" functionality in
          Java::Commands.java utility method. Required for tools
          that introspect the classpath.
* Change: Update wsgen addon to generate source into a directory
          hierarchy based on maven conventions.
* Fixed:  Fixed regression using transitive dependencies due to
          presence of :scope option in Artifacts.to_hash.
* Fixed:  Fixed bug in GWT addon that required that the user supply
          the :dependencies option.
* Fixed:  Fixed bug in Intellij project file generation when adding
          a web facet.

1.4.13 (2013-10-02)
* Fixed:  BUILDR-439 - Fix java command under windows when supplied
          with extremely long classpath. Submitted By Tammo van Lessen.
* Fixed:  BUILDR-394 - Fix release task with standalone distribution.
          Submitted By Tammo van Lessen.
* Added:  BUILDR-678 - Improve support for gpg signing artifacts
          using a single method.
* Fixed:  BUILDR-677 - GPG addon hangs when .asc files are still in
          target. Submitted By Tammo van Lessen.
* Added:  Initial support for data source creation in Intellij IDEA
          project files.
* Fixed:  BUILDR-676 - Rework Java::Command:java so that it does not
          reject the :dir option. Reported by John Roth.
* Added:  Auto-detect jpa provider in Intellij IDEA facet generation if
          persistence.xml file is present and provider not specified.
* Added:  Auto-detect jruby version in Intellij IDEA facet generation if
          .ruby-version file is present.
* Added:  Improve support for auto-detection of ejb and web descriptors
          within Intellij IDEA project generation.
* Change: Default to setting the "User-Agent" header to "Buildr-VERSION"
          when accessing http resources. Maven Central rejects requests
          without a User-Agent string.
* Change: Change default scope of dependencies to 'compile'. Submitted
          by Ingo Schmidt.
* Change: BUILDR-675 - Set Cache-Control to 'no-cache' when downloading
          artifacts. Submitted by Félix Enrique Llorente Pastora.
* Added:  Initial support for simple integration of an asset pipeline.
          See "Compiling Assets" section in the manual.
* Fixed:  BUILDR-673 - Fix the option handling of the MultiTest test
          framework to behave as documented. Only the framework specific
          options are passed to the test. Submitted by John Roth.
* Added:  BUILDR-672 - Persist the properties field in the checkstyle
          addon so that they can be modified by the user. Submitted
          by Wim C.
* Fixed:  Make the package_as_* methods public so that the methods are
          detected in Ruby >= 2.0.0 via the respond_to? method.
* Change: Updated dependency versions;
          - rspec-expectations (2.14.3)
          - rspec-mocks (2.14.3)
          - rspec-core (2.14.5)
          - rspec (2.14.1)
          - minitar (0.5.4)
          - ci_reporter (1.8.4)
          - xml-simple (1.1.2)
          - rjb (1.4.8)
          - diff-lcs (1.2.4)
          - builder (3.2.2)
          - net-ssh (2.7.0)
          - net-sftp (2.1.2)
          - hoe (3.7.1)
          - json_pure (1.8.0)
          - highline (1.6.19)
* Fixed:  BUILDR-668 - Specify File::FNM_EXTGLOB for include globs
          where needed in Ruby >= 2.0.0. Reported by Yavor Nikolov.
* Fixed:  Ensure generation of buildfiles from eclipse projects will
          finds .project files in Ruby >= 2.0.0.
* Fixed:  Patch Rake::FileList in Ruby >= 2.0.0 to match dot files if
          a .* pattern is supplied as in earlier versions of ruby.
* Fixed:  Make Archive-related operations (e.g. zip.merge) deterministic using
          OrderedHash.
* Change: Update to TestNG 6.8.5.

1.4.12 (2013-05-04)
* Added:  BUILDR-648 Add new package(:test_jar) packaging type.
          Submitted by Mike Pettypiece.
* Fixed:  BUILDR-666 ZipFile.open modifies file regardless of usage.
          Reported by Pepijn Van Eeckhoudt, fix by Alex Boisvert.
* Change: Moved to using TravisCI to test the Linux variants.
* Added:  Make the location of the wsdl in generated source configurable
          in the wsgen addon.
* Added:  When generating the GWT facet for Intellij IDEA modules, use
          the gwt-dev maven artifact dependency if present as the SDK,
          falling back to the existing behaviour if not possible.
* Added:  Improved support for auto-detection of VCS dirs when creating
          IDEA projects.
* Added:  Added support for SuperDevMode in gwt addon and upgraded to
          GWT 2.5.1 by default.
* Change: BUILDR-664 Update Checkstyle addon so that extra_dependencies is
          empty by default. Submitted by Dieter Vrancken.
* Fixed:  BUILDR-663 require 'buildr' fails for Ruby 2.0.0.
* Fixed:  BUILDR-665 Java artifacts in build.yaml breaking ArchiveTask.
          Submitted by Antonio Pérez Barrero.
* Fixed:  BUILDR-662 reported time is much shorter than actual

1.4.11 (2013-03-14)
* Fixed:  Multiple tests in TestNG 6.x versions were being incorrectly passed to
          the command line application.

1.4.10 (2013-02-10)
* Added:  Support a single intermediate directory for each project hierarchy
          through an addon 'buildr/single_intermediate_layout'.
* Fixed:  BUILDR-660 possible build issue when using build.yaml and tasks/*.rake
          (Félix Enrique Llorente Pastora)
* Added:  Support the :dir option in the Java::Commands.java method.
* Fixed:  Scala 2.10 support - compiler now uses additional/separate jars
          introduced in 2.10 such as scala-reflect.jar and scala-actor.jar
* Added:  Add an addon for NSIS.
* Change: BUILDR-612 - Support the TestNG 6.x versions and default
          to 6.8.
* Added:  BUILDR-599 - Support the passing of arguments to testng
          test runner.
* Fixed:  Observer the per-project source version when generating
          IDEA module files.
* Change: Sort the components in IDEA project files in the same
          order the idea sorts them.
* Fixed:  Findbugs addon correctly handles String dependencies
          (vs task dependencies)
* Fixed:  Checkstyle addon correctly handles String dependencies
          (vs task dependencies)
* Added:  Created an addon 'buildr/wsgen' for generating wsdls from java
          and java from wsdls using the underlying wsgen tool.
* Change: Defer the expansion of generated poms by wrapping the generation
          in a Proc.
* Change: Rework Artifact.content(value) method to accept a Proc that
          will be called before the artifact is written rather than
          requiring a string.
* Added:  Create a 'buildr/gpg' addon that signs and uploads signatures
          when uploading artifacts. Inspired by a similar extension in
          the Apache ODE project by Tammo van Lessen.
* Change: Updated dependency versions;
          - jruby-openssl (0.8.2)
          - atoulme-Antwrap (0.7.4)
* Change: Require 'bundler/setup' as part of buildr startup to ensure that
          buildr always runs with up to date dependencies if a Gemfile is
          present.
* Added:  Add FrameworkDetectionExcludesConfiguration facet to Idea project
          file creation by default.
* Fixed:  In the IntelliJ extension, defer the materialization of the
          default_components until expansion time to avoid loss of sub-
          components added after an add_component call.
* Fixed:  BUILDR-633 - Remove hardcoded shebang lines in all-in-one release.
* Added:  Create a simple extension that modifies the project layout to place
          generated files at the top level.

1.4.9 (2012-11-08)
* Fixed:  Fixed the interaction with the FileUtils classes. The last release
          introduced a non-deterministic bug that sometimes caused logging
          preferences to be ignored and the install method to be
          inadvertently overwritten.

1.4.8 (2012-11-01)
* Change: Revert to importing non-verbose FileUtils utility methods to match buildr 1.4.6 release and earlier.
* Added:  Experimental support for jacoco code coverage tool.
* Fixed:  BUILDR-655 - Support JDK1.7 under OSX
* Change: Updated dependency versions;
          - builder (3.1.3)
          - rubyforge (2.0.4)
          - net-ssh (2.6.0)
          - hoe (3.1.0)
          - rjb (1.4.2)
          - rdoc (3.12)
          - xml-simple (1.1.1)
          - rspec-expectations (2.11.3)
          - rspec-mocks (2.11.3)
          - rspec-core (2.11.1)
          - rspec (2.11.0)
          - rubyzip (0.9.9)
* Added:  BUILDR-652 Generate buildfile from Eclipse workspace. (Niklaus Giger)
* Fixed:  BUILDR-627 Support explicitly listed source files in buildr cc task. (Christopher Tiwald)
* Fixed:  BUILDR-606 Transitive artifact resolution should not include artifacts in 'provided' scope in poms to
          match maven behaviour. (Julio Arias)
* Change: BUILDR-640 Enable building jekyll and rdoc under more rubies. (Niklaus Giger)
* Change: Mark Buildr:Bnd.remote_repository as deprecated as dependencies appear in maven central.
* Added:  BUILDR-654 Add the ability to configure the version of BND used by bnd addon. (Niklaus Giger)
* Added:  Create the git_auto_version addon that automatically specifies a version for a git project based
          on git describe.
* Added:  Integrate with Zinc (incremental compilation wrapper for scalac 2.9+)
* Change: Default to Scala 2.9.2, ScalaTest 1.8, Scala Specs2 1.11,
          ScalaCheck 1.10.0.
* Change: Scala artifact repository changed to
          http://oss.sonatype.org/content/repositories/releases
* Added:  BUILDR-645 Support Mercurial as a version control system (Tan Quach)
* Fixed:  BUILDR-646 TGZ files do not keep their permissions when extracted
          via Buildr::Unzip#extract
* Added:  Add add_exploded_ear_artifact and add_exploded_ejb_artifact to the idea project extension.
* Change: Default to using Checkstyle 5.5 in the checkstyle addon.
* Fixed:  Fix the add_exploded_war_artifact method on the idea project by adding in missing method
          `partition_dependencies`.
* Fixed:  Fix the extension of the gwt plugin so that it can be required as an addon.
* Fixed:  Fix the undefined default_web_xml variable in the add_web_facet method on the idea project.

1.4.7 (2012-05-29)
* Added:  BUILDR-618 pom properties feature does not support hierarchy (kafka liu)
* Added:  Add a Sonar extension.
* Change: BUILDR-638 Update to rake 0.9.2.2 (Russell Teabeault)
* Added:  BUILDR-316 Add a GWT extension
* Change: BUILDR-624 Update rspec version to 2.9.0 (Russell Teabeault)
* Change: BUILDR-632 Update net-ssh version to 2.3.0 (Russell Teabeault)
* Change: BUILDR-632 Update net-sftp version to 2.0.5 (Russell Teabeault)
* Fixed:  BUILDR-635 JRE container entry to be declared before user sources and dependencies (Dani Perez)
* Change: BUILDR-639 Stop requiring pygmentize to run "rake -T" (Russell Teabeault)
* Added:  Enhance the IDEA extension to support the addition of several explicit facets such as
          ejb, jruby, jpa, web and gwt.
* Added:  Add several utility methods to IDEA extension for defining artifacts and configurations.
          Add some explicit methods to support a gwt configuration and a "Exploded War" artifact.
* Change: Upgraded to Apache Ant 1.8.3
* Change: Default maven2 repository is now repo1.maven.org/maven2.
* Change: Make minimumTokenCount and encoding configurable for the PMD/CPD action
          and default encoding to UTF-8 for compatibility with external tools (i.e. Jenkins)
* Change: BUILDR-615 VersionRequirement.version? now returns true for
          versions following pattern "r9999", e.g. "r09"
* Change: BUILDR-630 Run task should not add test dependencies (Russell Teabeault)
* Change: BUILDR-629 JavaRunner should include target/resources in classpath (Russell Teabeault)
* Fixed:  BUILDR-617 pom exclusion does not work (Kafka Liu)
* Added:  Add a Findbugs extension.
* Added:  Add a Checkstyle extension.
* Added:  Add a JavaNCSS extension.
* Added:  Add a PMD extension.
* Added:  MultiTest framework that allows combining multiple test frameworks
          for a single project.
* Added:  Scala Specs2 framework support.
* Added:  Buildr.transitive() now accepts hash with :scopes, :optional and
          :scopes_transitive parameters
* Added:  Improved scala file change detection
          (to avoid recompiling  unnecessarily)
* Added:  ScalaTest now automatically loads the Mockito library
* Added:  Enhance the Intellij IDEA extension to support the addition of "artifacts"
          and "configurations" to the generated project file.
* Added:  BUILDR-598 TestNG support for :groups and :excludegroups (Christopher Coco)
* Added:  BUILDR-616 Buildr development - If using rvm a default .rvmrc file would be helpful (Russell Teabeault)
* Change: Scala Specs upgraded to 1.6.9 if using Scala 2.9.1
* Change: Scala 2.9.1 is now default
* Change: Make it possible to parameterize the JDepend extension and control the
          projects that are included in the analysis and to enable support for
          loading a per project jdepend.properties.
* Change: Parameterize the the directory where the top level cobertura tasks will generate
          reports. Specify using Buildr::Cobertura.report_dir = '....'
* Change: Stop pretty printing the Intellij IDEA project files to avoid IDEA breaking
          in the presence of non-normalized whitespace content.
* Change: Change the Intellij IDEA extension to always rebuild the project files.
* Change: Upgrade to require atoulme-Antwrap 0.7.2
* Change: Changed the default output directory for Intellij IDEA extension to be
          _(:target, :main, :idea, :classes) from _(:target, :main, :java) and the
          default test output directory to be _(:target, :test, :idea, :classes)
          from _(:target, :test, :java)
* Change: Upgrade to highline 1.6.2
* Change: Upgrade to jekyll 0.11.0, jekylltask 1.1.0, RedCloth 4.2.7, rdoc 3.8 for
          generating documentation
* Change: Upgrade to require rubygems > 1.8.6
* Change: BUILDR-603 Remove install/uninstall actions from :gem packaging type
* Change: BUILDR-602 Fail the build when gem dependencies are missing rather than
          attempting to install the dependencies
* Change: BUILDR-601 Remove Buildr::Util::Gems
* Change: BUILDR-600 Centralize the common ad internal requires into one location.
* Change: Upgrade to JRuby 1.6.2
* Change: Move to Bundler to manage the project dependencies
* Change: BUILDR-548 Remove support for JTestR as it is no longer maintained (Antoine Toulme)
* Change: BUILDR-614 Buildr development - Using rvm, bundler and OSX installs the wrong rjb (Russell Teabeault)
* Change: Upgrade to RJB 1.4.0
* Fixed:  ArtifactNamespace fails when using artifacts with classfier.
* Fixed:  Buildr.artifacts() should handle any object with :to_spec method
          (i.e., any object that ActsAsArtifact)
* Fixed:  Handle HTTP Unauthorized (501) result code when downloading artifacts.
* Fixed:  BUILDR-611 Buildr should not unnecessarily recompile Java files
          explicitly added to compile.from
* Fixed:  scaladoc generation with scala 2.9.x
* Fixed:  Bnd Plugin: Add each artifact individually as a prerequisite to
          bundle / package task when passed to classpath_element method
* Fixed:  BUILDR-439 "The command line is too long" when running TestNG tests (Tammo Van Lessen)
* Fixed:  BUILDR-595 Add option to specifiy location of ca cert
* Fixed:  BUILDR-596 Update installation notes to talk about the all-in-one bundle

1.4.6 (2011-06-21)
* Added:  BUILDR-592 Allow Users to Specify SSH Options for Deployment (Marc-André Laverdière)
* Fixed:  BUILDR-591 Sort modules in iml files generated by idea task to ensure
          main_dependencies are exported
* Added:  Support for Scala 2.9.0+ (with help of Alexis Midon)
* Fixed:  BUILDR-583 Update jruby install to use jruby version 1.6.1 (Alexis Midon)
* Fixed:  BUILDR-582 Revert the name change for the task to generate Intellij
          project files to 'idea'
* Change: BUILDR-579 Format generated IDEA project files to look more like what
          IntelliJ generates (Peter Royal)
* Change: BUILDR-574 Enhance idea task to generate test resources with test scope
          (Jean-Philippe Caruana)
* Change: BUILDR-576 Upgrade to JUnit 4.8.2
* Change: Upgrade to JRuby 1.6.2
* Change: Scala 2.9.0-1 is now default, along with ScalaCheck 1.9, ScalaTest 1.6.1
          and Specs 1.6.8.
* Change: ScalaCheck, ScalaTest and Specs now default to sane versions when using
          older Scala versions.
* Fixed:  BUILDR-571 Generated IDEA projects include resources multiple times (Peter Royal)
* Fixed:  BUILDR-573 HTTP upload PUT request with incorrect Content-Type (Mathias Doenitz)
* Fixed:  BUILDR-578 Tar task does not preserve uid/gid on folders (Jean-Philippe Caruana)
* Fixed:  BUILDR-251 Classifier not handled when downloading snapshot artifacts (Ryan Fowler)
* Fixed:  BUILDR-585 "TypeError : can't dup NilClass" when merging jars
* Fixed:  BUILDR-586 ScalaTest uses deprecated ant task (Martin Partel)
* Fixed:  BUILDR-584 eclipse plugin should use absolute path
* Fixed:  BUILDR-587 ScalaTest uses deprecated reporter parameters

1.4.5 (2011-02-20)
* Added:  BUILDR-555 Add support for the jaxb binding compiler (Mark Petrovic)
* Added:  BUILDR-554 Add support for OSGi bundle packages by importing the
          buildr_bnd plugin
* Added:  BUILDR-125 Add support for <security-role> in application.xml of
          EAR packaging (Mikael Amborn)
* Added:  BUILDR-550 Add support for groovydoc
* Added:  BUILDR-521: System tray notifications for Linux systems
          (via libnotify/notify-send)
* Added:  BUILDR-537 Shell tasks should use JAVA_OPTS by default
* Added:  BUILDR-538 Shell tasks should support passing :java_args
* Added:  BUILDR-544 Support ${groupId} in pom files (Chris Dean)
* Added:  BUILDR-552 Projects may now be defined using project(:name) and a block
* Added:  BUILDR-564 Add package(:scaladoc)
* Added:  Automatically add "require buildr/{groovy,scala}"  when generating
          project if Groovy/Scala files are detected.
* Change: BUILDR-540 Upgrade to rspec 2.1.0
* Change: BUILDR-546 Upgrade to Rubyzip 0.9.4 (Michael Guymon)
* Change: BUILDR-556 Merge buildr-iidea extension back into buildr.
* Change: Upgrade default Scala compiler version to 2.8.1-final
* Change: Upgrade to ScalaCheck 1.8
* Change: Upgrade to ScalaTest 1.3
* Change: Upgrade to Specs 1.6.6
* Change: Upgrade to JRuby 1.5.6
* Fixed:  BUILDR-542 Release task:  SVN tagging fails if parent tag directory
          does not exist yet (Gerolf Seitz)
* Fixed:  BUILDR-543 POMs are installed and uploaded twice when using artifacts
          with classifier
* Fixed:  BUILDR-522 Send notifications when continuous compilation
          succeeds/fails.
* Fixed:  BUILDR-551 Continuous compilation not working for project trees
* Fixed:  BUILDR-557 MD5 + SHA1 checksums are not Maven compliant (Tammo van Lessen)
* Change: Upgrade to Groovy 1.7.5
* Change: BUILDR-545 Add the ability to specify the description element in in
          application.xml contained within an ear.
* Fixed:  BUILDR-547 - Ensure ECJ compiler works when there is a space in the
          path of dependencies.
* Fixed:  BUILDR-558 Artifact uploads should show a progress bar (Tammo van Lessen)
* Fixed:  BUILDR-560 show a meaning full error message when POM cannot be parsed
          (Tammo van Lessen)
* Fixed:  BUILDR-562 WAR package isn't updated if files under src/main/webapp
          are updated
* Fixed:  BUILDR-569 Buildr fails under JRuby 1.6.0.RC1 due to read-only $? variable
* Fixed:  BUILDR-570 Buildr does not work with Rubygems 1.5.x
* Fixed:  Scaladoc task would cause build to exit prematurely

1.4.4 (2010-11-16)
* Change: BUILDR-549 Upgrade to RJB 1.3.3 to address "Cannot create JVM" issue with Java Update 3
          on Mac OS X.  Win32 platform upgraded to RJB 1.3.2.
* Change: RSpec gem dependency ~> 1.3.1
* Change: Upgrade to JtestR 0.6

1.4.3 (2010-10-15)
* Added:  BUILDR-514 New 'run' local task. http://buildr.apache.org/more_stuff.html#run
* Added:  BUILDR-518 Load _buildr.rb or .buildr.rb from same directory as Buildfile
          if they exist (Peter Donald)
* Added:  BUILDR-519 Load repositories.release_to from build settings (Peter Donald)
* Fixed:  BUILDR-520 Scaladoc 2.8 no longer support -windowtitle, use -doc-title instead.
* Fixed:  BUILDR-512 Buildr::Util.ruby invokes non existent method (Peter Donald)
* Fixed:  BUILDR-513 --trace fails with NoMethodError : undefined method
          `include?' for nil:NilClass
* Fixed:  BUILDR-515 -update-snapshot doesn't work as expected
* Fixed:  BUILDR-517 package(:jar).include(directory, :as=>"foo") produces a corrupted jar
* Fixed:  BUILDR-524 Optimized and more robust reading of jar MANIFEST.MF (Hugues Malphettes)
* Fixed:  BUILDR-525 Documentation refers to repositories.upload_to rather than
          repositories.release_to (Peter Donald)
* Fixed:  BUILDR-526 Gracefully handle h2 sections with no id in documentation (Peter Donald)
* Fixed:  BUILDR-527 package(:war) if libs passed are files (instead of artifacts)
* Fixed:  BUILDR-528 Stop using deprecated method Gem::Dependency.version_requirements correctly (Peter Donald)
* Fixed:  BUILDR-529 Stop using gem name "foo" in tests as it is the name of an actual gem (Peter Donald)
* Fixed:  BUILDR-531 Improve error message when build requires gem that can't be found in local/remote
          gem repositories (Peter Donald)
* Fixed:  BUILDR-532 package_as_source does not package resources (Tammo van Lessen)
* Fixed:  BUILDR-534 package_with_sources does not package source artifacts if no sources but resources exist.
          (Tammo Van Lessen)
* Fixed:  BUILDR-535 Failing "checks" produce no meaningful errors  on JRuby
* Fixed:  JavaRebel was previously not correctly detected.

1.4.2 (2010-09-18)
* Added:  BUILDR-415 Ability to exclude tests from command line
* Added:  BUILDR-495 Document twitter on Buildr's homepage
* Added:  BUILDR-212 Update support for SNAPSHOT artifacts (Timo Rantalaiho and Izzet Mustafa)
* Added:  BUILDR-465 Eclipse project names should be customizable
* Added:  BUILDR-493 Eclipse task should generate javadocpath
* Added:  BUILDR-509 Option to generate non-prefixed Eclipse project names
* Added:  BUILDR-510 Add support for trace categories: --trace=foo,bar
* Added:  Integration test to show how to change the war packaging spec.
* Added:  Integration test to show how to use junit 3.
* Added:  Integration test to show how to get ahold of parent project
* Change: BUILDR-473 Update jruby-openssl dependency version or support a range of versions
* Change: BUILDR-478 Upgrade to net-ssh 2.0.23 and net-sftp 2.0.4 (Shane Witbeck)
* Change: BUILDR-475 Support for long names on tar.gz (updated to minitar 0.5.3)
* Change: BUILDR-484 Upgrade to Scala 2.8.0 (final) and associated dependencies
          (ScalaCheck 1.7, ScalaTest 1.2, Specs 1.6.5)
* Change: BUILDR-487 package :sources should default to using .jar extension (instead of .zip)
* Change: Upgrade to Jruby 1.5.2
* Fixed:  BUILDR-143 Upload to a file:// path needs ability to specify permissions (Joel Muzzerall)
* Fixed:  BUILDR-144 Filter does not preserve file permissions
* Fixed:  BUILDR-163 cobertura-check
* Fixed:  BUILDR-203 Compiler guessing very inefficient
* Fixed:  BUILDR-225 ArchiveTask#merge, not according to doc
* Fixed:  BUILDR-256 Automatically installing gems aborts rspec test runner (Rhett Sutphin)
* Fixed:  BUILDR-285 Cobertura failing when running build
* Fixed:  BUILDR-302 Move out-of-date Nailgun documentation to wiki (Shane Witbeck)
* Fixed:  BUILDR-317 ecj compiler
* Fixed:  BUILDR-326 follow up: binary safe untarring on Windows (Sam Hendley)
* Fixed:  BUILDR-335 follow up: excluding libraries from war is confusing
* Fixed:  BUILDR-342 The jruby gem installer invokes the removed Gem.manage_gems function (Rhett Sutphin)
* Fixed:  BUILDR-403 Buildr::Util::Gems.install does not find gems on remote sources
* Fixed:  BUILDR-436 release task should only replace "-SNAPSHOT" (spec from Jean-Philippe Caruana)
* Fixed:  BUILDR-438 Release Task: customizable version numbers (Alexis Midon)
* Fixed:  BUILDR-464 Improve the versioning of Buildr (Rhett Sutphin)
* Fixed:  BUILDR-466 Rendering issue with IE on the website (Shane Witbeck)
* Fixed:  BUILDR-468 test:failed does not respect test.exclude
* Fixed:  BUILDR-469 test:failed causes all transitive tests to run
* Fixed:  BUILDR-472 ECJ dependency now required to build any java project
* Fixed:  BUILDR-477 Error while parsing maven-metadata.xml
* Fixed:  BUILDR-479 Enforce using a minimal version of jruby
* Fixed:  BUILDR-481 Antwrap monkey-patching in core.rb
* Fixed:  BUILDR-482 Javadoc : cannot load class java.com.sun.tools.javadoc.Main
* Fixed:  BUILDR-488 artifact poms not reinstalled
* Fixed:  BUILDR-491 sftp download goes into infinite loop
* Fixed:  BUILDR-498 Artifact download fails with "negative argument" if
          terminal capabilities are undefined
* Fixed:  BUILDR-499 Java package caching through constants
          e.g. (Java.java.lang.String cached as Java::Lang::String)
          can shadow Ruby modules
* Fixed:  BUILDR-501 Fix buildr label when listing tasks (Peter Donald)
* Fixed:  BUILDR-503 Include with as includes directories as files when the directory has the same name as the path
* Fixed:  BUILDR-506 Gem packaging does not work under windows (Peter Donald)
* Fixed:  BUILDR-508 Remove unnecessary use of Java.classpath in OpenJPA
          extension (Peter Donald)
* Fixed:  BUILDR-507 Gem packaging should replace dashes with dots in
          version number (Peter Donald)

1.4.1 (2010-07-07)
* Added:  BUILDR-420 Support external compiler
* Added:  BUILDR-425 Specify dev dependencies in .gemspec
* Change: BUILDR-459 Update gemspec to accept json_pure ~> 1.4.3
* Fixed:  BUILDR-455 cc_spec.rb l 160 depends on time and thus fails intermittently
* Fixed:  BUILDR-461 Packages with different ids collide
* Fixed:  BUILDR-439 "The command line is too long" when running TestNG tests
* Fixed:  BUILDR-463 Setting a system property in the buildfile causes a NoClassDefFoundError

1.4.0 (2010-06-18)
* Added:  BUILDR-405 Enhance the idea7x extension to supply a task to delete generated files
          (Peter Donald)
* Added:  Support for regexps in include and exclude patterns (BUILDR-406)
* Added:  Support for Scala 2.8 compiler-level change detection and dependency
          tracking
* Added:  Continuous compilation
* Added:  Generic documentation framework (using the `doc` task).  Replaces
          `javadoc` task
* Added:  New "test:failed" task to execute only tests that failed during last
          run (Antoine Toulme)
* Added:  Project extensions (before/after_define) now support dependency ordering
          similar to Rake (e.g. before_define(:my_setup => :compile)
* Added:  BUILDR-328 Detect Eclipse plugin project with META-INF/MANIFEST.MF
          and Bundle-SymbolicName: entry
* Added:  Support for Eclipse classpath variables to avoid absolute pathnames in
          generated .classpath using:
            eclipse.classpath_variables { :VAR => '/path/to/libraries' }
* Added:  Support for excluding libraries from Eclipse classpath using:
            eclipse.exclude_libs += ['/path/to/some/library.jar']
* Added:  Environment variable IGNORE_BUILDFILE can be set to "yes" or
          "true" to ignore changes in Buildfile when running tests.
* Added:  "buildr test=only" will only run tests explicitly specified on the
          command line (and ignore transitive test dependencies)
* Added:  ArtifactNamespace.{keys,clear} methods
* Added:  BUILDR-326 Support unzipping tar.gz files (Antoine Toulme)
* Added:  BUILDR-368 Support protocol buffer code generation
          (Pepijn Van Eeckhoudt)
* Added:  BUILDR-375 Buildr now recognizes buildfile.rb and Buildfile.rb
          (Kerry Wilson)
* Added:  BUILDR-390 Buildr::group() should accept :classifier argument
* Added:  BUILDR-407 Exclude and include patterns should support lambdas or procs
* Added:  BUILDR-408 Filter include() and exclude() should accept Rake tasks
* Added:  BUILDR-409 archive.include() should convert arguments to artifact
          if applicable
* Added:  BUILDR-453 Provide a ci task that uses the ci_reporter gem (Pepijn Van Eeckhoudt)
* Added:  ScalaTest now generates JUnit XML reports in addition to text files.
* Change: Updated to Ant 1.8.0
* Change: Updated to Cobertura 1.9.4.1
* Change: Updated to Groovy 1.7.1
* Change: Updated to JRuby 1.5.1
* Change: Updated to JtestR 0.5
* Change: Updated to JUnit 4.7
* Change: Updated to JMock 2.5.1 (Antoine Toulme)
* Change: Updated to RJB 1.2.5
* Change: Updated to Scala Specs 1.6.2.1
* Change: Updated to ScalaCheck 1.6
* Change: Updated to ScalaTest 1.0.1
* Change: Updated to json_pure 1.4.0
* Change: Load buildr.rb from $HOME/.buildr instead of $HOME
          ($HOME/buildr.rb is still loaded with deprecation warning)
* Change: BUILDR-400 Don't forbid projects to use their own compiler after one has been guessed
* Change: BUILDR-401 Don't set compiler to output warnings if verbose
* Change: Buildr.settings.build['scala.version'] now overrides SCALA_HOME to
          determine which Scala libraries used for compiling.  If both are
          are provided and reference the same Scala version, then local
          jars from SCALA_HOME are used.
* Change: Tagline changed from "The build system that doesn't suck" to "Build like you code"
* Change: BUILDR-355 Use Rake for defining tasks to do the Buildr distro over JRuby (Izzet Mustafa oglu)
* Change: BUILDR-448 Don't use sudo by default for rake setup
* Change: BUILDR-450 Update .gitignore to exclude idea project files and files generated during spec tests (Peter Donald)
* Fixed:  BUILDR-208 ansi control characters are printed on Windows (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-348 Buildr fails on windows with jruby and ODE 1.X
* Fixed:  BUILDR-183 Can't define root artifact namespace outside of project
          (Ittay Dror)
* Fixed:  BUILDR-223 Release Task: customizable commit message (Alexis Midon)
* Fixed:  BUILDR-232 buildr should print the class of an exception, not just
          its message (Antoine Toulme)
* Fixed:  BUILDR-233 Can't specify version in artifact namespace
* Fixed:  BUILDR-267 Skipping tests is only done after they are compiled
          (Antoine Toulme)
* Fixed:  BUILDR-281 Application#initialize fails if home dir isn't writable
* Fixed:  BUILDR-327 Specifying :plugin eclipse nature explicitly fails
* Fixed:  BUILDR-330  Install task should re-install artifact even if they
          already exist (Alexis Midon)
* Fixed:  BUILDR-334 Eclipse .classpath files use absolute paths for library
          entries (Stefan Wasilewski)
* Fixed:  BUILDR-336 Java::Commands.java Prints Command Without --trace
          (Antoine Toulme)
* Fixed:  BUILDR-341 jruby -S extract is no longer supported by jruby
          (Antoine Toulme)
* Fixed:  BUILDR-344 Buildr::TestFramework::TestResult::YamlFormatter uses
          deprecated form of example_pending (Rhett Sutphin)
* Fixed:  BUILDR-345 Improve project documentation (Peter Schröder)
* Fixed:  BUILDR-346 Test classpath can not be set (Peter Schröder)
* Fixed:  BUILDR-347 Compile.from does not work correctly with FileTask when
          no compiler is set (Peter Schröder)
* Fixed:  BUILDR-349 resources.filter should use defaults from profile.yaml
          even if mapping is provided
* Fixed:  BUILDR-360 Reintroduce tag_name instance method for Git release task for
          backward compatibility (Antoine Toulme)
* Fixed:  BUILDR-361 Generate Eclipse .project file even if project has no
          nature.  Also prevent generation of .project if project has
          children. (Antoine Toulme)
* Fixed:  BUILDR-364 Package spec should be set to a Symbol when :file is
          used (Klaas Prause)
* Fixed:  BUILDR-365 test task should use test compile dependencies
* Fixed:  BUILDR-366 Scala dependencies should be lazily loaded into
          Java.classpath
* Fixed:  BUILDR-373 Package type specific implementations of install,
          uninstall and upload are not invoked (Antoine Toulme)
* Fixed:  BUILDR-374 upload tasks can attempt to upload artifacts multiple times (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-379 Ant sql task abruptly terminates buildr
* Fixed:  BUILDR-380 GitRelease: recursive search for root '/' does not work
          under Windows (Antoine Toulme)
* Fixed:  BUILDR-381 JUnit tests on Groovy project fail with
          NoClassDefFoundError: junit/framework/TestCase
* Fixed:  BUILDR-382 Packages with default spec are not always created correctly
* Fixed:  BUILDR-383 artifact().from(task_dependency) should not trigger
          task_dependency if artifact exists
* Fixed:  BUILDR-384 Buildr fails with rubygems 1.3.6
* Fixed:  BUILDR-386 Display JRuby version in buildr -V (Antoine Toulme)
* Fixed:  BUILDR-388 Continuous Compilation Support for Sub-Projects
* Fixed:  BUILDR-391 resources task does not detect changes
* Fixed:  BUILDR-392 Array values not flattened in (one version) of eclipse
          task properties (Antoine Toulme, Peter Dettman)
* Fixed:  BUILDR-306 Cobertura extension does not handle dependencies
          correctly (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-398 FileUtils#sh does not work correctly on Windows
          (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-399 invoke_with_call_chain does not restore call chain
          correctly (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-418 jruby exception: `ffi_libraries': no library specified
* Fixed:  BUILDR-442 Errors while running the specs with jruby 1.5
* Fixed:  BUILDR-449 Fix failing specs on Windows (Pepijn Van Eeckhoudt)
* Fixed:  buildr test=all didn't run all tests as expected
* Fixed:  Fail-fast if package.with() or include() called with nil values
* Fixed:  Failures not reported correctly for ScalaTest (Alex Eagle)
* Fixed:  Test dependencies should include test compile dependencies
* Fixed:  Classpath correctly passed to Scala shell
* Fixed:  Removed redundant tracing of command arguments
* Fixed:  filter.using(hash) now correctly substitutes mappings with boolean
          "false" value
* Fixed:  BUILDR-404 buildr -V causes exception on JRuby
* Fixed:  BUILDR-411 fix for RDoc generation
* Fixed:  BUILDR-417 package_as_javadoc calls deprecated method
          (Pepijn Van Eeckhoudt)
* Fixed:  BUILDR-412 Gemspec dependencies don't add up - to the point it's not possible to release
* Fixed:  BUILDR-414 Provide tag_name method on GitRelease as part of API
* Fixed:  BUILDR-419 Exclusion patterns only work if they contain a wildcard
* Fixed:  BUILDR-421 The MANIFEST.MF file packaged by Buildr as permissions set to 600
* Fixed:  BUILDR-423 MANIFEST.MF files are not closed, leading to open files leak.
* Fixed:  BUILDR-447 Path object do not include empty dirs in base directory (Peter Donald)
* Fixed:  BUILDR-457 package(:jar) adds . entry to the jar

1.3.5 (2009-10-05)
* Added:  Interactive shell (REPL) support
* Added:  BeanShell as default shell for java projects, bsh is small and it's
          syntax provides the closest to an interpreted java. The BeanShell
          console includes a graphical class browser. Shell is named :bsh
* Added:  Mandriva (urpmi) installation support (with help from Franck Villaume).
* Added:  BUILDR-56 Download Scala artifacts if not available locally
* Added:  BUILDR-163 cobertura:check (Marko Sibakov, Daniel Spiewak).
* Added:  BUILDR-295 Eclipse task: make 'M2_REPO' repository variable configurable
* Added:  BUILDR-300 Make Eclipse task more configurable (Antoine Toulme, Alex Boisvert)
* Change: Upgraded to rubyforge-1.0.5 and net-ssh 2.0.15
* Change: Monkey-Patched FileUtils::sh on JRuby to use POSIX `system`
* Change: Updated to Rake 0.8.7, RSpec 1.2.8 and JRuby-openssl 0.5.2.
* Change: Updated to easyb 0.9 (Joel Muzzerall)
* Change: Updated to TestNG 5.10
* Change: Updated to JRuby 1.3.1
* Fixed:  BUILDR-23 Support for setting file mode when packaging (Ittay Dror).
* Fixed:  BUILDR-278 tasks/*.rake files are loaded after the buildfile (Rhett Sutphin)
* Fixed:  BUILDR-282 release goal should not strip leading '0' digits from version numbers.
* Fixed:  BUILDR-289 Improved error message when JAVA_HOME points to an invalid JRE/JDK installation
* Fixed:  BUILDR-290 Dependencies cannot be downloaded over SSL.
* Fixed:  BUILDR-291 Local tasks do not support arguments (Ittay Dror).
* Fixed:  BUILDR-292 Workaround for JRUBY-3381 on FileUtils.mv
* Fixed:  BUILDR-301 TestNG doesn't report failure if more than one test fails
* Fixed:  BUILDR-307 Failures are not reported correctly for ScalaTest (Jeremie Lenfant-Engelmann)
* Fixed:  BUILDR-313 Prevent release with uncommitted_files on Git 1.4.3+ (Alexis Midon)
* Fixed:  BUILDR-315 Fix Eclipse .classpath for local libraries (Mat Schaffer)
* Fixed:  BUILDR-304 Referencing an existing package task using the package
          method fails if the package has a custom filename (Rhett Sutphin)
* Fixed:  BUILDR-322 When specifying files (instead of directories) as sources for compile task,
          Buildr uses target directory timestamp only (not compiled output timestamp)
* Fixed:  BUILDR-324: Regression - baseDir system property is not set when executing tests [Alexis Midon]
* Fixed:  BUILDR-325: Overriding package spec with classifer doesn't work (Antoine Toulme)

1.3.4 (2009-04-21)
* Added:  BUILDR-93 Add specs for ScalaCheck integration
* Added:  BUILDR-94 Add specs for Scala Specs integration
* Added:  BUILDR-136 Support Scala/Java Joint Compiler (Daniel Spiewak).
* Added:  BUILDR-159 Improved 'check' to accept both tar and tgz archives.
* Added:  BUILDR-164 New 'artifacts:sources' task to download source code
          for artifact jars.
* Added:  BUILDR-222 Support Git as a version control system
* Added   BUILDR-223 Release Task: customizable commit message
* Added:  BUILDR-242 Include Scala-Tools Repository by Default.
* Added:  BUILDR-268 Allow proxying for https connections (Joel Muzzerall).
* Added:  Info message "Packaging filename.ext" now displayed for packaging tasks
* Added:  Added Scala.version and Scala.version_str
* Change: require 'buildr/scala' is now officially required to use Scala features
* Change: Introduced new options from Rake 0.8.3: -I (libdir), -R (rakelib),
          --rules, --no-search, --silent.
* Change: Upgraded to Rubyforge 1.0.1.
* Change: Upgraded to use Rake 0.8.4.
* Change: Upgraded to use Net-SSH 2.0.11.
* Change: Upgraded to use RSpec 1.2.2.
* Change: Upgraded to use JRuby 1.1.6 (when auto-installing).
* Change: Buildr, no longer in incubation (hurray!): new site, mailing list, SVN, Git.
* Change: BUILDR-171 Eclipse task generates meta-data files for projects with
          test source code but no main source code.
* Change: BUILDR-177 Moved cobertura and emma extensions to lib directory.
* Change: BUILDR-187 Source code attachment for Eclipse .classpath.
* Change: BUILDR-188 Source code attachment for IDEA .iml file (Marko Sibakov).
* Change: BUILDR-209 Scala Specs Should Use src/specs/scala/
* Change: BUILDR-237 Use MacPorts Scala on OS X.
* Change: BUILDR-260 Upgrade to Scala 2.7.3 compatible dependencies:
          ScalaSpecs 1.4.3, ScalaCheck 1.5 and ScalaTest 0.9.5
* Change: Buildr now uses Jekyll to generate Web site/documentation:
http://github.com/mojombo/jekyll/ This replaces Docter so less code to
maintain and the same Textile/Liquid mechanism as when using Github pages.
* Change: To access Release object (e.g. to set tag_name) use Release.find.
* Fixed:  Removed double complete/fail messages showing up on console.
* Fixed:  BUILDR-140 Get rid of const_defined? all across the board.
* Fixed:  BUILDR-158 Nailgun is now a delegate for buildr/drb (a pure-ruby dRuby server)
* Fixed:  BUILDR-170 ArtifactNamespace#method_missing has a condition that is never true.
* Fixed:  BUILDR-172 Scala compiler not loaded by default.
* Fixed:  BUILDR-175 Fail to find child project when calling project method inside project definition.
* Fixed:  BUILDR-185 Exception if using artifact names with hyphen (Joel
Muzzerall).
* Fixed:  BUILDR-192 TestNG report results are overwritten (Alexis Midon).
* Fixed:  BUILDR-193 TestNG uses project name for suite name (not valid file
          name on Windows).
* Fixed:  BUILDR-194 Buildr always adds 'Manifest-Version' to generated manifest file.
* Fixed:  BUILDR-198 Filter#run always calls mkpath with :verbose.
* Fixed:  BUILDR-199 ArchiveTask#needed uses 'each' with no effect (Ittay Dror).
* Fixed:  BUILDR-201 Sample project is not valid (Alexis Midon).
* Fixed:  BUILDR-214 Buildr is stuck uploading to sftp repository (Heikki Hulkko).
* Fixed:  BUILDR-216 Profiles documentation is wrong (Shane Witbeck).
* Fixed:  BUILDR-218 Manifest.from_zip fails if the zip doesn't already have
META-INF/MANIFEST.MF (Joel Muzzerall).
* Fixed:  BUILDR-226 Release task should use XML output of "svn info" instead
of human-readable output (Alexis Midon).
* Fixed:  BUILDR-230 release task fails if there's a space in the path to the
Buildfile.
* Fixed:  BUILDR-235 JRuby download link is broke (Alexis Midon).
* Fixed:  BUILDR-239 HTTP redirects lose authentication information (Joel
Muzzerall).
* Fixed:  BUILDR-240 Make TestNG print traces in the console (Alex Midon).
* Fixed:  BUILDR-241 IDEA7X IPR generation does not pay attention to base_dir
for submodules (Rhett Sutphin).
* Fixed:  BUILDR-247 OpenObject does not work with Hash#only (Rhett Sutphin).
* Fixed:  BUILDR-253 ZipTask now uses Zlib::DEFAULT_COMPRESSION instead of NO_COMPRESSION
* Fixed:  BUILDR-255 tasks/*.rake files are loaded more than once.
* Fixed:  BUILDR-261 ScalaSpecs should be run with Scala dependencies
* Fixed:  BUILDR-263 package(:war).merge not working correctly with exclude()
* Fixed:  BUILDR-271 Using buildr --environment leads to "Don't know how to
build task XXX".
* Fixed:  BUILDR-269 rspec bdd is broken (Jeff Hodges)
* Fixed:  BUILDR-272 'rake gem' does not build gem under JRuby (Clinton R.
Nixon).
* Remove: BUILDR-215 buildr:freeze and unfreeze tasks don't work since we're
no longer running with the rake command.

1.3.3 (2008-10-08)
* Added:  JtestR support. Implemented pending jtestr specs.
* Added:  Growl notifications (OS X only).
* Added:  error, info and trace methods.
* Added:  Release task support for alternative SVN repository layout
          (e.g., http://my.repo.org/trunk/foo).
* Added:  BUILDR-128 Emma support
* Added:  BUILDR-135. Extracted reusable replacement logic into Filter::Mapper
* Added:  BUILDR-148 It is now possible to set the version of various 3rd
          party libraries from the build.yml file.  Supported libraries
          include Ant and the various test and BDD frameworks.
* Change: Error reporting now shows 'buildr aborted!' (used to say rake),
          more of the stack trace without running --trace, and when running
          with supported terminal, error message is red.
* Change: Eclipse task updated to documented Scala plugin requirements
          (http://www.scala-lang.org/node/94)
* Change: Buildr.application.buildfile returns a task instead of a String.
* Change: BUILDR-104 Buildr::group has :under and :version, but not :type.
          Now it has :type too (Lacton).
* Change: BUILDR-139 Incremental test run.
* Change: BUILDR-141 Removed NEXT_VERSION from release task.
* Change: BUILDR-148 ant-junit no longer included in root classpath, but
          specified during taskdef.
* Change: BUILDR-153 To customize the SVN tag used by the release task, set
          Release.tag_name to either the tag value or a proc that takes the
          version number and return the desired tag.
* Fixed:  Should not display "(in `pwd`, development)" when using --quiet.
* Fixed:  Release task's regexp to find either THIS_VERSION and VERSION_NUMBER.
* Fixed:  BUILDR-106 download(artifact(...)=>url) broken in certain cases
          (Lacton).
* Fixed:  BUILDR-108 Trace to explain why a compile is done (Lacton).
* Fixed:  BUILDR-109 Failure of "Buildr::Filter should respond to :include and
          use these inclusion patterns" (Lacton).
* Fixed:  BUILDR-110 Error creating buildfile from POM when missing plugin
          configuration (Geoffrey Ruscoe).
* Fixed:  BUILDR-112 Using a user gem repository with 'rake setup' (Lacton).
* Fixed:  BUILDR-114 Hash.from_java_properties does not behave
          like java.util.Properties (Lacton).
* Fixed:  BUILDR-116: TestTask should include the main compile target in its
          dependencies, even when using non standard directories (Lacton).
* Fixed:  BUILDR-117 Shared directory for both code and resources produces
          duplicate Eclipse classpath entries (Nathan Hamblen)
* Fixed:  BUILDR-119 Eclipse task does not accept test resource folders
          (Lacton)
* Fixed:  BUILDR-122: eclipse task should not check for directory existence
* Fixed:  BUILDR-123: eclipse task should honor ResourceTask's target directory
* Fixed:  BUILDR-124 unzip(...).from_path does not work correctly without
          include (Rhett Sutphin).
* Fixed:  BUILDR-126  Tests options are shared between unrelated projects when
          using #options instead of #using (Lacton).
* Fixed:  BUILDR-129. Modifying a project manifest should not alter it's
          parent project manifest.
* Fixed:  BUILDR-137 JRuby 1.1.3 and Buildr 1.3.2 don't appear to work
          (on Windows).
* Fixed:  BUILDR-138 ScalaTest premature use of Buildr::Repositories
          inconsistent with customizing locations.
* Fixed:  BUILDR-152 Project.task fails when task name starts with a colon.
* Fixed:  BUILDR-157 Tasks library not loaded from a submodule.
* Docs:   BUILDR-111 Troubleshoot tip when Buildr's bin directory shows up in
          RUBYLIB (Geoffrey Ruscoe).

1.3.2 (2008-07-18)
* Added: --prereqs command line argument to show all tasks and their
dependencies. You can also follow with regular expression to narrow down the
list of tasks.
* Changed: Upgraded to Rubyforge 1.0.0.
* Changed: BUILDR-86 Use newest versions of net-ssh and net-sftp gems.
* Changed: BUILDR-88 Test classes/resources should come before compile
classes/resources so they load up earlier in java classpath.
* Changed: BUILDR-102 Update JUnit Version to 4.4.
* Fixed: BUILDR-73 idea7x task incorrect adds target/resources to the sources
paths.
* Fixed: BUILDR-76 Added more specs and fixes to compile task.
* Fixed: BUILDR-77 Layout feature not working.
* Fixed: BUILDR-79 Remove :source option for Scala compiler
* Fixed: BUILDR-80 Fix reference to Util#timestamp method on nailgun addon.
* Fixed: BUILDR-82 Temporary work around for Net::SSH 2.0.2 attempting to
load Pageant DLLs when running on JRuby/Windows.
* Fixed: BUILDR-89 JUnit (and all other Java frameworks) no longer include
abstract classes.
* Fixed: BUILDR-90 Installing from source doesn't work with JRuby.
* Fixed: BUILDR-91 When doing a release, buildr should spawn the same version
of buildr
* Fixed: BUILDR-92 IDEA 7x: add resources directories to classpath.
* Fixed: BUILDR-95: Only download Scala test framework artifacts when required
* Fixed: BUILDR-100 Directory structure documentation needs updating.
* Fixed: Installation instructions updated for RubyGems 1.2.0.

1.3.1.1 (2008-06-04)
* Fixed: BUILDR-78 Broken dependency on Rubyforge Gem.

1.3.1 (2008-05-19)
* Added: Downloading files from SFTP server, uploading to HTTP.
* Added: jibx_bind method to use JiBX for Java<=>XML binding (by David
Peterson).
* Changed: Upgraded to Net::SSH 2.0 and Net::SFTP 2.0.
* Fixed: BUILDR-67 HTTP GET now works with query parameters (Tommy Knowlton).
* Fixed: BUILDR-68 Now accepting JAVA_HOME setting on OS X (Nathan Hamblen).
* Fixed: JUnit now accepts java_args and passes these arguments to the JVM
(only applicable when forking).
* Fixed: BUILDR-70 JUnit not passing environment variables from the
:environment option.
* Fixed: BUILDR-75 Filter now runs if there's a target directory, even if
there are no source files to copy over, since everyone else just checks
resources.target for existence before depending on it.
* Fixed: BUILDR-63 Possible fix.

1.3.0 (2008-04-25)
* Added: Testing with EasyB (Nicolas Modrzyk).
* Added: Testing with JBehave (John Layton).
* Added: Testing with RSpec (Nick Sieger).
* Added: Nailgun integration for improved user experience when running on
JRuby.
* Added: Cobertura tasks can be invoked for a single project using project
name as prefix to cobetura tasks.
* Added: Cobertura can exclude specified classes from instrumentation.
* Added: ArchiveTask#clean can be used to remove content from a package.
* Added: Groovy compiler.
* Added: Mechanism to simplify creating extensions (see Extension module).
* Added: To run all test cases 'rake spec'.  Test coverage reports will show
up in html/coverage.  To run failing tests against, 'rake failing'.
* Added: Layout class for controlling the project layout.  Also cleaned up
places where paths were used instead of path names.
* Added: HTTP Basic authentication support (Yuen-Chi Lian).
* Added: EAR packaging (Victor Hugo Borja).
* Added: Profiles(.yaml), based on the code provided by Yanko Ivanov.
* Added: Resources task picks the default mapping from the filter element of
the current profile (if specified).
* Added: Consolidated API for RJB and JRuby, replacing the now deprecated
JavaWrapper.
* Added: JRuby 1.1 support (Victor Hugo Borja, Nick Sieger).
* Added: IDEA 7 task: use buildr idea7x (Shane Witbeck).
* Added: Experimental support for installing/loading Gems as part of a build.
* Added: Experimental support for YAML configurtion files:
~/.buildr/settings.yaml, build.yaml and profiles.yaml.
* Added: Ability to create a package that is not an artifact and specify the
target file using the :file argument.
* Changed: JUnit/TestNG test cases are selected by superClass or annotations,
not by class-name pattern.
* Changed: Upgraded to Antwrap 0.7.0, thanks to Caleb Powell for relicensing
under Apache License.
* Changed: Upgraded to Rake 0.8, RSpec 1.1, RJB 1.1, OpenJPA 1.0.1.
* Changed: Resources are now copied to target/resources instead of
target/classes, and target/test/resources instead of target/test-resources.
* Changed: Test cases are now compiled into target/test/classes instead of
target/test-classes.
* Changed: Compile extension and CompileTask are now separate from the Java
module.  Multiple compilers can be used, either guessed from the project
layout, or specified with compile.using(:name).
* Changed: Test extension and TestTask are now separate from the Java module.
JUnit and TestNG are Java specific extensions picked using test.with(:name).
* Changed: For compile and test, use dependencies instead of classpath (with
works are before).
* Changed: Test framework componentized along the same lines as the
compilers.
* Changed: The way packaging is handled: package_as_[type] is now called once
for a given package with the exact file name.  If packaging requires a change
to the specifiction (e.g. a different file type than the package type), add a
package_as_[type]_spec method.
* Changed: The default packaging type is inferred from the compiler, and
without a compiler, defaults to :zip.
* Changed: JUnit test framework now runs on all classes that extend
junit.framework.TestCase.
* Changed: Scalac compiler now used by the regular compile task, the scalac
task is deprecated.
* Changed: RDoc are now generated using Allison
(http://blog.evanweaver.com/files/doc/fauna/allison).
* Changed: Resource tasks no longer generate target directory if there are no
resources to copy over.
* Changed: To prevent collissions with required files, the source layout now
places everything under lib/buildr, so require 'core/compile' is now require
'buildr/core/compile'.
* Changed: The various Java tasks (JavaCC, XMLBeans, JDepends, etc) are now
located in the extra directory, and may at some point relocate to an addon
Gem.
* Removed: Prepare tasks removed.
* Removed: All deprecated features since 1.1.  If you've seen warnings before,
except the build to break.
* Removed: No longer using Facets or recommending you use it in buildfiles.
* Fixed: More typos/documentation fixes by Lacton
* Fixed: Artifact.pom resolves artifact without classifier, i.e
org.testng:testng:jar:jdk15:5.1 uses org.testng:testng:pom:5.1 (Tommy).
* Fixed: More patches towards JRuby support, courtesy of Vic Borja.
* Fixed: Error when downloading a file from a server which answers with a
response with no content length.
* Fixed: Improved the Eclipse task (BUILDR-17): removed resources target
directory from the source directories, made the main resource directories
relative to the project directory and reordered project elements (Thomas
Marek).
* Fixed: When compiling Scala only include scala-library and scala-compiler
JARs (John Layton).
* Fixed: POM generation now applies JAR as default packaging if unspecified
(Maarten Billemont).

1.2.10 (2007-11-26)
* Changed: Resources sets permission on copied files to make them
read/write-able (Shane Witbeck).
* Changed: Artifact download no longer generates destination directory if not
downloaded (Antoine).
* Fixed: EOL in MANIFEST.MF.
* Fixed: Bunch of typos, courtesy of Merlyn Albery-Speyer and Soemirno
Kartosoewito.

1.2.9 (2007-11-08)
* Changed: Upgraded to RJB 1.0.11.
* Fixed: Backward compatibility in Java.rjb/wrapper.

1.2.8 (2007-11-01)
* Added: Resolving Maven snapshots from remote repository (Rhett Sutphin)
* Changed: scala options.target now takes number, e.g. "1.5" instead of
"jvm-1.5" (Nathan Hamblen)
* Changed: Eclipse task uses updated Scala plugin nature and builder (Alex
Boisvert)
* Fixed: Bringing Buildr back to 1.0.9, XMLBeans fix.

1.2.7 (2007-10-29)
* Added: You can create an artifact from a given file using
artifact(<spec>).from(<path>).  You can then install it into the local
repository or upload it to the release server using install(<artifacts>) and
upload(<artifacts>). (Idea: Shane Witbeck and Tommy Mason).
* Added: ANTLR support.
* Changed: Speed boost to ZIP packaging.
* Changed: RjbWrapper is now JavaWrapper, and revised to nicely support JRuby.
A few other minor tweaks to make JRuby support possible in the future. (Travis
Tilley)
* Changed: JUnit now runs tests with clonevm false by default, you can change
with test.using :clonevm=>true (Karel)
* Changed: JUnit now switches over to project's base directory.
* Changed: package(:war).with(:libs, :classes) uses only these specified libs
and class directories, replacing any previous value.
* Fixed: Jetty task no longer sets "log4j.configuration" system property
* Fixed: release task didn't work

1.2.6 (2007-09-26)
* Added: Option for setting environment name (-e) and attribute accessor
(Buildr.environment).  Default taken from BUILDR_ENV environment variable.
* Added: AAR packaging for Axis2 service archives (Alex Boisvert)
* Added: Environment variable for JUnit tests (test.using :environment=>).
* Added: tar method similar to zip method.
* Added: Experimental transitive method.  Looks like artifacts, quacks like
artifacts, but returns artifacts by the boat load. (Credit, Daniel Roop)
* Changed: Now accepting JAVA_OPTS in addition to JAVA_OPTIONS.
* Changed: TarTask is now based on ArchiveTask, same API as ZipTask.
* Changed: Javadoc array arguments now passed as multiple command line options
(e.g. :link=>['foo', 'bar'] becomes --link foo --link bar). (Daniel Roop)
* Changed: Jetty task now uses SLF4J instead of commons-logging + log4j for
better hot-swap capability and plugability (Alex Boisvert)
* Removed: Turns out --verbose command line option is useless.  Removed.
* Fixed: Jetty task now uses WebAppContextClassLoader to support hot-swapping
webapps (Alex Boisvert)
* Fixed: "release" task now works with SVN URLs ending with /branches/*/ (Alex
Boisvert)
* Fixed: Resources not included in JAR/WAR unless there's a src/main/java
directory (Olexandr Zakordonskyy).
* Fixed: Files starting with dot (e.g. .config) not copied over as resource
files, and not included in ZIP (Olexandr Zakordonskyy).
* Fixed: Empty directories not copied over as resources (Olexandr
Zakordonskyy).
* Fixed: JAVA_OPTS and test.options[:java_args] not passed to JUnit task
(Staube).
* Fixed: archive.exclude doesn't work when including a directory using
:from/:as option.
* Fixed: JUnit/TestNG no longer run inner classes as test classes (Mark
Feeney).

1.2.5 (2007-08-13)
* Fixed: Buildr not finding buildfile in parent directory, or switching to
parent directory.
* Fixed: checks.rb:103: warning: multiple values for a block parameter (2 for
1)
* Fixed: ZIPs include empty META-INF directory.

1.2.4 (2007-08-03)
* Added: Forking option for JUnit test framework: :once to fork for each
project, :each to fork for each test case, and false to not fork. (Tammo van
Lessen)
* Added: Path traversal in Zip, so zip.path("foo/bar").path("..") returns
zip.path("foo").
* Fixed: JUnit test framework output shows errors in console, more readable
when forking is on (Tammo van Lessen).
* Fixed: Cobertura reports not working (Anatol Pomozov).
* Fixed: Zip creates funky directory name when using :as (Tommy Mason).
* Fixed: package_as_tar incorrectly calling with(options) (Tommy Mason).
* Fixed: Loading of everything which should get rid of "already initialized
constant VERSION" warning.
* Fixed: --requires option now works properly when using buildr.
* Fixed: MANIFEST.MF lines must not be longer than 72 characters (Tommy
Mason).
* Fixed: Creating manifest from array does not place Name first.
* Fixed: Complain if no remote repositories defined, add at least one
repository when creating from POM, POM reader fails if dependencyManagement
missing (Jean-Baptiste Quenot).
* Fixed: Not looking for buildfile in parent directory.
* Fixed: Project's compile/test task looking for options in local task of same
name.
* Fixed: ZIP/JAR/WAR include directory entries in some cases and not others.
* Fixed: Computation of relative paths in Eclipse project generation (Cameron
Pope)

1.2.3 (2007-07-26)
* Added: Get your buildfile created form existing POM, just run buildr on
existing Maven project (Anatol Pomozov).
* Added: package(:tar), package(:tgz), TarballTask dn TarTask (Tommy
Knowlton).
* Changed: The ArchiveTask needs no introduction: it's a base task that
provides common functionality for ZipTask, TarTask and friends.
* Fixed: Release runs buildr instead of buildr.cmd on Windows (Chris Power).
* Fixed: Cobertura reports broken (Anatol Pomozov).

1.2.2 (2007-07-18)
* Added: resources.using and filter.using now accepts a format as the first
argument, default being :maven, but you can also use :ant, :ruby or pass a
regular expression
(http://groups.google.com/group/buildr-talk/browse_thread/thread/5216d5ae8bfff29b).
* Fixed: Sleek upload with changelog for each release courtesy of Anatol
Pomozov.
* Fixed: Zip.path.contains fails on paths with more than one directory
(http://groups.google.com/group/buildr-talk/browse_thread/thread/5d305bbeeb814d1).
* Fixed: Speed of sorting entries when creating new Zip file
(http://groups.google.com/group/buildr-talk/browse_thread/thread/8b4d1b0e983f32f).
* Fixed: Uploading using SFTP creates directory for uploaded file
(http://groups.google.com/group/buildr-talk/browse_thread/thread/80021d35cecfecdc).

1.2.1 (2007-07-12)
* Added: Proxy exclusion, use environment variable NO_PROXY, or
options.proxy.exclude = <url> || [<url>]
(http://groups.google.com/group/buildr-talk/t/9f1e988e0dbeea9f).
* Added: You can now copy resources from multiple source directories, using
resources.from
(http://groups.google.com/group/buildr-talk/browse_thread/thread/4f2867a6dbbc19d4).
* Added: Hash.from_java_properties(string) and hash.to_java_properties.
* Changed: Buildr.options now wrap various environment variables instead of
duplicating them (HTTP_PROXY, NO_PROXY, TEST, DEBUG).
* Changed: No longer passing proxies to transports, instead they obtain them
from environment variables.
* Changed: Buildr now uses XJavaDoc 1.1 instead of 1.1-j5. If you need the
1.1-j5 fix, see here
http://groups.google.com/group/buildr-talk/browse_thread/thread/49f3226810466c94/1f0d25d002433fe2.
* Fixed: One RubyForge release for all packages, instead of one per package
(Anatol Pomozov).
* Fixed: buildr command does not recognize project tasks (foo:compile) or
default task (http://groups.google.com/group/buildr-talk/t/660061a0bc81989a).
* Fixed: Upload fails on SFTP permissions.
* Fixed: Hibernate.schema_export not passing Ant task when yielding.
* Fixed: IntelliJ Idea project files generation for projects more than two
degrees deep.

1.2.0 (2007-06-06)
* Added: Artifact.list returns specs for all registered artifacts (those
created with artifact or package).
* Added: Buildr.option.java_args are used when creating the RJB JVM, when
running a Java process (unless you override directly), and when running JUnit
tests (again, unless override).
* Added: TestNG support (test.using :testng).
* Added: You can run multiple tests from the command line, e.g. rake
test:foo,bar.
* Added: If you want to distribute source code and JavaDoc alongside your JARs
(helpful when using IDE/debugging), you can now do so by calling
package_with_sources and package_with_javadoc on the project (or the parent
project to affect all its sub-projects).
* Added: junit:report task generates XML and HTML reports in the reports/junit
directory.
* Added: test=all option runs all test cases ignoring failure.
* Added: project generation for IntelliJ Idea. Imports dependencies properly
from your local repository (the M2_REPO path variable must be defined),
supports tests and resources.
* Added: A check task for each project that runs after packaging and can be
used to check the build itself, using RSpec matchers.
* Added: The help task can be used to get basic information about your build.
Right now it returns a list of described tasks, but you can extend it using
the help method. Try it out: rake help.
* Added: Integration tests that run after packaging (unless tests are
disabled). There's only one integration tests task (duh) that you can access
from anywhere. You can tell a project to run its tests during the integration
phase with test.using :integration.
* Added: package :sources and package :javadoc, used by package_with_sources
and package_with_javadoc.
* Added: Unzip paths now return root/target. (Nathan)
* Added: buildr command line, replacing rake. Differs from rake in two ways:
uses buildfile by default (but Rakefile also works) and offers to create
buildfile if you don't already have one.
* Added: options.proxy.http now set from the environment variable HTTP_PROXY
(Anatol Pomozov).
* Added: options.java_args now set from environment variable JAVA_OPTIONS.
* Changed: Filter now complains if source directory or target directory not
set, or if source directory does not exist.
* Changed: Filter.run returns true if filter run, false otherwise, and can be
run multiple times.
* Changed: repositories.proxy returns a URI or nil; you can still set a proxy
using a hash.
* Changed: Transports went the way of the Dodo, instead we now use
read/write/download/upload methods implemented on URI itself.
* Changed: We now have a way to configure multiple proxies through the
options.proxy method; use that instead of repositories.proxies.
* Changed: Upgraded to Ant 1.7.0, JUnit 4.3, JMock 1.2.
* Changed: TestTask now provides list of test classes and failed classes
through test_classes and failed_tests attributes.
* Changed: The jetty method is now available everywhere, so you can change the
URL using jetty.url = at the top of the Rakefile. Also upgraded to 6.1.3.
* Changed: Test classes are now identified as either starting with Test* or
ending with *Test, before attempting any include/exclude patterns. Anything
ending with *TestCase or *Suite ignored for now (but if you explain why, we
can add it back).
* Changed: What used to be the projects task is now help:projects task,
anticipating more help: tasks to come.
* Changed: We now have 3(!) JDepend tasks: jdepend:swing (with windows!),
jdepend:text (console) and jdepend:xml (enterprisy).
* Changed: Good news for packagers: package_as_ yield no longer required, just
make sure to create the task once and return it each time.
* Changed: JUnit tests now run using Ant, which makes them faster to run, and
gives you text/XML reports (check out the reports/junit directory).
* Changed: Cobertura now writes reports to reports/cobertura, in fact, if
you're looking for a report of any kind, the reports directory is the place to
find it.
* Changed: Upgraded to AntWrap 0.6. Note that with AntWrap 0.6 we yield to the
block instead of doing instance_eval, so any call to the ant project must be
prefixed with an AntProject object. Code that relies on the old functionality
(and that's pretty much any code with element-containing tasks) will break.
* Changed: artifacts now accepts a struct.
* Changed: The repositories.download method folded into Artifact, the
repositories.deploy method renamed upload and folded into ActsAsArtifact.
* Changed: The deploy task is now called upload, and repositories.deploy_to is
now repositories.release_to.
* Removed: The check task, which previously was a way to find some circular
dependencies (multitask) but not others (dynamically defined).
* Removed: JUnitTask, test.junit and Java.junit methods all deprecated;
anything you need to affect the unit tests is right there in TestTask.
* Removed: The package(:jar) and package(:war) options, such as :manifest,
:include, :libs are all deprecated. Instead, use the package method to define
the package, and the with method to enhance it, e.g.
package(:war).with(:libs=>...) instead of package(:war, :libs=>...).
* Removed: The []= method on ZipTask and anything derived from it is
deprecated in favor of using attribute accessors.
* Removed: Ant.executable and Ant.declarative are deprecated. Use Buildr.ant
instead of Ant.executable. Use AntWrap directly if you need the
Ant.declarative functionality.
* Fixed: Filter now properly handles multiple keys on the same line.
* Fixed: Tests teardown now properly executing.
* Fixed: Cobertura tasks now run tests, even if test=no.
* Fixed: XMLBeans compile task not detecting change to XSD file.
* Fixed: URI.download and download task do not create directory path for
downloaded file (Anders Bengtsson).
* Fixed: Gets JVM version number from system property java.version instead of
calling java -version.
* Fixed: Artifact downloads POM first, such that you can download/create/fake
it youself.

1.1.3 (2007-06-12)
* Added: Long awaited idea project files generation. Very early code, the iml
seems to be generated okay but needs testing. The ipr is still missing but
will come in due time (and it's not always necessary anyway).
*Fixed: Doc bug: unzip doesn't have an into(dir) method.
*Fixed: File names don't always have a dot.
*Fixed: For Jetty servers, http://foo//bar is not http://foo/bar

1.1.2 (2007-05-29)
* Added: Allow passing :java_args option to the junit task
* Added: Hibernate XDoclet and SchemaExport tasks. (Requires buildr/hibernate)
* Added: JDepend UI for seeing depenencies across all projects. (Requires
buildr/jdepend)
* Added: Cobertura test coverage tasks, reporting both html and xml. (Requires
buildr/cobertura)
* Changed: tools_jar now returns empty array on OS X, part of the ongoing
Write Once/Test Everywere effort. (Credit Paul Brown)
* Fixed: Work around keep_alive bug in Net::HTTP.
(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/10818)

1.1.1 (2007-05-16)
* Changed: Test case class names must end with Test, TestCase, Suite or
TestSuite.
* Changed: You can now run rake test:{foo,bar} to match against either foo or
bar (requires \{..\} on UNIX).
* Changed: JAVA_HOME now required on all platforms, along with more OS X
fixes. (Credit Paul Brown)
* Fixed: You can now run rake test:<name> from any directory, and it will find
just the right test cases.

1.1.0 (2007-05-13)
* Added: Proxy setting for downloading from remote repositories (use
repositories.proxy = ...).
* Added: projects task to list all the projects you can build.
* Added: Project attribute target to specify the target directory.
* Changed: The project and projects methods now accepts relative names when
called on a project. For example, project("foo").project("bar") finds the
sub-project "bar" in "foo".
* Changed: The project method now returns self if called on a method with no
name.
* Changed: The -warning flag (javac) is now set to true only when verbose.
* Changed: OpenJPA mapping now using Ant task instead of spawning another Java
instance.
* Changed: The test:name pattern translates to *name* so you can run tests by
package name, but only if you don't use * in the pattern.
* Changed: All projects are not evaluated when referenced (i.e. calling
project/projects) or before running any task. Project tasks do not exist until
a projet is evaluated.
* Removed: The projects method no longer accepts the :in argument, call
projects on a project instead.
* Fixed: Local directory tasks now work from any directory in the project.
* Fixed: Artifacts no longer created with timestamp from server.
* Fixed: Buildr no longer fails when run without tools.jar or JAVA_HOME
(OS X). (Credit Lyle Johnson)
* Fixed: Manifest gets EOL to keep EOF company. (Credit Tommy Knowlton)
* Fixed: Compile tasks clean after themselves when target directory changed.
(Credit Lyle Johnson)

1.0.0 (2007-05-04)
* Added: buildr:freeze and buildr:unfreeze task. These set the Rakefile to use
a particular version of Buildr, freezing by setting to the current version of
Buildr, unfreeze to use the latest Gem.
* Added: Buildr.options, with three options to start with: test, debug and
parallel.
* Added: Buildr.option.debug or environment variable DEBUG to control the
compiler debug option. Defaults to yes, except when doing a release.
* Changed: Buildr now fails nicely if JAVA_HOME not set.
* Changed: Migrated test cases to RSpec 0.9.
* Changed: Extended circular dependency check to multitask.
* Changed: JavaCC using RJB.
* Changed: OpenJPA 0.9.7 no longer snapshoted.
* Fixed: For Windows users: user's home directory, fu_check_options is now
rake_check_options, java command works around funky system bbug.

0.22 (2007-04-26)
* Added: Calling projects(:in=>foo) returns only the sub-projects defined in
foo.
* Added: _() as shortcut for path_to().
* Added: You can pass properties to java by setting the :properties options.
* Added: JUnit task has a way of setting options (options accessor and using
method), which for now supports passing properties to java.
* Added: You can now use the struct method to create a Struct for structoring
your multiple artifacts.
* Changed: Use rake artifacts to download all artifacts not already in the
local repository, and also download modified artifacts
(*cough*snapshots*cough*)
* Changed: Transport.download now uses timestamp on the destination file and
If-Modified-Since header to skip downloads of unmodified files.
* Changed: Downloading artifact sets the time stamp from the repository.
* Changed: Use buildr.rake in the project's directory and your home directory,
instead of buildr.rb.
* Changed: filter method accepts one argument, the source directory. Use
filter(src).into(target).
* Changed: Running Javac/Apt/Javadoc in process.
* Changed: Using Ant for OpenJPA enhancer and XMLBeans schema compiler.
* Changed: Jetty, JavaCC, OpenJPA and XMLBeans are no longer included by
default. You need to require them explicitly, e.g. require "buildr/jetty".
* Removed: Tasks no longer use a base directory, always map paths directly
using file, path_to or _().
* Fixed: The artifacts task no longer downloads POMs for artifacts created by
the Rakefile.

0.21 (2007-04-20)
* Added: Methods to read and write a file (shortcut for
File.read/File.open.write).
* Changed: Filter task now takes a source directory and target directory, and
copies all included (sans excluded) files between the two.
* Changed: Artifact type is now symbol instead of string (so :jar instead of
"jar"). You can still specify a string, but the return value from #to_spec or
#type is a symbol.
* Changed: Eclipse task now adds "src/main/resources", "src/test/java",
"src/test/resources" to build path, and excludes ".svn" and "CVS" directories
from being copied into target directories.
* Changed: The test task will now run JUnit test cases from classes ending
with Test or Suite. And the inclusion pattern is always set.
* Fixed: Project property not inherited if false.

0.20 (2007-04-18)
* Added: JavadocTask to generate Javadoc documentation for the project,
javadoc method on the project itself to return its javadoc task, and
Java.javadoc to do all the heavy lifting.
* Changed: Release code is now implemented as module instead of class. SVN
copy made from working copy instead of double commit.
* Removed: package :file_name options. Does not work with deployed artifacts
or POMs.
* Fixed: Packages not deployed in the right path (but POMs are).
* Fixed: JARs and WARs include redundant META-INF directory.
* Fixed: The local package task is now a dependency for install/deploy, and
build is dependency for package.

0.19 (2007-04-13)
* Fixed: Eclipse task correctly handles FileTasks
* Fixed: Eclipse task output directory is "target/classes"
(Project.compile.target) instead of "/target"
* Added: Set specific file permissions when uploading with SFTP transport with
:permission option
* Fixed: Correctly use JAVA_HOME environment variable, if available, for
determining java version
* Added: ConcatTask and concat: a file task that creates or updates the target
file by concatenating all the file prerequisites.
* Added: Ant module (requires antwrap and rjb Gems), so also added RJB setup
module.
* Added: When zipping you can include the contents of a directory using
:as=>".".
* Added: Convenience apt method returns a file task that generates sources
using APT.
* Added: Convenience open_jpa_enhance method to enhance compiled files.
* Added: Convenience compile_xml_beans setups the compiler to include
XSD-generated XML Beans.
* Added: Convenience javacc/jjtraa methods return file tasks that generate
source files.
* Added: build is now the default task.
* Added: jetty:start and jetty:stop tasks to start/stop the server from the
console.
* Added: jetty:use to start Jetty inside the build or hook to an existing
server.
* Added: jetty:setup and jetty:teardown to perform tasks around jetty:use.
* Added: The local build task will now execute the local test task. So
building a project (or sub-project) will run the test cases on that project
(or sub-project) but not any of its dependencies.
* Added: ZipTask accepts nested path (i.e. calling path inside a path).
* Added: package(:war) by defaults picks libraries from the compiler
classpath. You can always override by passing the :libs option.
* Changed: Eclipse task now generates library path with M2_REPO variable or
project-relative paths where appropriate
* Changed: compile.target (CompileTask) and resources.target (Filter) are now
file tasks, not strings.  So passing the target to someone else will hopefully
convience them to invoke or enhance it.
* Changed: Java related tasks like OpenJPA, XMLBeans, JavaCC all moved to the
Buildr::Java module.
* Changed: Handling of package_as arguments to support JBI packaging.
* Changed: meta_inf project property is an array accepting filenames (strings)
and file tasks.
* Changed: meta_info by default only includes the LICENSE file from the
top-level project.
* Changed: The WarTask :classes argument is now a directory name, and will
include all files in this directory.
* Changed: WarTask and JarTask accept meta_inf argument.
* Changed: Behavior of needed? and prerequsities in base Rake::Task. This will
probably not affect you, but don't be surprised if it disappears (see
lib/core/rake_ext.rb for details).
* Changed: Were previous the test task would link to test.run, it now executes
the entire test lifecycle, and is the major point for extending the test
lifecycle.
* Changed: test.run is now test.junit.
* Changed: Ant.define is now Ant.declarative, Ant.execute is now
Ant.executable.
* Changed: The filter method now returns a Filter class that can be used to
set a filter, but is not itself a task. Instead, it creates a task when
setting its target.
* Changed: Project.resources now returns a ResourceTask that includes, but is
not itself a filter, accessed using the accessor filter.
* Changed: UnzipTask eliminated and replaced with Unzip which you now have to
run directly by calling extract.  However, unzip method creates a file task
and returns an Unzip object that can be used as a reference to that file
task.
* Changed: Attributes is now InheritedAttributes.
* Changed: The first call to package configures the package task from the
options, the second call only returns the package task.
* Removed: :cp argument, always use :classpath.
* Removed: src_dir, java_src_dir, target_dir, webapp_src_dir and all other
premature configuration attributes.
* Removed: Project tests method deprecated in favor of a single test method;
it now accepts an enhancement block, not an instance_eval block.
* Removed: FilterTask is dead.
* Removed: sub_projects method. Is anyone using this?
* Fixed: Local buildr.rb not loaded from running from inside a sub-project
directory.
* Fixed: Eclipse task now executed whenever a change is made in the Rakefile,
or any file it requires, include buildr.rb and task files.
* Fixed: Circular dependency in release task.

0.18 (2007-03-26)
* Added: manifest attribute on project, used by default when packaging
JAR/WAR.
* Added: default manifest includes build-by, build-jdk and
implementation-title.
* Added: compile.from(sources) in the same vein as compile.with(classpath)
* Added: load all *.rake files form the tasks directory (if exists) for use
in
the main Rakefile.
* Added: Java.tools returns a reference to tools.jar on JDKs that include it.
* Added: brought back experimental test tasks.
* Added: artifacts task to download all artifacts referenced by project (using
either artifact or artifacts method).
* Changed: back to old behavior, compile task only executes if there are any
files to compile, and compile? method removed.
* Changed: repositories.remote is now an array instead of a hash, and
repositories are searched in the order in which they appear.
* Changed: release task is now a regular task, using the Release object
instead of being a ReleaseTask.
* Changed: eclipse task executes artifacts task.
* Fixed: inherited attributes now cache default value, useful when working
with arrays/hashes.
* Fixed: manifest file generated even if manifest attribute is false.
* Fixed: compile task now properly detects when not all files compiled.
* Fixed: bug that caused project file tasks to execute twice.

0.17 (2007-03-14)
* Added: project.task acts like Rake's task but can also fetch a task from a
project using the project's namespace.
* Added: project.file acts like Rake's file but resolve relative paths based
on the project base directory.
* Added: Rake tasks execute in the directory in which they were defined.
* Added: enhanced Rake with circular dependency, and you can find all circular
dependencies by running rake check.
* Added: enhanced Rake in_namespace, if the namespace starts with colon,
creates a namespace relative to the root instead of the current namespace.
* Changed: a project definition is now a task definition.
* Changed: use enhance to extend the project definition instead of
after_define.
* Changed: LocalDirectoryTask replaced with Project.local_task.
* Changed: projects method accepts multiple names, returning only these
project definitions, returns all of them with no arguments.
* Changed: packge only defines the essentials once, so you can call package on
a project to retrieve a specific package by type/id.
* Changed: zip task (and jar/war) no longer resolve artifacts for you, must
call artifacts directly.
* Changed: cannot access a project before it's defined, but can do that with
sub-projects to establish dependencies.

0.16 (2007-03-07)
* Added: zip.include :as=> to include file under specified name.
* Added: zip.merge to include the (expanded) contents of one zip file in
another.
* Added: experimental test task using JUnit and JMock.
* Changed: project.to_s returns name, projects returns sorted by name.
* Changed: project definition now executed using project's base directory as
the current directory.
* Fixed: artifact test cases and minor code cleanup.
* Fixed: attempts to download artifact even if created by task.
* Fixed: release task now deletes old tagged copy and reports SVN usage.
* Fixed: OpenJPA not including target directory in classpath.

0.15 (2007-02-28)
* Fixed: tasks fail unless deployment server specified.
* Changed: deploy method executes deployment, instead of returning a task.

0.14 (2007-02-28)
* Added: check task that looks for obvious errors in the Rakefile.
* Added: deploy task for managing deployment.
* Added: release task that updates version numbers, commits and tags SVN.
* Changed: the project name is now the fully qualified name, e.g. ode:axis2
* Changed: you can now lookup a project before it's defined; you still can
only define a project once.
* Changed: you can lookup projects by full qualified name.
* Changed: release_to changed to deploy_to, which is now a getter/setter.
* Fixed: removed Java.home which conflicted with JRuby.
* Fixed: install task did not re-install modified files.
* Fixed: deploying only uploads one artifact.
* Fixed: timing issues.
* Fixed: Maven classifier now used properly.

0.13 (2007-02-26)
* Added: global java method.
* Added: project build method.
* Added: OpenJPA mapping_tool method.
* Added: Rakefile to generate Gem.
* Changed: you can now lookup a sub-project from the top project method.
* Changed: the projects methods return all sub-projects.
* Fixed: bug in JarTask that resolved artifacts too early.
* Fixed: global tasks (clean, build, etc) now complain if executed from a
directory that does not map to any project.
* Fixed: to work with Rake 0.7.2.

0.12 (2007-02-24)
* Added: call prepare with list of tasks to add them as prerequisites.
* Added: project.id returns the compound name, e.g. foo, foo-bar,
foo-bar-baz.
* Added: JavaCC, XMLBeans schema compiler, OpenJPA enhancer, APT tasks.
* Changed: the default package ID is take from the project ID instead of its
name.
* Changed: renamed buildr and moved here.
* Changed: moved all code into Buildr module.
* Fixed: download breaking when POM not found.
* Fixed: compile task fails if classpath is empty.
* Fixed: zip task fails if target directory does not exist.
* Fixed: packaging task does not require build.
* Fixed: compiler not showing command when trace is on.
* Fixed: zip dependencies were all fucked up.
* Fixed: package should not depend on build.

0.11 (2007-02-16)
* Added: test cases for unzip task
* Added: prepare method to access prepare task
* Added: prepare, compile and resources accept a block you can use to enhance
the task
* Changed: ZipTask executes all includes files as prerequisites, and now
includes directories correctly
* Changed: Jar/WarTask are now extended using with(options) method
* Changed: JarTask now accepts array of sections (each being a hash) for the
manifest, and a proc/method to generate it
* Changed: added HighLine to hide password entry on the command line
* Changed: unzip now using UnzipTask with its own shorthand syntax.
* Changed: filter task gets a consistent syntax to unzip

0.10 (2007-02-13)
* Added: modifier for artifacts
* Added: ZipTask, WarTask
* Added: get POM artifact directly from artifact
* Changed: JAR and WAR packaging based on new and improved Zip task
* Changed: options for packaging, but not affecting current Rakefile
* Remove: delete task

0.9 (2007-02-09)
* Added: attributes for configuring compile (sources, classpath, target,
options)
* Added: shorthand notation for specifying compilation (to, with, using)
* Changed: copy task is dead (name conflict), instead we get the better filter
task with include/exclude patterns
* Changed: rewrite of compile task, now better than ever
* Changed: compile can be used inside and outside project
* Changed: compiler no longer infers anything from its prerequisites
* Changed: compiler accepts files, artifacts and tasks on the classpath
* Changed: resources task now working as expected
* Remove: global task artifacts was the root of all evil and got canned.

0.8 (2007-02-05)
* Added: release task and release_to configuration for repositories
* Added: SFTP uploader for releases
* Added: convenience method group() for specifying multiple artifacts in same
group and version number
* Added: install target copies package to local repository and adds a POM,
uninstall package removes package (and POM) from local repository
* Changed: project lookup now happens through project() method
* Changed: locating file in the local repository now happens through
Repositories
* Changed: downloading file into the local repository now happens through
Repositories
* Changed: notation for specifying multiple artifacts in a string is now
foo,bar,baz
* Changed: artifact identifier is now specified with the key :id
* Changed: download POM alongside artifact and install in local repository
* Changed: no more scoping artifacts collection in project, use compile.with
instead
* Changed: moved HTTP download logic to transports.rb
* Removed: deprecated grouping with multiple artifacts under id key

0.6 (2007-02-01)
* Added:   Artifact resolution introduces the notion of a spec, which can be
supported using ActsAsArtifact
* Added:   You can now use a project as an artifact, resulting in all its
packages being added, or use a task as artifact
* Changed: project.sub_projects renamed project.projects
* Changed: what used to be called dependencies is now called artifacts
* Changed: all artifacts are now created as tasks that know how to download
themselves unless some other behavior is specified
* Changed: local and remote repositories are now defined on the Rakefile
instead of individual projects
* Changed: attributes now stored directly as instance variables
* Changed: ANSI colors and progress bar now using Ruby Facets

0.5 (2007-01-24)
* Added: Build number for each top-level project, build_number method for
accessing it and build:increment task for updating the build number file.
* Added: to_path method on project to resolve paths relative to base_dir.
* Added: recursive_task method on project to create task in
project/sub-project.
* Added: compiler property for passing any options to Javac.
* Changed: remove task renamed uninstall.
* Changed: and to confuse more remove task (RemoveTask) renamed delete.
* Changed: consolidated before_create/after_create to on_create.
* Changed: version, group, artifact added as accessors to project.
* Changed: project definition block takes project as argument.
* Changed: project enhanced only if new settings or block.
* Changed: local_repository is now separate attribute from repositories.
* Changed: Directory structure, now split into rbs, rbs-java and tasks.
* Removed: project.options. Using a different attributes mechanism.

0.4 (2007-01-23)
* Added: CopyTask now deals with files and directories, can copy multiple
files, and applies filter to all of them. Filter can be a hash or a proc.
* Added: Project gets resources_filter attribute that can be used to set the
filter on all copied resources.
* Added: HTTP module for getting and downloading files, and a download task.
* Changed: Dependencies now check signatures for every file, if available, and
show download progress.

0.3 (2007-01-22)
* Added: Dependencies loaded from Maven repositories if not existing or built
by project.  Use rake dependencies to force update, or let compilation take
care of it.
* Added: Copy task for copying one file to another, and filtering support.

0.2 (2007-01-21)
* Added: remove task to get rid of packages added to the local repository.
* Changed: recompile project if any of its dependencies is newer than the
source code.  Will cause recompile if any of the dependencies was compiled and
packaged again.
* Changed: compile task depends on javac task and resource copy tasks.  This
might change when adding filtering later on.

0.1 (2007-01-19)
* Added: build and clean tasks
* Added: resources are now copied over during compilation
* Added: POM file generated in local repository (keep Maven happy)
* Added: compile scope for use by javac
* Added: WAR packaging.
* Changed: Root project operates on the current directory, sub-projects on sub
directories. See Rakefile for example.
