Skip to content

[WIP] Use GeometryOpsCore for real #751

[WIP] Use GeometryOpsCore for real

[WIP] Use GeometryOpsCore for real #751

Triggered via pull request October 7, 2024 06:04
@asinghvi17asinghvi17
synchronize #223
as/usecore
Status Failure
Total duration 10m 9s
Artifacts

CI.yml

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

Annotations

3 errors and 18 warnings
Julia 1 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Julia 1.9 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Julia nightly - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
Julia 1 - ubuntu-latest - x64 - pull_request
Julia depot registries already exist. Skipping restoring of cached registries to avoid potential merge conflicts when updating. Please ensure that `julia-actions/cache` precedes any workflow steps which add registries.
Julia 1 - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Julia 1 - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Julia 1.9 - ubuntu-latest - x64 - pull_request
Julia depot registries already exist. Skipping restoring of cached registries to avoid potential merge conflicts when updating. Please ensure that `julia-actions/cache` precedes any workflow steps which add registries.
Julia 1.9 - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Julia 1.9 - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Julia nightly - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Julia nightly - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'GeometryOps.reproject' in src/api.md:59-61 ```@autodocs Modules = [GeometryOps] ```
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:26-31 ```@example segmentize import GeometryOps as GO, GeoInterface as GI rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]]) linear = GO.segmentize(rectangle; max_distance = 5) collect(GI.getpoint(linear)) ``` exception = UndefKeywordError: keyword argument `max_distance` not assigned Stacktrace: [1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Int64, threaded::GeometryOpsCore._False) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172 [2] top-level scope @ segmentize.md:29 [3] eval @ ./boot.jl:385 [inlined] [4] #60 @ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined] [5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753 [7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170 [8] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [9] with_logger @ ./logging.jl:627 [inlined] [10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167 [11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:36-40 ```@example segmentize using Proj # required to activate the `GeodesicSegments` method! geodesic = GO.segmentize(GO.GeodesicSegments(max_distance = 1000), rectangle) length(GI.getpoint(geodesic) |> collect) ``` exception = MethodError: no method matching Geodesic(::Tuple{Int64, Int64}, ::Float64) Closest candidates are: Geodesic(::T, !Matched::T) where T @ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:77 Stacktrace: [1] Geodesic(; semimajor_axis::Tuple{Int64, Int64}, inv_flattening::Float64) @ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:76 [2] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; threaded::GeometryOpsCore._False) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:189 [3] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:186 [4] top-level scope @ segmentize.md:38 [5] eval @ ./boot.jl:385 [inlined] [6] #60 @ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined] [7] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [8] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753 [9] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170 [10] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [11] with_logger @ ./logging.jl:627 [inlined] [12] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167 [13] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:45-53 ```@example segmentize using CairoMakie linear = GO.segmentize(rectangle; max_distance = 0.01) geodesic = GO.segmentize(GO.GeodesicSegments(; max_distance = 1000), rectangle) f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect())) p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic") axislegend(a; position = :lt) f ``` exception = UndefKeywordError: keyword argument `max_distance` not assigned Stacktrace: [1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Float64, threaded::GeometryOpsCore._False) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172 [2] top-level scope @ segmentize.md:47 [3] eval @ ./boot.jl:385 [inlined] [4] #60 @ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined] [5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753 [7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170 [8] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [9] with_logger @ ./logging.jl:627 [inlined] [10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167 [11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'LinearSegments' in `@docs` block in src/source/transformations/segmentize.md:57-60 ```@docs LinearSegments GeodesicSegments ```
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'GeodesicSegments' in `@docs` block in src/source/transformations/segmentize.md:57-60 ```@docs LinearSegments GeodesicSegments ```
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:80-110 ```@example benchmark # These are initial distances, which yield similar numbers of points # in the final geometry. init_lin = 0.01 init_geo = 900 # LibGEOS.jl doesn't offer this function, so we just wrap it ourselves! function densify(obj::LG.Geometry, tol::Real, context::LG.GEOSContext = LG.get_context(obj)) result = LG.GEOSDensify_r(context, obj, tol) if result == C_NULL error("LibGEOS: Error in GEOSDensify") end LG.geomFromGEOS(result, context) end # now, we get to the actual benchmarking: for scalefactor in exp10.(LinRange(log10(0.1), log10(10), 5)) lin_dist = init_lin * scalefactor geo_dist = init_geo * scalefactor npoints_linear = GI.npoint(GO.segmentize(rectangle; max_distance = lin_dist)) npoints_geodesic = GO.segmentize(GO.GeodesicSegments(; max_distance = geo_dist), rectangle) |> GI.npoint npoints_libgeos = GI.npoint(densify(lg_rectangle, lin_dist)) segmentize_suite["Linear"][npoints_linear] = @be GO.segmentize(GO.LinearSegments(; max_distance = $lin_dist), $rectangle) seconds=1 segmentize_suite["Geodesic"][npoints_geodesic] = @be GO.segmentize(GO.GeodesicSegments(; max_distance = $geo_dist), $rectangle) seconds=1 segmentize_suite["LibGEOS"][npoints_libgeos] = @be densify($lg_rectangle, $lin_dist) seconds=1 end plot_trials(segmentize_suite) ``` exception = UndefKeywordError: keyword argument `max_distance` not assigned Stacktrace: [1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Float64, threaded::GeometryOpsCore._False) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172 [2] top-level scope @ segmentize.md:99 [3] eval @ ./boot.jl:385 [inlined] [4] #60 @ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined] [5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753 [7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170 [8] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [9] with_logger @ ./logging.jl:627 [inlined] [10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167 [11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/tutorials/geodesic_paths.md:5-17 ```@example geodesic import GeometryOps as GO, GeoInterface as GI using CairoMakie, GeoMakie IAH = (-95.358421, 29.749907) AMS = (4.897070, 52.377956) fig, ga, _cp = lines(GeoMakie.coastlines(); axis = (; type = GeoAxis)) lines!(ga, GO.segmentize(GO.GeodesicSegments(; max_distance = 100_000), GI.LineString([IAH, AMS])); color = Makie.wong_colors()[2]) fig ``` exception = MethodError: no method matching Geodesic(::Tuple{Int64, Int64}, ::Float64) Closest candidates are: Geodesic(::T, !Matched::T) where T @ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:77 Stacktrace: [1] Geodesic(; semimajor_axis::Tuple{Int64, Int64}, inv_flattening::Float64) @ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:76 [2] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}; threaded::GeometryOpsCore._False) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:189 [3] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}) @ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:186 [4] top-level scope @ geodesic_paths.md:15 [5] eval @ ./boot.jl:385 [inlined] [6] #60 @ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined] [7] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String) @ Base.Filesystem ./file.jl:112 [8] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})() @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753 [9] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})() @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170 [10] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [11] with_logger @ ./logging.jl:627 [inlined] [12] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any}) @ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167 [13] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document) @ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
Cannot resolve @ref for md"[Primitive Functions](@ref Primitive-functions)" in src/introduction.md. - No docstring found in doc for binding `Base.-`.
Documentation: ../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
Cannot resolve @ref for md"[`Planar`](@ref)" in src/api.md. - No docstring found in doc for binding `GeometryOpsCore.Planar`. - No docstring found in doc for binding `GeometryOpsCore.Planar`.