summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baserockimport/data/rubygems.yaml20
-rwxr-xr-xbaserockimport/exts/rubygems.find_deps5
2 files changed, 21 insertions, 4 deletions
diff --git a/baserockimport/data/rubygems.yaml b/baserockimport/data/rubygems.yaml
index f61defe..8c13689 100644
--- a/baserockimport/data/rubygems.yaml
+++ b/baserockimport/data/rubygems.yaml
@@ -8,10 +8,24 @@ lorry-prefix: ruby-gems/
# tools because of the number of circular dependencies. Instead, only those
# tools which are known to be required at Gem build time are listed as
# build-dependencies, and any other :development dependencies are ignored.
+#
+# This list is currently empty, because everything that was in it has been
+# added to the 'ruby' stratum and so is present implicitly.
build-dependency-whitelist: []
- # rake is bundled with Ruby, so it is not included in the whitelist.
- # hoe is included in the 'ruby' stratum
- # rake-compiler is included in the 'ruby' stratum
+
+# List of Gems which are built into Ruby or included in the 'ruby' stratum
+# in http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git
+#
+# This doesn't take the versions that are provided into account (and it'd be
+# quite a maintenance burden if it did). Thus it's not an ideal solution, as
+# something may for example depend on Rake 4.9 when Rake 2.0 is actually the
+# only thing available and this won't be noticed until the user tries to build
+# the generated definitions.
+ignore-list:
+ - bundler
+ - hoe
+ - rake
+ - rake-compiler
# The following Gems don't provide a source_code_uri in their Gem metadata.
# Ideally ... they would do.
diff --git a/baserockimport/exts/rubygems.find_deps b/baserockimport/exts/rubygems.find_deps
index 5ae9598..ae08b65 100755
--- a/baserockimport/exts/rubygems.find_deps
+++ b/baserockimport/exts/rubygems.find_deps
@@ -36,6 +36,7 @@ class RubyGemDependencyFinder < Importer::Base
def initialize
local_data = YAML.load_file(local_data_path("rubygems.yaml"))
@build_dependency_whitelist = local_data['build-dependency-whitelist']
+ @ignore_list = local_data['ignore-list']
end
def parse_options(arguments)
@@ -64,7 +65,9 @@ class RubyGemDependencyFinder < Importer::Base
end
def runtime_deps_for_gem(spec)
- spec.dependencies.select {|d| d.type == :runtime}
+ spec.dependencies.select do |d|
+ d.type == :runtime && ! @ignore_list.member?(d.name)
+ end
end
def run