rake 10.1.1 → 10.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rake might be problematic. Click here for more details.

Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +2 -0
  4. data/.rubocop.yml +27 -0
  5. data/.togglerc +7 -0
  6. data/Gemfile +5 -0
  7. data/{CHANGES → History.rdoc} +84 -54
  8. data/Manifest.txt +161 -0
  9. data/README.rdoc +9 -10
  10. data/Rakefile +34 -337
  11. data/doc/command_line_usage.rdoc +16 -10
  12. data/doc/rake.1.gz +0 -0
  13. data/doc/rakefile.rdoc +72 -36
  14. data/doc/release_notes/rake-0.5.3.rdoc +1 -1
  15. data/doc/release_notes/rake-0.5.4.rdoc +1 -1
  16. data/doc/release_notes/rake-0.8.6.rdoc +1 -19
  17. data/doc/release_notes/rake-0.9.2.2.rdoc +2 -2
  18. data/doc/release_notes/rake-0.9.4.rdoc +0 -50
  19. data/doc/release_notes/rake-0.9.5.rdoc +0 -59
  20. data/doc/release_notes/rake-0.9.6.rdoc +0 -63
  21. data/doc/release_notes/rake-10.0.1.rdoc +2 -131
  22. data/doc/release_notes/rake-10.0.2.rdoc +2 -140
  23. data/doc/release_notes/rake-10.1.0.rdoc +2 -2
  24. data/lib/rake.rb +6 -1
  25. data/lib/rake/alt_system.rb +5 -3
  26. data/lib/rake/application.rb +102 -60
  27. data/lib/rake/backtrace.rb +1 -1
  28. data/lib/rake/cloneable.rb +3 -3
  29. data/lib/rake/contrib/.document +0 -0
  30. data/lib/rake/contrib/ftptools.rb +3 -5
  31. data/lib/rake/contrib/publisher.rb +12 -4
  32. data/lib/rake/contrib/rubyforgepublisher.rb +3 -1
  33. data/lib/rake/contrib/sshpublisher.rb +13 -2
  34. data/lib/rake/contrib/sys.rb +2 -0
  35. data/lib/rake/cpu_counter.rb +104 -0
  36. data/lib/rake/default_loader.rb +4 -0
  37. data/lib/rake/dsl_definition.rb +58 -17
  38. data/lib/rake/early_time.rb +4 -1
  39. data/lib/rake/ext/core.rb +2 -5
  40. data/lib/rake/ext/module.rb +1 -0
  41. data/lib/rake/ext/string.rb +35 -28
  42. data/lib/rake/ext/time.rb +1 -1
  43. data/lib/rake/file_list.rb +7 -9
  44. data/lib/rake/file_task.rb +1 -1
  45. data/lib/rake/gempackagetask.rb +3 -1
  46. data/lib/rake/invocation_chain.rb +0 -1
  47. data/lib/rake/linked_list.rb +1 -1
  48. data/lib/rake/packagetask.rb +19 -7
  49. data/lib/rake/pathmap.rb +2 -0
  50. data/lib/rake/pseudo_status.rb +2 -2
  51. data/lib/rake/rake_module.rb +6 -5
  52. data/lib/rake/rdoctask.rb +2 -0
  53. data/lib/rake/ruby182_test_unit_fix.rb +2 -0
  54. data/lib/rake/runtest.rb +6 -1
  55. data/lib/rake/scope.rb +1 -1
  56. data/lib/rake/task.rb +14 -9
  57. data/lib/rake/task_arguments.rb +19 -10
  58. data/lib/rake/task_manager.rb +20 -8
  59. data/lib/rake/tasklib.rb +2 -0
  60. data/lib/rake/testtask.rb +20 -9
  61. data/lib/rake/thread_pool.rb +13 -10
  62. data/lib/rake/trace_output.rb +1 -1
  63. data/lib/rake/version.rb +0 -2
  64. data/lib/rake/win32.rb +1 -1
  65. data/rakelib/publish.rake +20 -0
  66. data/rakelib/test_times.rake +25 -0
  67. data/test/helper.rb +6 -7
  68. data/test/support/rakefile_definitions.rb +34 -0
  69. data/test/test_rake_application.rb +89 -31
  70. data/test/test_rake_application_options.rb +13 -4
  71. data/test/test_rake_backtrace.rb +6 -2
  72. data/test/test_rake_clean.rb +3 -3
  73. data/test/test_rake_cpu_counter.rb +42 -0
  74. data/test/test_rake_file_task.rb +10 -0
  75. data/test/test_rake_functional.rb +17 -1
  76. data/test/test_rake_path_map.rb +2 -2
  77. data/test/test_rake_rules.rb +26 -0
  78. data/test/test_rake_task.rb +16 -0
  79. data/test/test_rake_task_argument_parsing.rb +6 -0
  80. data/test/test_rake_task_arguments.rb +6 -0
  81. data/test/test_rake_task_manager.rb +20 -0
  82. data/test/test_rake_test_task.rb +23 -1
  83. metadata +196 -72
  84. metadata.gz.sig +0 -0
  85. data/TODO +0 -21
  86. data/install.rb +0 -80
@@ -1,7 +1,12 @@
1
1
  = RAKE -- Ruby Make
2
2
 
3
- This package contains Rake, a simple ruby build program with capabilities
4
- similar to make.
3
+ home :: https://github.com/jimweirich/rake
4
+ bugs :: https://github.com/jimweirich/rake/issues
5
+
6
+ == Description
7
+
8
+ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
9
+ specified in standard Ruby syntax.
5
10
 
6
11
  Rake has the following features:
7
12
 
@@ -81,7 +86,7 @@ Type "rake --help" for all available options.
81
86
  === Source Repository
82
87
 
83
88
  Rake is currently hosted at github. The github web page is
84
- http://github.com/jimweirich/rake. The public git clone URL is
89
+ http://github.com/jimweirich/rake . The public git clone URL is
85
90
 
86
91
  * git://github.com/jimweirich/rake.git
87
92
 
@@ -103,10 +108,6 @@ Feature requests and bug reports can be made here
103
108
 
104
109
  * https://github.com/jimweirich/rake/issues
105
110
 
106
- Issues and bug reports can also be tracked here:
107
-
108
- * http://www.pivotaltracker.com/projects/28469
109
-
110
111
  == Online Resources
111
112
 
112
113
  === Rake References
@@ -135,8 +136,6 @@ other projects with similar (and not so similar) goals.
135
136
  * http://www.a-a-p.org -- Make in Python
136
137
  * http://www.aromatic.com/tools/jam.txt -- JAM, Java Automated Make
137
138
  * http://ant.apache.org -- The Ant project
138
- * http://ppt.perl.org/commands/make/index.html -- Make from the Perl
139
- Power Tools implementation.
140
139
  * http://search.cpan.org/search?query=PerlBuildSystem -- The Perl Build System
141
140
  * http://rubydoc.info/gems/rant/0.5.7/frames -- Rant, another Ruby make tool.
142
141
 
@@ -174,7 +173,7 @@ jim dot weirich at gmail.com.
174
173
  = Other stuff
175
174
 
176
175
  Author:: Jim Weirich <jim.weirich@gmail.com>
177
- Requires:: Ruby 1.8.7 or later
176
+ Requires:: Ruby 1.9 or later
178
177
  License:: Copyright 2003-2013 by Jim Weirich.
179
178
  Released under an MIT-style license. See the MIT-LICENSE
180
179
  file included in the distribution.
data/Rakefile CHANGED
@@ -7,7 +7,6 @@
7
7
  # MIT-LICENSE for details.
8
8
 
9
9
  require 'rbconfig'
10
- require 'rubygems'
11
10
 
12
11
  system_rake = File.join RbConfig::CONFIG['rubylibdir'], 'rake.rb'
13
12
 
@@ -16,359 +15,57 @@ if $".include? system_rake or $".grep(/rake\/name_space\.rb$/).empty? then
16
15
  exec Gem.ruby, '-Ilib', 'bin/rake', *ARGV
17
16
  end
18
17
 
19
- require 'rubygems/package_task'
18
+ require 'hoe'
20
19
 
21
- require 'rake/clean'
22
- require 'rake/testtask'
20
+ Hoe.plugin :minitest
21
+ Hoe.plugin :travis
23
22
 
24
- begin
25
- gem 'rdoc'
26
- require 'rdoc/task'
27
- rescue Gem::LoadError
28
- end
29
-
30
- CLEAN.include('**/*.o', '*.dot', '**/*.rbc')
31
- CLOBBER.include('doc/example/main')
32
- CLOBBER.include('TAGS')
33
- CLOBBER.include('coverage', 'rcov_aggregate')
34
-
35
- # Prevent OS X from including extended attribute junk in the tar output
36
- ENV['COPY_EXTENDED_ATTRIBUTES_DISABLE'] = 'true'
37
-
38
- def announce(msg='')
39
- STDERR.puts msg
40
- end
41
-
42
- # Determine the current version of the software
43
-
44
- if `ruby -Ilib ./bin/rake --version` =~ /rake, version ([0-9a-z.]+)$/
45
- CURRENT_VERSION = $1
46
- else
47
- CURRENT_VERSION = "0.0.0"
48
- end
23
+ hoe = Hoe.spec 'rake' do
24
+ developer 'Eric Hodel', 'drbrain@segment7.net'
25
+ developer 'Jim Weirich', ''
49
26
 
50
- $package_version = CURRENT_VERSION
27
+ require_ruby_version '>= 1.9'
28
+ require_rubygems_version '>= 1.3.2'
51
29
 
52
- SRC_RB = FileList['lib/**/*.rb']
30
+ dependency 'minitest', '~> 4.0', :developer
53
31
 
54
- # The default task is run if rake is given no explicit arguments.
32
+ license "MIT"
55
33
 
56
- desc "Default Task"
57
- task :default => :test
34
+ self.readme_file = 'README.rdoc'
35
+ self.history_file = 'History.rdoc'
58
36
 
59
- # Test Tasks ---------------------------------------------------------
60
-
61
- Rake::TestTask.new do |t|
62
- files = FileList['test/helper.rb', 'test/test_*.rb']
63
- t.loader = :rake
64
- t.test_files = files
65
- t.libs << "."
66
- t.warning = true
67
- end
68
-
69
- begin
70
- require 'rcov/rcovtask'
71
- IGNORE_COVERAGE_IN = FileList[
72
- 'lib/rake/rdoctask.rb',
73
- 'lib/rake/testtask.rb',
74
- 'lib/rake/packagetask.rb',
75
- 'lib/rake/clean.rb',
37
+ self.extra_rdoc_files.concat FileList[
38
+ 'MIT-LICENSE',
39
+ 'doc/**/*.rdoc'
76
40
  ]
77
41
 
78
- unless File::ALT_SEPARATOR
79
- IGNORE_COVERAGE_IN.include(
80
- 'lib/rake/alt_system.rb',
81
- 'lib/rake/win32.rb')
82
- end
83
-
84
- Rcov::RcovTask.new do |t|
85
- t.libs << "test"
86
- t.rcov_opts = [
87
- '-xRakefile', '-xrakefile', '-xpublish.rf',
88
- '-xlib/rake/contrib', '-x/Library', '-x.rvm',
89
- '--text-report',
90
- '--sort coverage'
91
- ] + FileList['rakelib/*.rake'].pathmap("-x%p") +
92
- IGNORE_COVERAGE_IN.map { |fn| "-x#{fn}" }
93
- t.test_files = FileList[
94
- 'test/lib/*_test.rb',
95
- 'test/contrib/*_test.rb',
96
- 'test/functional/*_test.rb'
97
- ]
98
- t.output_dir = 'coverage'
99
- t.verbose = true
100
- end
101
- rescue LoadError
102
- task :rcov do
103
- puts "RCov is not available"
104
- end
105
- end
106
-
107
- # CVS Tasks ----------------------------------------------------------
108
-
109
- # Install rake using the standard install.rb script.
110
-
111
- desc "Install the application"
112
- task :install do
113
- ruby "install.rb"
114
- end
115
-
116
- # Create a task to build the RDOC documentation tree.
117
-
118
- BASE_RDOC_OPTIONS = [
119
- '--line-numbers', '--show-hash',
120
- '--main', 'README.rdoc',
121
- '--title', 'Rake -- Ruby Make'
122
- ]
123
-
124
- if defined?(RDoc::Task) then
125
- RDoc::Task.new do |rdoc|
126
- rdoc.rdoc_dir = 'html'
127
- rdoc.title = "Rake -- Ruby Make"
128
- rdoc.options = BASE_RDOC_OPTIONS.dup
129
-
130
- rdoc.rdoc_files.include('README.rdoc', 'MIT-LICENSE', 'TODO', 'CHANGES')
131
- rdoc.rdoc_files.include('lib/**/*.rb', 'doc/**/*.rdoc')
132
- rdoc.rdoc_files.exclude(/\bcontrib\b/)
133
- end
134
- else
135
- warn "RDoc 2.4.2+ is required to build documentation"
136
- end
137
-
138
- # ====================================================================
139
- # Create a task that will package the Rake software into distributable
140
- # tar, zip and gem files.
141
-
142
- PKG_FILES = FileList[
143
- '.gemtest',
144
- 'install.rb',
145
- 'CHANGES',
146
- 'MIT-LICENSE',
147
- 'README.rdoc',
148
- 'Rakefile',
149
- 'TODO',
150
- 'bin/rake',
151
- 'lib/**/*.rb',
152
- 'test/**/*.rb',
153
- 'doc/**/*'
154
- ]
155
- PKG_FILES.exclude('doc/example/*.o')
156
- PKG_FILES.exclude('TAGS')
157
- PKG_FILES.exclude(%r{doc/example/main$})
158
-
159
- if ! defined?(Gem)
160
- puts "Package Target requires RubyGems"
161
- else
162
- SPEC = Gem::Specification.new do |s|
163
- s.name = 'rake'
164
- s.version = $package_version
165
- s.summary = "Ruby based make-like utility."
166
- s.license = "MIT"
167
- s.description = <<-EOF.delete "\n"
168
- Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
169
- specified in standard Ruby syntax.
170
- EOF
171
-
172
- s.required_ruby_version = '>= 1.8.6'
173
- s.required_rubygems_version = '>= 1.3.2'
174
- s.add_development_dependency 'minitest', '~> 2.1'
175
-
176
- s.files = PKG_FILES.to_a
177
-
178
- s.executables = ["rake"]
179
-
180
- s.extra_rdoc_files = FileList[
181
- 'README.rdoc',
182
- 'MIT-LICENSE',
183
- 'TODO',
184
- 'CHANGES',
185
- 'doc/**/*.rdoc'
186
- ]
187
-
188
- s.rdoc_options = BASE_RDOC_OPTIONS
189
-
190
- s.author = "Jim Weirich"
191
- s.email = "jim.weirich@gmail.com"
192
- s.homepage = "http://github.com/jimweirich/rake"
193
- end
194
-
195
- Gem::PackageTask.new(SPEC) do |pkg|
196
- pkg.need_zip = true
197
- pkg.need_tar = true
198
- end
199
-
200
- file "rake.gemspec" => ["Rakefile", "lib/rake.rb"] do |t|
201
- require 'yaml'
202
- open(t.name, "w") { |f| f.puts SPEC.to_yaml }
203
- end
204
-
205
- desc "Create a stand-alone gemspec"
206
- task :gemspec => "rake.gemspec"
207
- end
208
-
209
- # Misc tasks =========================================================
210
-
211
- def count_lines(filename)
212
- lines = 0
213
- codelines = 0
214
- open(filename) { |f|
215
- f.each do |line|
216
- lines += 1
217
- next if line =~ /^\s*$/
218
- next if line =~ /^\s*#/
219
- codelines += 1
220
- end
221
- }
222
- [lines, codelines]
223
- end
224
-
225
- def show_line(msg, lines, loc)
226
- printf "%6s %6s %s\n", lines.to_s, loc.to_s, msg
227
- end
228
-
229
- desc "Count lines in the main rake file"
230
- task :lines do
231
- total_lines = 0
232
- total_code = 0
233
- show_line("File Name", "LINES", "LOC")
234
- SRC_RB.each do |fn|
235
- lines, codelines = count_lines(fn)
236
- show_line(fn, lines, codelines)
237
- total_lines += lines
238
- total_code += codelines
239
- end
240
- show_line("TOTAL", total_lines, total_code)
241
- end
242
-
243
- # Define an optional publish target in an external file. If the
244
- # publish.rf file is not found, the publish targets won't be defined.
245
-
246
- load "publish.rf" if File.exist? "publish.rf"
247
-
248
- # Support Tasks ------------------------------------------------------
249
-
250
- RUBY_FILES = FileList['**/*.rb'].exclude('pkg')
251
-
252
- desc "Look for TODO and FIXME tags in the code"
253
- task :todo do
254
- RUBY_FILES.egrep(/#.*(FIXME|TODO|TBD)/)
255
- end
256
-
257
- desc "List all ruby files"
258
- task :rubyfiles do
259
- puts RUBY_FILES
260
- puts FileList['bin/*'].exclude('bin/*.rb')
261
- end
262
- task :rf => :rubyfiles
263
-
264
- # --------------------------------------------------------------------
265
- # Creating a release
266
-
267
- def plugin(plugin_name)
268
- require "rake/plugins/#{plugin_name}"
269
- end
270
-
271
- task :noop
272
- #plugin "release_manager"
273
-
274
- desc "Make a new release"
275
- task :release, [:rel, :reuse, :reltest] => [
276
- :prerelease,
277
- :clobber,
278
- :test,
279
- :update_version,
280
- :package,
281
- :tag
282
- ] do
283
- announce
284
- announce "**************************************************************"
285
- announce "* Release #{$package_version} Complete."
286
- announce "* Packages ready to upload."
287
- announce "**************************************************************"
288
- announce
42
+ self.clean_globs += [
43
+ '**/*.o',
44
+ '**/*.rbc',
45
+ '*.dot',
46
+ 'TAGS',
47
+ 'doc/example/main',
48
+ ]
289
49
  end
290
50
 
291
- # Validate that everything is ready to go for a release.
292
- task :prerelease, :rel, :reuse, :reltest do |t, args|
293
- $package_version = args.rel
294
- announce
295
- announce "**************************************************************"
296
- announce "* Making RubyGem Release #{$package_version}"
297
- announce "* (current version #{CURRENT_VERSION})"
298
- announce "**************************************************************"
299
- announce
51
+ hoe.test_prelude = 'gem "minitest", "~> 4.0"'
300
52
 
301
- # Is a release number supplied?
302
- unless args.rel
303
- fail "Usage: rake release[X.Y.Z] [REUSE=tag_suffix]"
304
- end
53
+ # Use custom rdoc task due to existence of doc directory
305
54
 
306
- # Is the release different than the current release.
307
- # (or is REUSE set?)
308
- if $package_version == CURRENT_VERSION && ! args.reuse
309
- fail "Current version is #{$package_version}, must specify REUSE=tag_suffix to reuse version"
310
- end
55
+ Rake::Task['docs'].clear
56
+ Rake::Task['clobber_docs'].clear
311
57
 
312
- # Are all source files checked in?
313
- if args.reltest
314
- announce "Release Task Testing, skipping checked-in file test"
315
- else
316
- announce "Checking for unchecked-in files..."
317
- data = `svn st`
318
- unless data =~ /^$/
319
- abort "svn status is not clean ... do you have unchecked-in files?"
320
- end
321
- announce "No outstanding checkins found ... OK"
322
- end
323
- end
58
+ require 'rdoc/task'
324
59
 
325
- task :update_version, [:rel, :reuse, :reltest] => [:prerelease] do |t, args|
326
- if args.rel == CURRENT_VERSION
327
- announce "No version change ... skipping version update"
328
- else
329
- announce "Updating Rake version to #{args.rel}"
330
- open("lib/rake.rb") do |rakein|
331
- open("lib/rake.rb.new", "w") do |rakeout|
332
- rakein.each do |line|
333
- if line =~ /^RAKEVERSION\s*=\s*/
334
- rakeout.puts "RAKEVERSION = '#{args.rel}'"
335
- else
336
- rakeout.puts line
337
- end
338
- end
339
- end
340
- end
341
- mv "lib/rake.rb.new", "lib/rake.rb"
342
- if args.reltest
343
- announce "Release Task Testing, skipping commiting of new version"
344
- else
345
- sh %{svn commit -m "Updated to version #{args.rel}" lib/rake.rb} # "
346
- end
347
- end
348
- end
60
+ RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc|
61
+ doc.main = hoe.readme_file
62
+ doc.title = 'Rake -- Ruby Make'
349
63
 
350
- desc "Tag all the CVS files with the latest release number (REL=x.y.z)"
351
- task :tag, [:rel, :reuse, :reltest] => [:prerelease] do |t, args|
352
- reltag = "REL_#{args.rel.gsub(/\./, '_')}"
353
- reltag << args.reuse.gsub(/\./, '_') if args.reuse
354
- announce "Tagging Repository with [#{reltag}]"
355
- if args.reltest
356
- announce "Release Task Testing, skipping CVS tagging"
357
- else
358
- sh %{svn copy svn+ssh://rubyforge.org/var/svn/rake/trunk svn+ssh://rubyforge.org/var/svn/rake/tags/#{reltag} -m 'Commiting release #{reltag}'} ###'
359
- end
360
- end
361
-
362
- # Require experimental XForge/Metaproject support.
64
+ rdoc_files = Rake::FileList.new %w[lib History.rdoc MIT-LICENSE doc]
65
+ rdoc_files.add hoe.extra_rdoc_files
363
66
 
364
- load 'xforge.rf' if File.exist?('xforge.rf')
67
+ doc.rdoc_files = rdoc_files
365
68
 
366
- desc "Where is the current directory. This task displays the current rake directory"
367
- task :where_am_i do
368
- puts Rake.original_dir
69
+ doc.rdoc_dir = 'html'
369
70
  end
370
71
 
371
- task :failure => :really_fail
372
- task :really_fail do
373
- fail "oops"
374
- end