Problem
BrillouinZoneMeshes.jl is pinned to Spglib = "0.6.0" and cannot coexist in the same environment with packages that require Spglib v1.x (e.g., DFTK.jl, BoltzTraP.jl).
Julia's Pkg does not support loading multiple versions of the same package in a single environment, so any project using Spglib v1.x is unable to use BrillouinZoneMeshes.jl.
Root Cause
- Project.toml compat is pinned to Spglib = "0.6.0"
- Direct dependency on spglib_jll with 5 ccall invocations to C functions (spg_get_symmetry, spg_get_symmetry_with_collinear_spin, spg_get_stabilized_reciprocal_mesh,
spg_get_error_code, spg_get_error_message)
- Spglib.jl high-level API is also used (Cell, standardize_cell, get_spacegroup_number), and type names, field names, and function signatures have changed between v0.6
and v1.x
- A compat bump alone is insufficient; code changes are required
Scope of Impact
- Public API of BrillouinZoneMeshes.jl (function signatures) is not affected
- Spglib-derived struct field names have changed (e.g., .types → .atoms)
- Downstream packages (GreenFunc.jl, etc.) do not directly access Spglib return value fields; the impact is contained within BrillouinZoneMeshes.jl internals
Proposed Fix
A working implementation is available at https://github.com/hsugawa8651/BrillouinZoneMeshes.jl/tree/spglib-v1x-compat
All Spglib-related tests pass. Will submit a PR shortly.
Related
Problem
BrillouinZoneMeshes.jl is pinned to Spglib = "0.6.0" and cannot coexist in the same environment with packages that require Spglib v1.x (e.g., DFTK.jl, BoltzTraP.jl).
Julia's Pkg does not support loading multiple versions of the same package in a single environment, so any project using Spglib v1.x is unable to use BrillouinZoneMeshes.jl.
Root Cause
spg_get_error_code, spg_get_error_message)
and v1.x
Scope of Impact
Proposed Fix
A working implementation is available at https://github.com/hsugawa8651/BrillouinZoneMeshes.jl/tree/spglib-v1x-compat
All Spglib-related tests pass. Will submit a PR shortly.
Related