Skip to content

Commit cc019a9

Browse files
authored
✨ feat(support): add pixi and pdm package manager support (#10)
* build(python): upgrade python from 3.12 to 3.13 CHANGES - Update .python-version to 3.13 for development environment - Update Dockerfile to use python3.13-alpine for both builder and runtime stages - Update pyproject.toml requires-python to >=3.13 - Refresh uv.lock with Python 3.13 dependencies IMPACT - Development and Docker environments now use Python 3.13 - Ensures consistency across local development and containerized deployments * feat(support): add pixi and pdm package manager support closes #8 closes #7 CHANGES - Add pixi and pdm to auto-update workflow matrix - Update MCP server tool to support 6 package managers total - Extend search index schema documentation and heap allocation - Update all README files with pixi and pdm references - Add comprehensive package manager links in documentation - Update roadmap to reflect completed pixi and pdm support - Remove signoff option from GitHub Actions (bot cannot sign without token) IMPACT - Users can now search pixi and pdm official documentation - Auto-updating pipeline includes pixi and pdm docs weekly - Expands coverage from 4 to 6 major Python package managers TECHNICAL NOTES - Modular workflow architecture enabled clean 2-line additions to matrix - Type system updates maintain compile-time safety for new package filters - Documentation structure scales seamlessly to additional package managers
1 parent cfd5a8c commit cc019a9

File tree

11 files changed

+40
-84
lines changed

11 files changed

+40
-84
lines changed

.github/workflows/auto-update-docs.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ jobs:
2424
repo: pypa/pip
2525
docs_path: docs
2626
target_dir: src/assets/pip
27+
- manager: conda
28+
repo: conda/conda
29+
docs_path: docs
30+
target_dir: src/assets/conda
2731
- manager: poetry
2832
repo: python-poetry/poetry
2933
docs_path: docs
@@ -32,10 +36,14 @@ jobs:
3236
repo: astral-sh/uv
3337
docs_path: docs
3438
target_dir: src/assets/uv
35-
- manager: conda
36-
repo: conda/conda
39+
- manager: pixi
40+
repo: prefix-dev/pixi
3741
docs_path: docs
38-
target_dir: src/assets/conda
42+
target_dir: src/assets/pixi
43+
- manager: pdm
44+
repo: pdm-project/pdm
45+
docs_path: docs
46+
target_dir: src/assets/pdm
3947

4048
steps:
4149
- name: Checkout main repo
@@ -79,5 +87,4 @@ jobs:
7987
uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0
8088
with:
8189
commit_message: 'docs(src/assets/): update ${{ matrix.manager }} official documentation'
82-
commit_options: '--signoff'
8390
file_pattern: 'src/assets/${{ matrix.manager }}/*'

.github/workflows/auto-update-index.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,4 @@ jobs:
4040
uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0
4141
with:
4242
commit_message: 'chore(src/index/): rebuild search index from updated documentation'
43-
commit_options: '--signoff'
4443
file_pattern: 'src/index/*'

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.12
1+
3.13

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ Thank you for your interest in contributing! This guide covers development workf
66

77
## 🔄 Contribution Workflow
88

9-
**Issue-first approach**: No issue, no PR. No PR, no merge.
9+
> [!IMPORTANT]
10+
> **Issue-first approach**: No issue, no PR. No PR, no merge.
1011
1112
1. **Raise issue** - Bug report or feature request
1213
2. **Get assigned** - Wait for maintainer assignment
@@ -75,8 +76,7 @@ Available templates and prompts for consistent contributions:
7576
├── ISSUE_TEMPLATE/
7677
│ ├── bug-report.md # Bug report template
7778
│ └── feature-request.md # Feature request template
78-
└── PULL_REQUEST_TEMPLATE/
79-
└── pull_request_template.md
79+
└── pull_request_template.md
8080
8181
prompts/
8282
├── prompt-commit-msg-gen.md # Generate uniform commit messages
@@ -87,7 +87,7 @@ prompts/
8787

8888
## 🤖 Automated Systems
8989

90-
The repository auto-updates weekly (Tuesday 6pm ET):
90+
The repository auto-updates weekly (Tuesday 06:00pm ET):
9191

9292
1. Syncs official documentation
9393
2. Rebuilds search indexes

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# ==============================================================================
99
# Stage 1: Dependencies builder
1010
# ==============================================================================
11-
FROM ghcr.io/astral-sh/uv:python3.12-alpine AS builder
11+
FROM ghcr.io/astral-sh/uv:python3.13-alpine AS builder
1212

1313
# Set environment variables for uv
1414
ENV UV_COMPILE_BYTECODE=1 \
@@ -41,7 +41,7 @@ RUN --mount=type=cache,target=/root/.cache/uv \
4141
# ==============================================================================
4242
# Stage 2: Runtime
4343
# ==============================================================================
44-
FROM ghcr.io/astral-sh/uv:python3.12-alpine AS runtime
44+
FROM ghcr.io/astral-sh/uv:python3.13-alpine AS runtime
4545

4646
# Set environment variables for Python and stdio mode
4747
ENV PYTHONUNBUFFERED=1 \

README-dockerhub.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Python Dependency Manager Companion MCP Server
22

3-
> README updated on 2025-07-27 by [@KemingHe](https://github.com/KemingHe)
3+
> [!NOTE]
4+
> **🚀 Major Update**: Now supports **6 Python package managers**! Added `pixi` and `pdm` with full auto-updating documentation alongside existing `pip`, `conda`, `poetry`, and `uv` support.
45
5-
Stop getting out-of-date Python package manager commands from your AI. Cross-reference latest official `pip`, `poetry`, `uv`, and `conda` docs with auto-updates. [[Watch Demo on YouTube]](https://youtu.be/3nVp46Q8FdY)
6+
Stop getting out-of-date Python package manager commands from your AI. Cross-reference latest official [`pip`](https://pip.pypa.io/), [`conda`](https://docs.conda.io/projects/conda), [`poetry`](https://python-poetry.org/), [`uv`](https://docs.astral.sh/uv/), [`pixi`](https://pixi.sh/), and [`pdm`](https://pdm-project.org/) docs with auto-updates. [[Watch Demo on YouTube]](https://youtu.be/3nVp46Q8FdY)
67

78
## 🚀 Quick Start for Agentic IDEs
89

@@ -49,7 +50,7 @@ docker pull keminghe/py-dep-man-companion:latest
4950

5051
## 🗺️ Roadmap
5152

52-
- [ ] Add support for `pipenv`, `pdm`, `pixi`
53+
- [x] Added support for `pixi` and `pdm` in version 0.1.1
5354
- [ ] Add comprehensive tests with 100% coverage
5455
- [ ] Add indexing support for PDF and CSV files
5556

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Python Dependency Manager Companion MCP Server
22

3-
> README updated on 2025-07-27 by [@KemingHe](https://github.com/KemingHe)
3+
> README updated on 2025-08-16 by [@KemingHe](https://github.com/KemingHe)
44
5-
Stop getting out-of-date Python package manager commands from your AI. Cross-reference latest official `pip`, `poetry`, `uv`, and `conda` docs with auto-updates. [[Watch Demo on YouTube]](https://youtu.be/3nVp46Q8FdY)
5+
Stop getting out-of-date Python package manager commands from your AI. Cross-reference latest official [`pip`](https://pip.pypa.io/), [`conda`](https://docs.conda.io/projects/conda), [`poetry`](https://python-poetry.org/), [`uv`](https://docs.astral.sh/uv/), [`pixi`](https://pixi.sh/), and [`pdm`](https://pdm-project.org/) docs with auto-updates. [[Watch Demo on YouTube]](https://youtu.be/3nVp46Q8FdY)
66

77
## 🚀 Quick Start for Agentic IDEs
88

@@ -49,7 +49,7 @@ docker pull keminghe/py-dep-man-companion:latest
4949

5050
## 🗺️ Roadmap
5151

52-
- [ ] Add support for `pipenv`, `pdm`, `pixi`
52+
- [x] Added support for `pixi` and `pdm` in version 0.1.1
5353
- [ ] Add comprehensive tests with 100% coverage
5454
- [ ] Add indexing support for PDF and CSV files
5555

@@ -68,7 +68,9 @@ python-dependency-manager-companion-mcp-server/
6868
│ │ ├── conda/ # conda docs
6969
│ │ ├── pip/ # pip docs
7070
│ │ ├── poetry/ # poetry docs
71-
│ │ └── uv/ # uv docs
71+
│ │ ├── uv/ # uv docs
72+
│ │ ├── pixi/ # pixi docs
73+
│ │ └── pdm/ # pdm docs
7274
│ ├── index/ # Pre-built search index
7375
│ ├── build_index.py # Tantivy index builder
7476
│ └── mcp_server.py # FastMCP stdio server

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[project]
22
name = "py_dep_man_companion"
3-
version = "0.1.0"
3+
version = "0.1.1"
44
description = "Local stdio MCP server providing unified search across Python dependency managers' latest and official documentation."
55
readme = "README.md"
66
license = {file = "LICENSE"}
7-
requires-python = ">=3.12"
7+
requires-python = ">=3.13"
88
urls.repository = "https://github.com/KemingHe/python-dependency-manager-companion-mcp-server"
99
urls.issues = "https://github.com/KemingHe/python-dependency-manager-companion-mcp-server/issues"
1010
dependencies = [

src/build_index.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def create_schema() -> tantivy.Schema:
4242
Fields:
4343
- content: Full-text searchable markdown content
4444
- path: File path for result retrieval
45-
- package: Source package manager (pip, conda, poetry, uv) for filtering
45+
- package: Source package manager (pip, conda, poetry, uv, pixi, pdm) for filtering
4646
- title: Document title extracted from file path
4747
- source_repo: Original repository from metadata
4848
- docs_path: Documentation directory path from metadata (for GitHub links)
@@ -163,7 +163,7 @@ def build_index():
163163
# Create schema and index
164164
schema = create_schema()
165165
index = tantivy.Index(schema, path=str(INDEX_DIR))
166-
writer = index.writer(heap_size=50_000_000) # 50MB heap for better performance
166+
writer = index.writer(heap_size=100_000_000) # 100MB heap for better performance
167167

168168
# Find all documentation files
169169
markdown_files = find_markdown_files(ASSETS_DIR)

src/mcp_server.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"""
33
FastMCP server for Python dependency manager documentation search.
44
5-
Provides fuzzy search capabilities across pip, conda, poetry, and uv documentation
6-
using a pre-built Tantivy index. Supports package filtering and handles typos
7-
through fuzzy matching.
5+
Provides fuzzy search capabilities across pip, conda, poetry, uv, pixi,
6+
and pdm documentation using a pre-built Tantivy index. Supports package filtering
7+
and handles typos through fuzzy matching.
88
"""
99

1010
import logging
@@ -109,7 +109,7 @@ def search_py_dep_man_docs(
109109
),
110110
],
111111
package_filter: Annotated[
112-
Literal["pip", "conda", "poetry", "uv"] | None,
112+
Literal["pip", "conda", "poetry", "uv", "pixi", "pdm"] | None,
113113
Field(
114114
description="Focus on specific tool when comparing or learning tool-specific workflows"
115115
),
@@ -257,7 +257,7 @@ def main():
257257
try:
258258
logger.info("Starting Python Dependency Manager Documentation MCP Server...")
259259
logger.info(
260-
"Server provides fuzzy search across pip, conda, poetry, and uv documentation"
260+
"Server provides fuzzy search across pip, conda, poetry, uv, pixi, and pdm documentation"
261261
)
262262

263263
# Initialize index on startup to catch errors early

0 commit comments

Comments
 (0)