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,165 +0,0 @@
1
- = Rake 0.8.2 Released
2
-
3
- Rake version 0.8.2 is a new release of rake that includes a number of
4
- new features and numerous bug fixes.
5
-
6
- == Changes
7
-
8
- === New Features in Version 0.8.2
9
-
10
- * Switched from getoptlong to optparse (patches supplied by Edwin
11
- Pratomo).
12
-
13
- * The -T option will now attempt to dynamically sense the size of the
14
- terminal. The -T output will only self-truncate if the output is a
15
- tty. However, if RAKE_COLUMNS is explicitly set, it will be honored
16
- in any case. (Patch provided by Gavin Stark).
17
-
18
- * The following public methods have been added to rake task objects:
19
-
20
- * task.clear -- Clear both the prerequisites and actions of the
21
- target rake task.
22
- * task.clear_prerequisites -- Clear all the existing prerequisites
23
- from the target rake task.
24
- * task.clear_actions -- Clear all the existing actions from the
25
- target rake task.
26
- * task.reenable -- Re-enable a task, allowing its actions to be
27
- executed again if the task is invoked.
28
-
29
- * Changed RDoc test task to have no default template. This makes it
30
- easier for the tempate to pick up the template from the environment.
31
-
32
- * Default values for task arguments can easily be specified with the
33
- :with_defaults method. (Idea for default argument merging supplied
34
- by (Adam Q. Salter)
35
-
36
- === Bug Fixes in Version 0.8.2
37
-
38
- * Fixed bug in package task so that it will include the subdir
39
- directory in the package for testing. (Bug found by Adam Majer)
40
-
41
- * Fixed filename dependency order bug in test_inspect_pending and
42
- test_to_s_pending. (Bug found by Adam Majer)
43
-
44
- * Fixed check for file utils options to make them immune to the
45
- symbol/string differences. (Patch supplied by Edwin Pratomo)
46
-
47
- * Fixed bug with rules involving multiple source, where only the first
48
- dependency of a rule has any effect (Patch supplied by Emanuel
49
- Indermühle)
50
-
51
- * FileList#clone and FileList#dup have better sematics w.r.t. taint
52
- and freeze.
53
-
54
- * Changed from using Mutex to Monitor. Evidently Mutex causes thread
55
- join errors when Ruby is compiled with -disable-pthreads. (Patch
56
- supplied by Ittay Dror)
57
-
58
- * Fixed bug in makefile parser that had problems with extra spaces in
59
- file task names. (Patch supplied by Ittay Dror)
60
-
61
- == Other changes in Version 0.8.2
62
-
63
- * Added ENV var to rake's own Rakefile to prevent OS X from including
64
- extended attribute junk in the rake package tar file. (Bug found by
65
- Adam Majer)
66
-
67
- * Added a performance patch for reading large makefile dependency
68
- files. (Patch supplied by Ittay Dror)
69
-
70
- == What is Rake
71
-
72
- Rake is a build tool similar to the make program in many ways. But
73
- instead of cryptic make recipes, Rake uses standard Ruby code to
74
- declare tasks and dependencies. You have the full power of a modern
75
- scripting language built right into your build tool.
76
-
77
- == Availability
78
-
79
- The easiest way to get and install rake is via RubyGems ...
80
-
81
- gem install rake (you may need root/admin privileges)
82
-
83
- Otherwise, you can get it from the more traditional places:
84
-
85
- Home Page:: http://rake.rubyforge.org/
86
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
87
-
88
- == Task Argument Examples
89
-
90
- Prior to version 0.8.0, rake was only able to handle command line
91
- arguments of the form NAME=VALUE that were passed into Rake via the
92
- ENV hash. Many folks had asked for some kind of simple command line
93
- arguments, perhaps using "--" to separate regular task names from
94
- argument values on the command line. The problem is that there was no
95
- easy way to associate positional arguments on the command line with
96
- different tasks. Suppose both tasks :a and :b expect a command line
97
- argument: does the first value go with :a? What if :b is run first?
98
- Should it then get the first command line argument.
99
-
100
- Rake 0.8.0 solves this problem by explicitly passing values directly
101
- to the tasks that need them. For example, if I had a release task
102
- that required a version number, I could say:
103
-
104
- rake release[0.8.2]
105
-
106
- And the string "0.8.2" will be passed to the :release task. Multiple
107
- arguments can be passed by separating them with a comma, for example:
108
-
109
- rake name[john,doe]
110
-
111
- Just a few words of caution. The rake task name and its arguments
112
- need to be a single command line argument to rake. This generally
113
- means no spaces. If spaces are needed, then the entire rake +
114
- argument string should be quoted. Something like this:
115
-
116
- rake "name[billy bob, smith]"
117
-
118
- (Quoting rules vary between operating systems and shells, so make sure
119
- you consult the proper docs for your OS/shell).
120
-
121
- === Tasks that Expect Parameters
122
-
123
- Parameters are only given to tasks that are setup to expect them. In
124
- order to handle named parameters, the task declaration syntax for
125
- tasks has been extended slightly.
126
-
127
- For example, a task that needs a first name and last name might be
128
- declared as:
129
-
130
- task :name, :first_name, :last_name
131
-
132
- The first argument is still the name of the task (:name in this case).
133
- The next to argumements are the names of the parameters expected by
134
- :name (:first_name and :last_name in the example).
135
-
136
- To access the values of the paramters, the block defining the task
137
- behaviour can now accept a second parameter:
138
-
139
- task :name, :first_name, :last_name do |t, args|
140
- puts "First name is #{args.first_name}"
141
- puts "Last name is #{args.last_name}"
142
- end
143
-
144
- The first argument of the block "t" is always bound to the current
145
- task object. The second argument "args" is an open-struct like object
146
- that allows access to the task arguments. Extra command line
147
- arguments to a task are ignored. Missing command line arguments are
148
- given the nil value.
149
-
150
- == Thanks
151
-
152
- As usual, it was input from users that drove a alot of these changes. The
153
- following people either contributed patches, made suggestions or made
154
- otherwise helpful comments. Thanks to ...
155
-
156
- * Edwin Pratomo
157
- * Gavin Stark
158
- * Adam Q. Salter
159
- * Adam Majer
160
- * Emanuel Indermühle
161
- * Ittay Dror
162
- * Bheeshmar Redheendran (for spending an afternoon with me debugging
163
- windows issues)
164
-
165
- -- Jim Weirich
@@ -1,112 +0,0 @@
1
- = Rake 0.8.3 Released
2
-
3
- Rake version 0.8.3 is a bug-fix release of rake.
4
-
5
- == Changes
6
-
7
- === Bug Fixes in Version 0.8.3
8
-
9
- * Enhanced the system directory detection in windows. We now check
10
- HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch
11
- supplied by James Tucker). Rake no long aborts if it can't find the
12
- directory.
13
-
14
- * Added fix to handle ruby installations in directories with spaces in
15
- their name.
16
-
17
- == What is Rake
18
-
19
- Rake is a build tool similar to the make program in many ways. But
20
- instead of cryptic make recipes, Rake uses standard Ruby code to
21
- declare tasks and dependencies. You have the full power of a modern
22
- scripting language built right into your build tool.
23
-
24
- == Availability
25
-
26
- The easiest way to get and install rake is via RubyGems ...
27
-
28
- gem install rake (you may need root/admin privileges)
29
-
30
- Otherwise, you can get it from the more traditional places:
31
-
32
- Home Page:: http://rake.rubyforge.org/
33
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
34
-
35
- == Task Argument Examples
36
-
37
- Prior to version 0.8.0, rake was only able to handle command line
38
- arguments of the form NAME=VALUE that were passed into Rake via the
39
- ENV hash. Many folks had asked for some kind of simple command line
40
- arguments, perhaps using "--" to separate regular task names from
41
- argument values on the command line. The problem is that there was no
42
- easy way to associate positional arguments on the command line with
43
- different tasks. Suppose both tasks :a and :b expect a command line
44
- argument: does the first value go with :a? What if :b is run first?
45
- Should it then get the first command line argument.
46
-
47
- Rake 0.8.0 solves this problem by explicitly passing values directly
48
- to the tasks that need them. For example, if I had a release task
49
- that required a version number, I could say:
50
-
51
- rake release[0.8.3]
52
-
53
- And the string "0.8.3" will be passed to the :release task. Multiple
54
- arguments can be passed by separating them with a comma, for example:
55
-
56
- rake name[john,doe]
57
-
58
- Just a few words of caution. The rake task name and its arguments
59
- need to be a single command line argument to rake. This generally
60
- means no spaces. If spaces are needed, then the entire rake +
61
- argument string should be quoted. Something like this:
62
-
63
- rake "name[billy bob, smith]"
64
-
65
- (Quoting rules vary between operating systems and shells, so make sure
66
- you consult the proper docs for your OS/shell).
67
-
68
- === Tasks that Expect Parameters
69
-
70
- Parameters are only given to tasks that are setup to expect them. In
71
- order to handle named parameters, the task declaration syntax for
72
- tasks has been extended slightly.
73
-
74
- For example, a task that needs a first name and last name might be
75
- declared as:
76
-
77
- task :name, :first_name, :last_name
78
-
79
- The first argument is still the name of the task (:name in this case).
80
- The next to argumements are the names of the parameters expected by
81
- :name (:first_name and :last_name in the example).
82
-
83
- To access the values of the paramters, the block defining the task
84
- behaviour can now accept a second parameter:
85
-
86
- task :name, :first_name, :last_name do |t, args|
87
- puts "First name is #{args.first_name}"
88
- puts "Last name is #{args.last_name}"
89
- end
90
-
91
- The first argument of the block "t" is always bound to the current
92
- task object. The second argument "args" is an open-struct like object
93
- that allows access to the task arguments. Extra command line
94
- arguments to a task are ignored. Missing command line arguments are
95
- given the nil value.
96
-
97
- == Thanks
98
-
99
- As usual, it was input from users that drove a alot of these changes. The
100
- following people either contributed patches, made suggestions or made
101
- otherwise helpful comments. Thanks to ...
102
-
103
- * Edwin Pratomo
104
- * Gavin Stark
105
- * Adam Q. Salter
106
- * Adam Majer
107
- * Emanuel Indermühle
108
- * Ittay Dror
109
- * Bheeshmar Redheendran (for spending an afternoon with me debugging
110
- windows issues)
111
-
112
- -- Jim Weirich
@@ -1,147 +0,0 @@
1
- = Rake 0.8.4 Released
2
-
3
- Rake version 0.8.4 is a bug-fix release of rake.
4
-
5
- NOTE: The version of Rake that comes with Ruby 1.9 has diverged
6
- slightly from the core Rake code base. Rake 0.8.4 will work
7
- with Ruby 1.9, but is not a strict upgrade for the Rake that
8
- comes with Ruby 1.9. A (near) future release of Rake will unify
9
- those two codebases.
10
-
11
- == Letter Writing Campaign
12
-
13
- Thanks to Aaron Patterson (@tenderlove) and Eric Hodel (@drbrain) for
14
- their encouraging support in organizing a letter writing campaign to
15
- lobby for the "Warning Free" release of rake 0.8.4. A special callout
16
- goes to Jonathan D. Lord, Sr (Dr. Wingnut) whose postcard was the
17
- first to actually reach me. (see
18
- http://tenderlovemaking.com/2009/02/26/we-need-a-new-version-of-rake/
19
- for details)
20
-
21
- == Changes
22
-
23
- === New Features / Enhancements in Version 0.8.4
24
-
25
- * Case is preserved on rakefile names. (patch from James
26
- M. Lawrence/quix)
27
-
28
- * Improved Rakefile case insensitivity testing (patch from Luis
29
- Lavena).
30
-
31
- * Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,
32
- APPDATA, USERPROFILE (patch from Luis Lavena)
33
-
34
- * MingGW is now recognized as a windows platform. (patch from Luis
35
- Lavena)
36
-
37
- === Bug Fixes in Version 0.8.4
38
-
39
- * Removed reference to manage_gem to fix the warning produced by the
40
- gem package task.
41
-
42
- * Fixed stray ARGV option problem that was interfering with
43
- Test::Unit::Runner. (patch from Pivotal Labs)
44
-
45
- === Infrastructure Improvements in Version 0.8.4
46
-
47
- * Numerous fixes to the windows test suite (patch from Luis Lavena).
48
-
49
- * Improved Rakefile case insensitivity testing (patch from Luis
50
- Lavena).
51
-
52
- * Better support for windows paths in the test task (patch from Simon
53
- Chiang/bahuvrihi)
54
-
55
- == What is Rake
56
-
57
- Rake is a build tool similar to the make program in many ways. But
58
- instead of cryptic make recipes, Rake uses standard Ruby code to
59
- declare tasks and dependencies. You have the full power of a modern
60
- scripting language built right into your build tool.
61
-
62
- == Availability
63
-
64
- The easiest way to get and install rake is via RubyGems ...
65
-
66
- gem install rake (you may need root/admin privileges)
67
-
68
- Otherwise, you can get it from the more traditional places:
69
-
70
- Home Page:: http://rake.rubyforge.org/
71
- Download:: http://rubyforge.org/project/showfiles.php?group_id=50
72
- GitHub:: git://github.com/jimweirich/rake.git
73
-
74
- == Task Argument Examples
75
-
76
- Prior to version 0.8.0, rake was only able to handle command line
77
- arguments of the form NAME=VALUE that were passed into Rake via the
78
- ENV hash. Many folks had asked for some kind of simple command line
79
- arguments, perhaps using "--" to separate regular task names from
80
- argument values on the command line. The problem is that there was no
81
- easy way to associate positional arguments on the command line with
82
- different tasks. Suppose both tasks :a and :b expect a command line
83
- argument: does the first value go with :a? What if :b is run first?
84
- Should it then get the first command line argument.
85
-
86
- Rake 0.8.0 solves this problem by explicitly passing values directly
87
- to the tasks that need them. For example, if I had a release task
88
- that required a version number, I could say:
89
-
90
- rake release[0.8.4]
91
-
92
- And the string "0.8.4" will be passed to the :release task. Multiple
93
- arguments can be passed by separating them with a comma, for example:
94
-
95
- rake name[john,doe]
96
-
97
- Just a few words of caution. The rake task name and its arguments
98
- need to be a single command line argument to rake. This generally
99
- means no spaces. If spaces are needed, then the entire rake +
100
- argument string should be quoted. Something like this:
101
-
102
- rake "name[billy bob, smith]"
103
-
104
- (Quoting rules vary between operating systems and shells, so make sure
105
- you consult the proper docs for your OS/shell).
106
-
107
- === Tasks that Expect Parameters
108
-
109
- Parameters are only given to tasks that are setup to expect them. In
110
- order to handle named parameters, the task declaration syntax for
111
- tasks has been extended slightly.
112
-
113
- For example, a task that needs a first name and last name might be
114
- declared as:
115
-
116
- task :name, :first_name, :last_name
117
-
118
- The first argument is still the name of the task (:name in this case).
119
- The next to argumements are the names of the parameters expected by
120
- :name (:first_name and :last_name in the example).
121
-
122
- To access the values of the paramters, the block defining the task
123
- behaviour can now accept a second parameter:
124
-
125
- task :name, :first_name, :last_name do |t, args|
126
- puts "First name is #{args.first_name}"
127
- puts "Last name is #{args.last_name}"
128
- end
129
-
130
- The first argument of the block "t" is always bound to the current
131
- task object. The second argument "args" is an open-struct like object
132
- that allows access to the task arguments. Extra command line
133
- arguments to a task are ignored. Missing command line arguments are
134
- given the nil value.
135
-
136
- == Thanks
137
-
138
- As usual, it was input from users that drove a alot of these changes. The
139
- following people either contributed patches, made suggestions or made
140
- otherwise helpful comments. Thanks to ...
141
-
142
- * James M. Lawrence/quix
143
- * Luis Lavena
144
- * Pivotal Labs
145
- * Simon Chiang/bahuvrihi
146
-
147
- -- Jim Weirich
@@ -1,53 +0,0 @@
1
- = Rake 0.8.5 Released
2
-
3
- Rake version 0.8.5 is a new release of Rake with greatly improved
4
- support for executing commands on Windows. The "sh" command now has
5
- the same semantics on Windows that it has on Unix based platforms.
6
-
7
- == Changes
8
-
9
- === New Features / Enhancements in Version 0.8.5
10
-
11
- * Improved implementation of the Rake system command for Windows.
12
- (patch from James M. Lawrence/quix)
13
-
14
- * Support for Ruby 1.9's improved system command. (patch from James
15
- M. Lawrence/quix)
16
-
17
- * Rake now includes the configured extension when invoking an
18
- executable (Config::CONFIG['EXEEXT])
19
-
20
- === Bug Fixes in Version 0.8.5
21
-
22
- * Environment variable keys are now correctly cased (it matters in
23
- some implementations).
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
- GitHub:: git://github.com/jimweirich/rake.git
43
-
44
- == Thanks
45
-
46
- As usual, it was input from users that drove a alot of these changes. The
47
- following people either contributed patches, made suggestions or made
48
- otherwise helpful comments. Thanks to ...
49
-
50
- * James M. Lawrence/quix
51
- * Luis Lavena
52
-
53
- -- Jim Weirich