0.21 (4/20/2007) * 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 (4/18/2007) * 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 (4/13/2007) * 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 (3/26/2007) * 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 (3/14/2007) * 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 (3/7/2007) * 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 (2/28/2007) * Fixed: tasks fail unless deployment server specified. * Changed: deploy method executes deployment, instead of returning a task. 0.14 (2/28/2007) * 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 (2/26/2007) * 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 (2/24/2007) * 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 (2/16/2007) * 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 (2/13/2007) * 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 (2/9/2007) * 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 (2/5/2007) * 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 (2/1/2007) * 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 (1/24/2007) * 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 (1/23/2007) * 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 (1/22/2007) * 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 (1/21/2007) * 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 (1/19/2007) * 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.