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.
- checksums.yaml +7 -0
- data/.github/workflows/macos.yml +22 -0
- data/.github/workflows/ubuntu-rvm.yml +28 -0
- data/.github/workflows/ubuntu.yml +20 -0
- data/.github/workflows/windows.yml +20 -0
- data/CONTRIBUTING.rdoc +43 -0
- data/Gemfile +10 -0
- data/History.rdoc +2359 -0
- data/MIT-LICENSE +1 -1
- data/README.rdoc +57 -101
- data/Rakefile +22 -354
- data/bin/bundle +105 -0
- data/bin/console +7 -0
- data/bin/rake +19 -27
- data/bin/rdoc +29 -0
- data/bin/rubocop +29 -0
- data/bin/setup +6 -0
- data/doc/command_line_usage.rdoc +30 -18
- data/doc/glossary.rdoc +40 -49
- data/doc/jamis.rb +1 -0
- data/doc/rake.1 +156 -0
- data/doc/rakefile.rdoc +127 -62
- data/exe/rake +27 -0
- data/lib/rake.rb +35 -34
- data/lib/rake/application.rb +355 -188
- data/lib/rake/backtrace.rb +14 -7
- data/lib/rake/clean.rb +54 -8
- data/lib/rake/cloneable.rb +5 -4
- data/lib/rake/cpu_counter.rb +107 -0
- data/lib/rake/default_loader.rb +5 -0
- data/lib/rake/dsl_definition.rb +58 -19
- data/lib/rake/early_time.rb +5 -1
- data/lib/rake/ext/core.rb +5 -6
- data/lib/rake/ext/string.rb +61 -52
- data/lib/rake/file_creation_task.rb +4 -3
- data/lib/rake/file_list.rb +81 -49
- data/lib/rake/file_task.rb +15 -8
- data/lib/rake/file_utils.rb +63 -43
- data/lib/rake/file_utils_ext.rb +10 -22
- data/lib/rake/invocation_chain.rb +25 -19
- data/lib/rake/invocation_exception_mixin.rb +1 -0
- data/lib/rake/late_time.rb +18 -0
- data/lib/rake/linked_list.rb +112 -0
- data/lib/rake/loaders/makefile.rb +23 -9
- data/lib/rake/multi_task.rb +2 -1
- data/lib/rake/name_space.rb +36 -23
- data/lib/rake/packagetask.rb +71 -34
- data/lib/rake/phony.rb +6 -3
- data/lib/rake/private_reader.rb +21 -0
- data/lib/rake/promise.rb +100 -0
- data/lib/rake/pseudo_status.rb +8 -2
- data/lib/rake/rake_module.rb +34 -11
- data/lib/rake/rake_test_loader.rb +18 -13
- data/lib/rake/rule_recursion_overflow_error.rb +2 -2
- data/lib/rake/scope.rb +43 -0
- data/lib/rake/task.rb +166 -82
- data/lib/rake/task_argument_error.rb +1 -0
- data/lib/rake/task_arguments.rb +45 -14
- data/lib/rake/task_manager.rb +82 -50
- data/lib/rake/tasklib.rb +2 -12
- data/lib/rake/testtask.rb +68 -39
- data/lib/rake/thread_history_display.rb +10 -6
- data/lib/rake/thread_pool.rb +60 -86
- data/lib/rake/trace_output.rb +23 -0
- data/lib/rake/version.rb +6 -8
- data/lib/rake/win32.rb +14 -18
- data/rake.gemspec +36 -0
- metadata +64 -166
- data/.gemtest +0 -0
- data/CHANGES +0 -526
- data/TODO +0 -21
- data/doc/rake.1.gz +0 -0
- data/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/doc/release_notes/rake-0.8.6.rdoc +0 -55
- data/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/doc/release_notes/rake-0.9.0.rdoc +0 -112
- data/doc/release_notes/rake-0.9.1.rdoc +0 -52
- data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
- data/doc/release_notes/rake-0.9.2.rdoc +0 -49
- data/doc/release_notes/rake-0.9.3.rdoc +0 -102
- data/doc/release_notes/rake-10.0.0.rdoc +0 -178
- data/install.rb +0 -90
- data/lib/rake/alt_system.rb +0 -109
- data/lib/rake/contrib/compositepublisher.rb +0 -21
- data/lib/rake/contrib/ftptools.rb +0 -151
- data/lib/rake/contrib/publisher.rb +0 -73
- data/lib/rake/contrib/rubyforgepublisher.rb +0 -16
- data/lib/rake/contrib/sshpublisher.rb +0 -50
- data/lib/rake/ext/module.rb +0 -0
- data/lib/rake/ext/time.rb +0 -14
- data/lib/rake/pathmap.rb +0 -1
- data/lib/rake/ruby182_test_unit_fix.rb +0 -25
- data/lib/rake/runtest.rb +0 -21
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -522
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -484
- data/test/test_rake_application_options.rb +0 -427
- data/test/test_rake_backtrace.rb +0 -67
- data/test/test_rake_clean.rb +0 -14
- data/test/test_rake_definitions.rb +0 -80
- data/test/test_rake_directory_task.rb +0 -57
- data/test/test_rake_dsl.rb +0 -40
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -628
- data/test/test_rake_file_list_path_map.rb +0 -8
- data/test/test_rake_file_task.rb +0 -122
- data/test/test_rake_file_utils.rb +0 -305
- data/test/test_rake_ftp_file.rb +0 -59
- data/test/test_rake_functional.rb +0 -472
- data/test/test_rake_invocation_chain.rb +0 -52
- data/test/test_rake_makefile_loader.rb +0 -44
- data/test/test_rake_multi_task.rb +0 -59
- data/test/test_rake_name_space.rb +0 -43
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -157
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -21
- data/test/test_rake_reduce_compat.rb +0 -30
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -327
- data/test/test_rake_task.rb +0 -316
- data/test/test_rake_task_argument_parsing.rb +0 -103
- data/test/test_rake_task_arguments.rb +0 -88
- data/test/test_rake_task_lib.rb +0 -9
- data/test/test_rake_task_manager.rb +0 -157
- data/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/test/test_rake_task_with_arguments.rb +0 -162
- data/test/test_rake_test_task.rb +0 -120
- data/test/test_rake_thread_pool.rb +0 -146
- data/test/test_rake_top_level_functions.rb +0 -71
- data/test/test_rake_win32.rb +0 -72
- 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
|
-
|
5
|
-
|
7
|
+
include Rake::PrivateReader
|
8
|
+
|
9
|
+
private_reader :stats, :items, :threads
|
6
10
|
|
7
11
|
def initialize(stats)
|
8
12
|
@stats = stats
|
9
|
-
@items = { :
|
10
|
-
@threads = { :
|
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
|
29
|
+
stat[:data].map do |k, v| "#{k}:#{v}" end.join(" "))
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
data/lib/rake/thread_pool.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
|
2
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "set"
|
3
|
+
|
4
|
+
require "rake/promise"
|
3
5
|
|
4
6
|
module Rake
|
5
7
|
|
6
|
-
class ThreadPool
|
8
|
+
class ThreadPool # :nodoc: all
|
7
9
|
|
8
|
-
# Creates a ThreadPool object.
|
9
|
-
#
|
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
|
-
#
|
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
|
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
|
32
|
-
|
33
|
-
|
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 :
|
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
|
-
|
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.
|
100
|
-
|
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")
|
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
|
142
|
-
|
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 :
|
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
|
161
|
-
|
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:
|
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
|
data/lib/rake/version.rb
CHANGED
@@ -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
|
-
|
4
|
-
|
5
|
-
|
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
|
data/lib/rake/win32.rb
CHANGED
@@ -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
|
-
|
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[
|
37
|
-
if win32_shared_path.nil? && ENV[
|
38
|
-
win32_shared_path = ENV[
|
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[
|
42
|
-
win32_shared_path ||= ENV[
|
43
|
-
raise Win32HomeError,
|
44
|
-
|
45
|
-
|
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
|
data/rake.gemspec
ADDED
@@ -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:
|
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:
|
11
|
+
bindir: exe
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
-
-
|
40
|
-
-
|
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
|
-
-
|
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/
|
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/
|
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
|
-
-
|
126
|
-
|
127
|
-
|
128
|
-
-
|
129
|
-
|
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
|
-
- --
|
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:
|
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
|
-
|
230
|
-
rubygems_version: 1.8.24
|
128
|
+
rubygems_version: 3.1.0.pre1
|
231
129
|
signing_key:
|
232
|
-
specification_version:
|
233
|
-
summary:
|
130
|
+
specification_version: 4
|
131
|
+
summary: Rake is a Make-like program implemented in Ruby
|
234
132
|
test_files: []
|