== Rant::Env.find_bin... ... could honour PATHEXT on windows. == Task alias Since +alias+ is a Ruby keyword, we could use +nick+ to create task alises. Other choices: short, cut, name, label, syn, synonym, ident, term, shortcut, abbreviation, link == Here docs Don't use here documents in the Rant sources, imports and plugins. They'll get messed up by the rant-import command. == More notes on rant-import rant-import removes all lines matching /^\s*#/ per default. Remember that, I was already bitten by that one in multiline regex! (FileList#mk_all_rx) == Running RDoc programmatically require 'rdoc/rdoc' rdoc = RDoc::RDoc.new begin rdoc.document(%w(like args from commandline)) rescue RDoc::RDocError $stderr.puts "Error when running rdoc: " + $!.message end == Changing the behaviour of Rant from Rantfiles Perhaps a method named like `behave' would be appropriate to to set options of the Rant application. == Subdirectories Allow the use of `#' at the start of a pathname to tell rant that it should be interpreted relative to the project's root directory. == Directory structure of +lib/+ +lib/+ contains only two entries: [rant.rb] Used to require rantlib and include +Rant+ for small build scripts. [rant/] All files matching /^rant\w+\.rb$/ are considered as Rant core. Others contain utilities, helper classes, Generators and similar. [rant/plugin] Each file ending in .rb in this directory is considered to load support for one Rant plugin. == Performance With version 0.2.6, the big performance problem with task lookup (caused very slow dependency resolving) is fixed. The next performance improvement should target Rantfile reading, especially task creation. == RubyPackage generator Currently, the package task(s) generated by RubyPackage doesn't recognize (and repackage) when files/directories are removed (from the sources). == Unit tests The unit tests contain many assertions of the form assert_equal(Rant.run(...), 0) which are wrong, because the first argument should be the expected result! == FileList < Array problems There arise some severe problems. E.g. the Array#flatten method: [FileList["*.rb"]].flatten The +flatten+ method doesn't call *any* method of our FileList but it recognizes that it is an Array and copies the elements directly. So there is *no* way to resolve the glob pattern and there will never any Ruby file be selected! == Subdirectories Rant would have to check and eventually +cd+ before doing one of the following: * Loading an Rantfile (even through +source+). * Worker#invoke * Worker#needed? * RantApp#run before returning. == RantContext#rantapp rename Rename +rantapp+ to +rac+. Done. == Circular dependencies Before Rant detected circular dependencies, we silently removed a task dependency on itself. Should we remove this mechanism now? == Testing Files/directories created during tests match the glob *.t* so don't give names matching this pattern to regular files, as they would soon be deleted! == Compiling C make uses the env. variables CC and CFLAGS. # vim:tw=70: