JuliaEcosystem / PackageAnalyzer.jl

https://juliaecosystem.github.io/PackageAnalyzer.jl/dev/
MIT License
58 stars 5 forks source link

Error while analysing `SeisProcessing` #89

Open giordano opened 12 months ago

giordano commented 12 months ago
julia> analyze("SeisProcessing")
ERROR: SystemError: opening file "/var/folders/v2/hmy3kzgj4tb3xsy8qkltxd0r0000gn/T/jl_OD2NBs/SeisProcessing/kmGog/src/Processing/.#SeisGain.jl": No such file or directory
Stacktrace:
  [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
    @ Base ./error.jl:176
  [2] systemerror(p::String, b::Bool; extrainfo::Nothing)
    @ Base ./error.jl:175 [inlined]
  [3] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing)
    @ Base ./iostream.jl:293
  [4] open(fname::String)
    @ Base ./iostream.jl:275 [inlined]
  [5] open(f::Base.var"#434#435"{String}, args::String; kwargs::@Kwargs{})
    @ Base ./io.jl:394
  [6] open(f::Base.var"#434#435"{String}, args::String)
    @ Base ./io.jl:393 [inlined]
  [7] read(filename::String, ::Type{String})
    @ Base ./io.jl:486 [inlined]
  [8] parse_green_node(file_path::String)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/count_loc.jl:102
  [9] count_julia_lines_of_code(dir::String)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/count_loc.jl:146
 [10] count_lines_of_code(dir::String)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/count_loc.jl:16
 [11] analyze_code(dir::String; repo::String, reachable::Bool, subdir::String, auth::GitHub.OAuth2, sleep::Int64, only_subdir::Bool, version::VersionNumber)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:263
 [12] kwcall(::NamedTuple, ::typeof(PackageAnalyzer.analyze_code), dir::AbstractString)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:221 [inlined]
 [13] analyze(pkg::PackageAnalyzer.Release; root::String, auth::GitHub.OAuth2, sleep::Int64)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:163
 [14] analyze
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:155 [inlined]
 [15] analyze(name_or_dir_or_url::String; registries::Vector{RegistryInstances.RegistryInstance}, auth::GitHub.OAuth2, sleep::Int64, version::Nothing, root::String, subdir::String)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:67
 [16] analyze(name_or_dir_or_url::String)
    @ PackageAnalyzer ~/.julia/packages/PackageAnalyzer/ku4CT/src/analyze.jl:58
 [17] top-level scope
    @ REPL[3]:1

Not sure what's the problem: https://github.com/SeismicJulia/SeisProcessing.jl

giordano commented 12 months ago

Ah, the problem is this broken symlink: https://github.com/SeismicJulia/SeisProcessing.jl/blob/fd47fe606a22de97e2a76bd3722f61edb5a57ac8/src/Processing/.%23SeisGain.jl

We should probably check that a file exist before attempting to read it?

ericphanson commented 12 months ago

We get the paths from readdir, I didn’t realize those might not be actual files. Should be easy to fix, is isfile the right check?

giordano commented 12 months ago

No, I think it's ispath. isfile returns whether the argument is a regular file, which a symlink never is.

ericphanson commented 12 months ago

I guess they could have a directory named dir.jl and I shouldn’t read that? So maybe ispath(p) && !isdir(p) ?