autoproj 2.6.1 → 2.7.0
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.
- 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
|