Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CompatHelper: bump compat for "Manifolds" to "0.10" #301

Conversation

github-actions[bot]
Copy link
Contributor

This pull request changes the compat entry for the Manifolds package from 0.9 to 0.9, 0.10.

This keeps the compat entries for earlier versions.

Note: I have not tested your package with this new compat entry. It is your responsibility to make sure that your package tests pass before you merge this pull request.

@mateuszbaran
Copy link
Collaborator

Here is the full description of what has changed: https://github.com/JuliaManifolds/Manifolds.jl/releases/tag/v0.10.0 . The TL;DR is that you need to change SpecialEuclidean(n) to SpecialEuclidean(n; vectors=HybridTangentRepresentation()) to get the 0.9 behavior because the new default is the "true SpecialEuclidean" with left-invariant tangent vector representation. And you also need to explicitly load RecurisveArrayTools because it's no longer a hard dependency.

@Affie
Copy link
Member

Affie commented Aug 26, 2024

Thanks for the tips. The RecursiveArrayTools breaking change may be a bit problematic as something like this now breaks:

julia> using Manifolds

julia> M = SpecialEuclidean(3)
SpecialEuclidean(3)

julia> ε = identity_element(M)
ERROR: MethodError: no method matching submanifold_components(::Vector{Float64})

Closest candidates are:
  submanifold_components(::ProductGroup, ::Identity{ProductOperation})
   @ Manifolds ~/.julia/packages/Manifolds/yXLBS/src/groups/product_group.jl:121
  submanifold_components(::GroupManifold{𝔽, MT, O}, ::Identity{O}) where {MT<:ProductManifold, 𝔽, O<:AbstractGroupOperation}
   @ Manifolds ~/.julia/packages/Manifolds/yXLBS/src/groups/product_group.jl:113
  submanifold_components(::ProductManifold, ::Identity{<:Manifolds.SemidirectProductOperation})
   @ Manifolds ~/.julia/packages/Manifolds/yXLBS/src/groups/semidirect_product_group.jl:262
  ...

Stacktrace:
 [1] submanifold_components
   @ ~/.julia/packages/ManifoldsBase/exldJ/src/ProductManifold.jl:1230 [inlined]
 [2] identity_element!(G::GroupManifold{…}, q::Vector{…})
   @ Manifolds ~/.julia/packages/Manifolds/yXLBS/src/groups/semidirect_product_group.jl:78
 [3] identity_element(::ManifoldsBase.TraitList{…}, G::GroupManifold{…})
   @ Manifolds ~/.julia/packages/Manifolds/yXLBS/src/groups/group.jl:269
 [4] identity_element(G::GroupManifold{…})
   @ Manifolds ~/.julia/packages/ManifoldsBase/exldJ/src/nested_trait.jl:306
 [5] top-level scope
   @ REPL[4]:1
Some type information was truncated. Use `show(err)` to see complete types.

@mateuszbaran
Copy link
Collaborator

I will try to make a better error message for that case but at least the fix is easy (using RecursiveArrayTools). I hope it's not too disruptive.

@Affie
Copy link
Member

Affie commented Aug 26, 2024

I will try to make a better error message for that case but at least the fix is easy (using RecursiveArrayTools). I hope it's not too disruptive.

A better error message will help someone new as I wouldn't have known the error was because of RecursiveArrayTools without your help.

@mateuszbaran
Copy link
Collaborator

Manifolds 0.10.1 now has a nice error message:

julia> ε = identity_element(M)
ERROR: Could not allocate result of function identity_element on manifold SpecialEuclidean(3). This error could be resolved by importing RecursiveArrayTools.jl. If this is not the case, please open report an issue.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] allocate_result_array(M::GroupManifold{…}, f::Function, ::Type, ::Nothing)
   @ ManifoldsBase ~/.julia/dev/ManifoldsBase/src/ManifoldsBase.jl:191
 [3] allocate_result(G::GroupManifold{…}, f::typeof(identity_element))
   @ Manifolds ~/.julia/dev/Manifolds/src/groups/group.jl:277
 [4] identity_element(::ManifoldsBase.TraitList{…}, G::GroupManifold{…})
   @ Manifolds ~/.julia/dev/Manifolds/src/groups/group.jl:268
 [5] identity_element(G::GroupManifold{…})
   @ Manifolds ~/.julia/dev/ManifoldsBase/src/nested_trait.jl:306
 [6] top-level scope
   @ REPL[3]:1
Some type information was truncated. Use `show(err)` to see complete types.

@Affie
Copy link
Member

Affie commented Oct 3, 2024

done in #302

@Affie Affie closed this Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants