Summary of releases#

v2.1.0 (10 Sep. 2023)#

This minor release includes a lot of improvements in build system and CI.

Documentation and examples#

  • [#242] - Update examples in C and Fortran

  • [#245] - Readthedocs

  • [#246] - Clean up and documentation fix

  • [#253] - Update documentation link

  • [#263] - Redirect GitHub pages to Read the Docs

  • [#265] - Clarify non-collinear magmoms in Python interface

  • [#283] - Document behavior for type-II magnetic crystal structure

  • [#322] - Add citation info

Fixes (layer group)#

  • [#199] - Fix a bug in layer groups.

  • [#201] - Add layer group python interface

  • [#209] - fix(layergroup): fix unique axis of monocli system

  • [#288] - Initial refactor for layer group implementation

Fixes (magnetic space group)#

  • [#267] - Validate type of MSG

C codebase Refactoring#

  • [#223] - Rename periodic_niggli_reduce to niggli_reduce_periodic

  • [#258] - Change SPGCONST to const

  • [#278] - Revive compiler warnings

  • [#281] - Fix message and remove redundant lines

  • [#284] - Ensure thread-safety

  • [#293] - Refactor debug-warning rules

Fortran interface#

  • [#216] - Fortran spg get symmetry with site tensors

  • [#224] - Change installation location of spglib_f08.mod

  • [#226] - Add fortran tests and clean cmake

  • [#227] - Quick fix: Fix fortran cmake target

  • [#230] - Add fortran interface test

  • [#232] - Add more fortran wrapper tests

Build system improvement#

  • [#210] - Improve cmake build

  • [#215] - Fix pre-commit

  • [#233] - Cmake refactoring

  • [#260] - Fix #191 again

  • [#266] - Add rpm spec file

  • [#270] - Fix codecov package dependency

  • [#272] - Fedora packaging maintainence

  • [#274] - [Temp] Disable intel toolchain

  • [#279] - Various cmake cleanups

  • [#300] - tests: Refactor testing framework

  • [#302] - Silence C warning “arrays with different qualifiers”

  • [#304] - Set C standard to C11

  • [#309] - Add pytests to ctest

Python packaging improvement#

  • [#203] - Add setup.cfg for python interface

  • [#214] - Temporary fix for scikit-build on macs

  • [#218] - Move to pyproject.toml build

  • [#229] - Minor fix of pyproject.toml

  • [#268] - Refactor python optional dependencies

  • [#269] - Python: fix packaging

CI and releasing#

  • [#241] - Improvre pre-commit and github action

  • [#250] - Use tag format for PyPi action

  • [#254] - Include an autoreleaser

  • [#275] - Change PyPI publishing to Trusted publishing

  • [#280] - fix: Hotfix Fedora CI

  • [#285] - ci: Use container with pre-installed toolchains

  • [#286] - Add windows and macos CI

  • [#287] - Refactor Github CI

  • [#294] - ci: Silence codecov until all coverage tests are uploaded

  • [#306] - ci: Add concurrency to GH actions

  • [#307] - ci: Switch to native pip instead of conda

  • [#315] - Various fixes

  • [#319] - Fix python 3.12 CI

  • [#320] - Fix target branch for packit

  • [#321] - Fix: build wheel workflow

Misc#

  • [#207] - Add benchmark for get_symmetry_dataset

V2.0.2 (6 Nov. 2022)#

  • Fix segmentation fault in spgms_get_symmetry_with_site_tensors with high symprec [#195]

  • Fix possible segmentation fault in get_magnetic_dataset with high symprec [#196]

V2.0.1 (31 Aug. 2022)#

  • Fix magnetic tolerance for judging type-II MSG (#187)

Release v2.0 and future plan#

This release contains functions to search magnetic space group types which are provided as experimental features. The behaviours of these magnetic related functions (*_magnetic_*) with respect to the tolerance parameter (symprec or mag_symprec) may be changed in the future.

We are planning to separate irreducible k-points search from spglib. At spglib version 4.0, those functions will be removed if we succeed to provide an alternative package (hopefully with better functionalities) until then.

C functions and structures#

SpglibSpacegroupType structure#

  • Add hall_number member at version 2.0

  • Used as return value of spg_get_spacegroup_type and spg_get_spacegroup_type_from_symmetry

spg_get_spacegroup_type_from_symmetry#

  • New at version 2.0

  • Replacement of spg_get_hall_number_from_symmetry

spg_get_symmetry_with_site_tensors#

  • Experimental: new at version 2.0

spg_get_magnetic_dataset#

  • Experimental: new at version 2.0

spg_get_magnetic_symmetry_from_database#

  • Experimental: new at version 2.0

spg_free_magnetic_dataset#

  • Experimental: new at version 2.0

spg_get_magnetic_spacegroup_type_from_symmetry#

  • Experimental: new at version 2.0

spg_get_hall_number_from_symmetry#

  • Deprecated at version 2.0

  • Will be removed at version 3.0

spgat_get_symmetry_with_collinear_spin#

  • Deprecated at version 2.0

  • Will be removed at version 3.0

  • Will be replaced by spgms_get_symmetry_with_collinear_spin

spg_get_ir_reciprocal_mesh#

  • Plan to make it deprecated at version 3.0

spg_get_stabilized_reciprocal_mesh#

  • Plan to make it deprecated at version 3.0

Python interface#

get_symmetry#

  • get_symmetry with is_magnetic=True is deprecated at version 2.0. Use get_magnetic_symmetry for magnetic symmetry search.

  • As of version 2.0, the behavior of get_symmetry with zero magmoms (corresponding to type-II MSG) is changed. When all magmoms are zero, the newer get_symmetry returns the same spatial symmetry with time_reversal=True and time-reversal=False. This doubles the size of symmetry operations compared to the previous version.

get_spacegroup_type#

  • hall_number member is added at version 2.0.

get_spacegroup_type_from_symmetry#

  • New at version 2.0

  • Replacement of get_hall_number_from_symmetry

get_magnetic_symmetry#

  • Experimental: new at version 2.0

get_magnetic_symmetry_dataset#

  • Experimental: new at version 2.0

get_magnetic_spacegroup_type#

  • Experimental: new at version 2.0

get_magnetic_symmetry_from_database#

  • Experimental: new at version 2.0

get_hall_number_from_symmetry#

  • Deprecated at version 2.0

  • Will be removed at version 3.0

  • Will be replaced by get_spacegroup_type_from_symmetry

get_ir_reciprocal_mesh#

  • Plan to make it deprecated at version 3.0