= Rant NEWS == Rant 0.5.6 Fixes and minor improvements: * Package::Zip, Package::Tgz: Fix bug where a file that starts with the package name wouldn't be included in the package. (Reported and fixed by Kevin Burge.) * Fixed: The C source file scanner used by the C::Dependencies task was confused by C-style single-line comments. * Fix a typo in the C::Dependencies task which affected the :search option. (Reported by Kevin Burge.) * +RubyTest+ no longer uses +testrb+ as test runner per default. Thus it works on systems without +testrb+ now (e.g. Debian based systems). The old behaviour can be enabled by setting the +loader+ attribute to :testrb. A patch was provided by Max Nickel. New features: * The C::Dependencies task accepts the new option :correct_case, which is useful on case-insenstive file systems. (Patch provided by Peter Allin.) Read doc/c.rdoc[link:files/doc/c_rdoc.html] for documentation. * The method Rant::Sys.root_dir?. Read doc/sys.rdoc[link:files/doc/sys_rdoc.html] for documentation. == Rant 0.5.4 Incompatible changes: * The undocumented method var.is which is deprecated since release 0.5.2 is not defined anymore. Fixes and minor improvements: * Fix a rule bug where a custom rule task wouldn't find it's prerequisites in subdirectories. * An non-backwards compatible change in the YAML library of Ruby 1.8.3 and newer causes gems to be non-backwards compatible. The fix for backwards compatibility of gems created with RubyPackage is enabled for all newer Ruby versions now. (See changes of last Rant release.) * The new method sys.write_to_binfile. (Kevin Burge's idea.) Read doc/sys.rdoc[link:files/doc/sys_rdoc.html] for documentation. == Rant 0.5.2 Incompatible changes: * The two undocumented Array methods ary.arglist and ary.shell_pathes, which are deprecated since release 0.4.8, are removed with this release. Use sys.sp(ary) in Rantfiles instead. * The method +rac+ which is deprecated since release 0.4.6 is gone. * Filelists no longer respond to all Array methods. To use the filelist method +no_dir+, import "filelist/std" is required now. See below for documentation links. Fixes and minor improvements: * A bug in the YAML library of Ruby 1.8.3/1.8.4-preview1 prevented created gems to work with other ruby versions. Since this Rant release gems created with a RubyPackage task and Ruby 1.8.3 will work with all Ruby versions (with gem support, of course). * Fixed bug where the method Rant::Sys.split_all would drop a leading dot directory (e.g. as in "./foo/bar"). * New method Rant::Sys.regular_filename for filename conversion. New features: * Major rework of filelist support. The Rant::FileList class is available as "normal" Ruby library now. Read doc/filelist.rdoc[link:files/doc/filelist_rdoc.html] for Rant::FileList documentation and doc/sys_filelist.rdoc[link:files/doc/sys_filelist_rdoc.html] for instructions on how to use filelists in Rantfiles. == Rant 0.5.0 Incompatible changes: * The undocumented filelist methods +no_file+, +no_suffix+ and +no_prefix+ require import "filelist/more" now. Deprecated: * The undocumented var.is method. It won't be in release 0.5.4 and later. * To use a (numeric) range as variable constraint, you should explicitely import "var/numbers" now. Also explicitely import "var/strings" to use the :String constraint and import "var/booleans" to use the :Bool constraint. Read Constraining variables in doc/advanced.rdoc[link:files/doc/advanced_rdoc.html]. Fixes and minor improvements: * Fix a few warnings from ruby 1.8.0/1.8.1. * Prevent infinite rule recursion. * Documentation for common file system operations and path manipulation methods. Read doc/sys.rdoc[link:files/doc/sys_rdoc.html]. New features: * The --dry-run (-n) option for +rant+. Read doc/rant.rdoc[link:files/doc/rant_rdoc.html]. * +Action+ takes a regular expression now. When rant looks for a task/file that matches the regular expression, the action block will get executed once. Read More selective actions in doc/advanced.rdoc[link:files/doc/advanced_rdoc.html]. == Rant 0.4.8 Incompatible changes: * The filenames Rantfile.rb and rantfile.rb which were deprecated since the last release aren't recognized anymore. Use +Rantfile+, +rantfile+ or root.rant instead. Deprecated: * The two undocumented Array methods ary.arglist and ary.shell_pathes are deprecated. Use sys.sp(ary) in Rantfiles instead. * rant-import -v option. Use -V or --version instead. Fixes and minor improvements: * Fix output of rant -T for descriptions with more than two lines. * Filelists: Same handling of files starting with a dot with all supported ruby versions (1.8.0 - 1.9). * The sys.ruby method uses an absolute path to start the Ruby interpreter. Thus sys.ruby also works if ruby is not on the PATH. * Fix for latest ruby 1.9, which renamed +fcall+ to +funcall+. New features: * rant-import supports --zip (-z) option for zip-compression now. * Tasks with command change recognition. Read doc/command.rdoc[link:files/doc/command_rdoc.html] * Improved rule support. == Rant 0.4.6 Incompatible changes: * *Important*: The notation "#foo" to reference a task defined in the project's root directory changed to "@foo". * Previous Rant versions loaded both, +Rantfile+ and Rantfile.rb, if present. This version will only load one of them (preferably +Rantfile+). * +RubyTest+ tasks no longer honour TESTOPTS variable. Deprecated: * The filenames Rantfile.rb and rantfile.rb are deprecated for rantfiles and won't be recognized by future Rant versions. Use +Rantfile+, +rantfile+ or root.rant instead. Fixes and minor improvements: * Fix an issue where a file was unnecessary rebuilt when rant was started from different directories, the file task was created from a rule and md5 signatures were used. * Concise output from Package::Tgz and Package::Zip tasks. * A manpage will be installed on Linux/Unix systems by the install.rb script. * A fix for a FileUtils::Verbose bug in Ruby 1.8.3 which affects some sys methods. New features: * The --cd-parent (-c) option to search for an Rantfile in parent directories. * The --look-up (-u) option to search for the root Rantfile in parent directories. * Recognition of rantfiles with the names root.rant and sub.rant, where a sub.rant file is meant for a project subdirectory and is treated special. Read doc/subdirs.rdoc[link:files/doc/subdirs_rdoc.html] * The +sys+ and sys.ruby methods take an optional block for custom process exit status handling (per default, Rant aborts if a subprocess started with +sys+ exits with another status than 0). == Rant 0.4.4 Besides internal changes, this release is backwards compatible to 0.4.2. Fixes and minor improvements: * Rant is Ruby 1.8.0 compatible now. * Fixes for filelists. * A fix for Directory generator (and thus dependent features). New features: * Optional recognition of file changes based on MD5 checksums. Read doc/md5.rdoc[link:files/doc/md5_rdoc.html] for documentation. == Rant 0.4.2 This is mainly a bugfix release and thus fully backwards compatible to 0.4.0. Fixes and minor improvements: * Fixes for Ruby 1.8.1 compatibility. * Fixes for Rules and multiple buildfiles per project. * rant-import created scripts append inlined files to $LOADED_FEATURES. New features: * The +make+ command. * New method +sub_ext+ for filelists. Read doc/advanced.rdoc[link:files/doc/advanced_rdoc.html]. == Rant 0.4.0 Unless you extended Rant with a custom generator, you can upgrade from 0.3.8 without changing any dependent code. Incompatible changes: * _Internal_: A generator has to respond to +rant_gen+ instead of +rant_generate+. New features: * Creating zip and gzipped tar archives on all supported platforms without installing extra software. Seamless integration with rant-import. Read doc/package.rdoc[link:files/doc/package_rdoc.html]. * The standard RubyPackage tasks create zip and gzipped tar archives (and optional gem packages) on all platforms, including Windows, now. * rant-import recognizes the new directives +uncomment+ and +remove+. == Rant 0.3.8 This version should be fully backwards compatible to 0.3.6. New features: * Dependency checking for C/C++ sources. Read doc/c.rdoc[link:files/doc/c_rdoc.html] documentation. * Installing ".cmd" files on Windows with the Win32::RubyCmdWrapper. Read doc/rubyproject.rdoc[link:files/doc/rubyproject_rdoc.html]. * Convenient directory/file creation with SubFile. Read doc/advanced.rdoc[link:files/doc/advanced_rdoc.html]. * rant-import inlines specially marked, +require+ files. == Rant 0.3.6 This version should be fully backwards compatible to 0.3.4. New features: * Automatic cleanup of generated files * Directed rules * Constraining variables * rant-import searches $LOAD_PATH * Immediately build targets with rac.build "target" Read doc/rantfile.rdoc[link:files/doc/rantfile_rdoc.html] and doc/advanced.rdoc[link:files/doc/advanced_rdoc.html] for docu. == Rant 0.3.4 Incompatible changes: * Arguments of the form VAR=VAL to rant no longer set environment variables directly, they are available through +var+ now. Read doc/advanced.rdoc[link:files/doc/advanced_rdoc.html] for more info. * Replace any include Sys with include Rant::Sys in Rantfiles. Or even better: don't include the +Sys+ module. New features: * Installation with install.rb installs .cmd files on Windows. Read README[link:files/README.html] * Sharing variables between Rantfiles. Read doc/advanced.rdoc[link:files/doc/advanced_rdoc.html] for more info. * Selecting files with the +sys+ command. * Rules Read doc/rantfile.rdoc[link:files/doc/rantfile_rdoc.html] for docu. == Rant 0.3.2 This version should be fully backwards compatible to 0.3.0. New features: * Support splitting your buildfiles up and placing them into multiple directories with the +subdirs+ command. Please read doc/rantfile.rdoc[link:files/doc/rantfile_rdoc.html] for usage. This is especially useful for bigger projects. == Rant 0.3.0 First release of Rant on RubyForge. == See also Rant Overview:: README[link:files/README.html]