DEV Community

RagLeap
RagLeap

Posted on

RagLeap Triple Release: Fixing Fresh Install Breakage, Adding Slack Alerts & GitHub Search

Shipped 3 packages yesterday/today. Here's the technical breakdown.

ragleap-rag v0.12.10

Stack trace:

ModuleNotFoundError: No module named 'lxml.html.clean'

Root cause: lxml moved clean to lxml_html_clean==0.4.0.

Fix in pyproject.toml:

[project.optional-dependencies]
web = ["trafilatura>=2.2.0", "lxml_html_clean>=0.4.0"]
formats = ["pandas>=2.2.2", "pyarrow>=14.0.0", "xlwt>=1.3.0"]
all = ["ragleap-rag[web,formats,qdrant,weaviate,pinecone,milvus]"]

Problem 2: _extract_parquet calls Table.to_pandas() — needs pandas, but wasn't in extras.

Now raises proper ValueError with install hint if missing.

CI Fix: Before → pip install.[test] only → 63 tests skipped.
Now → pip install.[formats][web][qdrant][weaviate][pinecone][milvus][test] → 308 passed.

Guard test:

def test_all_extras_installed_in_ci():
if os.getenv("CI") == "true":
import qdrant_client, weaviate, pinecone, milvus

ragleap-observability v0.4.0

Helm values:

alertmanager:
receivers:
slack:
enabled: true
api_url_file: /etc/alertmanager/secrets/slack_api_url
email:
enabled: true
smtp_auth_password_file: /etc/alertmanager/secrets/email_password

Secret mount is read-only. Tested with prom/alertmanager:v0.27.0 image + amtool check-config.

ragleap-tools v0.3.0

Zero-dep GitHub search:

class GitHubSearchConfig(BaseModel):
token: Optional[str] = None
num_results: int = 10 # clamped 1-20

def make_github_search_tool(config: GitHubSearchConfig):
# uses urllib.request, sets User-Agent: ragleap-tools/0.3.0
# handles 422 gracefully -> success=False

Live test without token:

GET https://api.github.com/search/repositories?q=rag
Rate limit: search=10, core=60 (docstring fix pending)

Install all 3:

pip install ragleap-rag==0.12.10 ragleap-observability==0.4.0 ragleap-tools==0.3.0

Repo: github.com/antonyrag/ragleap-core — star if useful ⭐

Top comments (0)