require 'rake/classic_namespace' to the
Rakefile to get the old behavior.
rake will print a rather annoying warning whenever a
deprecated class name is referenced without enabling classic
namespace.
===== Bug Fixes
* Several unit tests and functional tests were fixed to run better
under windows.
* Directory tasks are now a specialized version of a File task. A
directory task will only be triggered if it doesn't exist. It will
not be triggered if it is out of date w.r.t. any of its
prerequisites.
* Fixed a bug in the Rake::GemPackageTask class so that the gem now
properly contains the platform name.
* Fixed a bug where a prerequisite on a file task would cause
an exception if the prerequisite did not exist.
==== Thanks
As usual, it was input from users that drove a alot of these changes.
The following people either contributed patches, made suggestions or
made otherwise helpful comments. Thanks to ...
* Greg Fast (better ruby_opt test options)
* Kelly Felkins (requested by better namespace support)
* Martin Fowler (suggested Task.investigation)
* Stuart Jansen (send initial patch for multiple prerequisites).
* Masao Mutch (better support for non-ruby Gem platforms)
* Philipp Neubeck (patch for file task exception fix)
-- Jim Weirich
=== 0.5.4
Time for some minor bug fixes and small enhancements
==== Changes
Here are the changes for version 0.5.4 ...
* Added double quotes to the test runner. This allows the location of
the tests (and runner) to be in a directory path that contains
spaces (e.g. "C:/Program Files/ruby/bin").
* Added .svn to default ignore list. Now subversion project metadata
is automatically ignored by Rake's FileList.
* Updated FileList#include to support nested arrays and filelists.
FileLists are flat lists of file names. Using a FileList in an
include will flatten out the nested file names.
== Thanks
As usual, it was input from users that drove a alot of these changes.
Thanks to ...
* Tilman Sauerbeck for the nested FileList suggestion.
* Josh Knowles for pointing out the spaces in directory name problem.
-- Jim Weirich
=== 0.5.3
Although it has only been two weeks since the last release, we have
enough updates to the Rake program to make it time for another
release.
==== Changes
Here are the changes for version 0.5.3 ...
* FileLists have been extensively changed so that they mimic the
behavior of real arrays even more closely. In particular,
operations on FileLists that return a new collection (e.g. collect,
reject) will now return a FileList rather than an array. In
addition, several places where FileLists were not properly expanded
before use have been fixed.
* A method (+ext+) to simplify the handling of file extensions was
added to String and to Array.
* The 'testrb' script in test/unit tends to silently swallow syntax
errors in test suites. Because of that, the default test loader is
now a rake-provided script. You can still use 'testrb' by setting
the loader flag in the test task to :testrb. (See the API documents
for TestTask for all the loader flag values).
* FileUtil methods (e.g. cp, mv, install) are now declared to be
private. This will cut down on the interference with user defined
methods of the same name.
* Fixed the verbose flag in the TestTask so that the test code is
controlled by the flag. Also shortened up some failure messages.
(Thanks to Tobias Luetke for the suggestion).
* Rules will now properly detect a task that can generate a source
file. Previously rules would only consider source files that were
already present.
* Added an +import+ command that allows Rake to dynamically import
dependendencies into a running Rake session. The +import+ command
can run tasks to update the dependency file before loading them.
Dependency files can be in rake or make format, allowing rake to
work with tools designed to generate dependencies for make.
==== Thanks
As usual, it was input from users that drove a alot of these changes.
Thanks to ...
* Brian Gernhardt for the rules fix (especially for the patience to
explain the problem to me until I got what he was talking about).
* Stefan Lang for pointing out problems in the dark corners of the
FileList implementation.
* Alexey Verkhovsky pointing out the silently swallows syntax errors
in tests.
* Tobias Luetke for beautifying the test task output.
* Sam Roberts for some of the ideas behind dependency loading.
-- Jim Weirich
=== 0.5.0
It has been a long time in coming, but we finally have a new version
of Rake available.
==== Changes
* Fixed documentation that was lacking the Rake module name (Tilman
Sauerbeck).
* Added tar.gz and tar.bz2 support to package task (Tilman Sauerbeck).
* Recursive rules are now supported (Tilman Sauerbeck).
* Added warning option for the Test Task (requested by Eric Hodel).
* The jamis rdoc template is only used if it exists.
* Added fix for Ruby 1.8.2 test/unit and rails problem.
* Added contributed rake man file (Jani Monoses).
* Added Brian Candler's fix for problems in --trace and --dry-run
mode.
==== Thanks
Lots of people provided input to this release. Thanks to Tilman
Sauerbeck for numerous patches, documentation fixes and suggestions.
And for also pushing me to get this release out. Also, thanks to
Brian Candler for the finding and fixing --trace/dry-run fix. That
was an obscure bug. Also to Eric Hodel for some good suggestions.
-- Jim Weirich
=== 0.4.15
==== Changes
Version 0.4.15 is a bug fix update for the Ruby 1.8.2 compatibility
changes. This release includes:
* Fixed a bug that prevented the TESTOPTS flag from working with the
revised for 1.8.2 test task.
* Updated the docs on --trace to indicate that it also enables a full
backtrace on errors.
* Several fixes for new warnings generated.
==== Mini-Roadmap
I will continue to issue Rake updates in the 0.4.xx series as new
Ruby-1.8.2 issues become manifest. Once the codebase stabilizes, I
will release a 0.5.0 version incorporating all the changes. If you
are not using Ruby-1.8.2 and wish to avoid version churn, I recommend
staying with a release prior to Rake-0.4.14.
=== 0.4.14
Version 0.4.14 is a compatibility fix to allow Rake's test task to
work under Ruby 1.8.2. A change in the Test::Unit autorun feature
prevented Rake from running any tests. This release fixes the
problem.
Rake 0.4.14 is the recommended release for anyone using Ruby 1.8.2.
=== 0.4.13
* Fixed the dry-run flag so it is operating again.
* Multiple arguments to sh and ruby commands will not be interpreted
by the shell (patch provided by Jonathan Paisley).
=== 0.4.12
* Added --silent (-s) to suppress the (in directory) rake message.
=== 0.4.11
* Changed the "don't know how to rake" message (finally)
* Changes references to a literal "Rakefile" to reference the global
variable $rakefile (which contains the actual name of the rakefile).
=== 0.4.10
* Added block support to the "sh" command, allowing users to take
special actions on the result of the system call. E.g.
sh "shell_command" do |ok, res|
puts "Program returned #{res.exitstatus}" if ! ok
end
=== 0.4.9
* Switched to Jamis Buck's RDoc template.
* Removed autorequire from Rake's gem spec. This prevents the Rake
libraries from loading while using rails.
=== 0.4.8
* Added support for .rb versions of Rakefile.
* Removed \\\n's from test task.
* Fixed Ruby 1.9 compatibility issue with FileList.
=== 0.4.7
* Fixed problem in FileList that caused Ruby 1.9 to go into infinite
recursion. Since to_a was removed from Object, it does not need to
added back into the list of methods to rewrite in FileList. (Thanks
to Kent Sibilev for pointing this out).
=== 0.4.6
* Removed test version of ln in FileUtils that prevented safe_ln from
using ln.
=== 0.4.5
* Upgraded comments in TestTask.
* FileList to_s and inspect now automatically resolve pending changes.
* FileList#exclude properly returns the FileList.
=== 0.4.4
* Fixed initialization problem with @comment.
* Now using multi -r technique in TestTask. Switch Rakefile back to
using the built-in test task macros because the rake runtime is no
longer needed.
* Added 'TEST=filename' and 'TESTOPTS=options' to the Test Task
macros.
* Allow a +test_files+ attribute in test tasks. This allows more
flexibility in specifying test files.
=== 0.4.3
* Fixed Comment leakage.
=== 0.4.2
* Added safe_ln that falls back to a copy if a file link is not supported.
* Package builder now uses safe\_ln.
=== 0.4.1
* Task comments are now additive, combined with "/".
* Works with (soon to be released) rubygems 0.6.2 (or 0.7.0)
=== 0.4.0
* FileList now uses deferred loading. The file system is not searched
until the first call that needs the file names.
* VAR=VALUE options are now accepted on the command line and are
treated like environment variables. The values may be tested in a
Rakefile by referencing ENV['VAR'].
* File.mtime is now used (instead of File.new().mtime).
=== 0.3.2.x
* Removed some hidden dependencies on rubygems. Tests now will test
gems only if they are installed.
* Removed Sys from some example files. I believe that is that last
reference to Sys outside of the contrib area.
* Updated all copyright notices to include 2004.
=== 0.3.2
* GEM Installation now works with the application stub.
=== 0.3.1
* FileLists now automatically ignore CVS, .bak, !
* GEM Installation now works.
=== 0.3.0
Promoted 0.2.10.
=== 0.2.10
General
* Added title to Rake's rdocs
* Contrib packages are no longer included in the documentation.
RDoc Issues
* Removed default for the '--main' option
* Fixed rendering of the rdoc options
* Fixed clean/clobber confusion with rerdoc
* 'title' attribute added
Package Task Library Issues
* Version (or explicit :noversion) is required.
* +package_file+ attribute is now writable
FileList Issues
* Dropped bang version of exclude. Now using ant-like include/exclude semantics.
* Enabled the "yield self" idiom in FileList#initialize.
=== 0.2.9
This version contains numerous changes as the RubyConf.new(2003)
presentation was being prepared. The changes include:
* The monolithic rubyapp task library is in the process of being
dropped in favor of lighter weight task libraries.
=== 0.2.7
* Added "desc" for task descriptions.
* -T will now display tasks with descriptions.
* -P will display tasks and prerequisites.
* Dropped the Sys module in favor of the 1.8.x FileUtils module. Sys
is still supported in the contrib area.
=== 0.2.6
* Moved to RubyForge
=== 0.2.5
* Switched to standard ruby app builder.
* Added no_match option to file matcher.
=== 0.2.4
* Fixed indir, which neglected to actually change directories.
=== 0.2.3
* Added rake module for a help target
* Added 'for\_files' to Sys
* Added a $rakefile constant
* Added test for selecting proper rule with multiple targets.
PK ! U& CONTRIBUTING.rdocnu [ = Source Repository
Rake is currently hosted at github. The github web page is
https://github.com/ruby/rake . The public git clone URL is
https://github.com/ruby/rake.git
= Running the Rake Test Suite
If you wish to run the unit and functional tests that come with Rake:
* +cd+ into the top project directory of rake.
* Install gem dependency using bundler:
$ bundle install # Install bundler, minitest and rdoc
* Run the test suite
$ rake
= Rubocop
Rake uses Rubocop to enforce a consistent style on new changes being
proposed. You can check your code with Rubocop using:
$ ./bin/rubocop
= Issues and Bug Reports
Feel free to submit commits or feature requests. If you send a patch,
remember to update the corresponding unit tests. In fact, I prefer
new feature to be submitted in the form of new unit tests.
For other information, feel free to ask on the ruby-talk mailing list.
If you have found a bug in rake please try with the latest version of rake
before filing an issue. Also check History.rdoc for bug fixes that may have
addressed your issue.
When submitting pull requests please check the rake Travis-CI page for test
failures:
https://travis-ci.org/ruby/rake
PK ! ?qF F doc/command_line_usage.rdocnu [ = Rake Command Line Usage
Rake is invoked from the command line using:
% rake [options ...] [VAR=VALUE ...] [targets ...]
Options are:
[name=value]
Set the environment variable name to value
during the execution of the rake command. You can access
the value by using ENV['name'].
[--all (-A)]
Used in combination with the -T and -D options, will force
those options to show all the tasks, even the ones without comments.
[--backtrace{=_output_} (-n)]
Enable a full backtrace (i.e. like --trace, but without the task
tracing details). The _output_ parameter is optional, but if
specified it controls where the backtrace output is sent. If
_output_ is stdout, then backtrace output is directed to
standard output. If _output_ is stderr, or if it is
missing, then the backtrace output is sent to standard error.
[--comments]
Used in combination with the -W options to force the output to
contain commented options only. This is the reverse of
--all.
[--describe _pattern_ (-D)]
Describe the tasks (matching optional PATTERN), then exit.
[--dry-run (-n)]
Do a dry run. Print the tasks invoked and executed, but do not
actually execute any of the actions.
[--execute _code_ (-e)]
Execute some Ruby code and exit.
[--execute-print _code_ (-p)]
Execute some Ruby code, print the result, and exit.
[--execute-continue _code_ (-E)]
Execute some Ruby code, then continue with normal task processing.
[--help (-H)]
Display some help text and exit.
[--jobs _number_ (-j)]
Specifies the maximum number of concurrent threads allowed. Rake
will allocate threads as needed up to this maximum number.
If omitted, Rake will attempt to estimate the number of CPUs on
the system and add 4 to that number.
The concurrent threads are used to execute the multitask
prerequisites. Also see the -m option which turns all
tasks into multitasks.
Sample values:
(no -j) : Allow up to (# of CPUs + 4) number of threads
--jobs : Allow unlimited number of threads
--jobs=1 : Allow only one thread (the main thread)
--jobs=16 : Allow up to 16 concurrent threads
[--job-stats _level_]
Display job statistics at the completion of the run. By default,
this will display the requested number of active threads (from the
-j options) and the maximum number of threads in play at any given
time.
If the optional _level_ is history, then a complete trace
of task history will be displayed on standard output.
[--libdir _directory_ (-I)]
Add _directory_ to the list of directories searched for require.
[--multitask (-m)]
Treat all tasks as multitasks. ('make/drake' semantics)
[--nosearch (-N)]
Do not search for a Rakefile in parent directories.
[--prereqs (-P)]
Display a list of all tasks and their immediate prerequisites.
[--quiet (-q)]
Do not echo commands from FileUtils.
[--rakefile _filename_ (-f)]
Use _filename_ as the name of the rakefile. The default rakefile
names are +rakefile+ and +Rakefile+ (with +rakefile+ taking
precedence). If the rakefile is not found in the current
directory, +rake+ will search parent directories for a match. The
directory where the Rakefile is found will become the current
directory for the actions executed in the Rakefile.
[--rakelibdir _rakelibdir_ (-R)]
Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')
[--require _name_ (-r)]
Require _name_ before executing the Rakefile.
[--rules]
Trace the rules resolution.
[--silent (-s)]
Like --quiet, but also suppresses the 'in directory' announcement.
[--suppress-backtrace _pattern_ ]
Line matching the regular expression _pattern_ will be removed
from the backtrace output. Note that the --backtrace option is the
full backtrace without these lines suppressed.
[--system (-g)]
Use the system wide (global) rakefiles. The project Rakefile is
ignored. By default, the system wide rakefiles are used only if no
project Rakefile is found. On Unix-like system, the system wide
rake files are located in $HOME/.rake. On a windows system they
are stored in $APPDATA/Rake.
[--no-system (-G)]
Use the project level Rakefile, ignoring the system-wide (global)
rakefiles.
[--tasks pattern (-T)]
Display a list of the major tasks and their comments. Comments
are defined using the "desc" command. If a pattern is given, then
only tasks matching the pattern are displayed.
[--trace{=_output_} (-t)]
Turn on invoke/execute tracing. Also enable full backtrace on
errors. The _output_ parameter is optional, but if specified it
controls where the trace output is sent. If _output_ is
stdout, then trace output is directed to standard output.
If _output_ is stderr, or if it is missing, then trace
output is sent to standard error.
[--verbose (-v)]
Echo the Sys commands to standard output.
[--version (-V)]
Display the program version and exit.
[--where pattern (-W)]
Display tasks that match pattern and the file and line
number where the task is defined. By default this option will
display all tasks, not just the tasks that have descriptions.
[--no-deprecation-warnings (-X)]
Do not display the deprecation warnings.
In addition, any command line option of the form
VAR=VALUE will be added to the environment hash
ENV and may be tested in the Rakefile.
PK ! 'S{ doc/glossary.rdocnu [ = Glossary
action ::
Code to be executed in order to perform a task. Actions in a Rakefile are
specified in a code block. (Usually delimited by +do+/+end+ pairs.)
execute ::
When a task is executed, all of its actions are performed in the order they
were defined. Note that, unlike invoke, execute always
executes the actions (without invoking or executing the prerequisites).
file task (Rake::FileTask) ::
A file task is a task whose purpose is to create a file (which has the same
name as the task). When invoked, a file task will only execute if one or
more of the following conditions are true.
1. The associated file does not exist.
2. A prerequisite has a later time stamp than the existing file.
Because normal Tasks always have the current time as timestamp, a FileTask
that has a normal Task prerequisite will always execute.
invoke ::
When a task is invoked, first we check to see if it has been invoked before.
If it has been, then nothing else is done. If this is the first time it has
been invoked, then we invoke each of its prerequisites. Finally, we check
to see if we need to execute the actions of this task by calling
Rake::Task#needed?. If the task is needed, we execute its actions.
NOTE: Prerequisites are still invoked even if the task is not needed.
prerequisites ::
Every task has a (possibly empty) set of prerequisites. A prerequisite P to
Task T is itself a task that must be invoked before Task T.
rule ::
A rule is a recipe for synthesizing a task when no task is explicitly
defined. Rules generally synthesize file tasks.
task (Rake::Task) ::
The basic unit of work in a Rakefile. A task has a name, a set of
prerequisites, and a list of actions to be performed.
PK ! @u, u, doc/jamis.rbnu [ # frozen_string_literal: true
module RDoc
module Page
FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif"
STYLE = <| File %short_name% |
| |||||
| In: | START:infiles HREF:full_path_url:full_path: IF:cvsurl (CVS) ENDIF:cvsurl END:infiles |
| Parent: | IF:par_url ENDIF:par_url %parent% IF:par_url ENDIF:par_url |
| %diagram% |
| %name% | = | %value% |
| %desc% | ||
| IF:rw [%rw%] ENDIF:rw | %name% | %a_desc% |
[ show source ]
%sourcecode%
%code%HTML ########################## Index ################################ FR_INDEX_BODY = <