Skip to content

Spglib v0.6 dependency prevents coexistence with Spglib v1.x packages #85

Description

@hsugawa8651

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions