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.
