rake 10.0.0.beta.2 → 13.0.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +7 -0
  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 +43 -0
  7. data/Gemfile +10 -0
  8. data/History.rdoc +2359 -0
  9. data/MIT-LICENSE +1 -1
  10. data/README.rdoc +57 -101
  11. data/Rakefile +22 -354
  12. data/bin/bundle +105 -0
  13. data/bin/console +7 -0
  14. data/bin/rake +19 -27
  15. data/bin/rdoc +29 -0
  16. data/bin/rubocop +29 -0
  17. data/bin/setup +6 -0
  18. data/doc/command_line_usage.rdoc +30 -18
  19. data/doc/glossary.rdoc +40 -49
  20. data/doc/jamis.rb +1 -0
  21. data/doc/rake.1 +156 -0
  22. data/doc/rakefile.rdoc +127 -62
  23. data/exe/rake +27 -0
  24. data/lib/rake.rb +35 -34
  25. data/lib/rake/application.rb +355 -188
  26. data/lib/rake/backtrace.rb +14 -7
  27. data/lib/rake/clean.rb +54 -8
  28. data/lib/rake/cloneable.rb +5 -4
  29. data/lib/rake/cpu_counter.rb +107 -0
  30. data/lib/rake/default_loader.rb +5 -0
  31. data/lib/rake/dsl_definition.rb +58 -19
  32. data/lib/rake/early_time.rb +5 -1
  33. data/lib/rake/ext/core.rb +5 -6
  34. data/lib/rake/ext/string.rb +61 -52
  35. data/lib/rake/file_creation_task.rb +4 -3
  36. data/lib/rake/file_list.rb +81 -49
  37. data/lib/rake/file_task.rb +15 -8
  38. data/lib/rake/file_utils.rb +63 -43
  39. data/lib/rake/file_utils_ext.rb +10 -22
  40. data/lib/rake/invocation_chain.rb +25 -19
  41. data/lib/rake/invocation_exception_mixin.rb +1 -0
  42. data/lib/rake/late_time.rb +18 -0
  43. data/lib/rake/linked_list.rb +112 -0
  44. data/lib/rake/loaders/makefile.rb +23 -9
  45. data/lib/rake/multi_task.rb +2 -1
  46. data/lib/rake/name_space.rb +36 -23
  47. data/lib/rake/packagetask.rb +71 -34
  48. data/lib/rake/phony.rb +6 -3
  49. data/lib/rake/private_reader.rb +21 -0
  50. data/lib/rake/promise.rb +100 -0
  51. data/lib/rake/pseudo_status.rb +8 -2
  52. data/lib/rake/rake_module.rb +34 -11
  53. data/lib/rake/rake_test_loader.rb +18 -13
  54. data/lib/rake/rule_recursion_overflow_error.rb +2 -2
  55. data/lib/rake/scope.rb +43 -0
  56. data/lib/rake/task.rb +166 -82
  57. data/lib/rake/task_argument_error.rb +1 -0
  58. data/lib/rake/task_arguments.rb +45 -14
  59. data/lib/rake/task_manager.rb +82 -50
  60. data/lib/rake/tasklib.rb +2 -12
  61. data/lib/rake/testtask.rb +68 -39
  62. data/lib/rake/thread_history_display.rb +10 -6
  63. data/lib/rake/thread_pool.rb +60 -86
  64. data/lib/rake/trace_output.rb +23 -0
  65. data/lib/rake/version.rb +6 -8
  66. data/lib/rake/win32.rb +14 -18
  67. data/rake.gemspec +36 -0
  68. metadata +64 -166
  69. data/.gemtest +0 -0
  70. data/CHANGES +0 -526
  71. data/TODO +0 -21
  72. data/doc/rake.1.gz +0 -0
  73. data/doc/release_notes/rake-0.4.14.rdoc +0 -23
  74. data/doc/release_notes/rake-0.4.15.rdoc +0 -35
  75. data/doc/release_notes/rake-0.5.0.rdoc +0 -53
  76. data/doc/release_notes/rake-0.5.3.rdoc +0 -78
  77. data/doc/release_notes/rake-0.5.4.rdoc +0 -46
  78. data/doc/release_notes/rake-0.6.0.rdoc +0 -141
  79. data/doc/release_notes/rake-0.7.0.rdoc +0 -119
  80. data/doc/release_notes/rake-0.7.1.rdoc +0 -59
  81. data/doc/release_notes/rake-0.7.2.rdoc +0 -121
  82. data/doc/release_notes/rake-0.7.3.rdoc +0 -47
  83. data/doc/release_notes/rake-0.8.0.rdoc +0 -114
  84. data/doc/release_notes/rake-0.8.2.rdoc +0 -165
  85. data/doc/release_notes/rake-0.8.3.rdoc +0 -112
  86. data/doc/release_notes/rake-0.8.4.rdoc +0 -147
  87. data/doc/release_notes/rake-0.8.5.rdoc +0 -53
  88. data/doc/release_notes/rake-0.8.6.rdoc +0 -55
  89. data/doc/release_notes/rake-0.8.7.rdoc +0 -55
  90. data/doc/release_notes/rake-0.9.0.rdoc +0 -112
  91. data/doc/release_notes/rake-0.9.1.rdoc +0 -52
  92. data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
  93. data/doc/release_notes/rake-0.9.2.rdoc +0 -49
  94. data/doc/release_notes/rake-0.9.3.rdoc +0 -102
  95. data/doc/release_notes/rake-10.0.0.rdoc +0 -178
  96. data/install.rb +0 -90
  97. data/lib/rake/alt_system.rb +0 -109
  98. data/lib/rake/contrib/compositepublisher.rb +0 -21
  99. data/lib/rake/contrib/ftptools.rb +0 -151
  100. data/lib/rake/contrib/publisher.rb +0 -73
  101. data/lib/rake/contrib/rubyforgepublisher.rb +0 -16
  102. data/lib/rake/contrib/sshpublisher.rb +0 -50
  103. data/lib/rake/ext/module.rb +0 -0
  104. data/lib/rake/ext/time.rb +0 -14
  105. data/lib/rake/pathmap.rb +0 -1
  106. data/lib/rake/ruby182_test_unit_fix.rb +0 -25
  107. data/lib/rake/runtest.rb +0 -21
  108. data/test/file_creation.rb +0 -34
  109. data/test/helper.rb +0 -522
  110. data/test/test_rake.rb +0 -40
  111. data/test/test_rake_application.rb +0 -484
  112. data/test/test_rake_application_options.rb +0 -427
  113. data/test/test_rake_backtrace.rb +0 -67
  114. data/test/test_rake_clean.rb +0 -14
  115. data/test/test_rake_definitions.rb +0 -80
  116. data/test/test_rake_directory_task.rb +0 -57
  117. data/test/test_rake_dsl.rb +0 -40
  118. data/test/test_rake_early_time.rb +0 -31
  119. data/test/test_rake_extension.rb +0 -59
  120. data/test/test_rake_file_creation_task.rb +0 -56
  121. data/test/test_rake_file_list.rb +0 -628
  122. data/test/test_rake_file_list_path_map.rb +0 -8
  123. data/test/test_rake_file_task.rb +0 -122
  124. data/test/test_rake_file_utils.rb +0 -305
  125. data/test/test_rake_ftp_file.rb +0 -59
  126. data/test/test_rake_functional.rb +0 -472
  127. data/test/test_rake_invocation_chain.rb +0 -52
  128. data/test/test_rake_makefile_loader.rb +0 -44
  129. data/test/test_rake_multi_task.rb +0 -59
  130. data/test/test_rake_name_space.rb +0 -43
  131. data/test/test_rake_package_task.rb +0 -79
  132. data/test/test_rake_path_map.rb +0 -157
  133. data/test/test_rake_path_map_explode.rb +0 -34
  134. data/test/test_rake_path_map_partial.rb +0 -18
  135. data/test/test_rake_pseudo_status.rb +0 -21
  136. data/test/test_rake_rake_test_loader.rb +0 -21
  137. data/test/test_rake_reduce_compat.rb +0 -30
  138. data/test/test_rake_require.rb +0 -40
  139. data/test/test_rake_rules.rb +0 -327
  140. data/test/test_rake_task.rb +0 -316
  141. data/test/test_rake_task_argument_parsing.rb +0 -103
  142. data/test/test_rake_task_arguments.rb +0 -88
  143. data/test/test_rake_task_lib.rb +0 -9
  144. data/test/test_rake_task_manager.rb +0 -157
  145. data/test/test_rake_task_manager_argument_resolution.rb +0 -19
  146. data/test/test_rake_task_with_arguments.rb +0 -162
  147. data/test/test_rake_test_task.rb +0 -120
  148. data/test/test_rake_thread_pool.rb +0 -146
  149. data/test/test_rake_top_level_functions.rb +0 -71
  150. data/test/test_rake_win32.rb +0 -72
  151. data/test/test_thread_history_display.rb +0 -91
@@ -1,19 +1,23 @@
1
+ # frozen_string_literal: true
2
+ require "rake/private_reader"
3
+
1
4
  module Rake
2
5
 
3
6
  class ThreadHistoryDisplay # :nodoc: all
4
- attr_reader :stats, :items, :threads
5
- private :stats, :items, :threads
7
+ include Rake::PrivateReader
8
+
9
+ private_reader :stats, :items, :threads
6
10
 
7
11
  def initialize(stats)
8
12
  @stats = stats
9
- @items = { :_seq_ => 1 }
10
- @threads = { :_seq_ => "A" }
13
+ @items = { _seq_: 1 }
14
+ @threads = { _seq_: "A" }
11
15
  end
12
16
 
13
17
  def show
14
18
  puts "Job History:"
15
19
  stats.each do |stat|
16
- stat[:data] ||= []
20
+ stat[:data] ||= {}
17
21
  rename(stat, :thread, threads)
18
22
  rename(stat[:data], :item_id, items)
19
23
  rename(stat[:data], :new_thread, threads)
@@ -22,7 +26,7 @@ module Rake
22
26
  (stat[:time] * 1_000_000).round,
23
27
  stat[:thread],
24
28
  stat[:event],
25
- stat[:data].map { |k,v| "#{k}:#{v}" }.join(" "))
29
+ stat[:data].map do |k, v| "#{k}:#{v}" end.join(" "))
26
30
  end
27
31
  end
28
32
 
@@ -1,12 +1,14 @@
1
- require 'thread'
2
- require 'set'
1
+ # frozen_string_literal: true
2
+ require "set"
3
+
4
+ require "rake/promise"
3
5
 
4
6
  module Rake
5
7
 
6
- class ThreadPool # :nodoc: all
8
+ class ThreadPool # :nodoc: all
7
9
 
8
- # Creates a ThreadPool object.
9
- # The parameter is the size of the pool.
10
+ # Creates a ThreadPool object. The +thread_count+ parameter is the size
11
+ # of the pool.
10
12
  def initialize(thread_count)
11
13
  @max_active_threads = [thread_count, 0].max
12
14
  @threads = Set.new
@@ -23,68 +25,17 @@ module Rake
23
25
  # Creates a future executed by the +ThreadPool+.
24
26
  #
25
27
  # The args are passed to the block when executing (similarly to
26
- # <tt>Thread#new</tt>) The return value is an object representing
28
+ # Thread#new) The return value is an object representing
27
29
  # a future which has been created and added to the queue in the
28
- # pool. Sending <tt>#value</tt> to the object will sleep the
30
+ # pool. Sending #value to the object will sleep the
29
31
  # current thread until the future is finished and will return the
30
32
  # result (or raise an exception thrown from the future)
31
- def future(*args,&block)
32
- # capture the local args for the block (like Thread#start)
33
- local_args = args.collect { |a| begin; a.dup; rescue; a; end }
34
-
35
- promise_mutex = Mutex.new
36
- promise_result = promise_error = NOT_SET
37
-
38
- # (promise code builds on Ben Lavender's public-domain 'promise' gem)
39
- promise = lambda do
40
- # return immediately if the future has been executed
41
- unless promise_result.equal?(NOT_SET) && promise_error.equal?(NOT_SET)
42
- return promise_error.equal?(NOT_SET) ? promise_result : raise(promise_error)
43
- end
44
-
45
- # try to get the lock and execute the promise, otherwise, sleep.
46
- if promise_mutex.try_lock
47
- if promise_result.equal?(NOT_SET) && promise_error.equal?(NOT_SET)
48
- #execute the promise
49
- begin
50
- promise_result = block.call(*local_args)
51
- rescue Exception => e
52
- promise_error = e
53
- end
54
- block = local_args = nil # GC can now clean these up
55
- end
56
- promise_mutex.unlock
57
- else
58
- # Even if we didn't get the lock, we need to sleep until the
59
- # promise has finished executing. If, however, the current
60
- # thread is part of the thread pool, we need to free up a
61
- # new thread in the pool so there will always be a thread
62
- # doing work.
63
-
64
- wait_for_promise = lambda {
65
- stat :waiting, item_id: promise.object_id
66
- promise_mutex.synchronize {}
67
- stat :continue, item_id: promise.object_id
68
- }
69
-
70
- unless @threads_mon.synchronize { @threads.include? Thread.current }
71
- wait_for_promise.call
72
- else
73
- @threads_mon.synchronize { @max_active_threads += 1 }
74
- start_thread
75
- wait_for_promise.call
76
- @threads_mon.synchronize { @max_active_threads -= 1 }
77
- end
78
- end
79
- promise_error.equal?(NOT_SET) ? promise_result : raise(promise_error)
80
- end
81
-
82
- def promise.value
83
- call
84
- end
33
+ def future(*args, &block)
34
+ promise = Promise.new(args, &block)
35
+ promise.recorder = lambda { |*stats| stat(*stats) }
85
36
 
86
37
  @queue.enq promise
87
- stat :item_queued, item_id: promise.object_id
38
+ stat :queued, item_id: promise.object_id
88
39
  start_thread
89
40
  promise
90
41
  end
@@ -93,15 +44,20 @@ module Rake
93
44
  def join
94
45
  @threads_mon.synchronize do
95
46
  begin
96
- @join_cond.wait unless @threads.empty?
47
+ stat :joining
48
+ @join_cond.wait unless @threads.empty?
49
+ stat :joined
97
50
  rescue Exception => e
51
+ stat :joined
98
52
  $stderr.puts e
99
- $stderr.print "Queue contains #{@queue.size} items. Thread pool contains #{@threads.count} threads\n"
100
- $stderr.print "Current Thread #{Thread.current} status = #{Thread.current.status}\n"
53
+ $stderr.print "Queue contains #{@queue.size} items. " +
54
+ "Thread pool contains #{@threads.count} threads\n"
55
+ $stderr.print "Current Thread #{Thread.current} status = " +
56
+ "#{Thread.current.status}\n"
101
57
  $stderr.puts e.backtrace.join("\n")
102
58
  @threads.each do |t|
103
59
  $stderr.print "Thread #{t} status = #{t.status}\n"
104
- $stderr.puts t.backtrace.join("\n") if t.respond_to? :backtrace
60
+ $stderr.puts t.backtrace.join("\n")
105
61
  end
106
62
  raise e
107
63
  end
@@ -119,7 +75,9 @@ module Rake
119
75
  # (see #gather_history). Best to call this when the job is
120
76
  # complete (i.e. after ThreadPool#join is called).
121
77
  def history # :nodoc:
122
- @history_mon.synchronize { @history.dup }
78
+ @history_mon.synchronize { @history.dup }.
79
+ sort_by { |i| i[:time] }.
80
+ each { |i| i[:time] -= @history_start_time }
123
81
  end
124
82
 
125
83
  # Return a hash of always collected statistics for the thread pool.
@@ -132,33 +90,55 @@ module Rake
132
90
 
133
91
  private
134
92
 
93
+ # processes one item on the queue. Returns true if there was an
94
+ # item to process, false if there was no item
95
+ def process_queue_item #:nodoc:
96
+ return false if @queue.empty?
97
+
98
+ # Even though we just asked if the queue was empty, it
99
+ # still could have had an item which by this statement
100
+ # is now gone. For this reason we pass true to Queue#deq
101
+ # because we will sleep indefinitely if it is empty.
102
+ promise = @queue.deq(true)
103
+ stat :dequeued, item_id: promise.object_id
104
+ promise.work
105
+ return true
106
+
107
+ rescue ThreadError # this means the queue is empty
108
+ false
109
+ end
110
+
111
+ def safe_thread_count
112
+ @threads_mon.synchronize do
113
+ @threads.count
114
+ end
115
+ end
116
+
135
117
  def start_thread # :nodoc:
136
118
  @threads_mon.synchronize do
137
119
  next unless @threads.count < @max_active_threads
138
120
 
139
121
  t = Thread.new do
140
122
  begin
141
- while @threads.count <= @max_active_threads && !@queue.empty? do
142
- # Even though we just asked if the queue was empty, it
143
- # still could have had an item which by this statement
144
- # is now gone. For this reason we pass true to Queue#deq
145
- # because we will sleep indefinitely if it is empty.
146
- block = @queue.deq(true)
147
- stat :item_dequeued, item_id: block.object_id
148
- block.call
123
+ while safe_thread_count <= @max_active_threads
124
+ break unless process_queue_item
149
125
  end
150
- rescue ThreadError # this means the queue is empty
151
126
  ensure
152
127
  @threads_mon.synchronize do
153
128
  @threads.delete Thread.current
154
- stat :thread_deleted, deleted_thread: Thread.current.object_id, thread_count: @threads.count
129
+ stat :ended, thread_count: @threads.count
155
130
  @join_cond.broadcast if @threads.empty?
156
131
  end
157
132
  end
158
133
  end
134
+
159
135
  @threads << t
160
- stat :thread_created, new_thread: t.object_id, thread_count: @threads.count
161
- @total_threads_in_play = @threads.count if @threads.count > @total_threads_in_play
136
+ stat(
137
+ :spawned,
138
+ new_thread: t.object_id,
139
+ thread_count: @threads.count)
140
+ @total_threads_in_play = @threads.count if
141
+ @threads.count > @total_threads_in_play
162
142
  end
163
143
  end
164
144
 
@@ -167,7 +147,7 @@ module Rake
167
147
  info = {
168
148
  event: event,
169
149
  data: data,
170
- time: (Time.now-@history_start_time),
150
+ time: Time.now,
171
151
  thread: Thread.current.object_id,
172
152
  }
173
153
  @history_mon.synchronize { @history << info }
@@ -178,12 +158,6 @@ module Rake
178
158
  def __queue__ # :nodoc:
179
159
  @queue
180
160
  end
181
-
182
- def __threads__ # :nodoc:
183
- @threads.dup
184
- end
185
-
186
- NOT_SET = Object.new.freeze # :nodoc:
187
161
  end
188
162
 
189
163
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ module Rake
3
+ module TraceOutput # :nodoc: all
4
+
5
+ # Write trace output to output stream +out+.
6
+ #
7
+ # The write is done as a single IO call (to print) to lessen the
8
+ # chance that the trace output is interrupted by other tasks also
9
+ # producing output.
10
+ def trace_on(out, *strings)
11
+ sep = $\ || "\n"
12
+ if strings.empty?
13
+ output = sep
14
+ else
15
+ output = strings.map { |s|
16
+ next if s.nil?
17
+ s.end_with?(sep) ? s : s + sep
18
+ }.join
19
+ end
20
+ out.print(output)
21
+ end
22
+ end
23
+ end
@@ -1,12 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  module Rake
3
+ VERSION = "13.0.0.pre.1"
4
+
2
5
  module Version # :nodoc: all
3
- NUMBERS = [
4
- MAJOR = 10,
5
- MINOR = 0,
6
- BUILD = 0,
7
- 'beta',
8
- BETA = 2,
9
- ]
6
+ MAJOR, MINOR, BUILD, *OTHER = Rake::VERSION.split "."
7
+
8
+ NUMBERS = [MAJOR, MINOR, BUILD, *OTHER]
10
9
  end
11
- VERSION = Version::NUMBERS.join('.')
12
10
  end
@@ -1,10 +1,10 @@
1
+ # frozen_string_literal: true
2
+ require "rbconfig"
1
3
 
2
4
  module Rake
3
- require 'rake/alt_system'
4
-
5
5
  # Win 32 interface methods for Rake. Windows specific functionality
6
6
  # will be placed here to collect that knowledge in one spot.
7
- module Win32
7
+ module Win32 # :nodoc: all
8
8
 
9
9
  # Error indicating a problem in locating the home directory on a
10
10
  # Win32 system.
@@ -14,12 +14,7 @@ module Rake
14
14
  class << self
15
15
  # True if running on a windows system.
16
16
  def windows?
17
- AltSystem::WINDOWS
18
- end
19
-
20
- # Run a command line on windows.
21
- def rake_system(*cmd)
22
- AltSystem.system(*cmd)
17
+ RbConfig::CONFIG["host_os"] =~ %r!(msdos|mswin|djgpp|mingw|[Ww]indows)!
23
18
  end
24
19
 
25
20
  # The standard directory containing system wide rake files on
@@ -33,21 +28,22 @@ module Rake
33
28
  #
34
29
  # If the above are not defined, the return nil.
35
30
  def win32_system_dir #:nodoc:
36
- win32_shared_path = ENV['HOME']
37
- if win32_shared_path.nil? && ENV['HOMEDRIVE'] && ENV['HOMEPATH']
38
- win32_shared_path = ENV['HOMEDRIVE'] + ENV['HOMEPATH']
31
+ win32_shared_path = ENV["HOME"]
32
+ if win32_shared_path.nil? && ENV["HOMEDRIVE"] && ENV["HOMEPATH"]
33
+ win32_shared_path = ENV["HOMEDRIVE"] + ENV["HOMEPATH"]
39
34
  end
40
35
 
41
- win32_shared_path ||= ENV['APPDATA']
42
- win32_shared_path ||= ENV['USERPROFILE']
43
- raise Win32HomeError, "Unable to determine home path environment variable." if
44
- win32_shared_path.nil? or win32_shared_path.empty?
45
- normalize(File.join(win32_shared_path, 'Rake'))
36
+ win32_shared_path ||= ENV["APPDATA"]
37
+ win32_shared_path ||= ENV["USERPROFILE"]
38
+ raise Win32HomeError,
39
+ "Unable to determine home path environment variable." if
40
+ win32_shared_path.nil? or win32_shared_path.empty?
41
+ normalize(File.join(win32_shared_path, "Rake"))
46
42
  end
47
43
 
48
44
  # Normalize a win32 path so that the slashes are all forward slashes.
49
45
  def normalize(path)
50
- path.gsub(/\\/, '/')
46
+ path.gsub(/\\/, "/")
51
47
  end
52
48
 
53
49
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
3
+ require 'rake/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "rake".freeze
7
+ s.version = Rake::VERSION
8
+ s.authors = ["Hiroshi SHIBATA".freeze, "Eric Hodel".freeze, "Jim Weirich".freeze]
9
+ s.email = ["hsbt@ruby-lang.org".freeze, "drbrain@segment7.net".freeze, "".freeze]
10
+
11
+ s.summary = "Rake is a Make-like program implemented in Ruby".freeze
12
+ s.description = <<-DESCRIPTION
13
+ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
14
+ specified in standard Ruby syntax.
15
+ Rake has the following features:
16
+ * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax.
17
+ No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?)
18
+ * Users can specify tasks with prerequisites.
19
+ * Rake supports rule patterns to synthesize implicit tasks.
20
+ * Flexible FileLists that act like arrays but know about manipulating file names and paths.
21
+ * Supports parallel execution of tasks.
22
+ DESCRIPTION
23
+ s.homepage = "https://github.com/ruby/rake".freeze
24
+ s.licenses = ["MIT".freeze]
25
+
26
+ s.files = %x[git ls-files -z].split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } -
27
+ %w[.rubocop.yml .gitignore .travis.yml appveyor.yml]
28
+ s.bindir = "exe"
29
+ s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ s.require_paths = ["lib".freeze]
31
+
32
+ s.required_ruby_version = Gem::Requirement.new(">= 2.2".freeze)
33
+ s.rubygems_version = "2.6.1".freeze
34
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.3.2".freeze)
35
+ s.rdoc_options = ["--main".freeze, "README.rdoc".freeze]
36
+ end
metadata CHANGED
@@ -1,98 +1,76 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.0.0.beta.2
5
- prerelease: 7
4
+ version: 13.0.0.pre.1
6
5
  platform: ruby
7
6
  authors:
7
+ - Hiroshi SHIBATA
8
+ - Eric Hodel
8
9
  - Jim Weirich
9
10
  autorequire:
10
- bindir: bin
11
+ bindir: exe
11
12
  cert_chain: []
12
- date: 2012-10-26 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: minitest
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '2.1'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '2.1'
30
- description: Rake is a Make-like program implemented in Ruby. Tasks and dependencies
31
- arespecified in standard Ruby syntax.
32
- email: jim@weirichhouse.org
13
+ date: 2019-09-09 00:00:00.000000000 Z
14
+ dependencies: []
15
+ description: |
16
+ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
17
+ specified in standard Ruby syntax.
18
+ Rake has the following features:
19
+ * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax.
20
+ No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?)
21
+ * Users can specify tasks with prerequisites.
22
+ * Rake supports rule patterns to synthesize implicit tasks.
23
+ * Flexible FileLists that act like arrays but know about manipulating file names and paths.
24
+ * Supports parallel execution of tasks.
25
+ email:
26
+ - hsbt@ruby-lang.org
27
+ - drbrain@segment7.net
28
+ - ''
33
29
  executables:
34
30
  - rake
35
31
  extensions: []
36
- extra_rdoc_files:
37
- - README.rdoc
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".github/workflows/macos.yml"
35
+ - ".github/workflows/ubuntu-rvm.yml"
36
+ - ".github/workflows/ubuntu.yml"
37
+ - ".github/workflows/windows.yml"
38
+ - CONTRIBUTING.rdoc
39
+ - Gemfile
40
+ - History.rdoc
38
41
  - MIT-LICENSE
39
- - TODO
40
- - CHANGES
42
+ - README.rdoc
43
+ - Rakefile
44
+ - bin/bundle
45
+ - bin/console
46
+ - bin/rake
47
+ - bin/rdoc
48
+ - bin/rubocop
49
+ - bin/setup
41
50
  - doc/command_line_usage.rdoc
51
+ - doc/example/Rakefile1
52
+ - doc/example/Rakefile2
53
+ - doc/example/a.c
54
+ - doc/example/b.c
55
+ - doc/example/main.c
42
56
  - doc/glossary.rdoc
57
+ - doc/jamis.rb
43
58
  - doc/proto_rake.rdoc
59
+ - doc/rake.1
44
60
  - doc/rakefile.rdoc
45
61
  - doc/rational.rdoc
46
- - doc/release_notes/rake-0.4.14.rdoc
47
- - doc/release_notes/rake-0.4.15.rdoc
48
- - doc/release_notes/rake-0.5.0.rdoc
49
- - doc/release_notes/rake-0.5.3.rdoc
50
- - doc/release_notes/rake-0.5.4.rdoc
51
- - doc/release_notes/rake-0.6.0.rdoc
52
- - doc/release_notes/rake-0.7.0.rdoc
53
- - doc/release_notes/rake-0.7.1.rdoc
54
- - doc/release_notes/rake-0.7.2.rdoc
55
- - doc/release_notes/rake-0.7.3.rdoc
56
- - doc/release_notes/rake-0.8.0.rdoc
57
- - doc/release_notes/rake-0.8.2.rdoc
58
- - doc/release_notes/rake-0.8.3.rdoc
59
- - doc/release_notes/rake-0.8.4.rdoc
60
- - doc/release_notes/rake-0.8.5.rdoc
61
- - doc/release_notes/rake-0.8.6.rdoc
62
- - doc/release_notes/rake-0.8.7.rdoc
63
- - doc/release_notes/rake-0.9.0.rdoc
64
- - doc/release_notes/rake-0.9.1.rdoc
65
- - doc/release_notes/rake-0.9.2.2.rdoc
66
- - doc/release_notes/rake-0.9.2.rdoc
67
- - doc/release_notes/rake-0.9.3.rdoc
68
- - doc/release_notes/rake-10.0.0.rdoc
69
- files:
70
- - .gemtest
71
- - install.rb
72
- - CHANGES
73
- - MIT-LICENSE
74
- - README.rdoc
75
- - Rakefile
76
- - TODO
77
- - bin/rake
62
+ - exe/rake
78
63
  - lib/rake.rb
79
- - lib/rake/alt_system.rb
80
64
  - lib/rake/application.rb
81
65
  - lib/rake/backtrace.rb
82
66
  - lib/rake/clean.rb
83
67
  - lib/rake/cloneable.rb
84
- - lib/rake/contrib/compositepublisher.rb
85
- - lib/rake/contrib/ftptools.rb
86
- - lib/rake/contrib/publisher.rb
87
- - lib/rake/contrib/rubyforgepublisher.rb
88
- - lib/rake/contrib/sshpublisher.rb
68
+ - lib/rake/cpu_counter.rb
89
69
  - lib/rake/default_loader.rb
90
70
  - lib/rake/dsl_definition.rb
91
71
  - lib/rake/early_time.rb
92
72
  - lib/rake/ext/core.rb
93
- - lib/rake/ext/module.rb
94
73
  - lib/rake/ext/string.rb
95
- - lib/rake/ext/time.rb
96
74
  - lib/rake/file_creation_task.rb
97
75
  - lib/rake/file_list.rb
98
76
  - lib/rake/file_task.rb
@@ -100,18 +78,20 @@ files:
100
78
  - lib/rake/file_utils_ext.rb
101
79
  - lib/rake/invocation_chain.rb
102
80
  - lib/rake/invocation_exception_mixin.rb
81
+ - lib/rake/late_time.rb
82
+ - lib/rake/linked_list.rb
103
83
  - lib/rake/loaders/makefile.rb
104
84
  - lib/rake/multi_task.rb
105
85
  - lib/rake/name_space.rb
106
86
  - lib/rake/packagetask.rb
107
- - lib/rake/pathmap.rb
108
87
  - lib/rake/phony.rb
88
+ - lib/rake/private_reader.rb
89
+ - lib/rake/promise.rb
109
90
  - lib/rake/pseudo_status.rb
110
91
  - lib/rake/rake_module.rb
111
92
  - lib/rake/rake_test_loader.rb
112
- - lib/rake/ruby182_test_unit_fix.rb
113
93
  - lib/rake/rule_recursion_overflow_error.rb
114
- - lib/rake/runtest.rb
94
+ - lib/rake/scope.rb
115
95
  - lib/rake/task.rb
116
96
  - lib/rake/task_argument_error.rb
117
97
  - lib/rake/task_arguments.rb
@@ -120,115 +100,33 @@ files:
120
100
  - lib/rake/testtask.rb
121
101
  - lib/rake/thread_history_display.rb
122
102
  - lib/rake/thread_pool.rb
103
+ - lib/rake/trace_output.rb
123
104
  - lib/rake/version.rb
124
105
  - lib/rake/win32.rb
125
- - test/file_creation.rb
126
- - test/helper.rb
127
- - test/test_rake.rb
128
- - test/test_rake_application.rb
129
- - test/test_rake_application_options.rb
130
- - test/test_rake_backtrace.rb
131
- - test/test_rake_clean.rb
132
- - test/test_rake_definitions.rb
133
- - test/test_rake_directory_task.rb
134
- - test/test_rake_dsl.rb
135
- - test/test_rake_early_time.rb
136
- - test/test_rake_extension.rb
137
- - test/test_rake_file_creation_task.rb
138
- - test/test_rake_file_list.rb
139
- - test/test_rake_file_list_path_map.rb
140
- - test/test_rake_file_task.rb
141
- - test/test_rake_file_utils.rb
142
- - test/test_rake_ftp_file.rb
143
- - test/test_rake_functional.rb
144
- - test/test_rake_invocation_chain.rb
145
- - test/test_rake_makefile_loader.rb
146
- - test/test_rake_multi_task.rb
147
- - test/test_rake_name_space.rb
148
- - test/test_rake_package_task.rb
149
- - test/test_rake_path_map.rb
150
- - test/test_rake_path_map_explode.rb
151
- - test/test_rake_path_map_partial.rb
152
- - test/test_rake_pseudo_status.rb
153
- - test/test_rake_rake_test_loader.rb
154
- - test/test_rake_reduce_compat.rb
155
- - test/test_rake_require.rb
156
- - test/test_rake_rules.rb
157
- - test/test_rake_task.rb
158
- - test/test_rake_task_argument_parsing.rb
159
- - test/test_rake_task_arguments.rb
160
- - test/test_rake_task_lib.rb
161
- - test/test_rake_task_manager.rb
162
- - test/test_rake_task_manager_argument_resolution.rb
163
- - test/test_rake_task_with_arguments.rb
164
- - test/test_rake_test_task.rb
165
- - test/test_rake_thread_pool.rb
166
- - test/test_rake_top_level_functions.rb
167
- - test/test_rake_win32.rb
168
- - test/test_thread_history_display.rb
169
- - doc/command_line_usage.rdoc
170
- - doc/example/Rakefile1
171
- - doc/example/Rakefile2
172
- - doc/example/a.c
173
- - doc/example/b.c
174
- - doc/example/main.c
175
- - doc/glossary.rdoc
176
- - doc/jamis.rb
177
- - doc/proto_rake.rdoc
178
- - doc/rake.1.gz
179
- - doc/rakefile.rdoc
180
- - doc/rational.rdoc
181
- - doc/release_notes/rake-0.4.14.rdoc
182
- - doc/release_notes/rake-0.4.15.rdoc
183
- - doc/release_notes/rake-0.5.0.rdoc
184
- - doc/release_notes/rake-0.5.3.rdoc
185
- - doc/release_notes/rake-0.5.4.rdoc
186
- - doc/release_notes/rake-0.6.0.rdoc
187
- - doc/release_notes/rake-0.7.0.rdoc
188
- - doc/release_notes/rake-0.7.1.rdoc
189
- - doc/release_notes/rake-0.7.2.rdoc
190
- - doc/release_notes/rake-0.7.3.rdoc
191
- - doc/release_notes/rake-0.8.0.rdoc
192
- - doc/release_notes/rake-0.8.2.rdoc
193
- - doc/release_notes/rake-0.8.3.rdoc
194
- - doc/release_notes/rake-0.8.4.rdoc
195
- - doc/release_notes/rake-0.8.5.rdoc
196
- - doc/release_notes/rake-0.8.6.rdoc
197
- - doc/release_notes/rake-0.8.7.rdoc
198
- - doc/release_notes/rake-0.9.0.rdoc
199
- - doc/release_notes/rake-0.9.1.rdoc
200
- - doc/release_notes/rake-0.9.2.2.rdoc
201
- - doc/release_notes/rake-0.9.2.rdoc
202
- - doc/release_notes/rake-0.9.3.rdoc
203
- - doc/release_notes/rake-10.0.0.rdoc
204
- homepage: http://rake.rubyforge.org
205
- licenses: []
106
+ - rake.gemspec
107
+ homepage: https://github.com/ruby/rake
108
+ licenses:
109
+ - MIT
110
+ metadata: {}
206
111
  post_install_message:
207
112
  rdoc_options:
208
- - --line-numbers
209
- - --show-hash
210
- - --main
113
+ - "--main"
211
114
  - README.rdoc
212
- - --title
213
- - Rake -- Ruby Make
214
115
  require_paths:
215
116
  - lib
216
117
  required_ruby_version: !ruby/object:Gem::Requirement
217
- none: false
218
118
  requirements:
219
- - - ! '>='
119
+ - - ">="
220
120
  - !ruby/object:Gem::Version
221
- version: 1.8.6
121
+ version: '2.2'
222
122
  required_rubygems_version: !ruby/object:Gem::Requirement
223
- none: false
224
123
  requirements:
225
- - - ! '>='
124
+ - - ">="
226
125
  - !ruby/object:Gem::Version
227
126
  version: 1.3.2
228
127
  requirements: []
229
- rubyforge_project: rake
230
- rubygems_version: 1.8.24
128
+ rubygems_version: 3.1.0.pre1
231
129
  signing_key:
232
- specification_version: 3
233
- summary: Ruby based make-like utility.
130
+ specification_version: 4
131
+ summary: Rake is a Make-like program implemented in Ruby
234
132
  test_files: []