Skip to content

Commit 8be0da3

Browse files
Derek Howerayosher
authored andcommitted
Check parameter version restrictions in CRD gen
Signed-off-by: Albert Yosher <[email protected]>
1 parent c0035a6 commit 8be0da3

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

arch/crd/MC-1.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ MC-1:
5050
parameters:
5151
TIME_CSR_IMPLEMENTED: {} # Unconstrained
5252
- name: Sm
53-
version: "~> 1.11"
53+
version: "~> 1.11.0"
5454
presence: mandatory
5555
parameters:
5656
MTVEC_BASE_ALIGNMENT_DIRECT: {} # Unconstrained

lib/arch_obj_models/crd.rb

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ def all_in_scope_ext_params
266266
param_db = ext_db.params.find { |p| p.name == param_name }
267267
raise "There is no param '#{param_name}' in extension '#{ext_crd["name"]}" if param_db.nil?
268268

269+
next unless ext_db.versions.any? do |ver|
270+
Gem::Requirement.new(ext_crd["version"]).satisfied_by?(Gem::Version.new(ver["version"])) &&
271+
param_db.defined_in_extension_version?(ver["version"])
272+
end
273+
269274
@all_in_scope_ext_params <<
270275
InScopeExtensionParameter.new(param_db, param_data["schema"], param_data["note"])
271276
end
@@ -295,6 +300,11 @@ def in_scope_ext_params(ext_req)
295300
ext_param_db = ext_db.params.find { |p| p.name == param_name }
296301
raise "There is no param '#{param_name}' in extension '#{ext_crd["name"]}" if ext_param_db.nil?
297302

303+
next unless ext_db.versions.any? do |ver|
304+
Gem::Requirement.new(ext_crd["version"]).satisfied_by?(Gem::Version.new(ver["version"])) &&
305+
ext_param_db.defined_in_extension_version?(ver["version"])
306+
end
307+
298308
ext_params <<
299309
InScopeExtensionParameter.new(ext_param_db, param_data["schema"], param_data["note"])
300310
end
@@ -308,8 +318,15 @@ def all_out_of_scope_params
308318

309319
@all_out_of_scope_params = []
310320
in_scope_ext_reqs.each do |ext_req|
311-
@arch_def.extension(ext_req.name).params.each do |param_db|
321+
ext_db = @arch_def.extension(ext_req.name)
322+
ext_db.params.each do |param_db|
312323
next if all_in_scope_ext_params.any? { |c| c.param_db.name == param_db.name }
324+
325+
next unless ext_db.versions.any? do |ver|
326+
Gem::Requirement.new(ext_req.version_requirement).satisfied_by?(Gem::Version.new(ver["version"])) &&
327+
param_db.defined_in_extension_version?(ver["version"])
328+
end
329+
313330
@all_out_of_scope_params << param_db
314331
end
315332
end

lib/arch_obj_models/extension.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def initialize(ext, name, data)
6464
def defined_in_extension_version?(version)
6565
return true if @data.dig("when", "version").nil?
6666

67-
Gem::Requirement.new(@data["when"]["version"]).satisfied_by?(version)
67+
Gem::Requirement.new(@data["when"]["version"]).satisfied_by?(Gem::Version.new(version))
6868
end
6969

7070
# @return [String]

0 commit comments

Comments
 (0)