autoproj 2.10.1 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -8
  3. data/.travis.yml +5 -3
  4. data/autoproj.gemspec +7 -6
  5. data/bin/alog +1 -0
  6. data/bin/autoproj +1 -1
  7. data/bin/autoproj_bootstrap +149 -86
  8. data/bin/autoproj_bootstrap.in +9 -7
  9. data/bin/autoproj_install +148 -82
  10. data/bin/autoproj_install.in +8 -3
  11. data/lib/autoproj.rb +3 -0
  12. data/lib/autoproj/aruba_minitest.rb +15 -0
  13. data/lib/autoproj/autobuild_extensions/dsl.rb +61 -27
  14. data/lib/autoproj/base.rb +35 -6
  15. data/lib/autoproj/cli/base.rb +1 -1
  16. data/lib/autoproj/cli/build.rb +9 -3
  17. data/lib/autoproj/cli/cache.rb +79 -7
  18. data/lib/autoproj/cli/doc.rb +4 -18
  19. data/lib/autoproj/cli/inspection_tool.rb +5 -6
  20. data/lib/autoproj/cli/main.rb +41 -18
  21. data/lib/autoproj/cli/main_doc.rb +86 -0
  22. data/lib/autoproj/cli/main_plugin.rb +3 -0
  23. data/lib/autoproj/cli/main_test.rb +15 -0
  24. data/lib/autoproj/cli/show.rb +12 -18
  25. data/lib/autoproj/cli/status.rb +15 -9
  26. data/lib/autoproj/cli/test.rb +13 -84
  27. data/lib/autoproj/cli/update.rb +77 -19
  28. data/lib/autoproj/cli/utility.rb +136 -0
  29. data/lib/autoproj/configuration.rb +28 -4
  30. data/lib/autoproj/default.osdeps +18 -0
  31. data/lib/autoproj/installation_manifest.rb +7 -5
  32. data/lib/autoproj/manifest.rb +15 -21
  33. data/lib/autoproj/ops/build.rb +23 -27
  34. data/lib/autoproj/ops/cache.rb +151 -33
  35. data/lib/autoproj/ops/cached_env.rb +2 -2
  36. data/lib/autoproj/ops/import.rb +146 -80
  37. data/lib/autoproj/ops/install.rb +140 -79
  38. data/lib/autoproj/ops/phase_reporting.rb +49 -0
  39. data/lib/autoproj/ops/snapshot.rb +2 -1
  40. data/lib/autoproj/ops/tools.rb +2 -2
  41. data/lib/autoproj/os_package_installer.rb +19 -11
  42. data/lib/autoproj/package_definition.rb +29 -10
  43. data/lib/autoproj/package_managers/apt_dpkg_manager.rb +49 -28
  44. data/lib/autoproj/package_managers/bundler_manager.rb +257 -87
  45. data/lib/autoproj/package_managers/homebrew_manager.rb +2 -2
  46. data/lib/autoproj/package_managers/shell_script_manager.rb +44 -24
  47. data/lib/autoproj/package_manifest.rb +49 -34
  48. data/lib/autoproj/package_set.rb +48 -29
  49. data/lib/autoproj/repository_managers/apt.rb +0 -1
  50. data/lib/autoproj/test.rb +29 -10
  51. data/lib/autoproj/variable_expansion.rb +3 -1
  52. data/lib/autoproj/vcs_definition.rb +30 -15
  53. data/lib/autoproj/version.rb +1 -1
  54. data/lib/autoproj/workspace.rb +55 -13
  55. metadata +32 -28
@@ -143,7 +143,6 @@ def key_exist?(key)
143
143
  Open3.popen3({'LANG' => 'C'}, 'apt-key', 'export', key) do |_, _, stderr, wait_thr|
144
144
  success = wait_thr.value.success?
145
145
  stderr = stderr.read
146
- puts stderr.inspect
147
146
  has_error = stderr.match(/WARNING: nothing exported/)
148
147
  exist = success && !has_error
149
148
  end
@@ -71,6 +71,7 @@ def setup
71
71
  Autobuild.logdir = make_tmpdir
72
72
  ws_define_package_manager 'os'
73
73
  ws_define_package_manager 'os_indep'
74
+ Autobuild.progress_display_period = 0
74
75
 
75
76
  super
76
77
  end
@@ -80,6 +81,7 @@ def teardown
80
81
  @tmpdir.each do |dir|
81
82
  FileUtils.remove_entry_secure dir
82
83
  end
84
+ Rake::Task.clear
83
85
  Autobuild::Package.clear
84
86
  Autoproj.silent = false
85
87
 
@@ -94,6 +96,11 @@ def teardown
94
96
  end
95
97
  end
96
98
 
99
+ def data_path(*args)
100
+ File.expand_path(File.join(*args),
101
+ File.join(__dir__, '..', '..', 'test', 'data'))
102
+ end
103
+
97
104
  def create_bootstrap
98
105
  ws_create
99
106
  end
@@ -170,7 +177,7 @@ def invoke_test_script(name, *arguments,
170
177
  'PACKAGE_BASE_DIR' => package_base_dir,
171
178
  'RUBY' => Gem.ruby
172
179
  ]
173
- result = Bundler.clean_system(
180
+ result = Autoproj.bundler_unbundled_system(
174
181
  default_env.merge(env), script, *arguments,
175
182
  in: :close, **Hash[chdir: dir].merge(system_options))
176
183
  end
@@ -201,7 +208,7 @@ def prepare_fixture_gem_home
201
208
  cached_bundler_gem = File.join(vendor, bundler_filename)
202
209
  unless File.file?(cached_bundler_gem)
203
210
  FileUtils.mkdir_p vendor
204
- Bundler.clean_system(
211
+ Autoproj.bundler_unbundled_system(
205
212
  Ops::Install.guess_gem_program, 'fetch', '-v',
206
213
  Bundler::VERSION, 'bundler', chdir: vendor)
207
214
 
@@ -211,7 +218,7 @@ def prepare_fixture_gem_home
211
218
  end
212
219
 
213
220
  capture_subprocess_io do
214
- Bundler.clean_system(
221
+ Autoproj.bundler_unbundled_system(
215
222
  Hash['GEM_HOME' => fixture_gem_home, 'GEM_PATH' => nil],
216
223
  Ops::Install.guess_gem_program, 'install', '--no-document',
217
224
  cached_bundler_gem)
@@ -256,7 +263,7 @@ def capture_deprecation_message
256
263
 
257
264
  def find_bundled_gem_path(bundler, gem_name, gemfile)
258
265
  out_r, out_w = IO.pipe
259
- result = Bundler.clean_system(
266
+ result = Autoproj.bundler_unbundled_system(
260
267
  bundler, 'show', gem_name,
261
268
  out: out_w,
262
269
  chdir: File.dirname(gemfile))
@@ -316,6 +323,9 @@ def ws_create(dir = make_tmpdir, partial_config: false)
316
323
  ws.config.set 'gems_install_path', File.join(dir, 'gems')
317
324
  ws.prefix_dir = make_tmpdir
318
325
  ws.config.save
326
+
327
+ # Make a valid (albeit empty) Gemfile
328
+ File.open(File.join(ws.dot_autoproj_dir, 'Gemfile'), 'w').close
319
329
  ws
320
330
  end
321
331
 
@@ -323,8 +333,9 @@ def ws_clear_layout
323
333
  ws.manifest.clear_layout
324
334
  end
325
335
 
326
- def ws_define_package_set(name, vcs = VCSDefinition.from_raw(type: 'none'),
327
- **options)
336
+ def ws_define_package_set(
337
+ name, vcs = VCSDefinition.from_raw({ type: 'none' }), **options
338
+ )
328
339
  package_set = PackageSet.new(ws, vcs, name: name, **options)
329
340
  ws.manifest.register_package_set(package_set)
330
341
  package_set
@@ -341,8 +352,9 @@ def ws_create_local_package_set(name, path, source_data: Hash.new, **options)
341
352
  package_set
342
353
  end
343
354
 
344
- def ws_add_package_set_to_layout(name, vcs = VCSDefinition.from_raw(type: 'none'),
345
- **options)
355
+ def ws_add_package_set_to_layout(
356
+ name, vcs = VCSDefinition.from_raw({ type: 'none' }), **options
357
+ )
346
358
  package_set = ws_define_package_set(name, vcs, **options)
347
359
  ws.manifest.add_package_set_to_layout(package_set)
348
360
  package_set
@@ -367,9 +379,16 @@ def ws_add_osdep_entries_to_layout(entries)
367
379
 
368
380
  def ws_define_package(package_type, package_name,
369
381
  package_set: ws.manifest.main_package_set,
370
- create: true)
382
+ create: true, &block)
371
383
  package = Autobuild.send(package_type, package_name)
372
- package.srcdir = File.join(ws.root_dir, package_name.to_s)
384
+ ws_setup_package(
385
+ package, package_set: package_set, create: create, &block
386
+ )
387
+ end
388
+
389
+ def ws_setup_package(package, package_set: ws.manifest.main_package_set,
390
+ create: true)
391
+ package.srcdir = File.join(ws.root_dir, package.name.to_s)
373
392
  FileUtils.mkdir_p package.srcdir if create
374
393
  autoproj_package = ws.register_package(package, nil, package_set)
375
394
  yield(package) if block_given?
@@ -80,7 +80,9 @@ def self.expand(value, definitions = Hash.new)
80
80
  end
81
81
 
82
82
  # True if the given string contains expansions
83
- def self.contains_expansion?(string); string =~ /\$/ end
83
+ def self.contains_expansion?(string)
84
+ string.respond_to?(:to_str) && string.to_str =~ /\$/
85
+ end
84
86
 
85
87
  def self.resolve_one_constant(name, value, result, definitions)
86
88
  result[name] ||= single_expansion(value, result) do |missing_name|
@@ -33,7 +33,7 @@ class VCSDefinition
33
33
  HistoryEntry = Struct.new :package_set, :vcs
34
34
  RawEntry = Struct.new :package_set, :file, :vcs
35
35
 
36
- def initialize(type, url, vcs_options, from: nil, raw: Array.new, history: Array.new)
36
+ def initialize(type, url, vcs_options, from: nil, raw: [], history: [])
37
37
  if !raw.respond_to?(:to_ary)
38
38
  raise ArgumentError, "wrong format for the raw field (#{raw.inspect})"
39
39
  end
@@ -49,7 +49,7 @@ def initialize(type, url, vcs_options, from: nil, raw: Array.new, history: Array
49
49
 
50
50
  # Create a null VCS object
51
51
  def self.none
52
- from_raw(type: 'none')
52
+ from_raw({ type: 'none' })
53
53
  end
54
54
 
55
55
  # Whether there is actually a version control definition
@@ -113,6 +113,8 @@ def self.update_raw_vcs_spec(old, new)
113
113
  #
114
114
  # - package_name
115
115
  # branch: value
116
+ #
117
+ # @raise ArgumentError if the given spec cannot be normalized
116
118
  def self.normalize_vcs_hash(spec, base_dir: nil)
117
119
  plain = Array.new
118
120
  filtered_spec = Hash.new
@@ -130,7 +132,7 @@ def self.normalize_vcs_hash(spec, base_dir: nil)
130
132
  end
131
133
 
132
134
  if plain.size > 1
133
- raise ConfigError.new, "invalid syntax"
135
+ raise ArgumentError, "invalid syntax"
134
136
  elsif plain.size == 1
135
137
  short_url = plain.first
136
138
  vcs, *url = short_url.split(':')
@@ -149,10 +151,14 @@ def self.normalize_vcs_hash(spec, base_dir: nil)
149
151
  elsif base_dir
150
152
  File.expand_path(short_url, base_dir)
151
153
  else
152
- raise ArgumentError, "VCS path '#{short_url}' is relative and no base_dir was given"
154
+ raise ArgumentError,
155
+ "VCS path '#{short_url}' is relative and no "\
156
+ "base_dir was given"
153
157
  end
154
158
  if !File.directory?(source_dir)
155
- raise ArgumentError, "'#{short_url}' is neither a remote source specification, nor an existing local directory"
159
+ raise ArgumentError,
160
+ "'#{short_url}' is neither a remote source "\
161
+ 'specification, nor an existing local directory'
156
162
  end
157
163
  spec.merge!(type: 'local', url: source_dir)
158
164
  end
@@ -193,17 +199,26 @@ def self.raw_spec_to_s(spec)
193
199
  # @return [VCSDefinition]
194
200
  # @raise ArgumentError if the raw specification does not match an
195
201
  # expected format
196
- def self.from_raw(spec, from: nil, raw: Array.new, history: Array.new)
202
+ def self.from_raw(spec, from: nil, raw: [], history: [])
197
203
  normalized_spec = normalize_vcs_hash(spec)
198
204
  if !(type = normalized_spec.delete(:type))
199
- raise ArgumentError, "the source specification #{raw_spec_to_s(spec)} normalizes into #{raw_spec_to_s(normalized_spec)}, which does not have a VCS type"
200
- elsif !(url = normalized_spec.delete(:url))
201
- if type != 'none'
202
- raise ArgumentError, "the source specification #{raw_spec_to_s(spec)} normalizes into #{raw_spec_to_s(normalized_spec)}, which does not have a URL. Only VCS of type 'none' do not require one"
203
- end
205
+ raise ArgumentError,
206
+ "the source specification #{raw_spec_to_s(spec)} normalizes "\
207
+ "into #{raw_spec_to_s(normalized_spec)}, "\
208
+ 'which does not have a VCS type'
204
209
  end
205
210
 
206
- VCSDefinition.new(type, url, normalized_spec, from: from, history: history, raw: raw)
211
+ if !(url = normalized_spec.delete(:url)) && type != 'none'
212
+ raise ArgumentError,
213
+ "the source specification #{raw_spec_to_s(spec)} normalizes "\
214
+ "into #{raw_spec_to_s(normalized_spec)}, "\
215
+ 'which does not have a URL. '\
216
+ 'Only VCS of type \'none\' do not require one'
217
+ end
218
+
219
+ VCSDefinition.new(
220
+ type, url, normalized_spec, from: from, history: history, raw: raw
221
+ )
207
222
  end
208
223
 
209
224
  def ==(other_vcs)
@@ -274,7 +289,7 @@ def create_autobuild_importer
274
289
  end
275
290
 
276
291
  # Returns a pretty representation of this VCS definition
277
- def to_s
292
+ def to_s
278
293
  if type == "none"
279
294
  "none"
280
295
  else
@@ -305,7 +320,7 @@ def self.call_source_handler(vcs, url, options)
305
320
  if !handler
306
321
  raise ArgumentError, "there is no source handler for #{vcs}"
307
322
  else
308
- return handler.call(url, options)
323
+ handler.call(url, **options)
309
324
  end
310
325
  end
311
326
 
@@ -326,7 +341,7 @@ def self.call_source_handler(vcs, url, options)
326
341
  # - tools/orocos.rb:
327
342
  # github: rock-core/base-types
328
343
  # branch: test
329
- #
344
+ #
330
345
  # @yieldparam [String] url the url given to the handler
331
346
  # @yieldparam [Hash] the rest of the VCS hash
332
347
  # @return [Hash] a VCS hash with the information expanded
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "2.10.1"
2
+ VERSION = "2.13.0"
3
3
  end
@@ -243,7 +243,16 @@ def overrides_dir
243
243
  File.join(config_dir, OVERRIDES_DIR)
244
244
  end
245
245
 
246
- BUILD_REPORT_BASENAME = "build_report.json"
246
+ IMPORT_REPORT_BASENAME = "import_report.json".freeze
247
+
248
+ # The full path to the update report
249
+ #
250
+ # @return [String]
251
+ def import_report_path
252
+ File.join(log_dir, IMPORT_REPORT_BASENAME)
253
+ end
254
+
255
+ BUILD_REPORT_BASENAME = "build_report.json".freeze
247
256
 
248
257
  # The full path to the build report
249
258
  #
@@ -252,6 +261,13 @@ def build_report_path
252
261
  File.join(log_dir, BUILD_REPORT_BASENAME)
253
262
  end
254
263
 
264
+ # The full path to the report generated by the given utility
265
+ #
266
+ # @return [String]
267
+ def utility_report_path(name)
268
+ File.join(log_dir, "#{name}_report.json")
269
+ end
270
+
255
271
  # Load the configuration for this workspace from
256
272
  # config_file_path
257
273
  #
@@ -266,7 +282,8 @@ def load_config(reconfigure = false)
266
282
  if (raw_vcs = config.get('manifest_source', nil))
267
283
  VCSDefinition.from_raw(raw_vcs)
268
284
  else
269
- VCSDefinition.from_raw(type: 'local', url: config_dir)
285
+ local_vcs = { type: 'local', url: config_dir }
286
+ VCSDefinition.from_raw(local_vcs)
270
287
  end
271
288
 
272
289
  if config.source_dir && Pathname.new(config.source_dir).absolute?
@@ -290,14 +307,18 @@ def save_config
290
307
  def autodetect_operating_system(force: false)
291
308
  if force || !os_package_resolver.operating_system
292
309
  begin
293
- Autobuild.progress_start :operating_system_autodetection,
310
+ Autobuild.progress_start(
311
+ :operating_system_autodetection,
294
312
  "autodetecting the operating system"
313
+ )
295
314
  names, versions = OSPackageResolver.autodetect_operating_system
296
315
  os_package_resolver.operating_system = [names, versions]
297
316
  os_repository_resolver.operating_system = [names, versions]
298
- Autobuild.progress :operating_system_autodetection,
317
+ Autobuild.progress(
318
+ :operating_system_autodetection,
299
319
  "operating system: #{(names - ['default']).join(',')} -"\
300
320
  " #{(versions - ['default']).join(',')}"
321
+ )
301
322
  ensure
302
323
  Autobuild.progress_done :operating_system_autodetection
303
324
  end
@@ -354,6 +375,14 @@ def setup
354
375
  Autobuild.logdir = log_dir
355
376
  if (cache_dir = config.importer_cache_dir)
356
377
  Autobuild::Importer.default_cache_dirs = cache_dir
378
+ os_package_installer.each_manager_with_name do |name, manager|
379
+ next unless manager.respond_to?(:cache_dir=)
380
+
381
+ manager_cache_path = File.join(cache_dir, 'package_managers', name)
382
+ if File.directory?(manager_cache_path)
383
+ manager.cache_dir = manager_cache_path
384
+ end
385
+ end
357
386
  end
358
387
  setup_os_package_installer
359
388
  install_ruby_shims
@@ -392,7 +421,7 @@ def rewrite_shims
392
421
  gemfile = File.join(dot_autoproj_dir, 'Gemfile')
393
422
  binstubs = File.join(dot_autoproj_dir, 'bin')
394
423
  Ops::Install.rewrite_shims(binstubs, config.ruby_executable,
395
- root_dir, gemfile, config.gems_gem_home)
424
+ root_dir, gemfile, config.gems_gem_home)
396
425
  end
397
426
 
398
427
  def update_bundler
@@ -400,7 +429,11 @@ def update_bundler
400
429
  gem_program = Ops::Install.guess_gem_program
401
430
  install = Ops::Install.new(root_dir)
402
431
  Autoproj.message " updating bundler"
403
- install.install_bundler(gem_program, silent: true)
432
+ install.install_bundler(
433
+ gem_program,
434
+ version: config.bundler_version,
435
+ silent: true
436
+ )
404
437
  end
405
438
 
406
439
  def update_autoproj(restart_on_update: true)
@@ -414,18 +447,21 @@ def update_autoproj(restart_on_update: true)
414
447
  binstubs = File.join(dot_autoproj_dir, 'bin')
415
448
  if restart_on_update
416
449
  old_autoproj_path = PackageManagers::BundlerManager.bundle_gem_path(
417
- self, 'autoproj', gem_home: config.gems_gem_home, gemfile: gemfile)
450
+ self, 'autoproj', gemfile: gemfile
451
+ )
418
452
  end
419
453
  begin
420
454
  Autoproj.message " updating autoproj"
421
455
  PackageManagers::BundlerManager.run_bundler_install(
422
- self, gemfile, binstubs: binstubs)
456
+ self, gemfile, binstubs: binstubs
457
+ )
423
458
  ensure
424
459
  rewrite_shims
425
460
  end
426
461
  if restart_on_update
427
462
  new_autoproj_path = PackageManagers::BundlerManager.bundle_gem_path(
428
- self, 'autoproj', gem_home: config.gems_gem_home, gemfile: gemfile)
463
+ self, 'autoproj', gemfile: gemfile
464
+ )
429
465
  end
430
466
 
431
467
  # First things first, see if we need to update ourselves
@@ -570,6 +606,10 @@ def register_workspace
570
606
  current_workspaces = Workspace.registered_workspaces
571
607
  existing = current_workspaces.find { |w| w.root_dir == root_dir }
572
608
  if existing
609
+ if existing.prefix_dir == prefix_dir && existing.build_dir == build_dir
610
+ return
611
+ end
612
+
573
613
  existing.prefix_dir = prefix_dir
574
614
  existing.build_dir = build_dir
575
615
  else
@@ -787,10 +827,12 @@ def all_os_packages(import_missing: false, parallel: config.parallel_import_leve
787
827
  if import_missing
788
828
  ops = Autoproj::Ops::Import.new(self)
789
829
  _, all_os_packages =
790
- ops.import_packages(manifest.default_packages,
791
- checkout_only: true, only_local: true, reset: false,
792
- recursive: true, keep_going: true, parallel: parallel,
793
- retry_count: 0)
830
+ ops.import_packages(
831
+ manifest.default_packages,
832
+ checkout_only: true, only_local: true, reset: false,
833
+ recursive: true, keep_going: true, parallel: parallel,
834
+ retry_count: 0
835
+ )
794
836
  all_os_packages
795
837
  else
796
838
  manifest.all_selected_osdep_packages
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.1
4
+ version: 2.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-03 00:00:00.000000000 Z
11
+ date: 2020-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.14.0
33
+ version: 1.21.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.14.0
40
+ version: 1.21.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: backports
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -78,82 +78,70 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 0.20.0
81
+ version: '1.0'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 0.20.0
88
+ version: '1.0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: concurrent-ruby
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 1.0.0
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: 1.0.0
95
+ version: '1.1'
99
96
  type: :runtime
100
97
  prerelease: false
101
98
  version_requirements: !ruby/object:Gem::Requirement
102
99
  requirements:
103
100
  - - "~>"
104
101
  - !ruby/object:Gem::Version
105
- version: 1.0.0
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: 1.0.0
102
+ version: '1.1'
109
103
  - !ruby/object:Gem::Dependency
110
104
  name: tty-color
111
105
  requirement: !ruby/object:Gem::Requirement
112
106
  requirements:
113
107
  - - "~>"
114
108
  - !ruby/object:Gem::Version
115
- version: 0.4.0
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 0.4.0
109
+ version: 0.5.0
119
110
  type: :runtime
120
111
  prerelease: false
121
112
  version_requirements: !ruby/object:Gem::Requirement
122
113
  requirements:
123
114
  - - "~>"
124
115
  - !ruby/object:Gem::Version
125
- version: 0.4.0
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: 0.4.0
116
+ version: 0.5.0
129
117
  - !ruby/object:Gem::Dependency
130
118
  name: tty-prompt
131
119
  requirement: !ruby/object:Gem::Requirement
132
120
  requirements:
133
121
  - - "~>"
134
122
  - !ruby/object:Gem::Version
135
- version: 0.15.0
123
+ version: 0.21.0
136
124
  type: :runtime
137
125
  prerelease: false
138
126
  version_requirements: !ruby/object:Gem::Requirement
139
127
  requirements:
140
128
  - - "~>"
141
129
  - !ruby/object:Gem::Version
142
- version: 0.15.0
130
+ version: 0.21.0
143
131
  - !ruby/object:Gem::Dependency
144
132
  name: tty-spinner
145
133
  requirement: !ruby/object:Gem::Requirement
146
134
  requirements:
147
135
  - - "~>"
148
136
  - !ruby/object:Gem::Version
149
- version: 0.8.0
137
+ version: 0.9.0
150
138
  type: :runtime
151
139
  prerelease: false
152
140
  version_requirements: !ruby/object:Gem::Requirement
153
141
  requirements:
154
142
  - - "~>"
155
143
  - !ruby/object:Gem::Version
156
- version: 0.8.0
144
+ version: 0.9.0
157
145
  - !ruby/object:Gem::Dependency
158
146
  name: rb-inotify
159
147
  requirement: !ruby/object:Gem::Requirement
@@ -264,6 +252,20 @@ dependencies:
264
252
  - - ">="
265
253
  - !ruby/object:Gem::Version
266
254
  version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: timecop
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
267
269
  description: autoproj is a manager for sets of software packages. It allows the user
268
270
  to import and build packages from source, still using the underlying distribution's
269
271
  native package manager for software that is available on it.
@@ -321,6 +323,7 @@ files:
321
323
  - lib/autoproj/cli/locate.rb
322
324
  - lib/autoproj/cli/log.rb
323
325
  - lib/autoproj/cli/main.rb
326
+ - lib/autoproj/cli/main_doc.rb
324
327
  - lib/autoproj/cli/main_global.rb
325
328
  - lib/autoproj/cli/main_plugin.rb
326
329
  - lib/autoproj/cli/main_test.rb
@@ -336,6 +339,7 @@ files:
336
339
  - lib/autoproj/cli/tag.rb
337
340
  - lib/autoproj/cli/test.rb
338
341
  - lib/autoproj/cli/update.rb
342
+ - lib/autoproj/cli/utility.rb
339
343
  - lib/autoproj/cli/version.rb
340
344
  - lib/autoproj/cli/versions.rb
341
345
  - lib/autoproj/cli/watch.rb
@@ -360,6 +364,7 @@ files:
360
364
  - lib/autoproj/ops/install.rb
361
365
  - lib/autoproj/ops/loader.rb
362
366
  - lib/autoproj/ops/main_config_switcher.rb
367
+ - lib/autoproj/ops/phase_reporting.rb
363
368
  - lib/autoproj/ops/snapshot.rb
364
369
  - lib/autoproj/ops/tools.rb
365
370
  - lib/autoproj/ops/watch.rb
@@ -449,8 +454,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
449
454
  - !ruby/object:Gem::Version
450
455
  version: '0'
451
456
  requirements: []
452
- rubyforge_project:
453
- rubygems_version: 2.7.6.2
457
+ rubygems_version: 3.1.2
454
458
  signing_key:
455
459
  specification_version: 4
456
460
  summary: Easy installation and management of sets of software packages