autoproj 2.6.1 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/autoproj.gemspec +1 -1
- data/lib/autoproj/autobuild_extensions/dsl.rb +16 -1
- data/lib/autoproj/autobuild_extensions/package.rb +12 -0
- data/lib/autoproj/cli/main.rb +8 -1
- data/lib/autoproj/cli/status.rb +10 -10
- data/lib/autoproj/default.osdeps +4 -1
- data/lib/autoproj/manifest.rb +26 -16
- data/lib/autoproj/reporter.rb +7 -4
- data/lib/autoproj/test.rb +18 -1
- data/lib/autoproj/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe336a236c728540d3c9490eaa77e358429bf5f0
|
4
|
+
data.tar.gz: a3aee015246de3a37f7b1e689918f28f88ebacfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4460ab6fbe3bfbdf2acdf5915fe7441c6cca8c378ebcdccec3e1cca26c06a71159a1b0d51398bdff83194408dfe2b26b9fb8a74ec98cd0f4d2f493c1f4e0e9f9
|
7
|
+
data.tar.gz: e2bf36c2a3907755a6303af154fd0bc534d51a9a9b88a90e4aa46a5e94e5719df468297496a21a7d2fcea5f6a267ea872aca2248f2c589105a0f518860db300e
|
data/autoproj.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
26
|
|
27
27
|
s.add_runtime_dependency "bundler"
|
28
|
-
s.add_runtime_dependency "autobuild", ">= 1.
|
28
|
+
s.add_runtime_dependency "autobuild", ">= 1.14.0"
|
29
29
|
s.add_runtime_dependency "backports", '~> 3.0'
|
30
30
|
s.add_runtime_dependency "utilrb", '~> 3.0.0', ">= 3.0.0"
|
31
31
|
s.add_runtime_dependency "thor", '~> 0.20.0'
|
@@ -110,6 +110,9 @@ def self.package_handler_for(full_path)
|
|
110
110
|
find_topmost_directory_containing(full_path, "lib/*.rb")
|
111
111
|
|
112
112
|
return "ruby_package", dir
|
113
|
+
elsif (dir = find_topmost_directory_containing(full_path, 'setup.py')) ||
|
114
|
+
(dir = find_topmost_directory_containing(full_path, File.join(File.basename(full_path), "*.py")))
|
115
|
+
return 'python_package', dir
|
113
116
|
end
|
114
117
|
end
|
115
118
|
end
|
@@ -156,6 +159,10 @@ def import_package(name, workspace: Autoproj.workspace, &block)
|
|
156
159
|
package_common(:import, name, workspace: Autoproj.workspace, &block)
|
157
160
|
end
|
158
161
|
|
162
|
+
def python_package(name, workspace: Autoproj.workspace, &block)
|
163
|
+
package_common(:python, name, workspace: Autoproj.workspace, &block)
|
164
|
+
end
|
165
|
+
|
159
166
|
def common_make_based_package_setup(pkg)
|
160
167
|
unless pkg.has_doc? && pkg.doc_dir
|
161
168
|
pkg.with_doc do
|
@@ -197,6 +204,14 @@ def cmake_package(name, workspace: Autoproj.workspace)
|
|
197
204
|
end
|
198
205
|
end
|
199
206
|
|
207
|
+
# Define a package that was originall designed for Catkin
|
208
|
+
def catkin_package(name, workspace: Autoproj.workspace)
|
209
|
+
cmake_package(name, workspace: workspace) do |pkg|
|
210
|
+
pkg.use_package_xml = true
|
211
|
+
yield(pkg) if block_given?
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
200
215
|
# Define an autotools package
|
201
216
|
#
|
202
217
|
# Example:
|
@@ -230,7 +245,7 @@ def env_add(name, value)
|
|
230
245
|
# Defines a Ruby package
|
231
246
|
#
|
232
247
|
# Example:
|
233
|
-
#
|
248
|
+
#
|
234
249
|
# ruby_package 'package_name' do |pkg|
|
235
250
|
# pkg.doc_target = 'doc'
|
236
251
|
# end
|
@@ -23,8 +23,20 @@ def initialize(spec = Hash.new)
|
|
23
23
|
@added_tags = Set.new
|
24
24
|
@optional_dependencies = Set.new
|
25
25
|
@description = PackageManifest.new(self, null: true)
|
26
|
+
@use_package_xml = false
|
26
27
|
end
|
27
28
|
|
29
|
+
# Whether we should use a package.xml file present in this package
|
30
|
+
# (parsed as ROS' catkin would) instead of Autoproj's manifest.xml
|
31
|
+
#
|
32
|
+
# @see use_package_xml=
|
33
|
+
def use_package_xml?
|
34
|
+
@use_package_xml
|
35
|
+
end
|
36
|
+
|
37
|
+
# Set {#use_package_xml?}
|
38
|
+
attr_writer :use_package_xml
|
39
|
+
|
28
40
|
# The set of tags for this package. This is an union of the tags
|
29
41
|
# contained in +description+ and the ones explicitely added with
|
30
42
|
# #add_tag
|
data/lib/autoproj/cli/main.rb
CHANGED
@@ -207,7 +207,11 @@ def build(*packages)
|
|
207
207
|
tool_failure_mode: :report_silent)
|
208
208
|
if !failures.empty?
|
209
209
|
Autobuild.silent = false
|
210
|
-
|
210
|
+
package_failures, config_failures = failures.partition do |e|
|
211
|
+
e.respond_to?(:target) && e.target.respond_to?(:name)
|
212
|
+
end
|
213
|
+
|
214
|
+
packages_failed = package_failures.
|
211
215
|
map do |e|
|
212
216
|
if e.respond_to?(:target) && e.target.respond_to?(:name)
|
213
217
|
e.target.name
|
@@ -216,6 +220,9 @@ def build(*packages)
|
|
216
220
|
if !packages_failed.empty?
|
217
221
|
Autobuild.error "#{packages_failed.size} packages failed: #{packages_failed.sort.join(", ")}"
|
218
222
|
end
|
223
|
+
config_failures.each do |e|
|
224
|
+
Autobuild.error(e)
|
225
|
+
end
|
219
226
|
exit 1
|
220
227
|
end
|
221
228
|
end
|
data/lib/autoproj/cli/status.rb
CHANGED
@@ -85,12 +85,20 @@ def status_of_package(package_description, only_local: false, snapshot: false)
|
|
85
85
|
elsif !File.directory?(pkg.srcdir)
|
86
86
|
package_status.msg << Autoproj.color(" is not imported yet", :magenta)
|
87
87
|
else
|
88
|
-
|
88
|
+
begin status = importer.status(pkg, only_local)
|
89
|
+
rescue StandardError => e
|
90
|
+
package_status.msg << Autoproj.color(" failed to fetch status information (#{e})", :red)
|
91
|
+
return package_status
|
92
|
+
end
|
93
|
+
|
94
|
+
snapshot_useful = [Autobuild::Importer::Status::ADVANCED, Autobuild::Importer::Status::NEEDS_MERGE].
|
95
|
+
include?(status.status)
|
96
|
+
if snapshot && snapshot_useful && importer.respond_to?(:snapshot)
|
89
97
|
snapshot_version =
|
90
98
|
begin importer.snapshot(pkg, nil, exact_state: false, only_local: only_local)
|
91
99
|
rescue Autobuild::PackageException
|
92
100
|
Hash.new
|
93
|
-
rescue
|
101
|
+
rescue StandardError => e
|
94
102
|
package_status.msg << Autoproj.color(" failed to fetch snapshotting information (#{e})", :red)
|
95
103
|
return package_status
|
96
104
|
end
|
@@ -104,14 +112,6 @@ def status_of_package(package_description, only_local: false, snapshot: false)
|
|
104
112
|
end
|
105
113
|
end
|
106
114
|
|
107
|
-
begin status = importer.status(pkg, only_local)
|
108
|
-
rescue Interrupt
|
109
|
-
raise
|
110
|
-
rescue Exception => e
|
111
|
-
package_status.msg << Autoproj.color(" failed to fetch status information (#{e})", :red)
|
112
|
-
return package_status
|
113
|
-
end
|
114
|
-
|
115
115
|
status.unexpected_working_copy_state.each do |msg|
|
116
116
|
package_status.msg << Autoproj.color(" #{msg}", :red, :bold)
|
117
117
|
end
|
data/lib/autoproj/default.osdeps
CHANGED
@@ -87,7 +87,10 @@ ruby23:
|
|
87
87
|
default: ignore # we assume that if the user has a ruby 2.3 runtime, it is usable
|
88
88
|
|
89
89
|
ruby24:
|
90
|
-
default: ignore # we assume that if the user has a ruby 2.
|
90
|
+
default: ignore # we assume that if the user has a ruby 2.4 runtime, it is usable
|
91
|
+
|
92
|
+
ruby25:
|
93
|
+
default: ignore # we assume that if the user has a ruby 2.5 runtime, it is usable
|
91
94
|
|
92
95
|
build-essential:
|
93
96
|
debian,ubuntu: build-essential
|
data/lib/autoproj/manifest.rb
CHANGED
@@ -978,6 +978,8 @@ def whereis(package_name)
|
|
978
978
|
'/'
|
979
979
|
end
|
980
980
|
|
981
|
+
class NoPackageXML < ConfigError; end
|
982
|
+
|
981
983
|
# Loads the package's manifest.xml file for the current package
|
982
984
|
#
|
983
985
|
# Right now, the absence of a manifest makes autoproj only issue a
|
@@ -994,23 +996,32 @@ def load_package_manifest(pkg)
|
|
994
996
|
|
995
997
|
# Look for the package's manifest.xml, but fallback to a manifest in
|
996
998
|
# the package set if present
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
999
|
+
if package.use_package_xml?
|
1000
|
+
manifest_path = File.join(package.srcdir, "package.xml")
|
1001
|
+
raise NoPackageXML.new(package.srcdir), "#{package.name} from "\
|
1002
|
+
"#{package_set.name} has use_package_xml set, but the package has "\
|
1003
|
+
"no package.xml file" unless File.file?(manifest_path)
|
1004
|
+
|
1005
|
+
manifest = PackageManifest.load(package, manifest_path,
|
1006
|
+
ros_manifest: true)
|
1007
|
+
else
|
1008
|
+
manifest_paths = [File.join(package.srcdir, "manifest.xml")]
|
1009
|
+
if package_set.local_dir
|
1010
|
+
manifest_paths << File.join(
|
1011
|
+
package_set.local_dir, "manifests", package.name + ".xml")
|
1012
|
+
end
|
1013
|
+
manifest_path = manifest_paths.find do |path|
|
1014
|
+
File.file?(path)
|
1015
|
+
end
|
1016
|
+
if manifest_path
|
1017
|
+
manifest = PackageManifest.load(package, manifest_path,
|
1018
|
+
ros_manifest: false)
|
1019
|
+
end
|
1003
1020
|
end
|
1004
1021
|
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
if manifest_path
|
1010
|
-
pkg.autobuild.description = PackageManifest.load(package, manifest_path)
|
1011
|
-
elsif ros_manifest_path
|
1012
|
-
pkg.autobuild.description = PackageManifest.load(package, ros_manifest_path, ros_manifest: true)
|
1013
|
-
elsif pkg.autobuild.description.null?
|
1022
|
+
if manifest
|
1023
|
+
pkg.autobuild.description = manifest
|
1024
|
+
else
|
1014
1025
|
Autoproj.warn "#{package.name} from #{package_set.name} does not have a manifest"
|
1015
1026
|
end
|
1016
1027
|
|
@@ -1238,4 +1249,3 @@ def self.add_osdeps_overrides(*args, &block)
|
|
1238
1249
|
manifest.add_osdeps_overrides(*args, &block)
|
1239
1250
|
end
|
1240
1251
|
end
|
1241
|
-
|
data/lib/autoproj/reporter.rb
CHANGED
@@ -83,6 +83,12 @@ def self.report(root_dir: nil, silent: nil, debug: Autobuild.debug,
|
|
83
83
|
reporter = Autoproj::Reporter.new
|
84
84
|
Autobuild::Reporting << reporter
|
85
85
|
interrupted = nil
|
86
|
+
|
87
|
+
if !silent.nil?
|
88
|
+
on_package_success = silent ? :silent : :report
|
89
|
+
end
|
90
|
+
silent_errors = [:report_silent, :exit_silent].include?(on_package_failures)
|
91
|
+
|
86
92
|
package_failures = Autobuild::Reporting.report(on_package_failures: :report_silent) do
|
87
93
|
begin
|
88
94
|
reporter.reset_timer
|
@@ -92,10 +98,6 @@ def self.report(root_dir: nil, silent: nil, debug: Autobuild.debug,
|
|
92
98
|
end
|
93
99
|
end
|
94
100
|
|
95
|
-
if !silent.nil?
|
96
|
-
on_package_success = silent ? :silent : :report
|
97
|
-
end
|
98
|
-
silent_errors = [:report_silent, :exit_silent].include?(on_package_failures)
|
99
101
|
|
100
102
|
if package_failures.empty?
|
101
103
|
if interrupted
|
@@ -116,6 +118,7 @@ def self.report(root_dir: nil, silent: nil, debug: Autobuild.debug,
|
|
116
118
|
raise e
|
117
119
|
elsif on_package_failures == :report
|
118
120
|
Autoproj.error e.message
|
121
|
+
[e]
|
119
122
|
elsif on_package_failures == :exit
|
120
123
|
Autoproj.error e.message
|
121
124
|
exit 1
|
data/lib/autoproj/test.rb
CHANGED
@@ -394,10 +394,27 @@ def ws_create_git_package_set(name, source_data = Hash.new)
|
|
394
394
|
end
|
395
395
|
dir
|
396
396
|
end
|
397
|
+
|
398
|
+
def ws_create_package_set_file(pkg_set, name, content)
|
399
|
+
path = File.join(pkg_set.raw_local_dir, name)
|
400
|
+
FileUtils.mkdir_p File.dirname(path)
|
401
|
+
File.open(path, 'w') do |io|
|
402
|
+
io.write content
|
403
|
+
end
|
404
|
+
path
|
405
|
+
end
|
406
|
+
|
407
|
+
def ws_create_package_file(pkg, name, content)
|
408
|
+
path = File.join(pkg.autobuild.srcdir, name)
|
409
|
+
FileUtils.mkdir_p File.dirname(path)
|
410
|
+
File.open(path, 'w') do |io|
|
411
|
+
io.write content
|
412
|
+
end
|
413
|
+
path
|
414
|
+
end
|
397
415
|
end
|
398
416
|
end
|
399
417
|
|
400
418
|
class Minitest::Test
|
401
419
|
include Autoproj::SelfTest
|
402
420
|
end
|
403
|
-
|
data/lib/autoproj/version.rb
CHANGED
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.
|
4
|
+
version: 2.7.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: 2018-04-
|
11
|
+
date: 2018-04-27 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.
|
33
|
+
version: 1.14.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.
|
40
|
+
version: 1.14.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: backports
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|