Skip to content

docs: add RELEASING.md with mempalace-mcp pre-release check#1142

Open
jphein wants to merge 2 commits intoMemPalace:developfrom
jphein:docs/releasing-preflight-grep
Open

docs: add RELEASING.md with mempalace-mcp pre-release check#1142
jphein wants to merge 2 commits intoMemPalace:developfrom
jphein:docs/releasing-preflight-grep

Conversation

@jphein
Copy link
Copy Markdown
Collaborator

@jphein jphein commented Apr 23, 2026

Summary

Fulfilling the "Optional: release-checklist addition" proposal at the bottom of the #1093 issue body, which @bensig accepted on 2026-04-23 ("yes please on the small PR for docs/RELEASING.md, that one-liner grep mempalace-mcp pyproject.toml .claude-plugin/plugin.json would have saved this round").

New file at docs/RELEASING.md (no existing doc at that path) with a single pre-release grep:

grep -rn mempalace-mcp pyproject.toml .claude-plugin .codex-plugin

If pyproject.toml has no match, the mempalace-mcp entry point is missing and any fresh pip install will ship a plugin.json referencing a binary that doesn't exist — exactly the v3.3.2 → #1093 defect.

Scope note — grep width

The original proposal on #1093 specified pyproject.toml .claude-plugin/plugin.json (2 files). This PR expands via -rn directory recursion to also cover .claude-plugin/.mcp.json and .codex-plugin/plugin.json, both of which also reference mempalace-mcp by name on develop. Same class of regression, different surface — e.g. if a future schema change moves the command reference into .mcp.json without updating pyproject.toml, the 2-file form would miss it.

Happy to trim back to the literal 2-file form if you'd rather — it's a one-line edit. Defaulted to the broader form because the cognitive cost is identical and the coverage is strictly larger.

Complementary to mempalace-triage

The mempalace-triage PR #2 (merged earlier today) classifies release-blocker issues as CRITICAL after they're filed — faster triage. This grep catches the defect itself before tagging — prevention. The two don't overlap: dashboard speeds up post-mortem, grep stops the mistake at cut time.

Test plan

  • Grep runs clean on current upstream/develop — returns all four expected lines (verified against a fresh git archive extract of upstream/develop):
    pyproject.toml:41:mempalace-mcp = "mempalace.mcp_server:main" .claude-plugin/plugin.json:12: "command": "mempalace-mcp" .codex-plugin/plugin.json:24: "command": "mempalace-mcp" .claude-plugin/.mcp.json:3: "command": "mempalace-mcp"
  • Would have flagged the v3.3.2 regression — verified via git show v3.3.2:pyproject.toml | grep -c mempalace-mcp returns 0. The missing line is exactly what the check is designed to catch.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings April 23, 2026 23:08
jphein added a commit to jphein/mempalace that referenced this pull request Apr 23, 2026
PR filed 2026-04-23 fulfilling MemPalace#1093's release-checklist proposal
after @bensig's 2026-04-23 email accept. 4-file grep form with
scope note offering to trim to narrow 2-file form if desired.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a release checklist doc to prevent shipping a broken mempalace-mcp console script / plugin config mismatch (the v3.3.2 regression tracked in #1093).

Changes:

  • Introduces docs/RELEASING.md with a pre-release grep check verifying mempalace-mcp is referenced consistently across pyproject.toml and plugin configs.
  • Documents the expected “healthy develop” grep output and a stop condition when the entry point is missing.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/RELEASING.md
Comment on lines +15 to +26
```bash
grep -rn mempalace-mcp pyproject.toml .claude-plugin .codex-plugin
```

Expected on a healthy `develop` (post-[#340](https://github.com/MemPalace/mempalace/pull/340)):

```
pyproject.toml:41:mempalace-mcp = "mempalace.mcp_server:main"
.claude-plugin/plugin.json:12: "command": "mempalace-mcp"
.codex-plugin/plugin.json:24: "command": "mempalace-mcp"
.claude-plugin/.mcp.json:3: "command": "mempalace-mcp"
```
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Expected” grep output hard-codes line numbers (e.g., pyproject.toml:41), but those will drift as files change, making the checklist misleading. Either remove -n from the grep command, or keep -n and update the example to omit/ignore line numbers (e.g., describe the expected files/strings rather than exact line numbers).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already addressed in 88bbc9e (same day as your review). Dropped -n from the grep command and rewrote the Expected block accordingly — checking presence, not location, so line drift can't make the checklist misleading.

Comment thread docs/RELEASING.md Outdated
Comment on lines +10 to +13
resolves to a `console_script` entry point declared in `pyproject.toml`. If
these disagree, `pip install mempalace` ships a plugin config pointing at a
binary that was never installed — exactly what broke v3.3.2
([#1093](https://github.com/MemPalace/mempalace/issues/1093)).
Copy link

Copilot AI Apr 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs call this a console_script entry point, but in this repo it’s declared under PEP 621 [project.scripts] (and the canonical setuptools group name is console_scripts). Consider rewording to avoid confusion (e.g., “a console script declared under [project.scripts] in pyproject.toml”).

Suggested change
resolves to a `console_script` entry point declared in `pyproject.toml`. If
these disagree, `pip install mempalace` ships a plugin config pointing at a
binary that was never installed — exactly what broke v3.3.2
([#1093](https://github.com/MemPalace/mempalace/issues/1093)).
resolves to a console script declared under `[project.scripts]` in
`pyproject.toml`. If these disagree, `pip install mempalace` ships a plugin
config pointing at a binary that was never installed — exactly what broke
v3.3.2 ([#1093](https://github.com/MemPalace/mempalace/issues/1093)).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already addressed in 88bbc9e. Reworded to "a console script declared under `[project.scripts]` in `pyproject.toml`" — distinguishes PEP 621's [project.scripts] from setuptools' console_scripts group name.

@jphein
Copy link
Copy Markdown
Collaborator Author

jphein commented Apr 23, 2026

Both addressed in 7bd93ab:

  1. Line numbers drift — dropped -n from the grep. Expected-output block now shows the file:content form without line numbers. The check is about presence, so line numbers added noise without signal.
  2. console_script[project.scripts] — adopted your suggested rewording verbatim. Accurate to PEP 621 and to how this repo actually declares it.

Thanks Copilot — both were right calls.

@igorls igorls added the documentation Improvements or additions to documentation label Apr 24, 2026
jphein and others added 2 commits April 24, 2026 14:25
Fulfills the "Optional: release-checklist addition" proposal at the
bottom of MemPalace#1093 (the v3.3.2 release defect where plugin.json referenced
a mempalace-mcp binary that pyproject.toml never declared, so fresh
`pip install` was broken for everyone until messelink's MemPalace#340 was
re-cut as v3.3.3).

New file at docs/RELEASING.md (no existing doc at that path) with a
single pre-release grep:

    grep -rn mempalace-mcp pyproject.toml .claude-plugin .codex-plugin

The original MemPalace#1093 proposal specified `pyproject.toml
.claude-plugin/plugin.json` (2 files). This expands via -rn directory
recursion to also cover `.claude-plugin/.mcp.json` and
`.codex-plugin/plugin.json`, which reference `mempalace-mcp` by name
too — same class of regression through a different surface. Happy to
trim to the narrower 2-file form if preferred; one-line edit.

Shows the concrete expected output so a maintainer running this under
release pressure can eyeball "pass" without mental translation, and
points at MemPalace#340 as the historical fix anchor so "investigate why the
entry is missing" has a diagnostic starting point rather than a dead
end.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Two fixes from Copilot's 2026-04-23 inline review:

1. Drop `-n` from the grep command. Hard-coded line numbers in the
   "Expected" block would drift as files evolve, making the
   checklist misleading. The check is about presence, not location —
   line numbers add noise without helping pass/fail.

2. Reword "`console_script` entry point declared in pyproject.toml"
   → "console script declared under `[project.scripts]` in
   pyproject.toml". PEP 621's `[project.scripts]` is the canonical
   name for this repo's config form; the old wording conflated it
   with setuptools' `console_scripts` entry-point group name.

Expected output block updated to match new grep (no colons before
line numbers).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@jphein jphein force-pushed the docs/releasing-preflight-grep branch from 7bd93ab to 88bbc9e Compare April 24, 2026 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants