autoproj 1.3.2 → 1.3.3

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.
@@ -1,3 +1,9 @@
1
+ = Version 1.3.3
2
+ * Fix: some configuration options were not properly saved
3
+ * Fix: env.sh was messed up by partial builds (builds where a directory and/or
4
+ package name is specified)
5
+ * Fix: accept subdirectories of packages as argument to builds
6
+
1
7
  = Version 1.3.2
2
8
  * Fix: GEM_HOME/bin was not added to env.sh
3
9
 
@@ -507,17 +507,18 @@ report(debug) do
507
507
  Autoproj.load_if_present(source, source.local_dir, "overrides.rb")
508
508
  end
509
509
 
510
- # The user is asked for configuration values both during the manifest
511
- # loading and the loading of autobuild files. Save it now.
512
- Autoproj.save_config
513
-
514
510
  # Now, load the package's importer configurations (from the various
515
511
  # source.yml files)
516
512
  manifest.load_importers
513
+
514
+ # Configuration is finished, so all relevant configuration options should
515
+ # have been asked to the user. Save it.
516
+ Autoproj.save_config
517
+
517
518
  if Autoproj.verbose
518
519
  # List defined packages, and in which autobuild files they are defined
519
520
  STDERR.puts "Available packages:"
520
- Autoproj.manifest.packages.each_value do |package, source, file|
521
+ manifest.packages.each_value do |package, source, file|
521
522
  STDERR.puts " #{package.name}: #{file} from #{source.name}"
522
523
  end
523
524
  end
@@ -546,12 +547,12 @@ report(debug) do
546
547
 
547
548
  lines = []
548
549
  source.each_package.
549
- map { |pkg| [pkg.name, Autoproj.manifest.package_manifests[pkg.name]] }.
550
+ map { |pkg| [pkg.name, manifest.package_manifests[pkg.name]] }.
550
551
  sort_by { |name, _| name }.
551
- each do |name, manifest|
552
- vcs_def = Autoproj.manifest.importer_definition_for(name)
553
- if manifest
554
- lines << [name, manifest.short_documentation]
552
+ each do |name, source_manifest|
553
+ vcs_def = manifest.importer_definition_for(name)
554
+ if source_manifest
555
+ lines << [name, source_manifest.short_documentation]
555
556
  lines << ["", vcs_def.to_s]
556
557
  else
557
558
  lines << [name, vcs_def.to_s]
@@ -578,10 +579,7 @@ report(debug) do
578
579
  # Create the build target from the manifest if the user did not provide an
579
580
  # explicit one
580
581
  if selected_packages.empty?
581
- selected_packages = Autoproj.manifest.default_packages
582
- end
583
- if Autoproj.verbose
584
- STDERR.puts "will install #{selected_packages.to_a.join(", ")}"
582
+ selected_packages = manifest.default_packages
585
583
  end
586
584
  if selected_packages.empty? # no packages, terminate
587
585
  STDERR.puts
@@ -596,15 +594,20 @@ report(debug) do
596
594
  #
597
595
  # First, we allow to user to specify packages based on disk paths, so
598
596
  # resolve those
599
- selected_packages = Autoproj.manifest.expand_package_selection(selected_packages)
597
+ selected_packages = manifest.expand_package_selection(selected_packages)
598
+ if selected_packages.empty?
599
+ STDERR.puts color("autoproj: wrong packages selection on command line", :red)
600
+ exit 0
601
+ elsif Autoproj.verbose
602
+ STDERR.puts "will install #{selected_packages.to_a.join(", ")}"
603
+ end
600
604
  seen = Set.new
601
- Autoproj.manifest.each_package_set do |name, packages, enabled_packages|
605
+ manifest.each_package_set do |name, packages, enabled_packages|
602
606
  packages -= seen
603
607
 
604
608
  srcdir = File.join(Autoproj.root_dir, name)
605
609
  prefix = File.join(Autoproj.build_dir, name)
606
610
  logdir = File.join(prefix, "log")
607
- Autobuild.logdir = logdir
608
611
  packages.each do |pkg_name|
609
612
  pkg = Autobuild::Package[pkg_name]
610
613
  pkg.srcdir = File.join(srcdir, pkg_name)
@@ -617,7 +620,7 @@ report(debug) do
617
620
  if only_do_status
618
621
  STDERR.puts
619
622
  all_packages = Set.new
620
- Autoproj.manifest.handle_enabled_packages(selected_packages) do |name, _, layout_enabled|
623
+ manifest.handle_enabled_packages(selected_packages) do |name, _, layout_enabled|
621
624
  all_packages |= layout_enabled
622
625
  end
623
626
  do_status(all_packages)
@@ -642,7 +645,7 @@ report(debug) do
642
645
  # Otherwise, it is considered as an error
643
646
  #
644
647
  seen = Set.new
645
- Autoproj.manifest.each_package_set do |name, packages, enabled_packages|
648
+ manifest.each_package_set do |name, packages, enabled_packages|
646
649
  packages -= seen
647
650
 
648
651
  old_update_flag = Autobuild.do_update
@@ -664,7 +667,7 @@ report(debug) do
664
667
  all_packages = Set.new
665
668
  all_enabled_packages = Set.new
666
669
  all_sublayouts = Set.new
667
- Autoproj.manifest.handle_enabled_packages(selected_packages) do |name, packages, enabled_packages, _|
670
+ manifest.handle_enabled_packages(selected_packages) do |name, packages, enabled_packages, _|
668
671
  packages -= all_enabled_packages
669
672
  enabled_packages -= all_enabled_packages
670
673
  all_sublayouts << name
@@ -691,8 +694,8 @@ report(debug) do
691
694
  packages_to_import << dep_name
692
695
  end
693
696
  end
694
- all_packages.merge(packages)
695
697
  end
698
+ all_packages.merge(packages)
696
699
  end
697
700
 
698
701
  old_update_flag = Autobuild.do_update
@@ -707,7 +710,11 @@ report(debug) do
707
710
  Autobuild.do_update = old_update_flag
708
711
  end
709
712
 
710
- missing_packages = all_packages.find_all { |pkg_name| !File.directory?(Autobuild::Package[pkg_name].srcdir) }
713
+ missing_packages = all_packages.
714
+ find_all do |pkg_name|
715
+ !File.directory?(Autobuild::Package[pkg_name].srcdir)
716
+ end
717
+
711
718
  if missing_packages.empty?
712
719
  # Backward compatibility: check if name/env.sh exists, and if it is
713
720
  # the case, simply replace it with a link to the root one. And issue
@@ -740,6 +747,8 @@ report(debug) do
740
747
  end
741
748
 
742
749
  Autobuild.apply(all_enabled_packages, "autoproj-build")
750
+ elsif !no_os_deps
751
+ manifest.install_os_dependencies(all_enabled_packages)
743
752
  end
744
753
 
745
754
  prefixes = all_enabled_packages.inject(Set.new) do |set, pkg_name|
@@ -955,17 +955,11 @@ module Autoproj
955
955
  pkg.name
956
956
  end
957
957
 
958
- selected_packages = selected_packages.map do |sel|
959
- if sel[0] == ?/ # anchored selection
960
- /^#{sel}/
961
- else
962
- Regexp.new(sel)
963
- end
964
- end
965
-
966
958
  # First, remove packages that are directly referenced by name or by
967
959
  # package set names
968
960
  selected_packages.delete_if do |sel|
961
+ sel = Regexp.new(Regexp.quote(sel))
962
+
969
963
  packages = package_names.find_all { |pkg_name| pkg_name =~ sel }
970
964
  expanded_packages.concat(packages)
971
965
 
@@ -988,7 +982,7 @@ module Autoproj
988
982
  expanded_packages.concat(packages.to_a)
989
983
  else
990
984
  packages = packages.find_all do |pkg_name|
991
- (layout_name + pkg_name) =~ sel
985
+ sel =~ Regexp.new(Regexp.quote(layout_name + pkg_name))
992
986
  end
993
987
  expanded_packages.concat(packages)
994
988
  !packages.empty?
@@ -13,12 +13,14 @@ module Autoproj
13
13
  end
14
14
  AUTOPROJ_OSDEPS = File.join(File.expand_path(File.dirname(__FILE__)), 'default.osdeps')
15
15
  def self.load_default
16
- OSDependencies.load(AUTOPROJ_OSDEPS)
16
+ @default_osdeps ||= OSDependencies.load(AUTOPROJ_OSDEPS)
17
17
  end
18
18
 
19
19
  attr_reader :definitions
20
+ attr_reader :gem_fetcher
20
21
  def initialize(defs = Hash.new)
21
22
  @definitions = defs.to_hash
23
+ @gem_fetcher = Gem::SpecFetcher.fetcher
22
24
  end
23
25
 
24
26
  def merge(info)
@@ -203,21 +205,22 @@ module Autoproj
203
205
  did_something ||= true
204
206
  end
205
207
 
206
- # Don't install gems that are already there ...
207
- gems.delete_if do |name|
208
- version_requirements = Gem::Requirement.default
209
- installed = Gem.source_index.find_name(name, version_requirements)
210
- if !installed.empty? && Autobuild.do_update
211
- # Look if we can update the package ...
212
- dep = Gem::Dependency.new(name, version_requirements)
213
- remote = Gem::SpecFetcher.fetcher
214
- available = remote.find_matching(dep)
215
- installed_version = installed.map(&:version).max
216
- available_version = available.map { |(name, v), source| v }.max
217
- needs_update = (available_version > installed_version)
218
- !needs_update
219
- else
220
- !installed.empty?
208
+ if !gems.empty?
209
+ # Don't install gems that are already there ...
210
+ gems.delete_if do |name|
211
+ version_requirements = Gem::Requirement.default
212
+ installed = Gem.source_index.find_name(name, version_requirements)
213
+ if !installed.empty? && Autobuild.do_update
214
+ # Look if we can update the package ...
215
+ dep = Gem::Dependency.new(name, version_requirements)
216
+ available = @gem_fetcher.find_matching(dep)
217
+ installed_version = installed.map(&:version).max
218
+ available_version = available.map { |(name, v), source| v }.max
219
+ needs_update = (available_version > installed_version)
220
+ !needs_update
221
+ else
222
+ !installed.empty?
223
+ end
221
224
  end
222
225
  end
223
226
 
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-24 00:00:00 +01:00
12
+ date: 2010-01-08 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency