For motivation and backstory, see [this comment](https://github.com/pygae/galgebra/issues/588#issuecomment-4182102610). ## What's in it **Bug fixes** - `is_blade()` now correctly handles null vectors and null blades (#537, merged via #582) - `Lt` accepts `ImmutableDenseMatrix` (#567, merged via #569) **Infra / tooling** - Migrate to `pyproject.toml` / PEP 517 (pending #587) - CI now tests Python 3.10, 3.11, 3.12; dropped 3.8/3.9 (#565) **Docs / support** - `GAlgebraPrimer.pdf` updated to Sep 2023 revision (#577) - Notebook outputs refreshed for SymPy 1.13 (#570) - Dev guides for bumping Python/SymPy and release process (#572) ## Pre-release todos - [ ] Merge #587 (pyproject.toml migration) - [ ] Update changelog: add entries for #585 and #587, reorganize Then follow [doc/dev/release-process.md](../doc/dev/release-process.md).
For motivation and backstory, see this comment.
What's in it
Bug fixes
is_blade()now correctly handles null vectors and null blades (Multivector method .is_blade() will fail for null multivectors #537, merged via fix(mv): is_blade() now correctly handles null vectors and null blades #582)LtacceptsImmutableDenseMatrix(Lt does not accept ImmutableDenseMatrix from SymPy 1.13 #567, merged via fix(lt): accept ImmutableDenseMatrix in Lt.__init__ (#567) #569)Infra / tooling
pyproject.toml/ PEP 517 (pending build: migrate to pyproject.toml, fix deprecated CI wheel build (#586) #587)Docs / support
GAlgebraPrimer.pdfupdated to Sep 2023 revision (docs(macdonald): update GAlgebraPrimer.pdf to September 2023 version #577)Pre-release todos
Then follow doc/dev/release-process.md.