Change8

2.6.0

Breaking Changes
📦 dspyView on GitHub →
2 breaking7 features🐛 3 fixes1 deprecations🔧 12 symbols

Summary

This release removes deprecated functional and dsp clients, adds streaming, a sandboxed interpreter, retry support, and several feature enhancements while fixing literal handling bugs.

⚠️ Breaking Changes

  • Removed deprecated `functional/` and `dsp/` client modules and old cache implementations; import paths and usage must be updated to the new modules.
  • Python interpreter refactor to a sandboxed environment may change execution behavior; code that relied on direct interpreter access should be reviewed and adapted to the sandbox API.

Migration Steps

  1. Replace imports of `functional` and `dsp` clients with the new module paths or alternative implementations.
  2. If your code interacts directly with the Python interpreter, migrate to the new sandbox API as described in the migration guide.
  3. Review any custom retry logic and switch to using LiteLLM `RetryPolicy` where appropriate.

✨ New Features

  • Added streaming support for model outputs.
  • Improved BootstrapFT functionality with several performance enhancements.
  • Introduced retry support via LiteLLM `RetryPolicy`.
  • Added argument parsing for `dspy.ReAct`.
  • Redirected the math dataset to the new location.
  • Simplified built-in modules in preparation for assertions v2.
  • Refined thread‑safety semantics for the `Settings` class.

🐛 Bug Fixes

  • Fixed literal format adherence in `ChatAdapter` and `JSONAdapter`.
  • Updated `multi_chain_comparison.py` example script.
  • Other minor bug fixes related to settings thread‑safety semantics.

🔧 Affected Symbols

functionaldspSettingsStreamBootstrapFTinterpreterLiteLLM.RetryPolicyChatAdapterJSONAdapterdspy.ReActmath_datasetmulti_chain_comparison

⚡ Deprecations

  • The `functional/` and `dsp/` client packages were previously deprecated and have now been removed.