Update formula internal json v3 to improve dependencies readability

This improves the readability of dependencies in the json we
produce for this internally.
This commit is contained in:
apainintheneck 2024-03-17 13:55:57 -07:00
parent 5e027bffd6
commit 039eb1adff

View File

@ -2361,13 +2361,6 @@ class Formula
"ruby_source_sha256" => ruby_source_checksum&.hexdigest, "ruby_source_sha256" => ruby_source_checksum&.hexdigest,
} }
dep_hash = dependencies_hash
.except("recommended_dependencies", "optional_dependencies")
.transform_values(&:presence)
.compact
api_hash.merge!(dep_hash)
# Exclude default values. # Exclude default values.
api_hash["revision"] = revision unless revision.zero? api_hash["revision"] = revision unless revision.zero?
api_hash["version_scheme"] = version_scheme unless version_scheme.zero? api_hash["version_scheme"] = version_scheme unless version_scheme.zero?
@ -2389,6 +2382,14 @@ class Formula
api_hash["versioned_formulae"] = versioned_formulae_list.map(&:name) api_hash["versioned_formulae"] = versioned_formulae_list.map(&:name)
end end
if (dependencies = dependencies_list(:stable).presence)
api_hash["dependencies"] = dependencies
end
if (head_dependencies = dependencies_list(:head).presence)
api_hash["head_dependencies"] = head_dependencies
end
if (requirements_array = serialized_requirements.presence) if (requirements_array = serialized_requirements.presence)
api_hash["requirements"] = requirements_array api_hash["requirements"] = requirements_array
end end
@ -2608,6 +2609,19 @@ class Formula
hash hash
end end
def dependencies_list(spec_symbol)
return if spec_symbol != :stable && spec_symbol != :head
send(spec_symbol)&.declared_deps&.each_with_object({}) do |dep, dep_hash|
next if dep.implicit? # Remove all implicit deps
dep_hash[dep.name] = {}.tap do |info|
info[:tags] = dep.tags if dep.tags.present?
info[:uses_from_macos] = dep.bounds.presence if dep.uses_from_macos?
end.presence
end
end
def on_system_blocks_exist? def on_system_blocks_exist?
self.class.on_system_blocks_exist? || @on_system_blocks_exist self.class.on_system_blocks_exist? || @on_system_blocks_exist
end end