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.
