Skip to content

Commit 276a387

Browse files
authored
chore: v0.1.5 release (PyPI debut + CHANGELOG + PRE-PYPI strip) (#29)
PR #3 of v0.1.5 launch. Version bump 0.1.4 -> 0.1.5 (3 lockstep files + uv.lock), new CHANGELOG.md, 11 PRE-PYPI fenced regions stripped from README. Verified locally: uv build OK, clean-venv install reports 0.1.5, 269/269 tests passing. Next: tag v0.1.5 to trigger release.yml -> PyPI publish via Trusted Publishing.
2 parents 020a253 + d9fa5f7 commit 276a387

5 files changed

Lines changed: 41 additions & 126 deletions

File tree

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Changelog
2+
3+
All notable changes to `python-docs-mcp-server` are documented here.
4+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
5+
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [0.1.5] — 2026-05-14
8+
9+
### Added
10+
11+
- **PyPI debut.** Install via `uvx python-docs-mcp-server` (no `--from` flag needed). The previous `uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git` path keeps working via the existing GitHub source, but the published wheel is now the canonical install route.
12+
- `CHANGELOG.md` (this file).
13+
- Locked positioning anchor: *"For AI coding agents writing Python, `python-docs-mcp-server` is the canonical Python stdlib oracle: exact symbols, exact sections, exact versions — offline, **always free, always MIT**, token-frugal."* See `.planning/POSITIONING.md` for the verbatim copy and per-surface adaptation rules.
14+
- Forward-facing `.planning/phases/` directory. Three post-v0.1.5 backlog items have on-disk specs:
15+
- `09-compare-versions` — new MCP tool: `compare_versions(symbol, v1, v2)` structured diff.
16+
- `10-whatsnew` — new MCP tool: `whatsnew_for_version(version)` section-sliced "What's New" page.
17+
- `11-detect-venv` — venv-aware `detect_python_version` v2 (reads `VIRTUAL_ENV`, `.venv/`, `pyvenv.cfg`).
18+
19+
### Changed
20+
21+
- README hero rewritten around the canonical-source positioning. The positioning sentence now sits between the package title and the badge row, with a wedge-forward "Built for the moment your agent needs…" descriptive paragraph below the badges.
22+
- `glama.json` `description`, `server.json` `description`, and `pyproject.toml` `description` aligned with the locked positioning. Each surface keeps the three required anchor phrases (canonical Python stdlib oracle / always free, always MIT / token-frugal) while adapting the wording for its display length.
23+
- `AGENTS.md` "Context Hygiene" section now distinguishes `.planning/ROADMAP.md` and `.planning/phases/0X-…/0X-CONTEXT.md` (live, forward-looking specs) from older `.planning/` content (archival history).
24+
- README install instructions, MCP-client config snippets, and validation commands now lead with the PyPI install (`uvx python-docs-mcp-server`). The pre-PyPI `--from git+…` blocks have been removed.
25+
26+
### Removed
27+
28+
- All `<!-- PRE-PYPI -->` fenced regions from `README.md` (11 blocks, 18 GitHub-source install URLs). They were scaffolding for the pre-v0.1.5 window where the only install path was a GitHub source URL.
29+
30+
### Notes
31+
32+
- The PyPI package name and the GitHub repository name both remain `python-docs-mcp-server`. A rename to `python-stdlib-mcp` was planned in the v0.1.5 scope (CR §9.2) but was dropped on 2026-05-14; the historical note is preserved in `.planning/ROADMAP.md`.
33+
- Trusted Publishing on PyPI is wired with Sigstore attestations on every release artifact. The release workflow lives at `.github/workflows/release.yml` and runs on annotated tags matching `v*`.
34+
35+
## [0.1.4] — 2026-05-13
36+
37+
Pre-PyPI release. Installable only via `uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git`. Last release before the PyPI publish.

README.md

Lines changed: 0 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -72,30 +72,8 @@ then `get_docs` for the matching section. Instead of generic web results or an
7272
entire docs page, it gets official stdlib text for the requested Python version,
7373
trimmed to the section that matters.
7474

75-
<!-- PRE-PYPI: replace this temporary GitHub-source smoke test after the first PyPI publish -->
76-
Local source smoke test until the PyPI package is published:
77-
78-
```bash
79-
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git python-docs-mcp-server --version
80-
```
81-
<!-- /PRE-PYPI -->
82-
8375
## Install
8476

85-
<!-- PRE-PYPI: remove this entire "Before PyPI publishing" block (heading + prose + code) after the first PyPI publish -->
86-
### Before PyPI publishing (install from GitHub source)
87-
88-
Until the first PyPI release is published, run from GitHub:
89-
90-
```bash
91-
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git python-docs-mcp-server --version
92-
```
93-
<!-- /PRE-PYPI -->
94-
95-
<!-- PRE-PYPI: after the first PyPI publish, drop this "After PyPI publishing" heading so the section reads simply as "## Install" -->
96-
### After PyPI publishing
97-
<!-- /PRE-PYPI -->
98-
9977
Run directly with `uvx`:
10078

10179
```bash
@@ -117,18 +95,6 @@ shell or use `python -m uv ...` as a fallback for local contributor commands.
11795

11896
Build the local documentation index:
11997

120-
<!-- PRE-PYPI: remove the GitHub-source build-index command and the "After PyPI publishing" lead-in after the first PyPI publish; the post-PyPI code fence below survives -->
121-
```bash
122-
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git python-docs-mcp-server build-index --versions 3.10,3.11,3.12,3.13,3.14
123-
```
124-
125-
After PyPI publishing, `uvx python-docs-mcp-server build-index ...` is enough.
126-
<!-- /PRE-PYPI -->
127-
128-
<!-- PRE-PYPI: after the first PyPI publish, drop this "After PyPI publishing" heading so the section reads simply as "## First run" -->
129-
### After PyPI publishing
130-
<!-- /PRE-PYPI -->
131-
13298
```bash
13399
uvx python-docs-mcp-server build-index --versions 3.10,3.11,3.12,3.13,3.14
134100
```
@@ -155,25 +121,6 @@ Add this to your Claude Desktop configuration file:
155121

156122
**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`
157123

158-
<!-- PRE-PYPI: remove the GitHub-source config and the "After PyPI publishing, use:" lead-in after the first PyPI publish; the post-PyPI config fence below survives -->
159-
```json
160-
{
161-
"mcpServers": {
162-
"python-docs": {
163-
"command": "uvx",
164-
"args": [
165-
"--from",
166-
"git+https://github.com/ayhammouda/python-docs-mcp-server.git",
167-
"python-docs-mcp-server"
168-
]
169-
}
170-
}
171-
}
172-
```
173-
174-
After PyPI publishing, use:
175-
<!-- /PRE-PYPI -->
176-
177124
```json
178125
{
179126
"mcpServers": {
@@ -192,25 +139,6 @@ Restart Claude Desktop after editing the config file.
192139
Add this to your Cursor MCP settings (`.cursor/mcp.json` in your project or
193140
global settings):
194141

195-
<!-- PRE-PYPI: remove the GitHub-source config and the "After PyPI publishing, use:" lead-in after the first PyPI publish; the post-PyPI config fence below survives -->
196-
```json
197-
{
198-
"mcpServers": {
199-
"python-docs": {
200-
"command": "uvx",
201-
"args": [
202-
"--from",
203-
"git+https://github.com/ayhammouda/python-docs-mcp-server.git",
204-
"python-docs-mcp-server"
205-
]
206-
}
207-
}
208-
}
209-
```
210-
211-
After PyPI publishing, use:
212-
<!-- /PRE-PYPI -->
213-
214142
```json
215143
{
216144
"mcpServers": {
@@ -226,16 +154,6 @@ After PyPI publishing, use:
226154

227155
Add this to `.codex/config.toml`:
228156

229-
<!-- PRE-PYPI: remove the GitHub-source config and the "After PyPI publishing, use:" lead-in after the first PyPI publish; the post-PyPI config fence below survives -->
230-
```toml
231-
[mcp_servers.python-docs]
232-
command = "uvx"
233-
args = ["--from", "git+https://github.com/ayhammouda/python-docs-mcp-server.git", "python-docs-mcp-server"]
234-
```
235-
236-
After PyPI publishing, use:
237-
<!-- /PRE-PYPI -->
238-
239157
```toml
240158
[mcp_servers.python-docs]
241159
command = "uvx"
@@ -319,16 +237,6 @@ search, or silently fall back to unofficial community mirrors.
319237

320238
## Diagnostics
321239

322-
<!-- PRE-PYPI: remove the GitHub-source doctor invocation and "After PyPI publishing:" lead-in after the first PyPI publish; the post-PyPI code fence below survives -->
323-
Before PyPI publishing, run `doctor` from the GitHub source package:
324-
325-
```bash
326-
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git python-docs-mcp-server doctor
327-
```
328-
329-
After PyPI publishing:
330-
<!-- /PRE-PYPI -->
331-
332240
Check the local environment:
333241

334242
```bash
@@ -338,17 +246,6 @@ uvx python-docs-mcp-server doctor
338246
This checks the runtime Python version, SQLite FTS5, cache/index paths, disk
339247
space, and the `venv`/`ensurepip` support needed by `build-index`.
340248

341-
<!-- PRE-PYPI: remove the GitHub-source validate-corpus invocation and "After PyPI publishing:" lead-in after the first PyPI publish; the post-PyPI code fence below survives -->
342-
Before PyPI publishing, validate an existing index from the GitHub source
343-
package:
344-
345-
```bash
346-
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git python-docs-mcp-server validate-corpus
347-
```
348-
349-
After PyPI publishing:
350-
<!-- /PRE-PYPI -->
351-
352249
Validate an existing index:
353250

354251
```bash
@@ -434,25 +331,6 @@ uv cache clean python-docs-mcp-server
434331
The MSIX-packaged version of Claude Desktop on Windows may have restricted PATH
435332
access. If `uvx` is not found, specify the full path in your config:
436333

437-
<!-- PRE-PYPI: remove the GitHub-source config and the "After PyPI publishing, use:" lead-in after the first PyPI publish; the post-PyPI config fence below survives -->
438-
```json
439-
{
440-
"mcpServers": {
441-
"python-docs": {
442-
"command": "C:\\Users\\YOU\\.local\\bin\\uvx.exe",
443-
"args": [
444-
"--from",
445-
"git+https://github.com/ayhammouda/python-docs-mcp-server.git",
446-
"python-docs-mcp-server"
447-
]
448-
}
449-
}
450-
}
451-
```
452-
453-
After PyPI publishing, use:
454-
<!-- /PRE-PYPI -->
455-
456334
```json
457335
{
458336
"mcpServers": {

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "python-docs-mcp-server"
7-
version = "0.1.4"
7+
version = "0.1.5"
88
description = "The canonical Python stdlib oracle for AI coding agents — exact symbols, exact sections, exact versions, offline, always free, always MIT, token-frugal."
99
readme = "README.md"
1010
license = "MIT"

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
"url": "https://github.com/ayhammouda/python-docs-mcp-server",
99
"source": "github"
1010
},
11-
"version": "0.1.4",
11+
"version": "0.1.5",
1212
"packages": [
1313
{
1414
"registryType": "pypi",
1515
"registryBaseUrl": "https://pypi.org",
1616
"identifier": "python-docs-mcp-server",
17-
"version": "0.1.4",
17+
"version": "0.1.5",
1818
"runtimeHint": "uvx",
1919
"transport": {
2020
"type": "stdio"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)