= Rant NEWS

== Rant 0.5.0

Incompatible changes:
* The undocumented filelist methods +no_file+, +no_suffix+ and
  +no_prefix+ require <tt>import "filelist/more"</tt> now.

Deprecated:
* The undocumented <tt>var.is</tt> method. It won't be in release
  0.5.4 and later.
* To use a (numeric) range as variable constraint, you should
  explicitely <tt>import "var/numbers"</tt> now. Also explicitely
  <tt>import "var/strings"</tt> to use the <tt>:String</tt>
  constraint and <tt>import "var/booleans"</tt> to use the
  <tt>:Bool</tt> constraint. Read <em>Constraining variables</em> 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 <tt>--dry-run</tt> (<tt>-n</tt>) 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 <em>More selective actions</em> in
  doc/advanced.rdoc[link:files/doc/advanced_rdoc.html]. 

== Rant 0.4.8

Incompatible changes:
* The filenames <tt>Rantfile.rb</tt> and <tt>rantfile.rb</tt> which
  were deprecated since the last release aren't recognized anymore.
  Use +Rantfile+, +rantfile+ or <tt>root.rant</tt> instead.

Deprecated:
* The two undocumented Array methods <tt>ary.arglist</tt> and
  <tt>ary.shell_pathes</tt> are deprecated. Use <tt>sys.sp(ary)</tt>
  in Rantfiles instead.
* <tt>rant-import -v</tt> option. Use <tt>-V</tt> or
  <tt>--version</tt> instead.

Fixes and minor improvements:
* Fix output of <tt>rant -T</tt> 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 <tt>sys.ruby</tt> method uses an absolute path to start the Ruby
  interpreter. Thus <tt>sys.ruby</tt> also works if ruby is not on the
  PATH.
* Fix for latest ruby 1.9, which renamed +fcall+ to +funcall+.

New features:
* <tt>rant-import</tt> supports <tt>--zip</tt> (<tt>-z</tt>) 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 <tt>"#foo"</tt> to reference a task
  defined in the project's root directory changed to <tt>"@foo"</tt>.
* Previous Rant versions loaded both, +Rantfile+ and
  <tt>Rantfile.rb</tt>, if present. This version will only load one of
  them (preferably +Rantfile+).
* +RubyTest+ tasks no longer honour TESTOPTS variable.

Deprecated:
* The filenames <tt>Rantfile.rb</tt> and <tt>rantfile.rb</tt> are
  deprecated for rantfiles and won't be recognized by future Rant
  versions. Use +Rantfile+, +rantfile+ or <tt>root.rant</tt> 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
  <tt>sys</tt> 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 <tt>root.rant</tt> and
  <tt>sub.rant</tt>, where a <tt>sub.rant</tt> file is meant for a
  project subdirectory and is treated special.
  Read doc/subdirs.rdoc[link:files/doc/subdirs_rdoc.html]
* The +sys+ and <tt>sys.ruby</tt> 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 <tt>rac.build "target"</tt>
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]