Skip to content

feat!: deprecate in favor of langchain-azure-storage - #81

Open
darieldatoon wants to merge 2 commits into
mainfrom
chore/deprecate-for-langchain-azure-storage
Open

feat!: deprecate in favor of langchain-azure-storage#81
darieldatoon wants to merge 2 commits into
mainfrom
chore/deprecate-for-langchain-azure-storage

Conversation

@darieldatoon

Copy link
Copy Markdown
Collaborator

Summary

Final release of this package. The Azure Blob Storage backend it provides now ships first-party as langchain_azure_storage.deepagents.AzureBlobBackend in langchain-azure-storage (ported in langchain-ai/langchain-azure#783), so this one is being wound down per the hand-off plan in that repo's proposal doc.

Important

Do not merge until langchain-azure-storage 1.2.0 is released.
The published 1.1.1 pins deepagents>=0.6.12,<0.7.0, so it is not a viable migration target for anyone on deepagents 0.7.x. langchain-ai/langchain-azure#878 raises that floor to >=0.7.1; the migration guide in this PR points at 1.2.0 and is only accurate once it ships.

Changes

  • Import-time DeprecationWarning in __init__.py pointing at the successor package and the migration guide. stacklevel=2, so it is attributed to the caller's import line.
  • README banner + ## Migrating to langchain-azure-storage — a field-by-field table. Not a drop-in swap: the successor dropped AzureBlobConfig in favor of constructor arguments, moved connection strings to a from_connection_string() classmethod, and takes SDK credential objects rather than raw key/token strings. A re-export shim would not have been compatible.
  • deepagents>=0.6.1>=0.6.1,<0.7.0 (breaking). deepagents 0.7.0 changed BackendProtocol in ways this backend does not implement: write overwrites an existing file instead of returning a file-exists error, delete/adelete is now required (and is visible-but-broken behind a CompositeBackend without it), and GrepResult gained truncated. The previous unbounded pin resolved to that broken combination on a fresh install, so this cap is a bug fix as much as a deprecation signal.
  • Metadata: Development Status :: 7 - Inactive, deprecation note in the PyPI summary, Successor package project URL.
  • Docstring notice in the module docstring, which is what pdoc renders onto the docs site homepage.
  • New unit test asserting the warning fires on import and that the public API survives a reload.

Nothing is yanked and no released version is removed — existing pins keep resolving.

Test plan

  • uv run pytest tests/unit_tests → 137 passed
  • uv run ruff check ., uv run ruff format --check ., uv run ty check → clean
  • Verified the warning surfaces on a plain import deepagents_azure_blob_backend and is attributed to the caller

Follow-up (not in this PR)

After merge and the resulting 0.5.0 publish, in order — both archive steps disable uploads/Actions, so they come last:

  1. Confirm the publish and docs workflows went green on the release tag
  2. Archive the project on PyPI (settings → archive; non-destructive, keeps releases installable)
  3. Close the open Dependabot PRs, remove .github/dependabot.yml, pin a deprecation issue
  4. Archive this repository

Known caveat

Python's default warning filters suppress DeprecationWarning when it is raised from an imported module rather than __main__, so many users will not see the notice. UserWarning would always be visible. DeprecationWarning is what the hand-off plan specified, so that is what this PR uses — easy to change if we would rather guarantee visibility.

The Azure Blob Storage backend now ships first-party as
`langchain_azure_storage.deepagents.AzureBlobBackend` in
langchain-azure-storage[deepagents]. This package is unmaintained; 0.5.0 is the
final release.

- Import-time `DeprecationWarning` pointing at the successor package
- README banner plus an old-to-new migration table. The constructor API changed
  upstream (no `AzureBlobConfig`; credentials are SDK credential objects), so a
  re-export shim would not be compatible
- `Development Status :: 7 - Inactive`, deprecation note in the PyPI summary, and
  a `Successor package` project URL

BREAKING CHANGE: deepagents is now capped at <0.7.0. deepagents 0.7.0 changed
`BackendProtocol` in ways this backend does not implement (write overwrites
instead of erroring, `delete`/`adelete` is required, `GrepResult.truncated`), so
the previous unbounded pin resolved to a broken combination.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (ba772a0) to head (052f9fd).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #81   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            5         5           
  Lines          458       461    +3     
=========================================
+ Hits           458       461    +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

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