Skip to content

Commit 553d470

Browse files
docs: PyPI live — Quick Start leads with MertCapkin_GraphStack install
Add PyPI badge, rewrite install docs for published package, v4.5.2. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 446d5f2 commit 553d470

7 files changed

Lines changed: 85 additions & 80 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ All notable changes to GraphStack are documented here.
44

55
---
66

7+
## [v4.5.2] — 2026-06-11
8+
9+
### Changed
10+
- **README / PYPI.md** — PyPI is live (`MertCapkin_GraphStack`); Quick Start leads with pip/bootstrap, clone path moved to contributors.
11+
- **PyPI badge** and project URL in `pyproject.toml`.
12+
13+
---
14+
715
## [v4.5.1] — 2026-06-11
816

917
### Changed

README.md

Lines changed: 36 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,23 @@
66
One prompt starts the entire lifecycle — from blank repo to production.
77

88
[![CI](https://github.com/MertCapkin/graphstack/actions/workflows/ci.yml/badge.svg)](https://github.com/MertCapkin/graphstack/actions)
9+
[![PyPI](https://img.shields.io/pypi/v/MertCapkin_GraphStack)](https://pypi.org/project/MertCapkin_GraphStack/)
910
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
10-
[![Version](https://img.shields.io/badge/version-v4.5.1-blue)](CHANGELOG.md)
1111
[![Platforms](https://img.shields.io/badge/platforms-Windows%20%7C%20macOS%20%7C%20Linux-success)](#compatibility)
1212
[![Works with Cursor](https://img.shields.io/badge/Works%20with-Cursor-blue)](https://cursor.sh)
1313
[![Works with Claude Code](https://img.shields.io/badge/Works%20with-Claude%20Code-orange)](https://claude.ai/code)
1414

1515
</div>
1616

17-
> **v4.5 highlights:** One-command bootstrap (`bootstrap.ps1` / `bootstrap.sh`), PyPI-ready packaging, `board reopen` / `list-done`. Plus v4.4 `graph query` + `init`, v4.3 gate. See [CHANGELOG.md](CHANGELOG.md).
17+
> **v4.5 highlights:** Published on [PyPI](https://pypi.org/project/MertCapkin_GraphStack/) as **`MertCapkin_GraphStack`**, one-command bootstrap, `board reopen` / `list-done`. Plus v4.4 `graph query` + `init`, v4.3 gate. See [CHANGELOG.md](CHANGELOG.md).
1818
1919
---
2020

2121
## One command (Cursor terminal)
2222

2323
Open your **project folder** in Cursor, open the integrated terminal, and run:
2424

25-
**Windows (PowerShell):**
25+
**Windows (PowerShell) — recommended:**
2626
```powershell
2727
irm https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.ps1 | iex
2828
```
@@ -32,12 +32,13 @@ irm https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/boots
3232
curl -fsSL https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.sh | bash
3333
```
3434

35-
**After [PyPI publish](docs/PYPI.md):**
35+
**Or install from PyPI directly:**
3636

37-
> PyPI package name is **`MertCapkin_GraphStack`** (`graphstack` was already taken). The CLI command is still `graphstack`.
37+
> Package: **`MertCapkin_GraphStack`** on [PyPI](https://pypi.org/project/MertCapkin_GraphStack/) (`graphstack` name was taken). CLI command: **`graphstack`**.
3838
3939
```bash
40-
pip install "MertCapkin_GraphStack[graphify]" && graphstack init . -y --install-deps
40+
pip install "MertCapkin_GraphStack[graphify]"
41+
graphstack init . -y --install-deps
4142
```
4243

4344
This installs GraphStack + Graphify, copies workflow files into **the current project**, refreshes the code graph, and runs `doctor`. Then describe your task in Cursor chat — rules load automatically.
@@ -46,67 +47,55 @@ This installs GraphStack + Graphify, copies workflow files into **the current pr
4647

4748
## Quick Start
4849

49-
### Step 1 — Install prerequisites
50+
### Step 1 — Install GraphStack (PyPI)
5051

51-
**Python 3.8+** and **Git** are required. Check if you have them:
52+
**Python 3.8+** and **Git** are required.
5253

5354
```bash
54-
py -3 --version # need 3.8 or higher
55-
git --version # any recent version is fine
55+
py -3 --version
56+
git --version
5657
```
5758

58-
**Install Graphify** — the knowledge graph engine GraphStack is built on. The version range is pinned in [`requirements.txt`](requirements.txt):
59+
Install GraphStack + Graphify from PyPI, then initialize **your project** (run inside your project folder):
5960

6061
```bash
61-
pip install -r requirements.txt
62-
# or, equivalently, install Graphify directly with the same pin:
63-
pip install "graphifyy>=0.7,<0.9"
64-
65-
# Optional: install GraphStack CLI from a clone (board / validate / doctor / run)
66-
pip install -e /path/to/graphstack
67-
# or with Graphify in one step:
68-
pip install -e "/path/to/graphstack[graphify]"
62+
pip install "MertCapkin_GraphStack[graphify]"
63+
graphstack init . -y --install-deps
6964
```
7065

71-
After installation, register the Cursor slash command (one-time):
72-
73-
```bash
74-
graphify cursor install
75-
```
66+
Or use the [one-command bootstrap](#one-command-cursor-terminal) above (same result; installs from PyPI, falls back to GitHub if needed).
7667

77-
Verify it worked:
68+
Verify:
7869

7970
```bash
71+
graphstack --version
72+
graphstack doctor
8073
pip show graphifyy
8174
```
8275

83-
If `graphify` is not found after install, try:
84-
85-
```bash
86-
pip install --user "graphifyy>=0.7,<0.9"
87-
# then add ~/.local/bin to your PATH, or use:
88-
python3 -m graphify --version
89-
```
76+
> **PyPI:** [pypi.org/project/MertCapkin_GraphStack](https://pypi.org/project/MertCapkin_GraphStack/)
77+
> **CLI name:** `graphstack` (unchanged — only the pip package name differs)
9078
91-
> Graphify runs **entirely locally** — no API calls, no data sent anywhere.
92-
> It uses tree-sitter to parse your code and builds the graph on your machine.
79+
Graphify runs **entirely locally** — tree-sitter AST, no API calls for code graphs.
9380

9481
---
9582

96-
### Step 2 — Install GraphStack into your project
83+
### Step 1 (alternative) — Manual Graphify only
9784

98-
GraphStack now works natively on Windows, macOS, and Linux. The installer runs through Python (which you already have for Graphify), so no shell-specific tooling is required.
99-
100-
#### One command (recommended)
85+
If you prefer to install Graphify separately first:
10186

10287
```bash
103-
git clone https://github.com/MertCapkin/graphstack /path/to/graphstack
104-
cd /path/to/your-project
105-
/path/to/graphstack/install.ps1 . # Windows
106-
# or: python -m graphstack init . -y # any OS — install + graph refresh + doctor
88+
pip install "graphifyy>=0.7,<0.9"
89+
graphify cursor install
90+
pip install "MertCapkin_GraphStack[graphify]"
91+
graphstack init . -y --install-deps
10792
```
10893

109-
#### macOS / Linux (bash / zsh)
94+
---
95+
96+
### Step 2 — Install from source (contributors / offline)
97+
98+
For hacking on GraphStack itself or air-gapped installs, clone the repo instead of PyPI:
11099

111100
```bash
112101
git clone https://github.com/MertCapkin/graphstack /tmp/graphstack
@@ -170,7 +159,9 @@ What happens:
170159

171160
Run this once. After that, use `/graphify --update` — it only re-scans changed files and takes a few seconds.
172161

173-
**New project with no code yet?** Skip this step — GraphStack's Bootstrap Mode handles it. Just go to Step 4.
162+
**New project with no code yet?** Skip this step — GraphStack's Bootstrap Mode handles it.
163+
164+
**Already ran `graphstack init --install-deps`?** You have a code-only graph in `graphify-out/`; run `/graphify .` in Cursor for the full semantic graph when ready.
174165

175166
---
176167

@@ -344,7 +335,7 @@ GraphStack is a **workflow protocol** (markdown + handoff files), not a runtime
344335
| Role automation | Prompts alone cannot guarantee discipline. v4.3+ **`graphstack gate`** + v4.4 Cursor **`preToolUse`**. Hooks block commits and (on Cursor/Claude) code writes without a claimed task; `afterFileEdit` on Cursor remains advisory-only backup. |
345336
| Token savings | The table above is **estimated**, not guaranteed. Small repos or undisciplined sessions may use **more** tokens than unstructured chat. |
346337
| Knowledge graph | Value appears on **20+ file** codebases with module boundaries. Meta-repos full of markdown produce noisy graphs — use `.graphifyignore` (included in this repo). |
347-
| Setup | Graphify + GraphStack install + `/graphify` + Cursor — four steps, not zero-config. |
338+
| Setup | Graphify + `pip install MertCapkin_GraphStack` + `graphstack init` — or one bootstrap command. See [PyPI](https://pypi.org/project/MertCapkin_GraphStack/). |
348339

349340
**v4.1 helpers:** `graphstack doctor` (health report) and `graphstack validate` (exit code for CI). Use `--strict` before Builder handoff; use `--fail-stale-graph` in CI after code changes.
350341

docs/PYPI.md

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,48 @@
1-
# Publishing GraphStack to PyPI
1+
# PyPI — MertCapkin_GraphStack
22

3-
## Package name
3+
**Live:** https://pypi.org/project/MertCapkin_GraphStack/
44

5-
PyPI distribution: **`MertCapkin_GraphStack`** (the name `graphstack` is taken on PyPI).
5+
| | |
6+
|---|---|
7+
| **Install** | `pip install MertCapkin_GraphStack[graphify]` |
8+
| **CLI** | `graphstack` (command name unchanged) |
9+
| **Why not `graphstack`?** | Name already taken on PyPI |
610

7-
- `pip install MertCapkin_GraphStack[graphify]`
8-
- CLI command after install: **`graphstack`** (unchanged)
11+
## User install (recommended)
912

10-
Pending publisher on PyPI must use project name **`MertCapkin_GraphStack`** — must match `pyproject.toml` `name`.
13+
Inside **your project folder** (Cursor terminal):
1114

12-
## One-time setup (maintainer)
13-
14-
1. PyPI account → **Publishing** → pending publisher:
15-
- Pending project name: `MertCapkin_GraphStack`
16-
- Owner: `MertCapkin`
17-
- Repository name: `GraphStack`
18-
- Workflow: `publish.yml`
19-
- Environment: `pypi`
20-
2. GitHub → Settings → Environments → create **`pypi`**
21-
3. Trusted Publishing linked to `MertCapkin/GraphStack`
22-
23-
## Release flow
24-
25-
1. Bump version in `pyproject.toml` and `scripts/graphstack/__init__.py`.
26-
2. `python scripts/sync_assets.py`
27-
3. Commit, tag, push, **Publish GitHub Release** (triggers `publish.yml`).
15+
```powershell
16+
# Windows — one command
17+
irm https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.ps1 | iex
18+
```
2819

29-
## User install (after publish)
20+
```bash
21+
# macOS / Linux — one command
22+
curl -fsSL https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.sh | bash
23+
```
3024

3125
```bash
26+
# Or PyPI directly
3227
pip install "MertCapkin_GraphStack[graphify]"
33-
cd /path/to/your-project
3428
graphstack init . -y --install-deps
3529
```
3630

37-
Or one-liner bootstrap (Cursor terminal):
31+
Then open Cursor chat and describe your task — GraphStack rules load automatically.
3832

39-
```powershell
40-
irm https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.ps1 | iex
41-
```
33+
---
34+
35+
## Maintainer: publish a new version
36+
37+
1. Bump `version` in `pyproject.toml` and `scripts/graphstack/__init__.py`.
38+
2. `python scripts/sync_assets.py`
39+
3. Commit, tag (`vX.Y.Z`), push tag.
40+
4. **Publish GitHub Release** from the tag → triggers `.github/workflows/publish.yml`.
41+
42+
Trusted publisher (already configured):
43+
44+
- Project: `MertCapkin_GraphStack`
45+
- Owner: `MertCapkin` · Repository: `GraphStack`
46+
- Workflow: `publish.yml` · Environment: `pypi`
47+
48+
GitHub environment required: https://github.com/MertCapkin/GraphStack/settings/environments`pypi`

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "MertCapkin_GraphStack"
7-
version = "4.5.1"
7+
version = "4.5.2"
88
description = "Graph-first AI development workflow — board, gate, graph queries, one-shot init"
99
readme = "README.md"
1010
license = { text = "MIT" }
@@ -34,6 +34,7 @@ Homepage = "https://github.com/MertCapkin/GraphStack"
3434
Repository = "https://github.com/MertCapkin/GraphStack"
3535
Documentation = "https://github.com/MertCapkin/GraphStack#readme"
3636
"Bug Tracker" = "https://github.com/MertCapkin/GraphStack/issues"
37+
PyPI = "https://pypi.org/project/MertCapkin_GraphStack/"
3738

3839
[project.scripts]
3940
graphstack = "graphstack.cli:main"

scripts/bootstrap.ps1

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# GraphStack one-line bootstrap for Cursor terminal (Windows / PowerShell)
2-
# Installs graphstack + graphify, then initializes the current project.
2+
# Installs MertCapkin_GraphStack from PyPI (+ graphify), then initializes the project.
33
#
44
# Usage (in your project folder, Cursor terminal):
55
# irm https://raw.githubusercontent.com/MertCapkin/GraphStack/master/scripts/bootstrap.ps1 | iex
66
#
7-
# Or after PyPI publish:
8-
# irm ... | iex
97
$Pkg = "MertCapkin_GraphStack[graphify]"
108
# Same as: py -3 -m pip install -U $Pkg ; py -3 -m graphstack init . -y
119

scripts/graphstack/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
``gate``, ``state``, ``graph``
99
"""
1010

11-
__version__ = "4.5.1"
11+
__version__ = "4.5.2"
1212
__all__ = ["__version__"]

scripts/graphstack/bootstrap.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ def ensure_graphify(*, install: bool = True) -> bool:
3737

3838

3939
def ensure_graphstack_from_git() -> int:
40-
"""Fallback when PyPI package is not published yet."""
41-
echo("Trying GitHub install (PyPI fallback)...")
40+
"""Fallback when PyPI install fails (network, index delay, etc.)."""
41+
echo("Trying GitHub install (PyPI unavailable)...")
4242
return pip_install(PIP_SPEC_GIT)
4343

4444

0 commit comments

Comments
 (0)