
= Rant NEWS

== Rant 0.5.8

Fixes and minor improvements:
* Added man pages
* Added bash completion script

== Rant 0.5.7

Fixes and minor improvements:
* Fixed: Rules wouldn't work if the target file was specified by an
  absolute path. (Reported by Brendan Boesen.)
* Fixed: Script files use env ruby (Russel Windir)

New features:
* The method <tt>Rant::Sys.absolute_path?</tt>.
  Read doc/sys.rdoc[link:files/doc/sys_rdoc.html] for documentation.
* Added non-deprecated support for C#. Read doc/csharp.rdoc[link:files/doc/csharp_rdoc.html] for documentation.

== Rant 0.5.6

Fixes and minor improvements:
* <tt>Package::Zip</tt>, <tt>Package::Tgz</tt>: 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
  <tt>C::Dependencies</tt> task was confused by C-style single-line
  comments.
* Fix a typo in the <tt>C::Dependencies</tt> task which affected the
  <tt>:search</tt> 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 <tt>:testrb</tt>. A patch was provided by Max Nickel.

New features:
* The <tt>C::Dependencies</tt> task accepts the new option
  <tt>:correct_case</tt>, 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 <tt>Rant::Sys.root_dir?</tt>.
  Read doc/sys.rdoc[link:files/doc/sys_rdoc.html] for documentation.

== Rant 0.5.4

Incompatible changes:
* The undocumented method <tt>var.is</tt> 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 <tt>sys.write_to_binfile</tt>. (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 <tt>ary.arglist</tt> and
  <tt>ary.shell_pathes</tt>, which are deprecated since release 0.4.8,
  are removed with this release. Use <tt>sys.sp(ary)</tt>
  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+, <tt>import "filelist/std"</tt> 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 <tt>Rant::Sys.split_all</tt> would drop
  a leading dot directory (e.g. as in "./foo/bar").
* New method <tt>Rant::Sys.regular_filename</tt> 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 <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]
