Autogenerated release notes as follows:
What's Changed
- Update dependencies and build system by @astanziola in #147
- chore(deps): update development dependencies to latest versions by @astanziola in #153
- Fix inconsistent shift_operator (#146) by @astanziola in #157
- chore(deps): pin jax to >=0.9.0,<0.10.0 by @dependabot[bot] in #155
- fix(deps): update dependencies to resolve security vulnerabilities by @astanziola in #158
- chore(deps): widen pre-commit and python-kacl version bounds by @astanziola in #159
- feat: operator params introspection, eqx.Module tests, tutorial, and Linear.eq fix by @astanziola in #161
- Fix FiniteDifferences.replace_params losing accuracy by @astanziola in #162
- Fix draft release workflow by @astanziola in #163
- Allow bump-my-version to run in dirty worktree by @astanziola in #164
- Fix bump-my-version config section name by @astanziola in #165
- Release 0.3.0 by @astanziola in #166
- Fix release workflow changelog check by @astanziola in #167
- Fix release workflow quoting by @astanziola in #168
- Fix release tests: clear nbval addopts by @astanziola in #169
- Fix plum 2.x import and release test config by @astanziola in #170
- Run tests once on main by @astanziola in #171
- Fix plum 2.x import and release test-script quoting by @astanziola in #172
- Use forked release action with changelog check and quoting fix by @astanziola in #173
- Use uv run in release test-script by @astanziola in #174
Full Changelog: 0.2.8...v0.3.0