SamuraiAku / PkgToSoftwareBOM.jl

Produces a Software Bill of Materials (SBOM) describing your Julia Pkg environment. SBOM is in the SPDX format
MIT License
17 stars 1 forks source link

SBOM generation fails on Windows #17

Closed SamuraiAku closed 1 year ago

SamuraiAku commented 1 year ago

Version: v0.1.2 Julia: v1.8, v1.9

Attempting to generate a standard SBOM on Windows results in an error. The cause is a double backslash in a Dict key query. It should be a forward slash.


Using registry "LMRegistry" @ C:\Users\foo\.julia\registries\LMRegistry
Using registry "General" @ C:\Users\foo\.julia\registries\General.toml
ERROR: KeyError: key "A/AxisArrays\\Package.toml" not found
Stacktrace:
  [1] getindex
    @ .\dict.jl:484 [inlined]
  [2] get_registry_data(registryPkg::Pkg.Registry.PkgEntry, filename::String)
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\Registry.jl:45  
  [3] populate_registryinfo(uuid::Base.UUID, package::Pkg.API.PackageInfo, registry::Pkg.Registry.RegistryInstance)
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\Registry.jl:72  
  [4] (::PkgToSoftwareBOM.var"#9#10"{Dict{Base.UUID, Pkg.API.PackageInfo}})(k::Base.UUID)
    @ PkgToSoftwareBOM .\none:0
  [5] iterate
    @ .\generator.jl:47 [inlined]
  [6] Dict{Base.UUID, Union{Missing, Nothing, PkgToSoftwareBOM.PackageRegistryInfo}}(kv::Base.Generator{Base.KeySet{Base.UUID, Dict{Base.UUID, Pkg.API.PackageInfo}}, PkgToSoftwareBOM.var"#9#10"{Dict{Base.UUID, Pkg.API.PackageInfo}}})
    @ Base .\dict.jl:83
  [7] _registry_packagequery(packages::Dict{Base.UUID, Pkg.API.PackageInfo}, registry::String)     
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\Registry.jl:36  
  [8] registry_packagequery(packages::Dict{Base.UUID, Pkg.API.PackageInfo}, registries::Vector{String})
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\Registry.jl:12  
  [9] generateSPDX(docData::spdxCreationData, sbomRegistries::Vector{String}, envpkgs::Dict{Base.UUID, Pkg.API.PackageInfo})
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\spdxBuild.jl:7  
 [10] generateSPDX(docData::spdxCreationData, sbomRegistries::Vector{String})
    @ PkgToSoftwareBOM C:\Users\foo\.julia\packages\PkgToSoftwareBOM\Lnqj6\src\spdxBuild.jl:7  
 [11] top-level scope
    @ REPL[19]:1```
SamuraiAku commented 1 year ago

Resolved in v0.1.3