You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Review feedback on the Erlang mapping, both correct.
Mapping the erlang ecosystem to hex claimed Hex provenance for OTP
applications, which are discovered from *.app manifests and ship with the
runtime or release rather than resolving from Hex. Syft already emits a
distinct pkg:otp for them; the ecosystem-level case was overriding that,
so a name collision with a real Hex package could produce a false
advisory match. Map hex at the package-manager level only (rebar, mix),
give otp its own type, and leave a bare erlang value — with no manager to
say which registry applies — on the non-spec pkg:erlang rather than
guessing. Drop the same erlang -> Hex inference from ecosystemToOSV, so
the name fallback cannot reintroduce it. Erlang coverage is unaffected:
pkg:hex/cowboy@2.10.0 still returns two advisories from the live API.
Mapping pkg:hex back to Elixir on SBOM ingest was also wrong. The
standard codecs do not carry Component.Ecosystem — CycloneDX drops it,
SPDX rebuilds it from the PURL — so every round-tripped Erlang dependency
would have come back as Elixir and been labelled Mix. Leave the ambiguous
type unresolved and map pkg:otp, which names exactly one ecosystem, to
Erlang. Added an encode/decode round-trip test over both codecs that
fails on the mislabel.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
0 commit comments