autobuild 1.6.1 → 1.6.2.b1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -242,7 +242,7 @@ module Autobuild
242
242
  def self.apply(packages, buildname = "autobuild")
243
243
  if Autobuild.mail[:to]
244
244
  if !Autobuild::HAS_RMAIL
245
- STDERR.puts "RMail is not available. Mail notification is disabled"
245
+ Autobuild.warn "RMail is not available. Mail notification is disabled"
246
246
  else
247
247
  Reporting << MailReporter.new(Autobuild.mail)
248
248
  end
@@ -18,8 +18,6 @@ module Autobuild
18
18
  dir =
19
19
  if target.respond_to?(:srcdir)
20
20
  "(#{target.srcdir})"
21
- else
22
- puts target.inspect
23
21
  end
24
22
  target_name =
25
23
  if target.respond_to?(:name)
@@ -59,13 +59,13 @@ module Autobuild
59
59
  if mtime && size
60
60
  do_update = (size != cached_size || mtime > cached_mtime)
61
61
  elsif mtime
62
- $stderr.puts "WARNING: size is not available for #{@url}, relying on modification time"
62
+ package.warn "%s: archive size is not available for #{@url}, relying on modification time"
63
63
  do_update = (mtime > cached_mtime)
64
64
  elsif size
65
- $stderr.puts "WARNING: modification time is not available for #{@url}, relying on size"
65
+ package.warn "%s: archive modification time is not available for #{@url}, relying on size"
66
66
  do_update = (size != cached_size)
67
67
  else
68
- $stderr.puts "WARNING: neither size nor modification time available for #{@url}, will always update"
68
+ package.warn "%s: neither the archive size nor its modification time available for #{@url}, will always update"
69
69
  do_update = true
70
70
  end
71
71
  end
@@ -21,11 +21,11 @@ module Autobuild
21
21
  end
22
22
 
23
23
  if branch
24
- STDERR.puts "WARN: the git importer now expects you to provide the branch as a named option"
25
- STDERR.puts "WARN: this form is deprecated:"
26
- STDERR.puts "WARN: Autobuild.git 'git://gitorious.org/rock/buildconf.git', 'master'"
27
- STDERR.puts "WARN: and should be replaced by"
28
- STDERR.puts "WARN: Autobuild.git 'git://gitorious.org/rock/buildconf.git', :branch => 'master'"
24
+ Autobuild.warn "the git importer now expects you to provide the branch as a named option"
25
+ Autobuild.warn "this form is deprecated:"
26
+ Autobuild.warn " Autobuild.git 'git://gitorious.org/rock/buildconf.git', 'master'"
27
+ Autobuild.warn "and should be replaced by"
28
+ Autobuild.warn " Autobuild.git 'git://gitorious.org/rock/buildconf.git', :branch => 'master'"
29
29
  end
30
30
 
31
31
  gitopts, common = Kernel.filter_options options, :push_to => nil, :branch => nil, :tag => nil, :commit => nil
@@ -65,7 +65,26 @@ class Importer
65
65
  # [:patches] a list of patch to apply after import
66
66
  #
67
67
  # More options are specific to each importer type.
68
- def initialize(options); @options = options end
68
+ def initialize(options)
69
+ @options = options.dup
70
+ end
71
+
72
+ # The number of times update / checkout should be retried before giving up.
73
+ # The default is 0 (do not retry)
74
+ #
75
+ # Set either with #retry_count= or by setting the :retry_count option when
76
+ # constructing this importer
77
+ def retry_count
78
+ @options[:retry_count] || 0
79
+ end
80
+
81
+ # Sets the number of times update / checkout should be retried before giving
82
+ # up. 0 (the default) disables retrying.
83
+ #
84
+ # See also #retry_count
85
+ def retry_count=(count)
86
+ @options[:retry_count] = count
87
+ end
69
88
 
70
89
  def patches
71
90
  if @options[:patches].respond_to?(:to_ary)
@@ -85,65 +104,79 @@ class Importer
85
104
  patch(package, kept_patches)
86
105
  end
87
106
 
88
- package.progress_start "updating %s" do
89
- update(package)
90
- patch(package)
91
- end
92
- package.updated = true
93
- rescue Interrupt
94
- raise
95
- rescue ::Exception => original_error
96
- # If the package is patched, it might be that the update
97
- # failed because we needed to unpatch first. Try it out
98
- #
99
- # This assumes that importing data with conflict will
100
- # make the import fail, but not make the patch
101
- # un-appliable. Importers that do not follow this rule
102
- # will have to unpatch by themselves.
103
- cur_patches = currently_applied_patches(package)
104
- if cur_patches.empty?
105
- return fallback(original_error, package, :import, package)
106
- end
107
-
108
- package.message "update failed and some patches are applied, retrying after removing all patches first"
109
- begin
110
- patch(package, [])
111
-
112
- rescue ::Exception => e
113
- # The unpatching failed. The importer probably did
114
- # change the files in a way that made the patching
115
- # impossible to reverse. Just raise the original
116
- # error (which hopefully should be the importer
117
- # message that says that there are conflicts)
118
- raise original_error
119
- end
120
-
107
+ retry_count = 0
121
108
  begin
122
109
  package.progress_start "updating %s" do
123
110
  update(package)
124
- patch(package)
125
111
  end
126
- package.updated = true
127
112
  rescue Interrupt
128
113
  raise
129
- rescue ::Exception => e
130
- fallback(e, package, :import, package)
114
+ rescue ::Exception => original_error
115
+ # If the package is patched, it might be that the update
116
+ # failed because we needed to unpatch first. Try it out
117
+ #
118
+ # This assumes that importing data with conflict will
119
+ # make the import fail, but not make the patch
120
+ # un-appliable. Importers that do not follow this rule
121
+ # will have to unpatch by themselves.
122
+ cur_patches = currently_applied_patches(package)
123
+ if !cur_patches.empty?
124
+ package.message "update failed and some patches are applied, retrying after removing all patches first"
125
+ begin
126
+ patch(package, [])
127
+ return perform_update(package)
128
+ rescue Interrupt
129
+ raise
130
+ rescue ::Exception
131
+ raise original_error
132
+ end
133
+ end
134
+
135
+ retry_count += 1
136
+ if retry_count > self.retry_count
137
+ raise
138
+ end
139
+ package.message "update failed in #{package.srcdir}, retrying (#{retry_count}/#{self.retry_count})"
140
+ retry
131
141
  end
142
+
143
+ patch(package)
144
+ package.updated = true
145
+ rescue Interrupt
146
+ raise
147
+ rescue Autobuild::Exception => e
148
+ fallback(e, package, :import, package)
132
149
  end
133
150
 
134
151
  def perform_checkout(package)
135
152
  package.progress_start "checking out %s" do
136
- checkout(package)
137
- patch(package)
153
+ retry_count = 0
154
+ begin
155
+ checkout(package)
156
+ rescue Interrupt
157
+ raise
158
+ rescue ::Exception
159
+ retry_count += 1
160
+ if retry_count > self.retry_count
161
+ raise
162
+ end
163
+ package.message "checkout of %s failed, deleting the source directory #{package.srcdir} and retrying (#{retry_count}/#{self.retry_count})"
164
+ FileUtils.rm_rf package.srcdir
165
+ retry
166
+ end
138
167
  end
168
+
169
+ patch(package)
139
170
  package.updated = true
140
- rescue Autobuild::Exception => e
141
- FileUtils.rm_rf package.srcdir
142
- fallback(e, package, :import, package)
171
+ rescue Interrupt
172
+ raise
143
173
  rescue ::Exception
144
174
  package.message "checkout of %s failed, deleting the source directory #{package.srcdir}"
145
175
  FileUtils.rm_rf package.srcdir
146
176
  raise
177
+ rescue Autobuild::Exception => e
178
+ FileUtils.rm_rf package.srcdir
179
+ fallback(e, package, :import, package)
147
180
  end
148
181
 
149
182
  # Performs the import of +package+
@@ -155,7 +188,7 @@ class Importer
155
188
  perform_update(package)
156
189
  else
157
190
  if Autobuild.verbose
158
- puts " not updating #{package.name}"
191
+ package.message "%s: not updating"
159
192
  end
160
193
  return
161
194
  end
@@ -273,6 +273,18 @@ module Autobuild
273
273
  msg
274
274
  end
275
275
 
276
+ # Display a progress message. %s in the string is replaced by the
277
+ # package name
278
+ def warn(warning_string)
279
+ message(" WARN: #{warning_string}", :magenta)
280
+ end
281
+
282
+ # Display a progress message. %s in the string is replaced by the
283
+ # package name
284
+ def error(error_string)
285
+ message(" ERROR: #{error_string}", :red, :bold)
286
+ end
287
+
276
288
  # Display a progress message. %s in the string is replaced by the
277
289
  # package name
278
290
  def message(*args)
@@ -366,9 +378,7 @@ module Autobuild
366
378
  @installed_doc = false
367
379
  catch(:doc_disabled) do
368
380
  begin
369
- Dir.chdir(srcdir) do
370
- yield if block_given?
371
- end
381
+ yield if block_given?
372
382
 
373
383
  unless @installed_doc
374
384
  install_doc
@@ -380,11 +390,11 @@ module Autobuild
380
390
  if Autobuild.doc_errors
381
391
  raise
382
392
  else
383
- STDERR.puts "W: failed to generate documentation for #{name}"
393
+ warn "%s: failed to generate documentation"
384
394
  if e.kind_of?(SubcommandFailed)
385
- STDERR.puts "W: see #{e.logfile} for more details"
395
+ warn "%s: see #{e.logfile} for more details"
386
396
  else
387
- STDERR.puts "W: #{e.message}"
397
+ warn "%s: #{e.message}"
388
398
  end
389
399
  end
390
400
  end
@@ -464,7 +474,7 @@ module Autobuild
464
474
  next if @dependencies.include?(pkg.name)
465
475
 
466
476
  if Autobuild.verbose
467
- STDERR.puts " #{name} depends on #{pkg.name}"
477
+ Autobuild.message "#{name} depends on #{pkg.name}"
468
478
  end
469
479
 
470
480
  task "#{name}-import" => "#{pkg.name}-import"
@@ -486,7 +496,7 @@ module Autobuild
486
496
  @@provides[p] = self
487
497
 
488
498
  if Autobuild.verbose
489
- STDERR.puts " #{name} provides #{p}"
499
+ Autobuild.message "#{name} provides #{p}"
490
500
  end
491
501
 
492
502
  task p => name
@@ -40,12 +40,10 @@ module Autobuild
40
40
  def with_doc(target = 'doc')
41
41
  task "#{name}-doc" => configurestamp
42
42
  doc_task do
43
- in_dir(builddir) do
44
- progress_start "generating documentation for %s" do
45
- Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target)
46
- end
47
- yield if block_given?
43
+ progress_start "generating documentation for %s" do
44
+ Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target, :working_directory => builddir)
48
45
  end
46
+ yield if block_given?
49
47
  end
50
48
  end
51
49
 
@@ -165,7 +163,7 @@ module Autobuild
165
163
  new_opt = testflags.find { |o| !options.include?(o) }
166
164
  if old_opt || new_opt
167
165
  if Autobuild.verbose
168
- STDERR.puts " forcing reconfiguration of #{name} (#{old_opt} != #{new_opt})"
166
+ Autobuild.message "forcing reconfiguration of #{name} (#{old_opt} != #{new_opt})"
169
167
  end
170
168
  FileUtils.rm_f configurestamp # to force reconfiguration
171
169
  end
@@ -162,7 +162,6 @@ module Autobuild
162
162
 
163
163
  doxyfile_in = File.join(srcdir, "Doxyfile.in")
164
164
  if !File.file?(doxyfile_in)
165
- puts "NO INTERNAL: #{name}"
166
165
  return false
167
166
  end
168
167
  File.readlines(doxyfile_in).each do |line|
@@ -272,7 +271,7 @@ module Autobuild
272
271
  old_value = cache_line.split("=")[1].chomp if cache_line
273
272
  if !old_value || !equivalent_option_value?(old_value, value)
274
273
  if Autobuild.debug
275
- puts "option '#{name}' changed value: '#{old_value}' => '#{value}'"
274
+ message "%s: option '#{name}' changed value: '#{old_value}' => '#{value}'"
276
275
  end
277
276
  if old_value
278
277
  message "%s: changed value of #{name} from #{old_value} to #{value}"
@@ -285,7 +284,7 @@ module Autobuild
285
284
  end
286
285
  if did_change
287
286
  if Autobuild.debug
288
- puts "CMake configuration changed, forcing a reconfigure"
287
+ message "%s: CMake configuration changed, forcing a reconfigure"
289
288
  end
290
289
  FileUtils.rm_f cmake_cache
291
290
  end
@@ -67,7 +67,7 @@ module Autobuild
67
67
  currentBuffer = nil
68
68
  elsif currentBuffer =~ /^\s*(?:codels_)?requires.*;$/
69
69
  # Check that the regexp is not too strict
70
- STDERR.puts "failed to match #{currentBuffer}"
70
+ warn "%s: failed to match #{currentBuffer}"
71
71
  end
72
72
  end
73
73
  end
@@ -198,7 +198,7 @@ module Autobuild
198
198
  # and if so add it into our dependency list
199
199
  if rtt = Autobuild::Package["pkgconfig/orocos-rtt-#{orocos_target}"]
200
200
  if Autobuild.verbose
201
- STDERR.puts "orogen: found #{rtt.name} which provides the RTT"
201
+ message "orogen: found #{rtt.name} which provides the RTT"
202
202
  end
203
203
  depends_on rtt.name
204
204
  end
@@ -42,13 +42,9 @@ module Autobuild
42
42
 
43
43
  def process_finished_task(task, processed, queue)
44
44
  processed << task
45
- #puts "finished #{task} (#{task.object_id}), considering dependencies"
46
45
  reverse_dependencies[task].each do |candidate|
47
46
  if candidate.prerequisite_tasks.all? { |t| processed.include?(t) }
48
- #puts " adding #{candidate}"
49
47
  queue << candidate
50
- else
51
- #puts " rejecting #{candidate} (#{candidate.prerequisite_tasks.find_all { |t| !processed.include?(t) }.map(&:name).join(", ")})"
52
48
  end
53
49
  end
54
50
  end
@@ -70,7 +66,6 @@ module Autobuild
70
66
 
71
67
  def discover_dependencies(t)
72
68
  return if tasks.include?(t) # already discovered or being discovered
73
- #puts "adding #{t}"
74
69
  tasks << t
75
70
 
76
71
  t.prerequisite_tasks.each do |dep_t|
@@ -88,12 +83,6 @@ module Autobuild
88
83
  discover_dependencies(t)
89
84
  end
90
85
  @roots = tasks.find_all { |t| t.prerequisite_tasks.empty? }.to_set
91
-
92
- #puts "roots:"
93
- roots.each do |t|
94
- #puts " #{t}"
95
- end
96
- #puts
97
86
 
98
87
  # Build a reverse dependency graph (i.e. a mapping from a task to
99
88
  # the tasks that depend on it)
@@ -122,7 +111,6 @@ module Autobuild
122
111
  end
123
112
 
124
113
  pending_task = queue.pop
125
- #puts "#{processed.size} tasks processed so far, #{tasks.size} total"
126
114
  if pending_task.instance_variable_get(:@already_invoked) || !pending_task.needed?
127
115
  process_finished_task(pending_task, processed, queue)
128
116
  next
@@ -144,20 +132,11 @@ module Autobuild
144
132
  end
145
133
 
146
134
  worker = available_workers.pop
147
- #puts "queueing #{pending_task}"
148
135
  worker.queue(pending_task)
149
136
  end
150
137
 
151
138
  if processed.size != tasks.size
152
139
  with_cycle = tasks.to_set
153
- (tasks.to_set - processed).each do |pending_task|
154
- pending_task.prerequisite_tasks.each do |t|
155
- if !processed.include?(t)
156
- #puts "#{pending_task} => #{t}"
157
- end
158
- end
159
- end
160
- raise "cycle in task graph"
161
140
  raise "cycle in task graph: #{with_cycle.map(&:name).sort.join(", ")}"
162
141
  end
163
142
  end
@@ -32,6 +32,17 @@ module Autobuild
32
32
  end
33
33
  @progress_messages = Array.new
34
34
 
35
+ # Displays an error message
36
+ def self.error(message)
37
+ Autoproj.message(" ERROR: #{message}", :red, :bold)
38
+ end
39
+
40
+ # Displays a warning message
41
+ def self.warn(message)
42
+ Autoproj.message(" WARN: #{message}", :magenta)
43
+ end
44
+
45
+
35
46
  def self.progress_start(key, *args)
36
47
  if args.last.kind_of?(Hash)
37
48
  options = Kernel.validate_options args.pop, :done_message => nil
@@ -76,7 +87,7 @@ module Autobuild
76
87
  found = true
77
88
  end
78
89
  end
79
- if found
90
+ if found && @last_progress_msg
80
91
  puts
81
92
  display_progress
82
93
  end
@@ -110,7 +110,7 @@ module Autobuild
110
110
  # If the cpuinfo detection fails, inform the user and set it to 1
111
111
  if !@processor_count
112
112
  # Hug... What kind of system is it ?
113
- STDERR.puts "INFO: cannot autodetect the number of CPUs on this sytem"
113
+ Autobuild.message "INFO: cannot autodetect the number of CPUs on this sytem"
114
114
  @processor_count = 1
115
115
  end
116
116
 
@@ -168,7 +168,7 @@ module Autobuild::Subprocess
168
168
  end
169
169
 
170
170
  if Autobuild.verbose
171
- puts "#{target_name}: running #{command.join(" ")}\n (output goes to #{logname})"
171
+ Autobuild.message "#{target_name}: running #{command.join(" ")}\n (output goes to #{logname})"
172
172
  end
173
173
 
174
174
  open_flag = if Autobuild.keep_oldlogs then 'a'
@@ -32,7 +32,7 @@ module Autobuild
32
32
  exclude.each { |rx| raise unless Regexp === rx }
33
33
  exclude << (/#{Regexp.quote(STAMPFILE)}$/)
34
34
 
35
- puts "getting tree timestamp for #{path}" if Autobuild.debug
35
+ Autobuild.message "getting tree timestamp for #{path}" if Autobuild.debug
36
36
  latest = Time.at(0)
37
37
  latest_file = ""
38
38
 
@@ -40,7 +40,7 @@ module Autobuild
40
40
  Find.prune if File.basename(p) =~ /^\./
41
41
  exclude.each { |pattern|
42
42
  if p =~ pattern
43
- puts " excluding #{p}" if Autobuild.debug
43
+ Autobuild.message " excluding #{p}" if Autobuild.debug
44
44
  Find.prune
45
45
  end
46
46
  }
@@ -53,7 +53,7 @@ module Autobuild
53
53
  end
54
54
  }
55
55
 
56
- puts " newest file: #{latest_file} at #{latest}" if Autobuild.debug
56
+ Autobuild.message " newest file: #{latest_file} at #{latest}" if Autobuild.debug
57
57
  return latest_file, latest
58
58
  end
59
59
 
@@ -97,7 +97,7 @@ module Autobuild
97
97
  end
98
98
 
99
99
  def self.touch_stamp(stampfile)
100
- puts "Touching #{stampfile}" if Autobuild.debug
100
+ Autobuild.message "Touching #{stampfile}" if Autobuild.debug
101
101
  dir = File.dirname(stampfile)
102
102
  if File.exists?(dir) && !File.directory?(dir)
103
103
  raise "#{dir} exists and is not a directory"
@@ -1,5 +1,5 @@
1
1
  module Autobuild
2
- VERSION = "1.6.1" unless defined? Autobuild::VERSION
2
+ VERSION = "1.6.2.b1" unless defined? Autobuild::VERSION
3
3
  end
4
4
 
5
5
 
metadata CHANGED
@@ -1,95 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: autobuild
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
6
- segments:
7
- - 1
8
- - 6
9
- - 1
10
- version: 1.6.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.2.b1
5
+ prerelease: 6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Sylvain Joyeux
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-09-18 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-09-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &17029640 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- - 7
32
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 0.7.0
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: utilrb
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *17029640
25
+ - !ruby/object:Gem::Dependency
26
+ name: utilrb
27
+ requirement: &17029140 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 29
45
- segments:
46
- - 1
47
- - 3
48
- - 3
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
49
32
  version: 1.3.3
50
33
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rdoc
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *17029140
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &17028600 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
40
+ requirements:
58
41
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 19
61
- segments:
62
- - 3
63
- - 10
64
- version: "3.10"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.10'
65
44
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: hoe
69
45
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *17028600
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: &17028140 !ruby/object:Gem::Requirement
71
50
  none: false
72
- requirements:
51
+ requirements:
73
52
  - - ~>
74
- - !ruby/object:Gem::Version
75
- hash: 7
76
- segments:
77
- - 3
78
- - 0
79
- version: "3.0"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
80
55
  type: :development
81
- version_requirements: *id004
82
- description: Collection of classes to handle build systems (CMake, autotools, ...) and import mechanisms (tarballs, CVS, SVN, git, ...). It also offers a Rake integration to import and build such software packages. It is the backbone of the autoproj (http://rock-robotics.org/autoproj) integrated software project management tool.
56
+ prerelease: false
57
+ version_requirements: *17028140
58
+ description: Collection of classes to handle build systems (CMake, autotools, ...)
59
+ and import mechanisms (tarballs, CVS, SVN, git, ...). It also offers a Rake integration
60
+ to import and build such software packages. It is the backbone of the autoproj (http://rock-robotics.org/autoproj)
61
+ integrated software project management tool.
83
62
  email: rock-dev@dfki.de
84
- executables:
63
+ executables:
85
64
  - autobuild
86
65
  extensions: []
87
-
88
- extra_rdoc_files:
66
+ extra_rdoc_files:
89
67
  - Changes.txt
90
68
  - Manifest.txt
91
69
  - README.txt
92
- files:
70
+ files:
93
71
  - Changes.txt
94
72
  - Manifest.txt
95
73
  - README.txt
@@ -135,40 +113,32 @@ files:
135
113
  - .gemtest
136
114
  homepage: http://rock-robotics.org/stable/documentation/autoproj
137
115
  licenses: []
138
-
139
116
  post_install_message:
140
- rdoc_options:
117
+ rdoc_options:
141
118
  - --main
142
119
  - README.txt
143
- require_paths:
120
+ require_paths:
144
121
  - lib
145
- required_ruby_version: !ruby/object:Gem::Requirement
122
+ required_ruby_version: !ruby/object:Gem::Requirement
146
123
  none: false
147
- requirements:
148
- - - ">="
149
- - !ruby/object:Gem::Version
150
- hash: 3
151
- segments:
152
- - 0
153
- version: "0"
154
- required_rubygems_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
129
  none: false
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- hash: 3
160
- segments:
161
- - 0
162
- version: "0"
130
+ requirements:
131
+ - - ! '>'
132
+ - !ruby/object:Gem::Version
133
+ version: 1.3.1
163
134
  requirements: []
164
-
165
135
  rubyforge_project: autobuild
166
- rubygems_version: 1.8.24
136
+ rubygems_version: 1.8.11
167
137
  signing_key:
168
138
  specification_version: 3
169
139
  summary: Library to handle build systems and import mechanisms
170
- test_files:
140
+ test_files:
141
+ - test/test_import_cvs.rb
142
+ - test/test_subcommand.rb
171
143
  - test/test_import_svn.rb
172
144
  - test/test_import_tar.rb
173
- - test/test_subcommand.rb
174
- - test/test_import_cvs.rb