Skip to content

Clean up: Bug fixes, correctness guards, performance and test coverage from an in-depth review #2189

Clean up: Bug fixes, correctness guards, performance and test coverage from an in-depth review

Clean up: Bug fixes, correctness guards, performance and test coverage from an in-depth review #2189

Triggered via pull request September 28, 2026 00:57
Status Failure
Total duration 11m 50s
Artifacts –

ci.yml

on: pull_request
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

16 errors, 7 warnings, and 5 notices
Julia 1 - macOS-latest - arm64 - pull_request
Process completed with exit code 1.
Julia 1 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Julia pre - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Julia 1 - ubuntu-latest - x86 - pull_request
Process completed with exit code 1.
Julia 1.10 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/complete_simulation_chain_IVC.md:215-222 ```@example complete_simulation_chain_IVC simulate!(evt, sim) # drift_charges + signal generation of all channels p_pc_signal = plot( evt.waveforms[1], lw = 1.5, xlims = (0, 1100), xlabel = "Time", unitformat = :slash, legend = false, tickfontsize = 12, ylabel = "Charge", guidefontsize = 14) savefig("tutorial_waveforms.pdf") # hide savefig("tutorial_waveforms.svg"); nothing # hide ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] interpolated_vectorfield(ef::ElectricField{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:220 [3] drift_charges(sim::Simulation{Float32, Cylindrical}, starting_positions::ArraysOfArrays.VectorOfArrays{CartesianPoint{Float32}, 1, 0, Vector{CartesianPoint{Float32}}, Vector{Int64}, Vector{Tuple{}}, SubArray{CartesianPoint{Float32}, 1, Vector{CartesianPoint{Float32}}, Tuple{UnitRange{Int64}}, true}}, energies::ArraysOfArrays.VectorOfArrays{Float32, 1, 0, Vector{Float32}, Vector{Int64}, Vector{Tuple{}}, SubArray{Float32, 1, Vector{Float32}, Tuple{UnitRange{Int64}}, true}}; Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, max_nsteps::Int64, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Simulation.jl:1563 [4] drift_charges!(evt::Event{Float32}, sim::Simulation{Float32, Cylindrical}; max_nsteps::Int64, Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:204 [5] drift_charges! @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:202 [inlined] [6] #simulate!#427 @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:284 [inlined] [7] simulate!(evt::Event{Float32}, sim::Simulation{Float32, Cylindrical}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:283 [8] top-level scope @ complete_simulation_chain_IVC.md:216 [9] eval @ ./boot.jl:385 [inlined] [10] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [11] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [12] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [13] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [14] with_logst
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/complete_simulation_chain_IVC.md:205-207 ```@example complete_simulation_chain_IVC calculate_capacitance_matrix(sim) ``` exception = knot-vectors must be unique and sorted in increasing order Stacktrace: [1] error(s::String) @ Base ./error.jl:35 [2] check_gridded @ ~/.julia/packages/Interpolations/rXcvn/src/gridded/gridded.jl:85 [inlined] [3] check_gridded @ ~/.julia/packages/Interpolations/rXcvn/src/gridded/gridded.jl:87 [inlined] [4] Interpolations.GriddedInterpolation(::Type{Float32}, knots::Tuple{Vector{Float32}, Vector{Float32}, Vector{Float32}}, A::Array{Float32, 3}, it::Interpolations.Gridded{Interpolations.Linear{Interpolations.Throw{Interpolations.OnGrid}}}) @ Interpolations ~/.julia/packages/Interpolations/rXcvn/src/gridded/gridded.jl:42 [5] interpolate! @ ~/.julia/packages/Interpolations/rXcvn/src/gridded/gridded.jl:178 [inlined] [6] interpolate! @ ~/.julia/packages/Interpolations/rXcvn/src/gridded/gridded.jl:181 [inlined] [7] interpolated_scalarfield @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:194 [inlined] [8] _calculate_mutual_capacitance(wpi::WeightingPotential{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :reflecting, :reflecting, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}, wpj::WeightingPotential{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :reflecting, :reflecting, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}, ϵ_r::DielectricDistribution{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :reflecting, :reflecting, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}; consider_multiplicity::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Capacitance.jl:38 [9] calculate_mutual_capacitance(sim::Simulation{Float32, Cylindrical}, ij::Tuple{Int64, Int64}; consider_multiplicity::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Capacitance.jl:27 [10] calculate_mutual_capacitance @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Capacitance.jl:26 [inlined] [11] calculate_capacitance_matrix(sim::Simulation{Float32, Cylindrical}; consider_multiplicity::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Capacitance.jl:131 [12] calculate_capacitance_matrix(sim::Simulation{Float32, Cylindrical}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Capacitance.jl:123 [13] top-level scope @ complete_simulation_chain_IVC.md:206 [14] eval @ ./boot.jl:385 [inlined] [15] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [16] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [17] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [18] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/s
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/complete_simulation_chain_IVC.md:159-174 ```@example complete_simulation_chain_IVC starting_positions = [ CylindricalPoint{T}( 0.020, deg2rad(10), 0.015 ), CylindricalPoint{T}( 0.015, deg2rad(20), 0.045 ), CylindricalPoint{T}( 0.022, deg2rad(35), 0.025 ) ] energy_depos = T[1460, 609, 1000] * u"keV" # are needed later in the signal generation evt = Event(starting_positions, energy_depos); time_step = 5u"ns" drift_charges!(evt, sim, Δt = time_step) plot(sim.detector, xunit = u"mm", yunit = u"mm", zunit = u"mm", size = (700, 700)) plot!(evt.drift_paths) savefig("tutorial_drift_paths.pdf") # hide savefig("tutorial_drift_paths.svg"); nothing # hide ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] interpolated_vectorfield(ef::ElectricField{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:220 [3] drift_charges(sim::Simulation{Float32, Cylindrical}, starting_positions::ArraysOfArrays.VectorOfArrays{CartesianPoint{Float32}, 1, 0, Vector{CartesianPoint{Float32}}, Vector{Int64}, Vector{Tuple{}}, SubArray{CartesianPoint{Float32}, 1, Vector{CartesianPoint{Float32}}, Tuple{UnitRange{Int64}}, true}}, energies::ArraysOfArrays.VectorOfArrays{Float32, 1, 0, Vector{Float32}, Vector{Int64}, Vector{Tuple{}}, SubArray{Float32, 1, Vector{Float32}, Tuple{UnitRange{Int64}}, true}}; Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, max_nsteps::Int64, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Simulation.jl:1563 [4] drift_charges!(evt::Event{Float32}, sim::Simulation{Float32, Cylindrical}; max_nsteps::Int64, Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:204 [5] top-level scope @ complete_simulation_chain_IVC.md:168 [6] eval @ ./boot.jl:385 [inlined] [7] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [8] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [9] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [10] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [11] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [12] with_logger @ ./logging.jl:632 [inlined] [13] capture(f::Documenter.var"#
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/tutorials/complete_simulation_chain_IVC.md:132-140 ```@example complete_simulation_chain_IVC calculate_electric_field!(sim, n_points_in_φ = 72) plot(sim.electric_field, full_det = true, φ = 0.0, size = (700, 700), xunit = u"mm", yunit = u"mm", zunit = u"V/mm", clims = (0,800).*u"V/mm") plot_electric_fieldlines!(sim, full_det = true, φ = 0.0) savefig("tutorial_electric_field.pdf") # hide savefig("tutorial_electric_field.svg"); nothing # hide ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] macro expansion @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/PlotRecipes/ElectricField.jl:163 [inlined] [3] apply_recipe(plotattributes::AbstractDict{Symbol, Any}, gdd::SolidStateDetectors.Plot_electric_fieldlines) @ SolidStateDetectors ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:300 [4] _process_userrecipes!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/user_recipe.jl:38 [5] recipe_pipeline!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/RecipesPipeline.jl:72 [6] _plot!(plt::Plots.Plot, plotattributes::Any, args::Any) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:223 [7] plot!(plt::Plots.Plot, args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:213 [8] plot!(args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:202 [9] plot! @ ~/.julia/packages/Plots/h49MV/src/plot.jl:194 [inlined] [10] #plot_electric_fieldlines!#538 @ ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:382 [inlined] [11] top-level scope @ complete_simulation_chain_IVC.md:137 [12] eval @ ./boot.jl:385 [inlined] [13] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [14] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [15] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [16] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [17] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [18] with_logger @ ./logging.jl:632 [inlined] [19] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [20] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:215-220 ```@example tutorial plot(u"µs", u"fC") plot!(add_baseline_and_extend_tail.(evt.waveforms,0,400), linewidth = 4, linestyle = :dash, label = "", unitformat = :slash) ``` exception = MethodError: no method matching add_baseline_and_extend_tail(::Missing, ::Int64, ::Int64) Closest candidates are: add_baseline_and_extend_tail(!Matched::RadiationDetectorSignals.RDWaveform{T, U, TV, UV}, ::Int64, ::Int64) where {T, U, TV, UV} @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:308 Stacktrace: [1] _broadcast_getindex_evalf @ ./broadcast.jl:709 [inlined] [2] _broadcast_getindex @ ./broadcast.jl:682 [inlined] [3] getindex @ ./broadcast.jl:636 [inlined] [4] copy @ ./broadcast.jl:918 [inlined] [5] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{0}, Nothing, typeof(add_baseline_and_extend_tail), Tuple{Base.RefValue{Missing}, Int64, Int64}}) @ Base.Broadcast ./broadcast.jl:903 [6] top-level scope @ plotting.md:217 [7] eval @ ./boot.jl:385 [inlined] [8] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [9] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [10] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [11] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [12] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [13] with_logger @ ./logging.jl:632 [inlined] [14] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [15] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:207-209 ```@example tutorial plot(evt.waveforms, unitformat = :slash, label = "Contact ".*string.((1:2)'), legend = :topleft) ``` exception = Cannot convert Missing to series data for plotting Stacktrace: [1] error(s::String) @ Base ./error.jl:35 [2] _prepare_series_data(x::Missing) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:8 [3] _series_data_vector(x::Missing, plotattributes::Dict{Symbol, Any}) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:36 [4] macro expansion @ ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:129 [inlined] [5] apply_recipe(plotattributes::AbstractDict{Symbol, Any}, ::Type{RecipesPipeline.SliceIt}, x::Any, y::Any, z::Any) @ RecipesPipeline ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:300 [6] _process_userrecipes!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/user_recipe.jl:38 [7] recipe_pipeline!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/RecipesPipeline.jl:72 [8] _plot!(plt::Plots.Plot, plotattributes::Any, args::Any) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:223 [9] plot(args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:102 [10] top-level scope @ plotting.md:208 [11] eval @ ./boot.jl:385 [inlined] [12] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [13] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [14] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [15] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [16] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [17] with_logger @ ./logging.jl:632 [inlined] [18] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [19] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:200-204 ```@example tutorial plot(u"mm", u"mm", u"mm") plot!(sim.detector, size = (500,500), label = "") plot!(evt.drift_paths, linewidth = 2, linestyle = :dash, markersize = 6) ``` exception = Cannot convert Missing to series data for plotting Stacktrace: [1] error(s::String) @ Base ./error.jl:35 [2] _prepare_series_data(x::Missing) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:8 [3] _series_data_vector(x::Missing, plotattributes::Dict{Symbol, Any}) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:36 [4] macro expansion @ ~/.julia/packages/RecipesPipeline/BGM3l/src/series.jl:129 [inlined] [5] apply_recipe(plotattributes::AbstractDict{Symbol, Any}, ::Type{RecipesPipeline.SliceIt}, x::Any, y::Any, z::Any) @ RecipesPipeline ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:300 [6] _process_userrecipes!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/user_recipe.jl:38 [7] recipe_pipeline!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/RecipesPipeline.jl:72 [8] _plot!(plt::Plots.Plot, plotattributes::Any, args::Any) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:223 [9] plot!(plt::Plots.Plot, args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:213 [10] plot!(args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:202 [11] top-level scope @ plotting.md:203 [12] eval @ ./boot.jl:385 [inlined] [13] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [14] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [15] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [16] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [17] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [18] with_logger @ ./logging.jl:632 [inlined] [19] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [20] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:191-196 ```@example tutorial evt = Event([CartesianPoint{T}(0.01,0.01,0.075)], [2u"MeV"]) simulate!(evt, sim) plot(sim.detector, size = (500,500), label = "") plot!(evt.drift_paths) ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] interpolated_vectorfield(ef::ElectricField{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:220 [3] drift_charges(sim::Simulation{Float32, Cylindrical}, starting_positions::ArraysOfArrays.VectorOfArrays{CartesianPoint{Float32}, 1, 0, Vector{CartesianPoint{Float32}}, Vector{Int64}, Vector{Tuple{}}, SubArray{CartesianPoint{Float32}, 1, Vector{CartesianPoint{Float32}}, Tuple{UnitRange{Int64}}, true}}, energies::ArraysOfArrays.VectorOfArrays{Float32, 1, 0, Vector{Float32}, Vector{Int64}, Vector{Tuple{}}, SubArray{Float32, 1, Vector{Float32}, Tuple{UnitRange{Int64}}, true}}; Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, max_nsteps::Int64, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Simulation/Simulation.jl:1563 [4] drift_charges!(evt::Event{Float32}, sim::Simulation{Float32, Cylindrical}; max_nsteps::Int64, Δt::Unitful.Quantity{Int64, 𝐓, Unitful.FreeUnits{(ns,), 𝐓, nothing}}, diffusion::Bool, self_repulsion::Bool, end_drift_when_no_field::Bool, geometry_check::Bool, verbose::Bool) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:204 [5] drift_charges! @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:202 [inlined] [6] #simulate!#427 @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:284 [inlined] [7] simulate!(evt::Event{Float32}, sim::Simulation{Float32, Cylindrical}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/Event/Event.jl:283 [8] top-level scope @ plotting.md:193 [9] eval @ ./boot.jl:385 [inlined] [10] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [11] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [12] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [13] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [14] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [15] with_logger @ ./logging.jl:632 [inlined] [16] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuf
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:181-184 ```@example tutorial plot(sim.electric_field, full_det = true, size = (500,500), clims = (0,5e5)) plot_electric_fieldlines!(sim, full_det = true, sampling = 3u"mm", offset = 2u"mm") ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] macro expansion @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/PlotRecipes/ElectricField.jl:163 [inlined] [3] apply_recipe(plotattributes::AbstractDict{Symbol, Any}, gdd::SolidStateDetectors.Plot_electric_fieldlines) @ SolidStateDetectors ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:300 [4] _process_userrecipes!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/user_recipe.jl:38 [5] recipe_pipeline!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/RecipesPipeline.jl:72 [6] _plot!(plt::Plots.Plot, plotattributes::Any, args::Any) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:223 [7] plot!(plt::Plots.Plot, args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:213 [8] plot!(args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:202 [9] plot! @ ~/.julia/packages/Plots/h49MV/src/plot.jl:194 [inlined] [10] #plot_electric_fieldlines!#538 @ ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:382 [inlined] [11] top-level scope @ plotting.md:183 [12] eval @ ./boot.jl:385 [inlined] [13] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [14] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [15] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [16] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [17] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [18] with_logger @ ./logging.jl:632 [inlined] [19] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [20] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Documentation: ../../../.julia/packages/Documenter/13nbQ/src/utilities/utilities.jl#L47
failed to run `@example` block in docs/src/man/plotting.md:165-167 ```@example tutorial plot_electric_fieldlines!(sim, full_det = true) ``` exception = UndefVarError: `spot` not defined Stacktrace: [1] interpolated_vectorfield(vectorfield::Array{StaticArraysCore.SVector{3, Float32}, 3}, grid::Grid{Float32, 3, Cylindrical, Tuple{SolidStateDetectors.DiscreteAxis{Float32, :r0, :infinite, IntervalSets.ClosedInterval{Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :periodic, :periodic, IntervalSets.Interval{:closed, :open, Float32}}, SolidStateDetectors.DiscreteAxis{Float32, :infinite, :infinite, IntervalSets.ClosedInterval{Float32}}}}) @ SolidStateDetectors ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/ElectricField/ElectricField.jl:211 [2] macro expansion @ ~/work/SolidStateDetectors.jl/SolidStateDetectors.jl/src/PlotRecipes/ElectricField.jl:163 [inlined] [3] apply_recipe(plotattributes::AbstractDict{Symbol, Any}, gdd::SolidStateDetectors.Plot_electric_fieldlines) @ SolidStateDetectors ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:300 [4] _process_userrecipes!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/user_recipe.jl:38 [5] recipe_pipeline!(plt::Any, plotattributes::Any, args::Any) @ RecipesPipeline ~/.julia/packages/RecipesPipeline/BGM3l/src/RecipesPipeline.jl:72 [6] _plot!(plt::Plots.Plot, plotattributes::Any, args::Any) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:223 [7] plot!(plt::Plots.Plot, args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:213 [8] plot!(args::Any; kw...) @ Plots ~/.julia/packages/Plots/h49MV/src/plot.jl:202 [9] plot! @ ~/.julia/packages/Plots/h49MV/src/plot.jl:194 [inlined] [10] #plot_electric_fieldlines!#538 @ ~/.julia/packages/RecipesBase/BRe07/src/RecipesBase.jl:382 [inlined] [11] top-level scope @ plotting.md:166 [12] eval @ ./boot.jl:385 [inlined] [13] #67 @ ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:919 [inlined] [14] cd(f::Documenter.var"#67#69"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [15] (::Documenter.var"#66#68"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:918 [16] (::IOCapture.var"#5#9"{DataType, Documenter.var"#66#68"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:170 [17] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:519 [18] with_logger @ ./logging.jl:632 [inlined] [19] capture(f::Documenter.var"#66#68"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/MR051/src/IOCapture.jl:167 [20] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/13nbQ/src/expander_pipeline.jl:917
Julia 1 - windows-latest - x64 - pull_request
Process completed with exit code 1.
Julia 1 - macOS-latest - arm64 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia 1 - ubuntu-latest - x64 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia pre - ubuntu-latest - x64 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia 1 - ubuntu-latest - x86 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia 1.10 - ubuntu-latest - x64 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Documentation
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia 1 - windows-latest - x64 - pull_request
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: julia-actions/setup-julia@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Julia 1 - ubuntu-latest - x64 - pull_request
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
Julia pre - ubuntu-latest - x64 - pull_request
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
Julia 1 - ubuntu-latest - x86 - pull_request
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
Julia 1.10 - ubuntu-latest - x64 - pull_request
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
Documentation
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"