DSPy 3.2.1 Changelog
- Removed the upper bound on
litellm. (#9687) - Usecase page has been updated! https://dspy.ai/community/use-cases/. To add your use-case, open a PR!
Bug fixes
- Fixed async streaming LM calls so custom headers are forwarded to LiteLLM streaming completions. (#9669)
- Fixed
dspy.Embedderso per-callcaching=Falseis honored for both sync and async embedding calls. (#9708)
Documentation
- Moved Deployment into the technical documentation tabs and promoted production use cases under Community. (#9709)
- Updated the production use-cases copy for DSPy.
- Fixed MkDocs admonition rendering in Deployment and Observability docs. (#9690, #9691)
- Fixed duplicate-word typos across docs, source, and tests. (#9695)
CI and release
- Hardened TestPyPI release validation by adding strict
twine checkand reducing unused workflow permissions. (#9648) - Gave TestPyPI publishing its own GitHub environment. (#9649)
- Removed an unused
setup-nodestep from the docs push workflow. (#9702) - Replaced direct merge-to-main after publishing with a version bump PR. (#9716)
- Refreshed
uv.lockfor the 3.2.0 release state. (#9650)
Dependency updates
- Updated test and development dependencies:
pytest-asyncio,ruff,pre-commit,datamodel-code-generator,optuna, andurllib3. (#9665, #9664, #9699, #9701, #9697, #9698) - Updated documentation dependencies:
mkdocs-llmstxt,mkdocstrings,mistune, andmkdocs-jupyter. (#9661, #9668, #9666, #9700) - Updated GitHub Actions dependencies:
actions/cacheandastral-sh/setup-uv. (#9662, #9663)
Contributors
- @isaacbmiller
- @GopalGB (first contribution, #9695)
- @spjosyula (first contribution, #9708)
Excluded
- The GEPA 0.1.1 result/documentation update was intentionally excluded from this release. (#9673)