diff --git a/Dockerfile b/Dockerfile index f19f6656..6b170e82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,9 +36,17 @@ RUN apt-get update \ WORKDIR /app -# Install Python dependencies -COPY pyproject.toml ./ -RUN pip install --no-cache-dir --break-system-packages . +# Install Python dependencies pinned to uv.lock so the image matches CI. +# uv is pinned too: it produces the constraints file, so an unpinned +# upgrade could change `uv export` semantics and break reproducibility. +# It is removed in the same layer, since only the export step needs it. +ARG UV_VERSION=0.12.5 +COPY pyproject.toml uv.lock ./ +RUN pip install --no-cache-dir --break-system-packages "uv==${UV_VERSION}" \ + && uv export --frozen --no-dev --no-emit-project --no-hashes -o /tmp/constraints.txt \ + && pip uninstall -y --break-system-packages uv \ + && pip install --no-cache-dir --break-system-packages -c /tmp/constraints.txt . \ + && rm /tmp/constraints.txt # Verify Node.js tooling for building the frontend RUN node --version && npm --version diff --git a/pyproject.toml b/pyproject.toml index 6e9d8321..0eddfcaf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = [{name = "Roi Lipman", email = "roilipman@gmail.com"}] readme = "README.md" requires-python = ">=3.12,<3.14" dependencies = [ - "graphrag-sdk>=0.8.1,<1.2.0", + "graphrag-sdk>=0.8.1,<0.9.0", "tree-sitter>=0.25.2,<0.27.0", "validators>=0.35.0,<0.36.0", "falkordb>=1.1.3,<2.0.0", diff --git a/uv.lock b/uv.lock index 80fa808f..7adf2abe 100644 --- a/uv.lock +++ b/uv.lock @@ -396,7 +396,7 @@ requires-dist = [ { name = "falkordb-multilspy", specifier = ">=0.1.0,<1.0.0" }, { name = "falkordblite", marker = "extra == 'light'", specifier = ">=0.10.0,<1.0.0" }, { name = "fastapi", specifier = ">=0.115.0,<1.0.0" }, - { name = "graphrag-sdk", specifier = ">=0.8.1,<1.2.0" }, + { name = "graphrag-sdk", specifier = ">=0.8.1,<0.9.0" }, { name = "httpx", marker = "extra == 'test'", specifier = ">=0.28.0,<1.0.0" }, { name = "javatools", specifier = ">=1.6.0,<2.0.0" }, { name = "mcp", specifier = ">=1.0.0,<2.0.0" },