Bump graphiti-core to v0.23.1 in mcp_server (#1060)
* Bump graphiti-core to v0.23.1 in mcp_server and consolidate dev dependencies - Updated graphiti-core from 0.23.0 to 0.23.1 in pyproject.toml and dockerfiles - Moved all dev dependencies to [dependency-groups].dev (uv's preferred approach) - Removed redundant [project.optional-dependencies].dev section - Eliminated duplicate graphiti-core and mcp entries from dev dependencies 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix dev dependencies being installed in Docker containers Added --no-group dev flag to uv sync in Dockerfiles. The --no-dev flag only excludes [project.optional-dependencies].dev, but doesn't exclude [dependency-groups].dev which we now use. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add --no-sync flag to uv run in Dockerfiles The uv run command was re-syncing dependencies at runtime and installing dev groups despite uv sync --no-group dev. Using --no-sync tells uv to use the already-synced dependencies without re-checking. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Make sed pattern version-agnostic in Dockerfiles Changed hardcoded version pattern from >=0\.23\.1 to >=[0-9.]\+ so the Dockerfiles don't need to be updated every time graphiti-core version is bumped in pyproject.toml. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove redundant --no-dev flag from uv sync Since we removed [project.optional-dependencies].dev, the --no-dev flag no longer has any effect. Only --no-group dev is needed to exclude dev dependency-groups. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Use more precise semver regex in sed patterns Changed from [0-9.]\+ to [0-9]\+\.[0-9]\+\.[0-9]\+ to match proper semantic versions (e.g., 0.23.1) and avoid matching invalid patterns like .... or 1.2.3.4.5. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix version inconsistencies and add regex end anchor - Updated MCP_SERVER_VERSION from 1.0.0rc0/1.0.0 to 1.0.1 to match pyproject.toml - Added $ end-of-line anchor to sed patterns to prevent matching partial strings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
parent
bb9b33ef6b
commit
d4a92772ec
5 changed files with 32 additions and 42 deletions
|
|
@ -33,7 +33,7 @@ ENV UV_COMPILE_BYTECODE=1 \
|
|||
WORKDIR /app/mcp
|
||||
|
||||
# Accept graphiti-core version as build argument
|
||||
ARG GRAPHITI_CORE_VERSION=0.23.0
|
||||
ARG GRAPHITI_CORE_VERSION=0.23.1
|
||||
|
||||
# Copy project files for dependency installation
|
||||
COPY pyproject.toml uv.lock ./
|
||||
|
|
@ -42,15 +42,15 @@ COPY pyproject.toml uv.lock ./
|
|||
# and regenerate lock file to match the PyPI version
|
||||
RUN sed -i '/\[tool\.uv\.sources\]/,/graphiti-core/d' pyproject.toml && \
|
||||
if [ -n "${GRAPHITI_CORE_VERSION}" ]; then \
|
||||
sed -i "s/graphiti-core\[falkordb\]>=0\.23\.0/graphiti-core[falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml; \
|
||||
sed -i "s/graphiti-core\[falkordb\]>=[0-9]\+\.[0-9]\+\.[0-9]\+$/graphiti-core[falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml; \
|
||||
fi && \
|
||||
echo "Regenerating lock file for PyPI graphiti-core..." && \
|
||||
rm -f uv.lock && \
|
||||
uv lock
|
||||
|
||||
# Install Python dependencies
|
||||
# Install Python dependencies (exclude dev dependency group)
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --no-dev
|
||||
uv sync --no-group dev
|
||||
|
||||
# Store graphiti-core version
|
||||
RUN echo "${GRAPHITI_CORE_VERSION}" > /app/mcp/.graphiti-core-version
|
||||
|
|
@ -106,13 +106,13 @@ fi
|
|||
# Start MCP server in foreground
|
||||
echo "Starting MCP server..."
|
||||
cd /app/mcp
|
||||
exec /root/.local/bin/uv run main.py
|
||||
exec /root/.local/bin/uv run --no-sync main.py
|
||||
EOF
|
||||
|
||||
RUN chmod +x /start-services.sh
|
||||
|
||||
# Add Docker labels with version information
|
||||
ARG MCP_SERVER_VERSION=1.0.0rc0
|
||||
ARG MCP_SERVER_VERSION=1.0.1
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
LABEL org.opencontainers.image.title="FalkorDB + Graphiti MCP Server" \
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ ENV UV_COMPILE_BYTECODE=1 \
|
|||
WORKDIR /app/mcp
|
||||
|
||||
# Accept graphiti-core version as build argument
|
||||
ARG GRAPHITI_CORE_VERSION=0.23.0
|
||||
ARG GRAPHITI_CORE_VERSION=0.23.1
|
||||
|
||||
# Copy project files for dependency installation
|
||||
COPY pyproject.toml uv.lock ./
|
||||
|
|
@ -37,14 +37,14 @@ COPY pyproject.toml uv.lock ./
|
|||
# Install with BOTH neo4j and falkordb extras for maximum flexibility
|
||||
# and regenerate lock file to match the PyPI version
|
||||
RUN sed -i '/\[tool\.uv\.sources\]/,/graphiti-core/d' pyproject.toml && \
|
||||
sed -i "s/graphiti-core\[falkordb\]>=0\.23\.0/graphiti-core[neo4j,falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml && \
|
||||
sed -i "s/graphiti-core\[falkordb\]>=[0-9]\+\.[0-9]\+\.[0-9]\+$/graphiti-core[neo4j,falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml && \
|
||||
echo "Regenerating lock file for PyPI graphiti-core..." && \
|
||||
rm -f uv.lock && \
|
||||
uv lock
|
||||
|
||||
# Install Python dependencies
|
||||
# Install Python dependencies (exclude dev dependency group)
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --no-dev
|
||||
uv sync --no-group dev
|
||||
|
||||
# Store graphiti-core version
|
||||
RUN echo "${GRAPHITI_CORE_VERSION}" > /app/mcp/.graphiti-core-version
|
||||
|
|
@ -58,7 +58,7 @@ COPY config/ ./config/
|
|||
RUN mkdir -p /var/log/graphiti
|
||||
|
||||
# Add Docker labels with version information
|
||||
ARG MCP_SERVER_VERSION=1.0.0
|
||||
ARG MCP_SERVER_VERSION=1.0.1
|
||||
ARG BUILD_DATE
|
||||
ARG VCS_REF
|
||||
LABEL org.opencontainers.image.title="Graphiti MCP Server (Standalone)" \
|
||||
|
|
@ -78,4 +78,4 @@ HEALTHCHECK --interval=10s --timeout=5s --start-period=15s --retries=3 \
|
|||
CMD curl -f http://localhost:8000/health || exit 1
|
||||
|
||||
# Run the MCP server
|
||||
CMD ["uv", "run", "main.py"]
|
||||
CMD ["uv", "run", "--no-sync", "main.py"]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ requires-python = ">=3.10,<4"
|
|||
dependencies = [
|
||||
"mcp>=1.9.4",
|
||||
"openai>=1.91.0",
|
||||
"graphiti-core[falkordb]>=0.23.0",
|
||||
"graphiti-core[falkordb]>=0.23.1",
|
||||
"pydantic-settings>=2.0.0",
|
||||
"pyyaml>=6.0",
|
||||
"typing-extensions>=4.0.0",
|
||||
|
|
@ -24,15 +24,6 @@ providers = [
|
|||
"voyageai>=0.2.3",
|
||||
"sentence-transformers>=2.0.0",
|
||||
]
|
||||
dev = [
|
||||
"graphiti-core>=0.23.0",
|
||||
"httpx>=0.28.1",
|
||||
"mcp>=1.9.4",
|
||||
"pyright>=1.1.404",
|
||||
"pytest>=8.0.0",
|
||||
"pytest-asyncio>=0.21.0",
|
||||
"ruff>=0.7.1",
|
||||
]
|
||||
|
||||
[tool.pyright]
|
||||
include = ["src", "tests"]
|
||||
|
|
@ -74,7 +65,12 @@ graphiti-core = { path = "../", editable = true }
|
|||
[dependency-groups]
|
||||
dev = [
|
||||
"faker>=37.12.0",
|
||||
"httpx>=0.28.1",
|
||||
"psutil>=7.1.2",
|
||||
"pyright>=1.1.404",
|
||||
"pytest>=8.0.0",
|
||||
"pytest-asyncio>=0.21.0",
|
||||
"pytest-timeout>=2.4.0",
|
||||
"pytest-xdist>=3.8.0",
|
||||
"ruff>=0.7.1",
|
||||
]
|
||||
|
|
|
|||
32
mcp_server/uv.lock
generated
32
mcp_server/uv.lock
generated
|
|
@ -648,7 +648,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "graphiti-core"
|
||||
version = "0.22.1rc2"
|
||||
version = "0.23.1"
|
||||
source = { editable = "../" }
|
||||
dependencies = [
|
||||
{ name = "diskcache" },
|
||||
|
|
@ -1074,7 +1074,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "mcp-server"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
source = { virtual = "." }
|
||||
dependencies = [
|
||||
{ name = "graphiti-core", extra = ["falkordb"] },
|
||||
|
|
@ -1089,15 +1089,6 @@ dependencies = [
|
|||
azure = [
|
||||
{ name = "azure-identity" },
|
||||
]
|
||||
dev = [
|
||||
{ name = "graphiti-core" },
|
||||
{ name = "httpx" },
|
||||
{ name = "mcp" },
|
||||
{ name = "pyright" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-asyncio" },
|
||||
{ name = "ruff" },
|
||||
]
|
||||
providers = [
|
||||
{ name = "anthropic" },
|
||||
{ name = "google-genai" },
|
||||
|
|
@ -1109,9 +1100,14 @@ providers = [
|
|||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "faker" },
|
||||
{ name = "httpx" },
|
||||
{ name = "psutil" },
|
||||
{ name = "pyright" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-asyncio" },
|
||||
{ name = "pytest-timeout" },
|
||||
{ name = "pytest-xdist" },
|
||||
{ name = "ruff" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
|
|
@ -1119,31 +1115,29 @@ requires-dist = [
|
|||
{ name = "anthropic", marker = "extra == 'providers'", specifier = ">=0.49.0" },
|
||||
{ name = "azure-identity", marker = "extra == 'azure'", specifier = ">=1.21.0" },
|
||||
{ name = "google-genai", marker = "extra == 'providers'", specifier = ">=1.8.0" },
|
||||
{ name = "graphiti-core", marker = "extra == 'dev'", editable = "../" },
|
||||
{ name = "graphiti-core", extras = ["falkordb"], editable = "../" },
|
||||
{ name = "groq", marker = "extra == 'providers'", specifier = ">=0.2.0" },
|
||||
{ name = "httpx", marker = "extra == 'dev'", specifier = ">=0.28.1" },
|
||||
{ name = "mcp", specifier = ">=1.9.4" },
|
||||
{ name = "mcp", marker = "extra == 'dev'", specifier = ">=1.9.4" },
|
||||
{ name = "openai", specifier = ">=1.91.0" },
|
||||
{ name = "pydantic-settings", specifier = ">=2.0.0" },
|
||||
{ name = "pyright", marker = "extra == 'dev'", specifier = ">=1.1.404" },
|
||||
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
||||
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.21.0" },
|
||||
{ name = "pyyaml", specifier = ">=6.0" },
|
||||
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.7.1" },
|
||||
{ name = "sentence-transformers", marker = "extra == 'providers'", specifier = ">=2.0.0" },
|
||||
{ name = "typing-extensions", specifier = ">=4.0.0" },
|
||||
{ name = "voyageai", marker = "extra == 'providers'", specifier = ">=0.2.3" },
|
||||
]
|
||||
provides-extras = ["azure", "providers", "dev"]
|
||||
provides-extras = ["azure", "providers"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "faker", specifier = ">=37.12.0" },
|
||||
{ name = "httpx", specifier = ">=0.28.1" },
|
||||
{ name = "psutil", specifier = ">=7.1.2" },
|
||||
{ name = "pyright", specifier = ">=1.1.404" },
|
||||
{ name = "pytest", specifier = ">=8.0.0" },
|
||||
{ name = "pytest-asyncio", specifier = ">=0.21.0" },
|
||||
{ name = "pytest-timeout", specifier = ">=2.4.0" },
|
||||
{ name = "pytest-xdist", specifier = ">=3.8.0" },
|
||||
{ name = "ruff", specifier = ">=0.7.1" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
|||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -783,7 +783,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "graphiti-core"
|
||||
version = "0.22.1rc2"
|
||||
version = "0.23.1"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "diskcache" },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue