Skip to content

Bump version to v0.3.19 - #79

Merged
lkdvos merged 3 commits into
mainfrom
v0.3.19
Sep 23, 2026
Merged

lkdvos merged 3 commits into
mainfrom
v0.3.19

Conversation

@lkdvos

@lkdvos lkdvos commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

BlockTensorKit.jl v0.3.19

Patch release fixing a silent data-loss bug in permuted contractions into sparse block tensors.

Highlights

  • Fixed: TensorKit 0.17.2 changed its internals around indexmanipulations (_braid! to call a 9-argument TensorKit.add_transform!). BlockTensorKit 0.3.18 only overrode the older 8-argument signature for these internals, therefore breaking on a patch release. Fixed by intercepting TO.tensoradd! directly instead of TensorKit.add_transform! (Intercept TO.tensoradd! instead of TensorKit.add_transform! #78).

Full Changelog

v0.3.18...v0.3.19

@codecov

codecov Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.50000% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/vectorspaces/sumspace.jl 87.50% 1 Missing ⚠️
Files with missing lines Coverage Δ
src/vectorspaces/sumspace.jl 61.29% <87.50%> (+0.74%) ⬆️

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

lkdvos and others added 2 commits September 23, 2026 13:07
TensorKit v0.17.2 (#515) requires every `GradedSpace` to be homogeneously
colored, forbids `unitspace` for `GenericUnit` sectors and checks coloring
when building `ProductSpace`/`HomSpace`. This broke the multifusion `SumSpace`
tests, which flattened heterogeneous sums into a single `GradedSpace`.

- `unitspace(::Type{<:SumSpace})` returns one component per simple unit
- `leftunitspace`/`rightunitspace` inspect components instead of flattening
- `_leftrightunit(::SumSpace)` uses the shared unit, or a wildcard if components differ
- tests use `⊞` instead of flattening `⊕`, and expect incompatible products to throw
- require TensorKit v0.17.2

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The previous fix let leftunitspace/rightunitspace answer for a SumSpace
whose components agreed on only one side (left xor right), by checking
each side independently and treating disagreement on the other side as
a wildcard. That's inconsistent with how a plain GradedSpace works: it
is either homogeneously colored (single left AND right unit shared by
every sector) or invalid. A SumSpace should follow the same rule as a
whole, so leftunitspace/rightunitspace/_leftrightunit again require
full agreement on both sides and reject (SpaceMismatch) otherwise,
without any special-casing for a partial match.

unitspace itself is unaffected by this: TensorKit already forbids it at
the type level for GenericUnit sector types, regardless of any given
instance's homogeneity, so it throws ArgumentError unconditionally for
IsingBimodule-sectored spaces, homogeneous or not. The Multifusion
testset is adjusted to expect this throughout, rather than the previous
attempt to give unitspace a real answer for such sector types.
@lkdvos
lkdvos merged commit e4ee03c into main Sep 23, 2026
28 checks passed
@lkdvos
lkdvos deleted the v0.3.19 branch September 23, 2026 19:36
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.

1 participant