autoproj 2.0.0.b7 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/.gitignore +8 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +6 -0
  6. data/README.md +4 -0
  7. data/Rakefile +40 -81
  8. data/autoproj.gemspec +29 -0
  9. data/lib/autoproj/cli/cache.rb +7 -2
  10. data/lib/autoproj/cli/main.rb +46 -25
  11. data/lib/autoproj/cli/main_test.rb +6 -4
  12. data/lib/autoproj/cli/status.rb +2 -2
  13. data/lib/autoproj/configuration.rb +5 -0
  14. data/lib/autoproj/git_server_configuration.rb +117 -0
  15. data/lib/autoproj/osdeps.rb +14 -914
  16. data/lib/autoproj/package_managers/apt_dpkg_manager.rb +70 -0
  17. data/lib/autoproj/package_managers/emerge_manager.rb +14 -0
  18. data/lib/autoproj/package_managers/gem_manager.rb +313 -0
  19. data/lib/autoproj/package_managers/homebrew_manager.rb +44 -0
  20. data/lib/autoproj/package_managers/manager.rb +45 -0
  21. data/lib/autoproj/package_managers/pacman_manager.rb +14 -0
  22. data/lib/autoproj/package_managers/pip_manager.rb +86 -0
  23. data/lib/autoproj/package_managers/pkg_manager.rb +14 -0
  24. data/lib/autoproj/package_managers/port_manager.rb +14 -0
  25. data/lib/autoproj/package_managers/shell_script_manager.rb +207 -0
  26. data/lib/autoproj/package_managers/unknown_os_manager.rb +42 -0
  27. data/lib/autoproj/package_managers/yum_manager.rb +56 -0
  28. data/lib/autoproj/package_managers/zypper_manager.rb +43 -0
  29. data/lib/autoproj/package_manifest.rb +1 -1
  30. data/lib/autoproj/test.rb +13 -14
  31. data/lib/autoproj/variable_expansion.rb +4 -2
  32. data/lib/autoproj/version.rb +1 -1
  33. data/lib/autoproj/workspace.rb +5 -1
  34. data/manifest.xml +20 -0
  35. metadata +73 -87
  36. data/.gemtest +0 -0
  37. data/Manifest.txt +0 -105
  38. data/test/data/empty_manifest.xml +0 -2
  39. data/test/data/full_manifest.xml +0 -19
  40. data/test/data/invalid_manifest.xml +0 -3
  41. data/test/data/os_release.with_complex_version_field +0 -3
  42. data/test/data/os_release.with_duplicate_values +0 -3
  43. data/test/data/os_release.with_missing_optional_fields +0 -2
  44. data/test/data/os_release.with_quoted_and_unquoted_fields +0 -2
  45. data/test/data/test_manifest/autoproj/local_set/local.autobuild +0 -0
  46. data/test/data/test_manifest/autoproj/local_set/source.yml +0 -1
  47. data/test/data/test_manifest/autoproj/manifest +0 -7
  48. data/test/ops/test_configuration.rb +0 -20
  49. data/test/ops/test_snapshot.rb +0 -26
  50. data/test/package_managers/apt-dpkg-status +0 -41
  51. data/test/package_managers/apt-dpkg-status.installed-last +0 -27
  52. data/test/package_managers/apt-dpkg-status.noninstalled-last +0 -12
  53. data/test/package_managers/test_apt_dpkg_manager.rb +0 -41
  54. data/test/package_managers/test_gem.rb +0 -156
  55. data/test/package_managers/test_pip.rb +0 -42
  56. data/test/test_manifest.rb +0 -48
  57. data/test/test_os_dependencies.rb +0 -586
  58. data/test/test_package.rb +0 -30
  59. data/test/test_package_manifest.rb +0 -65
  60. data/test/test_vcs_definition.rb +0 -46
@@ -110,7 +110,7 @@ def each_os_dependency(modes = Array.new, &block)
110
110
  return each_dependency(modes, &block)
111
111
  end
112
112
 
113
- def each_package_dependency(modes = Array.new)
113
+ def each_package_dependency(modes = Array.new, &block)
114
114
  Autoproj.warn "PackageManifest#each_os_dependency called, fix your code"
115
115
  return each_dependency(modes, &block)
116
116
  end
data/lib/autoproj/test.rb CHANGED
@@ -3,19 +3,21 @@
3
3
  if ENV['TEST_ENABLE_COVERAGE'] == '1'
4
4
  begin
5
5
  require 'simplecov'
6
- SimpleCov.start
6
+ SimpleCov.start do
7
+ add_filter "/test/"
8
+ end
7
9
  rescue LoadError
8
- require 'dummy_project'
10
+ require 'autoproj'
9
11
  Autoproj.warn "coverage is disabled because the 'simplecov' gem cannot be loaded"
10
12
  rescue Exception => e
11
- require 'dummy_project'
13
+ require 'autoproj'
12
14
  Autoproj.warn "coverage is disabled: #{e.message}"
13
15
  end
14
16
  end
15
17
 
18
+ require 'minitest/autorun'
16
19
  require 'autoproj'
17
- ## Uncomment this to enable flexmock
18
- require 'flexmock/test_unit'
20
+ require 'flexmock/minitest'
19
21
  require 'minitest/spec'
20
22
 
21
23
  if ENV['TEST_ENABLE_PRY'] != '0'
@@ -38,13 +40,14 @@ module Autoproj
38
40
  # end
39
41
  #
40
42
  module SelfTest
41
- if defined? FlexMock
42
- include FlexMock::ArgumentTypes
43
- include FlexMock::MockContainer
44
- end
43
+ attr_reader :ws
45
44
 
46
45
  def setup
47
46
  @tmpdir = Array.new
47
+ @ws = Workspace.new('/test/dir')
48
+ ws.config = Configuration.new
49
+ Autoproj.workspace = ws
50
+
48
51
  super
49
52
  end
50
53
 
@@ -53,14 +56,10 @@ def create_bootstrap
53
56
  @tmpdir << dir
54
57
  require 'autoproj/ops/main_config_switcher'
55
58
  FileUtils.cp_r Ops::MainConfigSwitcher::MAIN_CONFIGURATION_TEMPLATE, File.join(dir, 'autoproj')
56
- Autoproj.root_dir = dir
57
- Autoproj.manifest = Manifest.load(File.join(dir, 'autoproj', 'manifest'))
59
+ Workspace.new(dir)
58
60
  end
59
61
 
60
62
  def teardown
61
- if defined? FlexMock
62
- flexmock_teardown
63
- end
64
63
  super
65
64
  @tmpdir.each do |dir|
66
65
  FileUtils.remove_entry_secure dir
@@ -53,7 +53,9 @@ def self.expand_environment(value)
53
53
  #
54
54
  # If the values listed in +definitions+ also contain configuration
55
55
  # variables, they do not get expanded
56
- def self.single_expansion(data, definitions)
56
+ def self.single_expansion(data, definitions, options = Hash.new)
57
+ options = Kernel.validate_options options, config: Autoproj.config
58
+
57
59
  if !data.respond_to?(:to_str)
58
60
  return data
59
61
  end
@@ -71,7 +73,7 @@ def self.single_expansion(data, definitions)
71
73
  end
72
74
 
73
75
  if !(value = definitions[constant_name])
74
- if !(value = config.get(constant_name))
76
+ if !(value = options[:config].get(constant_name))
75
77
  if !block_given? || !(value = yield(constant_name))
76
78
  raise ArgumentError, "cannot find a definition for $#{constant_name}"
77
79
  end
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "2.0.0.b7"
2
+ VERSION = "2.0.0.rc1"
3
3
  end
@@ -4,7 +4,7 @@ module Autoproj
4
4
  class Workspace < Ops::Loader
5
5
  attr_reader :root_dir
6
6
 
7
- attr_reader :config
7
+ attr_accessor :config
8
8
  attr_reader :env
9
9
  attr_reader :manifest
10
10
  attr_reader :loader
@@ -170,6 +170,9 @@ def setup
170
170
  Autobuild.prefix = prefix_dir
171
171
  Autobuild.srcdir = root_dir
172
172
  Autobuild.logdir = log_dir
173
+ if cache_dir = config.importer_cache_dir
174
+ Autobuild::Importer.default_cache_dirs = cache_dir
175
+ end
173
176
  env.prepare(root_dir)
174
177
  Autoproj::OSDependencies::PACKAGE_HANDLERS.each do |pkg_mng|
175
178
  pkg_mng.initialize_environment(env, manifest, root_dir)
@@ -560,6 +563,7 @@ def self.workspace
560
563
 
561
564
  def self.workspace=(ws)
562
565
  @workspace = ws
566
+ self.root_dir = ws.root_dir
563
567
  end
564
568
 
565
569
  def self.env
data/manifest.xml ADDED
@@ -0,0 +1,20 @@
1
+ <package>
2
+ <description brief="project-level build tool">
3
+ Autoproj allows to easily install and maintain software that is under
4
+ source code form (usually from a version control system). It has been
5
+ designed to support a package-oriented development process, where each
6
+ package can have its own version control repository (think "distributed
7
+ version control"). It also provides an easy integration of the local
8
+ operating system (Debian, Ubuntu, Fedora, maybe MacOSX at some point).
9
+ </description>
10
+ <maintainer>Sylvain Joyeux/sylvain.joyeux@m4x.org</maintainer>
11
+ <license>LGPLv3 or later</license>
12
+ <url>http://rock-robotics.org</url>
13
+
14
+ <depend package="autobuild" />
15
+ <depend package="thor" />
16
+ <depend package="utilrb" />
17
+ <depend package="concurrent-ruby" />
18
+ <test_depend package="flexmock" />
19
+ <test_depend package="minitest" />
20
+ </package>
metadata CHANGED
@@ -1,160 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.b7
4
+ version: 2.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-03 00:00:00.000000000 Z
11
+ date: 2015-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: autobuild
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.9'
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 1.9.0
19
+ version: 1.10.0.a
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '1.9'
30
24
  - - ">="
31
25
  - !ruby/object:Gem::Version
32
- version: 1.9.0
26
+ version: 1.10.0.a
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: utilrb
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '2.0'
40
31
  - - ">="
41
32
  - !ruby/object:Gem::Version
42
- version: 2.0.0
33
+ version: '2.0'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '2.0'
50
38
  - - ">="
51
39
  - !ruby/object:Gem::Version
52
- version: 2.0.0
40
+ version: '2.0'
53
41
  - !ruby/object:Gem::Dependency
54
- name: highline
42
+ name: thor
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
45
  - - "~>"
58
46
  - !ruby/object:Gem::Version
59
- version: '1.7'
47
+ version: 0.19.0
60
48
  - - ">="
61
49
  - !ruby/object:Gem::Version
62
- version: 1.7.0
50
+ version: 0.19.1
63
51
  type: :runtime
64
52
  prerelease: false
65
53
  version_requirements: !ruby/object:Gem::Requirement
66
54
  requirements:
67
55
  - - "~>"
68
56
  - !ruby/object:Gem::Version
69
- version: '1.7'
57
+ version: 0.19.0
70
58
  - - ">="
71
59
  - !ruby/object:Gem::Version
72
- version: 1.7.0
60
+ version: 0.19.1
73
61
  - !ruby/object:Gem::Dependency
74
- name: thor
62
+ name: concurrent-ruby
75
63
  requirement: !ruby/object:Gem::Requirement
76
64
  requirements:
77
- - - "~>"
78
- - !ruby/object:Gem::Version
79
- version: 0.19.0
80
65
  - - ">="
81
66
  - !ruby/object:Gem::Version
82
- version: 0.19.1
67
+ version: '0'
83
68
  type: :runtime
84
69
  prerelease: false
85
70
  version_requirements: !ruby/object:Gem::Requirement
86
71
  requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.19.0
90
72
  - - ">="
91
73
  - !ruby/object:Gem::Version
92
- version: 0.19.1
74
+ version: '0'
93
75
  - !ruby/object:Gem::Dependency
94
- name: concurrent-ruby
76
+ name: flexmock
95
77
  requirement: !ruby/object:Gem::Requirement
96
78
  requirements:
97
79
  - - ">="
98
80
  - !ruby/object:Gem::Version
99
- version: '0'
100
- type: :runtime
81
+ version: 2.0.0
82
+ type: :development
101
83
  prerelease: false
102
84
  version_requirements: !ruby/object:Gem::Requirement
103
85
  requirements:
104
86
  - - ">="
105
87
  - !ruby/object:Gem::Version
106
- version: '0'
88
+ version: 2.0.0
107
89
  - !ruby/object:Gem::Dependency
108
- name: rdoc
90
+ name: minitest
109
91
  requirement: !ruby/object:Gem::Requirement
110
92
  requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '5.0'
111
96
  - - "~>"
112
97
  - !ruby/object:Gem::Version
113
- version: '4.0'
98
+ version: '5.0'
114
99
  type: :development
115
100
  prerelease: false
116
101
  version_requirements: !ruby/object:Gem::Requirement
117
102
  requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '5.0'
118
106
  - - "~>"
119
107
  - !ruby/object:Gem::Version
120
- version: '4.0'
108
+ version: '5.0'
121
109
  - !ruby/object:Gem::Dependency
122
- name: hoe
110
+ name: fakefs
123
111
  requirement: !ruby/object:Gem::Requirement
124
112
  requirements:
125
- - - "~>"
113
+ - - ">="
126
114
  - !ruby/object:Gem::Version
127
- version: '3.13'
115
+ version: '0'
128
116
  type: :development
129
117
  prerelease: false
130
118
  version_requirements: !ruby/object:Gem::Requirement
131
119
  requirements:
132
- - - "~>"
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ - !ruby/object:Gem::Dependency
124
+ name: simplecov
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
133
135
  - !ruby/object:Gem::Version
134
- version: '3.13'
136
+ version: '0'
135
137
  description: autoproj is a manager for sets of software packages. It allows the user
136
138
  to import and build packages from source, still using the underlying distribution's
137
139
  native package manager for software that is available on it.
138
140
  email: sylvain.joyeux@m4x.org
139
- executables:
140
- - alocate
141
- - amake
142
- - aup
143
- - autoproj
144
- - autoproj_bootstrap
145
- - autoproj_bootstrap.in
141
+ executables: []
146
142
  extensions: []
147
- extra_rdoc_files:
148
- - History.txt
149
- - Manifest.txt
150
- - README.md
151
- - samples/autoproj/README.txt
143
+ extra_rdoc_files: []
152
144
  files:
153
- - ".gemtest"
145
+ - ".gitattributes"
146
+ - ".gitignore"
147
+ - ".travis.yml"
148
+ - Gemfile
154
149
  - History.txt
155
- - Manifest.txt
156
150
  - README.md
157
151
  - Rakefile
152
+ - autoproj.gemspec
158
153
  - bin/alocate
159
154
  - bin/amake
160
155
  - bin/aup
@@ -195,6 +190,7 @@ files:
195
190
  - lib/autoproj/default.osdeps
196
191
  - lib/autoproj/environment.rb
197
192
  - lib/autoproj/exceptions.rb
193
+ - lib/autoproj/git_server_configuration.rb
198
194
  - lib/autoproj/gitorious.rb
199
195
  - lib/autoproj/installation_manifest.rb
200
196
  - lib/autoproj/manifest.rb
@@ -210,6 +206,19 @@ files:
210
206
  - lib/autoproj/options.rb
211
207
  - lib/autoproj/osdeps.rb
212
208
  - lib/autoproj/package_definition.rb
209
+ - lib/autoproj/package_managers/apt_dpkg_manager.rb
210
+ - lib/autoproj/package_managers/emerge_manager.rb
211
+ - lib/autoproj/package_managers/gem_manager.rb
212
+ - lib/autoproj/package_managers/homebrew_manager.rb
213
+ - lib/autoproj/package_managers/manager.rb
214
+ - lib/autoproj/package_managers/pacman_manager.rb
215
+ - lib/autoproj/package_managers/pip_manager.rb
216
+ - lib/autoproj/package_managers/pkg_manager.rb
217
+ - lib/autoproj/package_managers/port_manager.rb
218
+ - lib/autoproj/package_managers/shell_script_manager.rb
219
+ - lib/autoproj/package_managers/unknown_os_manager.rb
220
+ - lib/autoproj/package_managers/yum_manager.rb
221
+ - lib/autoproj/package_managers/zypper_manager.rb
213
222
  - lib/autoproj/package_manifest.rb
214
223
  - lib/autoproj/package_selection.rb
215
224
  - lib/autoproj/package_set.rb
@@ -223,6 +232,7 @@ files:
223
232
  - lib/autoproj/vcs_definition.rb
224
233
  - lib/autoproj/version.rb
225
234
  - lib/autoproj/workspace.rb
235
+ - manifest.xml
226
236
  - samples/autoproj/README.txt
227
237
  - samples/autoproj/init.rb
228
238
  - samples/autoproj/manifest
@@ -233,44 +243,19 @@ files:
233
243
  - shell/autoproj_bash
234
244
  - shell/autoproj_sh
235
245
  - shell/autoproj_zsh
236
- - test/data/empty_manifest.xml
237
- - test/data/full_manifest.xml
238
- - test/data/invalid_manifest.xml
239
- - test/data/os_release.with_complex_version_field
240
- - test/data/os_release.with_duplicate_values
241
- - test/data/os_release.with_missing_optional_fields
242
- - test/data/os_release.with_quoted_and_unquoted_fields
243
- - test/data/test_manifest/autoproj/local_set/local.autobuild
244
- - test/data/test_manifest/autoproj/local_set/source.yml
245
- - test/data/test_manifest/autoproj/manifest
246
- - test/ops/test_configuration.rb
247
- - test/ops/test_snapshot.rb
248
- - test/package_managers/apt-dpkg-status
249
- - test/package_managers/apt-dpkg-status.installed-last
250
- - test/package_managers/apt-dpkg-status.noninstalled-last
251
- - test/package_managers/test_apt_dpkg_manager.rb
252
- - test/package_managers/test_gem.rb
253
- - test/package_managers/test_pip.rb
254
- - test/test_manifest.rb
255
- - test/test_os_dependencies.rb
256
- - test/test_package.rb
257
- - test/test_package_manifest.rb
258
- - test/test_vcs_definition.rb
259
- homepage: http://rock-robotics.org/documentation/autoproj
246
+ homepage: http://rock-robotics.org
260
247
  licenses:
261
248
  - BSD
262
249
  metadata: {}
263
250
  post_install_message:
264
- rdoc_options:
265
- - "--main"
266
- - README.md
251
+ rdoc_options: []
267
252
  require_paths:
268
253
  - lib
269
254
  required_ruby_version: !ruby/object:Gem::Requirement
270
255
  requirements:
271
256
  - - ">="
272
257
  - !ruby/object:Gem::Version
273
- version: 1.9.3
258
+ version: '0'
274
259
  required_rubygems_version: !ruby/object:Gem::Requirement
275
260
  requirements:
276
261
  - - ">"
@@ -278,8 +263,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
263
  version: 1.3.1
279
264
  requirements: []
280
265
  rubyforge_project:
281
- rubygems_version: 2.2.2
266
+ rubygems_version: 2.2.3
282
267
  signing_key:
283
268
  specification_version: 4
284
269
  summary: Easy installation and management of sets of software packages
285
270
  test_files: []
271
+ has_rdoc: