rake 11.3.0 → 13.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/macos.yml +22 -0
  3. data/.github/workflows/ubuntu-rvm.yml +28 -0
  4. data/.github/workflows/ubuntu.yml +20 -0
  5. data/.github/workflows/windows.yml +20 -0
  6. data/CONTRIBUTING.rdoc +11 -4
  7. data/Gemfile +8 -1
  8. data/History.rdoc +171 -37
  9. data/README.rdoc +9 -11
  10. data/Rakefile +21 -13
  11. data/bin/bundle +105 -0
  12. data/bin/rake +29 -0
  13. data/bin/rdoc +29 -0
  14. data/bin/rubocop +29 -0
  15. data/doc/jamis.rb +1 -0
  16. data/doc/rake.1 +139 -124
  17. data/doc/rakefile.rdoc +2 -4
  18. data/exe/rake +1 -1
  19. data/lib/rake/application.rb +119 -79
  20. data/lib/rake/backtrace.rb +3 -2
  21. data/lib/rake/clean.rb +7 -5
  22. data/lib/rake/cloneable.rb +1 -0
  23. data/lib/rake/cpu_counter.rb +3 -2
  24. data/lib/rake/default_loader.rb +1 -0
  25. data/lib/rake/dsl_definition.rb +5 -4
  26. data/lib/rake/early_time.rb +1 -0
  27. data/lib/rake/ext/core.rb +1 -0
  28. data/lib/rake/ext/string.rb +22 -21
  29. data/lib/rake/file_creation_task.rb +4 -3
  30. data/lib/rake/file_list.rb +13 -14
  31. data/lib/rake/file_task.rb +12 -4
  32. data/lib/rake/file_utils.rb +17 -22
  33. data/lib/rake/file_utils_ext.rb +8 -18
  34. data/lib/rake/invocation_chain.rb +1 -0
  35. data/lib/rake/invocation_exception_mixin.rb +1 -0
  36. data/lib/rake/late_time.rb +2 -1
  37. data/lib/rake/linked_list.rb +1 -0
  38. data/lib/rake/loaders/makefile.rb +5 -4
  39. data/lib/rake/multi_task.rb +2 -1
  40. data/lib/rake/name_space.rb +1 -1
  41. data/lib/rake/packagetask.rb +28 -16
  42. data/lib/rake/phony.rb +2 -1
  43. data/lib/rake/private_reader.rb +1 -0
  44. data/lib/rake/promise.rb +13 -12
  45. data/lib/rake/pseudo_status.rb +1 -0
  46. data/lib/rake/rake_module.rb +30 -1
  47. data/lib/rake/rake_test_loader.rb +18 -12
  48. data/lib/rake/rule_recursion_overflow_error.rb +2 -1
  49. data/lib/rake/scope.rb +3 -2
  50. data/lib/rake/task.rb +70 -27
  51. data/lib/rake/task_argument_error.rb +1 -0
  52. data/lib/rake/task_arguments.rb +10 -4
  53. data/lib/rake/task_manager.rb +54 -39
  54. data/lib/rake/tasklib.rb +2 -1
  55. data/lib/rake/testtask.rb +28 -16
  56. data/lib/rake/thread_history_display.rb +4 -3
  57. data/lib/rake/thread_pool.rb +15 -14
  58. data/lib/rake/trace_output.rb +1 -0
  59. data/lib/rake/version.rb +3 -2
  60. data/lib/rake/win32.rb +9 -8
  61. data/lib/rake.rb +34 -33
  62. data/rake.gemspec +22 -9
  63. metadata +25 -108
  64. data/.gitignore +0 -14
  65. data/.rubocop.yml +0 -18
  66. data/.travis.yml +0 -28
  67. data/appveyor.yml +0 -22
  68. data/doc/release_notes/README.md +0 -4
  69. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  70. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  71. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  72. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  73. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  74. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  75. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  76. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  77. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  78. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  79. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  80. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  81. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  82. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  83. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  84. data/doc/release_notes/rake-0.8.6.rdoc +0 -37
  85. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  86. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  87. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  88. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  89. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  90. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  91. data/doc/release_notes/rake-0.9.4.rdoc +0 -60
  92. data/doc/release_notes/rake-0.9.5.rdoc +0 -55
  93. data/doc/release_notes/rake-0.9.6.rdoc +0 -64
  94. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  95. data/doc/release_notes/rake-10.0.1.rdoc +0 -58
  96. data/doc/release_notes/rake-10.0.2.rdoc +0 -53
  97. data/doc/release_notes/rake-10.0.3.rdoc +0 -191
  98. data/doc/release_notes/rake-10.1.0.rdoc +0 -61
  99. data/lib/rake/contrib/compositepublisher.rb +0 -21
  100. data/lib/rake/contrib/ftptools.rb +0 -137
  101. data/lib/rake/contrib/sshpublisher.rb +0 -60
  102. data/lib/rake/ext/pathname.rb +0 -25
@@ -1,119 +0,0 @@
1
- = Rake 0.7.0 Released
2
-
3
- These changes for Rake have been brewing for a long time. Here they
4
- are, I hope you enjoy them.
5
-
6
- == Changes
7
-
8
- === New Features
9
-
10
- * Name space support for task names (see below).
11
-
12
- * Prerequisites can be executed in parallel (see below).
13
-
14
- * Added safe_ln support for openAFS (via Ludvig Omholt).
15
-
16
- * RDoc defaults to internal (in-process) invocation. The old behavior
17
- is still available by setting the +external+ flag to true.
18
-
19
- * Rakefiles are now loaded with the expanded path to prevent
20
- accidental polution from the Ruby load path.
21
-
22
- * Task objects my now be used in prerequisite lists directly.
23
-
24
- * Task objects (in addition to task names) may now be included in the
25
- prerequisite list of a task.
26
-
27
- * Internals cleanup and refactoring.
28
-
29
- === Bug Fixes
30
-
31
- * Compatibility fixes for Ruby 1.8.4 FileUtils changes.
32
-
33
- === Namespaces
34
-
35
- Tasks can now be nested inside their own namespaces. Tasks within one
36
- namespace will not accidently interfer with tasks named in a different
37
- namespace.
38
-
39
- For example:
40
-
41
- namespace "main" do
42
- task :build do
43
- # Build the main program
44
- end
45
- end
46
-
47
- namespace "samples" do
48
- task :build do
49
- # Build the sample programs
50
- end
51
- end
52
-
53
- task :build_all => ["main:build", "samples:build"]
54
-
55
- Even though both tasks are named :build, they are separate tasks in
56
- their own namespaces. The :build_all task (defined in the toplevel
57
- namespace) references both build tasks in its prerequisites.
58
-
59
- You may invoke each of the individual build tasks with the following
60
- commands:
61
-
62
- rake main:build
63
- rake samples:build
64
-
65
- Or invoke both via the :build_all command:
66
-
67
- rake build_all
68
-
69
- Namespaces may be nested arbitrarily. Since the name of file tasks
70
- correspond to the name of a file in the external file system,
71
- FileTasks are not affected by the namespaces.
72
-
73
- See the Rakefile format documentation (in the Rake API documents) for
74
- more information.
75
-
76
- === Parallel Tasks
77
-
78
- Sometimes you have several tasks that can be executed in parallel. By
79
- specifying these tasks as prerequisites to a +multitask+ task.
80
-
81
- In the following example the tasks copy_src, copy_doc and copy_bin
82
- will all execute in parallel in their own thread.
83
-
84
- multitask :copy_files => [:copy_src, :copy_doc, :copy_bin] do
85
- puts "All Copies Complete"
86
- end
87
-
88
- == What is Rake
89
-
90
- Rake is a build tool similar to the make program in many ways. But
91
- instead of cryptic make recipes, Rake uses standard Ruby code to
92
- declare tasks and dependencies. You have the full power of a modern
93
- scripting language built right into your build tool.
94
-
95
- == Availability
96
-
97
- The easiest way to get and install rake is via RubyGems ...
98
-
99
- gem install rake (you may need root/admin privileges)
100
-
101
- Otherwise, you can get it from the more traditional places:
102
-
103
- Home Page:: http://rake.rubyforge.org/
104
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
105
-
106
- == Thanks
107
-
108
- As usual, it was input from users that drove a alot of these changes.
109
- The following people either contributed patches, made suggestions or
110
- made otherwise helpful comments. Thanks to ...
111
-
112
- * Doug Young (inspriation for the parallel task)
113
-
114
- * David Heinemeier Hansson (for --trace message enhancement and for
115
- pushing for namespace support).
116
-
117
- * Ludvig Omholt (for the openAFS fix)
118
-
119
- -- Jim Weirich
@@ -1,59 +0,0 @@
1
- = Rake 0.7.1 Released
2
-
3
- Version 0.7.1 supplies a bug fix and a few minor enhancements.
4
-
5
- == Changes
6
-
7
- === Bug Fixes in 0.7.1
8
-
9
- * Changes in the exception reported for the FileUtils.ln caused
10
- safe_ln to fail with a NotImplementedError. Rake 0.7.1 will now
11
- catch that error or any StandardError and properly fall back to
12
- using +cp+.
13
-
14
- === New Features in 0.7.1
15
-
16
- * You can filter the results of the --task option by supplying an
17
- optional regular expression. This allows the user to easily find a
18
- particular task name in a long list of possible names.
19
-
20
- * Transforming procs in a rule may now return a list of prerequisites.
21
- This allows more flexible rule formation.
22
-
23
- * FileList and String now support a +pathmap+ melthod that makes the
24
- transforming paths a bit easier. See the API docs for +pathmap+ for
25
- details.
26
-
27
- * The -f option without a value will disable the search for a
28
- Rakefile. This allows the Rakefile to be defined entirely in a
29
- library (and loaded with the -r option). The current working
30
- directory is not changed when this is done.
31
-
32
- == What is Rake
33
-
34
- Rake is a build tool similar to the make program in many ways. But
35
- instead of cryptic make recipes, Rake uses standard Ruby code to
36
- declare tasks and dependencies. You have the full power of a modern
37
- scripting language built right into your build tool.
38
-
39
- == Availability
40
-
41
- The easiest way to get and install rake is via RubyGems ...
42
-
43
- gem install rake (you may need root/admin privileges)
44
-
45
- Otherwise, you can get it from the more traditional places:
46
-
47
- Home Page:: http://rake.rubyforge.org/
48
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
49
-
50
- == Thanks
51
-
52
- As usual, it was input from users that drove a alot of these changes.
53
- The following people either contributed patches, made suggestions or
54
- made otherwise helpful comments. Thanks to ...
55
-
56
- * James Britt and Assaph Mehr for reporting and helping to debug the
57
- safe_ln issue.
58
-
59
- -- Jim Weirich
@@ -1,121 +0,0 @@
1
- = Rake 0.7.2 Released
2
-
3
- Version 0.7.2 supplies a bug fix and a few minor enhancements. In
4
- particular, the new version fixes an incompatibility with the soon to
5
- be released Ruby 1.8.6. We strongly recommend upgrading to Rake 0.7.2
6
- in order to be compatible with the new version of Ruby.
7
-
8
- == Changes
9
-
10
- === Bug Fixes in 0.7.2
11
-
12
- There are quite a number of bug fixes in the new 0.7.2 version of
13
- Rake:
14
-
15
- * Removed dependency on internal fu_xxx functions from FileUtils.
16
-
17
- * Error messages are now send to stderr rather than stdout (from
18
- Payton Quackenbush).
19
-
20
- * Better error handling on invalid command line arguments (from Payton
21
- Quackenbush).
22
-
23
- * Fixed some bugs where the application object was going to the global
24
- appliation instead of using its own data.
25
-
26
- * Fixed the method name leak from FileUtils (bug found by Glenn
27
- Vanderburg).
28
-
29
- * Added test for noop, bad_option and verbose flags to sh command.
30
-
31
- * Added a description to the gem task in GemPackageTask.
32
-
33
- * Fixed a bug when rules have multiple prerequisites (patch by Joel
34
- VanderWerf)
35
-
36
- * Added the handful of RakeFileUtils to the private method as well.
37
-
38
- === New Features in 0.7.2
39
-
40
- The following new features are available in Rake version 0.7.2:
41
-
42
- * Added square and curly bracket patterns to FileList#include (Tilman
43
- Sauerbeck).
44
-
45
- * FileLists can now pass a block to FileList#exclude to exclude files
46
- based on calculated values.
47
-
48
- * Added plain filename support to rule dependents (suggested by Nobu
49
- Nakada).
50
-
51
- * Added pathmap support to rule dependents. In other words, if a
52
- pathmap format (beginning with a '%') is given as a Rake rule
53
- dependent, then the name of the depend will be the name of the
54
- target with the pathmap format applied.
55
-
56
- * Added a 'tasks' method to a namespace to get a list of tasks
57
- associated with the namespace.
58
-
59
- * Added tar_command and zip_command options to the Package task.
60
-
61
- * The clean task will no longer delete 'core' if it is a directory.
62
-
63
- === Internal Rake Improvements
64
-
65
- The following changes will are mainly internal improvements and
66
- refactorings and have little effect on the end user. But they may be
67
- of interest to the general public.
68
-
69
- * Added rcov task and updated unit testing for better code coverage.
70
-
71
- * Added a 'shame' task to the Rakefile.
72
-
73
- * Added rake_extension to handle detection of extension collisions.
74
-
75
- * Added a protected 'require "rubygems"' to test/test_application to
76
- unbreak cruisecontrol.rb.
77
-
78
- * Removed rake_dup. Now we just simply rescue a bad dup.
79
-
80
- * Refactored the FileList reject logic to remove duplication.
81
-
82
- * Removed if __FILE__ at the end of the rake.rb file.
83
-
84
- == What is Rake
85
-
86
- Rake is a build tool similar to the make program in many ways. But
87
- instead of cryptic make recipes, Rake uses standard Ruby code to
88
- declare tasks and dependencies. You have the full power of a modern
89
- scripting language built right into your build tool.
90
-
91
- == Availability
92
-
93
- The easiest way to get and install rake is via RubyGems ...
94
-
95
- gem install rake (you may need root/admin privileges)
96
-
97
- Otherwise, you can get it from the more traditional places:
98
-
99
- Home Page:: http://rake.rubyforge.org/
100
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
101
-
102
- == Thanks
103
-
104
- As usual, it was input from users that drove a alot of these changes.
105
- The following people either contributed patches, made suggestions or
106
- made otherwise helpful comments. Thanks to ...
107
-
108
- * Payton Quackenbush -- For several error handling improvements.
109
-
110
- * Glenn Vanderburg -- For finding and fixing the method name leak from
111
- FileUtils.
112
-
113
- * Joel VanderWerf -- for finding and fixing a bug in the handling of
114
- multiple prerequisites.
115
-
116
- * Tilman Sauerbeck -- For some enhancing FileList to support more
117
- advanced file globbing.
118
-
119
- * Nobu Nakada -- For suggesting plain file name support to rule dependents.
120
-
121
- -- Jim Weirich
@@ -1,47 +0,0 @@
1
- = Rake 0.7.3 Released
2
-
3
- Rake version 0.7.3 is a minor release that includes some refactoring to better
4
- support custom Rake applications.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.7.3
9
-
10
- * Added the +init+ and +top_level+ methods to make the creation of custom Rake applications a bit easier. E.g.
11
-
12
- gem 'rake', ">= 0.7.3"
13
- require 'rake'
14
-
15
- Rake.application.init('myrake')
16
-
17
- task :default do
18
- something_interesting
19
- end
20
-
21
- Rake.application.top_level
22
-
23
- == What is Rake
24
-
25
- Rake is a build tool similar to the make program in many ways. But instead of
26
- cryptic make recipes, Rake uses standard Ruby code to declare tasks and
27
- dependencies. You have the full power of a modern scripting language built
28
- right into your build tool.
29
-
30
- == Availability
31
-
32
- The easiest way to get and install rake is via RubyGems ...
33
-
34
- gem install rake (you may need root/admin privileges)
35
-
36
- Otherwise, you can get it from the more traditional places:
37
-
38
- Home Page:: http://rake.rubyforge.org/
39
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
40
-
41
- == Thanks
42
-
43
- As usual, it was input from users that drove a alot of these changes. The
44
- following people either contributed patches, made suggestions or made
45
- otherwise helpful comments. Thanks to ...
46
-
47
- -- Jim Weirich
@@ -1,114 +0,0 @@
1
- = Rake 0.8.0/0.8.1 Released
2
-
3
- Rake version 0.8.0 is a new release of rake that includes serveral new
4
- features.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.8.0
9
-
10
- * Tasks can now receive command line parameters. See the examples
11
- below for more details.
12
-
13
- * Comments are limited to 80 columns on output, but full comments can
14
- be seen by using the -D parameter. (feature suggested by Jamis
15
- Buck).
16
-
17
- * Explicit exit(n) calls will now set the exit status to n. (patch
18
- provided by Stephen Touset).
19
-
20
- * Rake is now compatible with Ruby 1.9.
21
-
22
- Version 0.8.1 is a minor update that includes additional Ruby 1.9
23
- compatibility fixes.
24
-
25
- == What is Rake
26
-
27
- Rake is a build tool similar to the make program in many ways. But
28
- instead of cryptic make recipes, Rake uses standard Ruby code to
29
- declare tasks and dependencies. You have the full power of a modern
30
- scripting language built right into your build tool.
31
-
32
- == Availability
33
-
34
- The easiest way to get and install rake is via RubyGems ...
35
-
36
- gem install rake (you may need root/admin privileges)
37
-
38
- Otherwise, you can get it from the more traditional places:
39
-
40
- Home Page:: http://rake.rubyforge.org/
41
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
42
-
43
- == Task Argument Examples
44
-
45
- Prior to version 0.8.0, rake was only able to handle command line
46
- arguments of the form NAME=VALUE that were passed into Rake via the
47
- ENV hash. Many folks had asked for some kind of simple command line
48
- arguments, perhaps using "--" to separate regular task names from
49
- argument values on the command line. The problem is that there was no
50
- easy way to associate positional arguments on the command line with
51
- different tasks. Suppose both tasks :a and :b expect a command line
52
- argument: does the first value go with :a? What if :b is run first?
53
- Should it then get the first command line argument.
54
-
55
- Rake 0.8.0 solves this problem by explicitly passing values directly
56
- to the tasks that need them. For example, if I had a release task
57
- that required a version number, I could say:
58
-
59
- rake release[0.8.0]
60
-
61
- And the string "0.8.0" will be passed to the :release task. Multiple
62
- arguments can be passed by separating them with a comma, for example:
63
-
64
- rake name[john,doe]
65
-
66
- Just a few words of caution. The rake task name and its arguments
67
- need to be a single command line argument to rake. This generally
68
- means no spaces. If spaces are needed, then the entire rake +
69
- argument string should be quoted. Something like this:
70
-
71
- rake "name[billy bob, smith]"
72
-
73
- (Quoting rules vary between operating systems and shells, so make sure
74
- you consult the proper docs for your OS/shell).
75
-
76
- === Tasks that Expect Parameters
77
-
78
- Parameters are only given to tasks that are setup to expect them. In
79
- order to handle named parameters, the task declaration syntax for
80
- tasks has been extended slightly.
81
-
82
- For example, a task that needs a first name and last name might be
83
- declared as:
84
-
85
- task :name, :first_name, :last_name
86
-
87
- The first argument is still the name of the task (:name in this case).
88
- The next to argumements are the names of the parameters expected by
89
- :name (:first_name and :last_name in the example).
90
-
91
- To access the values of the paramters, the block defining the task
92
- behaviour can now accept a second parameter:
93
-
94
- task :name, :first_name, :last_name do |t, args|
95
- puts "First name is #{args.first_name}"
96
- puts "Last name is #{args.last_name}"
97
- end
98
-
99
- The first argument of the block "t" is always bound to the current
100
- task object. The second argument "args" is an open-struct like object
101
- that allows access to the task arguments. Extra command line
102
- arguments to a task are ignored. Missing command line arguments are
103
- given the nil value.
104
-
105
- == Thanks
106
-
107
- As usual, it was input from users that drove a alot of these changes. The
108
- following people either contributed patches, made suggestions or made
109
- otherwise helpful comments. Thanks to ...
110
-
111
- * Jamis Buck (for comment formatting suggestions)
112
- * Stephen Touset (for exit status patch).
113
-
114
- -- Jim Weirich