Compare commits

..
Author SHA1 Message Date
opencodecabilloteu 427eb241f6 chore(renovate): hold python 3.15 until onnxruntime publishes py3.15 wheels
PR Checks / hadolint (pull_request) Successful in 33s
PR Checks / build-test (pull_request) Successful in 40s
Docker Build and Push / test (pull_request) Successful in 2m34s
PR Checks / pytest (pull_request) Successful in 2m33s
Docker Build and Push / integration-test (pull_request) Successful in 2m57s
Docker Build and Push / build (pull_request) Successful in 1m54s
fastembed (all versions <1) requires onnxruntime>=1.24.2 on python>=3.14,
but onnxruntime publishes no cp315 wheels yet (latest 1.31.0: cp311/cp312 only).
results in ResolutionImpossible on any py3.15 install, i.e. red CI on PR #55.

Pin allowedVersions to 3.14.x on the python (github-tags) dep so Renovate
stops re-proposing 3.15. Remove this rule once onnxruntime ships 3.15 wheels.
2026-10-13 20:36:45 +00:00
4 changed files with 9 additions and 35 deletions

No files matched your search

+1 -3
View File
@@ -22,9 +22,7 @@ jobs:
with:
python-version: "3.14"
- name: Install dependencies
run: pip install -r requirements.txt pytest ruff==0.17.1
- name: Lint (undefined names)
run: ruff check src/ tests/ --select F821
run: pip install -r requirements.txt pytest
- name: Run unit tests
run: pytest tests/ -v
env:
+8
View File
@@ -1,5 +1,13 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"packageRules": [
{
"description": "Hold python (actions/setup-python) at 3.14 until onnxruntime publishes py3.15 wheels — fastembed requires onnxruntime>=1.24.2 on py>=3.14 and there is no cp315 distribution yet (PR #55 CI: ResolutionImpossible). Re-evaluate once onnxruntime ships 3.15 wheels, then remove this rule.",
"matchDepNames": ["python"],
"matchDatasources": ["github-tags"],
"allowedVersions": "/^3\\.1[0-4](\\.|$)/"
}
],
"customManagers": [
{
"customType": "regex",
-7
View File
@@ -29,13 +29,6 @@ MAILDIR_FOLDERS = os.environ.get("MAILDIR_FOLDERS", "")
QDRANT_URL = os.environ.get("QDRANT_URL", "")
COLLECTION_NAME = os.environ.get("COLLECTION_NAME", "")
# Embedding model and batching. EMBEDDING_MODEL_NAME MUST stay in sync with the
# one used by server.py: indexer and server have to embed with the same model,
# otherwise the vectors stored in Qdrant are not comparable with query vectors.
EMBEDDING_MODEL_NAME = os.environ.get("EMBEDDING_MODEL_NAME", "BAAI/bge-small-en-v1.5")
BATCH_SIZE = int(os.environ.get("BATCH_SIZE", "100"))
EMBEDDING_BATCH_SIZE = int(os.environ.get("EMBEDDING_BATCH_SIZE", "64"))
METADATA_COLLECTION = "mcp_indexer_metadata"
INCREMENTAL_DAYS = int(os.environ.get("INCREMENTAL_DAYS", "7"))
FORCE_REINDEX = os.environ.get("FORCE_REINDEX", "").lower() in ("1", "true", "yes")
-25
View File
@@ -21,9 +21,6 @@ from indexer import (
parse_email_message,
get_recent_keys,
METADATA_COLLECTION,
EMBEDDING_MODEL_NAME,
BATCH_SIZE,
EMBEDDING_BATCH_SIZE,
)
@@ -230,25 +227,3 @@ class TestGetRecentKeys:
assert key.split(":")[0] in keys
for k in keys:
assert ":" not in k
# ---------------------------------------------------------------------------
# Regression: module-level constants consumed by main()
# ---------------------------------------------------------------------------
def test_indexer_module_constants_are_defined():
"""Regression (e32806a): the "make indexer importable without env" refactor
dropped these three module-level definitions while main() kept using them,
so every indexer run died with NameError before touching Qdrant."""
assert isinstance(EMBEDDING_MODEL_NAME, str) and EMBEDDING_MODEL_NAME
assert isinstance(BATCH_SIZE, int) and BATCH_SIZE > 0
assert isinstance(EMBEDDING_BATCH_SIZE, int) and EMBEDDING_BATCH_SIZE > 0
def test_embedding_model_is_the_same_as_the_server_one():
"""Indexer and server must embed with the same model, otherwise the vectors
stored by the indexer are not comparable with the query vectors."""
from server import EMBEDDING_MODEL_NAME as server_embedding_model
assert EMBEDDING_MODEL_NAME == server_embedding_model