[PR #5094] refactor: remove use of importlib.metadata for version access #4231

Closed
opened 2026-02-20 17:49:52 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langchain-ai/langgraph/pull/5094

State: closed
Merged: No


Summary

Removes importlib.metadata usage for version access and implements UV dynamic versioning as requested in #5040.

Changes Made

  • Removed importlib.metadata imports from version files across all packages
  • Replaced with simple hardcoded versions for runtime access
  • Added uv-dynamic-versioning to build systems for modern version management
  • Configured fallback versions for development environments

Packages Affected

  • langgraph (main package)
  • langgraph-cli
  • langgraph-sdk

Performance Benefits

  • Eliminates runtime metadata lookups during imports
  • Reduces import overhead by removing importlib.metadata dependency
  • Maintains clean version access through simple string constants

Implementation Details

Before:

from importlib import metadata
try:
    __version__ = metadata.version(__package__)
except metadata.PackageNotFoundError:
    __version__ = ""

After:

__version__ = "0.4.7"  # Simple fallback

Build Configuration:

[build-system]
requires = ["hatchling", "uv-dynamic-versioning"]

[project]
dynamic = ["version"]

[tool.hatch.version]
source = "uv-dynamic-versioning"

Fixes #5040

**Original Pull Request:** https://github.com/langchain-ai/langgraph/pull/5094 **State:** closed **Merged:** No --- ## Summary Removes `importlib.metadata` usage for version access and implements UV dynamic versioning as requested in #5040. ## Changes Made - **Removed `importlib.metadata` imports** from version files across all packages - **Replaced with simple hardcoded versions** for runtime access - **Added `uv-dynamic-versioning`** to build systems for modern version management - **Configured fallback versions** for development environments ## Packages Affected - `langgraph` (main package) - `langgraph-cli` - `langgraph-sdk` ## Performance Benefits - Eliminates runtime metadata lookups during imports - Reduces import overhead by removing `importlib.metadata` dependency - Maintains clean version access through simple string constants ## Implementation Details ### Before: ```python from importlib import metadata try: __version__ = metadata.version(__package__) except metadata.PackageNotFoundError: __version__ = "" ``` ### After: ```python __version__ = "0.4.7" # Simple fallback ``` ### Build Configuration: ```toml [build-system] requires = ["hatchling", "uv-dynamic-versioning"] [project] dynamic = ["version"] [tool.hatch.version] source = "uv-dynamic-versioning" ``` Fixes #5040
yindo added the pull-request label 2026-02-20 17:49:52 -05:00
yindo closed this issue 2026-02-20 17:49:52 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langchain-ai/langgraph#4231