upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/docs/how-to
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-23 12:15:12 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-27 20:38:01 +0000
commit79d2d01923cf66217fd5aa3a0be5ee9ea2000872 (patch)
treef1bec17762c7b84ddb6e73901d714a791b409a90 /docs/how-to
parentf84c7d04ff5d3f9c6c56d78bc00c01814e7348e4 (diff)
Generalize migration guide for any GRASP implementation
- Rename guide: migrate-ngit-relay-to-ngit-grasp.md → migrate-to-ngit-grasp.md - Remove ngit-relay and relay.ngit.dev specific references - Use generic terminology: source/target relay, current implementation - Add Compatibility section explaining requirements - Update examples to be implementation-agnostic - Update script comments to reference GRASP relay (not ngit-relay) - Update README.md to link to the new guide Scripts already work with any GRASP implementation via parameters.
Diffstat (limited to 'docs/how-to')
-rw-r--r--docs/how-to/README.md14
-rw-r--r--docs/how-to/migrate-to-ngit-grasp.md (renamed from docs/how-to/migrate-ngit-relay-to-ngit-grasp.md)79
-rwxr-xr-xdocs/how-to/migration-scripts/01-fetch-events.sh4
-rwxr-xr-xdocs/how-to/migration-scripts/10-check-git-sync.sh20
-rwxr-xr-xdocs/how-to/migration-scripts/20-categorize.sh4
-rwxr-xr-xdocs/how-to/migration-scripts/21-compare-relays.sh4
-rwxr-xr-xdocs/how-to/migration-scripts/30-extract-parse-failures.sh10
-rwxr-xr-xdocs/how-to/migration-scripts/31-extract-purgatory-expiry.sh10
-rwxr-xr-xdocs/how-to/migration-scripts/40-classify-actions.sh4
-rwxr-xr-xdocs/how-to/migration-scripts/run-migration-analysis.sh14
10 files changed, 90 insertions, 73 deletions
diff --git a/docs/how-to/README.md b/docs/how-to/README.md
index ba58c08..f755be1 100644
--- a/docs/how-to/README.md
+++ b/docs/how-to/README.md
@@ -110,15 +110,15 @@ How-to guides are **recipes** that show you how to solve specific problems or ac
110 110
111--- 111---
112 112
113### Migrate from ngit-relay 113### [Migrate to ngit-grasp](migrate-to-ngit-grasp.md)
114**Status:** 🔜 Planned 114**Status:** ✠Available
115 115
116**Problem:** Switch from reference implementation 116**Problem:** Switch from another GRASP implementation
117**You'll learn:** 117**You'll learn:**
118- Export data from ngit-relay 118- Analyze existing relay data
119- Import to ngit-grasp 119- Identify repositories needing attention
120- Update repository URLs 120- Run migration analysis scripts
121- Verify migration 121- Plan and execute cutover
122 122
123--- 123---
124 124
diff --git a/docs/how-to/migrate-ngit-relay-to-ngit-grasp.md b/docs/how-to/migrate-to-ngit-grasp.md
index 975eb4c..f4dff86 100644
--- a/docs/how-to/migrate-ngit-relay-to-ngit-grasp.md
+++ b/docs/how-to/migrate-to-ngit-grasp.md
@@ -1,6 +1,21 @@
1# Migrate ngit-relay to ngit-grasp 1# Migrate to ngit-grasp from another GRASP implementation
2 2
3This guide walks you through migrating a production ngit-relay instance to ngit-grasp. The process involves analyzing your existing data to identify repositories that need attention before switching over. 3This guide walks you through migrating a production GRASP relay to ngit-grasp. The process involves analyzing your existing data to identify repositories that need attention before switching over.
4
5## Compatibility
6
7This migration process works with any GRASP implementation that:
8
9- Stores git data in the `<npub>/<identifier>.git` directory structure
10- Uses standard GRASP events (kind 30617 announcements, kind 30618 state, kind 5 deletions)
11- Exposes a Nostr relay WebSocket endpoint
12
13**Known compatible implementations:**
14- ngit-relay (reference implementation)
15- ngit-grasp (when migrating between instances or from archive mode)
16- Other GRASP-compliant relays following the specification
17
18The migration scripts analyze Nostr events and git data directly, making them implementation-agnostic.
4 19
5## Quick Start 20## Quick Start
6 21
@@ -9,15 +24,15 @@ Run the migration analysis with a single command:
9```bash 24```bash
10# Basic analysis (fetches events, compares relays) 25# Basic analysis (fetches events, compares relays)
11./docs/how-to/migration-scripts/run-migration-analysis.sh \ 26./docs/how-to/migration-scripts/run-migration-analysis.sh \
12 --prod-relay wss://relay.ngit.dev \ 27 --prod-relay wss://source-relay.example.com \
13 --archive-relay wss://archive.relay.ngit.dev 28 --archive-relay wss://target-relay.example.com
14 29
15# Full analysis (includes git sync check - run on VPS) 30# Full analysis (includes git sync check - run on VPS)
16./docs/how-to/migration-scripts/run-migration-analysis.sh \ 31./docs/how-to/migration-scripts/run-migration-analysis.sh \
17 --prod-relay wss://relay.ngit.dev \ 32 --prod-relay wss://source-relay.example.com \
18 --archive-relay wss://archive.relay.ngit.dev \ 33 --archive-relay wss://target-relay.example.com \
19 --prod-git /var/lib/ngit-relay/git \ 34 --prod-git /var/lib/grasp-relay/git \
20 --archive-git /var/lib/ngit-relay-archive/git \ 35 --archive-git /var/lib/ngit-grasp/git \
21 --service ngit-grasp.service 36 --service ngit-grasp.service
22``` 37```
23 38
@@ -37,7 +52,7 @@ See [Running the Analysis](#running-the-analysis) for detailed options.
37 52
38### For Full Analysis (VPS) 53### For Full Analysis (VPS)
39 54
40- SSH access to the VPS running ngit-relay 55- SSH access to the VPS running your source relay
41- Read access to git data directories 56- Read access to git data directories
42- Access to systemd journal (for log extraction) 57- Access to systemd journal (for log extraction)
43 58
@@ -58,7 +73,7 @@ The migration process has three stages:
58 73
59### Stage 1: Deploy Archive Instance 74### Stage 1: Deploy Archive Instance
60 75
61Deploy ngit-grasp alongside your production ngit-relay: 76Deploy ngit-grasp alongside your production relay:
62 77
631. Configure ngit-grasp with: 781. Configure ngit-grasp with:
64 - `domain` set to `<prod-domain>.internal` (temporary) 79 - `domain` set to `<prod-domain>.internal` (temporary)
@@ -88,24 +103,24 @@ Once all issues are resolved:
88```bash 103```bash
89# Preview what will happen (dry run) 104# Preview what will happen (dry run)
90./run-migration-analysis.sh \ 105./run-migration-analysis.sh \
91 --prod-relay wss://relay.ngit.dev \ 106 --prod-relay wss://source-relay.example.com \
92 --archive-relay wss://archive.relay.ngit.dev \ 107 --archive-relay wss://target-relay.example.com \
93 --dry-run 108 --dry-run
94 109
95# Run the analysis 110# Run the analysis
96./run-migration-analysis.sh \ 111./run-migration-analysis.sh \
97 --prod-relay wss://relay.ngit.dev \ 112 --prod-relay wss://source-relay.example.com \
98 --archive-relay wss://archive.relay.ngit.dev 113 --archive-relay wss://target-relay.example.com
99``` 114```
100 115
101### Full Analysis on VPS 116### Full Analysis on VPS
102 117
103```bash 118```bash
104./run-migration-analysis.sh \ 119./run-migration-analysis.sh \
105 --prod-relay wss://relay.ngit.dev \ 120 --prod-relay wss://source-relay.example.com \
106 --archive-relay wss://archive.relay.ngit.dev \ 121 --archive-relay wss://target-relay.example.com \
107 --prod-git /var/lib/ngit-relay/git \ 122 --prod-git /var/lib/grasp-relay/git \
108 --archive-git /var/lib/ngit-relay-archive/git \ 123 --archive-git /var/lib/ngit-grasp/git \
109 --service ngit-grasp.service 124 --service ngit-grasp.service
110``` 125```
111 126
@@ -128,8 +143,8 @@ Skip or run specific phases:
128 143
129| Option | Description | 144| Option | Description |
130|--------|-------------| 145|--------|-------------|
131| `--prod-relay <url>` | Production relay WebSocket URL (required) | 146| `--prod-relay <url>` | Source relay WebSocket URL (required) |
132| `--archive-relay <url>` | Archive relay WebSocket URL (required) | 147| `--archive-relay <url>` | Target relay WebSocket URL (required) |
133| `--prod-git <path>` | Git base directory for prod (enables Phase 2) | 148| `--prod-git <path>` | Git base directory for prod (enables Phase 2) |
134| `--archive-git <path>` | Git base directory for archive (enables Phase 2) | 149| `--archive-git <path>` | Git base directory for archive (enables Phase 2) |
135| `--service <name>` | Systemd service name (enables Phase 4) | 150| `--service <name>` | Systemd service name (enables Phase 4) |
@@ -217,7 +232,7 @@ Run with sudo or ensure your user has read access:
217 232
218```bash 233```bash
219# Check permissions 234# Check permissions
220ls -la /var/lib/ngit-relay/git 235ls -la /var/lib/grasp-relay/git
221 236
222# Run with sudo if needed 237# Run with sudo if needed
223sudo ./run-migration-analysis.sh ... 238sudo ./run-migration-analysis.sh ...
@@ -332,16 +347,18 @@ work/migration-analysis-YYYYMMDD-HHMM/
332 └── summary.txt # Phase 5 347 └── summary.txt # Phase 5
333``` 348```
334 349
335## Key Differences: ngit-relay vs ngit-grasp 350## Why Migration May Require Attention
351
352Different GRASP implementations may handle edge cases differently. ngit-grasp has stricter validation and better observability, which can surface issues that were previously hidden:
336 353
337Understanding these differences helps explain why some repositories need attention: 354| Aspect | Typical Source Relay | ngit-grasp |
355|--------|---------------------|------------|
356| Git data validation | May accept partial data | Requires all git data to reproduce state |
357| PR refs cleanup | May not clear `refs/nostr/<event-id>` | Properly manages PR refs |
358| Parse failures | May silently ignore | Logs structured `[PARSE_FAIL]` entries |
359| Sync timeout | May have no timeout | Purgatory expires after configurable period |
338 360
339| Aspect | ngit-relay | ngit-grasp | 361These differences explain why some repositories may need attention during migration - ngit-grasp's stricter validation catches issues that other implementations may have silently accepted.
340|--------|------------|------------|
341| Git data validation | Accepts commits/tags referenced in state event | Requires all git data to reproduce state |
342| PR refs cleanup | Doesn't clear `refs/nostr/<event-id>` | Properly manages PR refs |
343| Parse failures | Silently ignores | Logs structured `[PARSE_FAIL]` entries |
344| Sync timeout | No timeout | Purgatory expires after configurable period |
345 362
346## Next Steps 363## Next Steps
347 364
@@ -371,10 +388,10 @@ For advanced usage, you can run individual phase scripts:
371 388
372```bash 389```bash
373# Phase 1: Fetch events 390# Phase 1: Fetch events
374./migration-scripts/01-fetch-events.sh wss://relay.ngit.dev output/prod 391./migration-scripts/01-fetch-events.sh wss://source-relay.example.com output/prod
375 392
376# Phase 2: Git sync check 393# Phase 2: Git sync check
377./migration-scripts/10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/ngit-relay/git output/prod --categorize 394./migration-scripts/10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/grasp-relay/git output/prod --categorize
378 395
379# Phase 3a: Categorize 396# Phase 3a: Categorize
380./migration-scripts/20-categorize.sh output/prod/git-sync-status.tsv output/prod 397./migration-scripts/20-categorize.sh output/prod/git-sync-status.tsv output/prod
diff --git a/docs/how-to/migration-scripts/01-fetch-events.sh b/docs/how-to/migration-scripts/01-fetch-events.sh
index 6870659..e0d6f26 100755
--- a/docs/how-to/migration-scripts/01-fetch-events.sh
+++ b/docs/how-to/migration-scripts/01-fetch-events.sh
@@ -2,7 +2,7 @@
2# 2#
3# 01-fetch-events.sh - Fetch nostr events from a relay for migration analysis 3# 01-fetch-events.sh - Fetch nostr events from a relay for migration analysis
4# 4#
5# PHASE 1 of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 1 of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Fetches kind 30618 (state), 30617 (announcement), and 5 (deletion) events. 6# Fetches kind 30618 (state), 30617 (announcement), and 5 (deletion) events.
7# 7#
8# USAGE: 8# USAGE:
@@ -41,7 +41,7 @@
41# - Run Phase 1 and Phase 2 back-to-back for accurate snapshot 41# - Run Phase 1 and Phase 2 back-to-back for accurate snapshot
42# 42#
43# SEE ALSO: 43# SEE ALSO:
44# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 44# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
45# 45#
46 46
47set -euo pipefail 47set -euo pipefail
diff --git a/docs/how-to/migration-scripts/10-check-git-sync.sh b/docs/how-to/migration-scripts/10-check-git-sync.sh
index 493d50a..1f2ce04 100755
--- a/docs/how-to/migration-scripts/10-check-git-sync.sh
+++ b/docs/how-to/migration-scripts/10-check-git-sync.sh
@@ -2,21 +2,21 @@
2# 2#
3# 10-check-git-sync.sh - Compare state events to actual git data on disk 3# 10-check-git-sync.sh - Compare state events to actual git data on disk
4# 4#
5# PHASE 2 of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 2 of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Compares kind 30618 state events against actual git refs on disk. 6# Compares kind 30618 state events against actual git refs on disk.
7# 7#
8# USAGE: 8# USAGE:
9# ./10-check-git-sync.sh <state-events.json> <git-base-dir> <output-dir> [--categorize] 9# ./10-check-git-sync.sh <state-events.json> <git-base-dir> <output-dir> [--categorize]
10# 10#
11# EXAMPLES: 11# EXAMPLES:
12# # Check prod relay against prod git data 12# # Check source relay against source git data
13# ./10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/ngit-relay/git output/prod 13# ./10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/grasp-relay/git output/prod
14# 14#
15# # Check archive relay against archive git data 15# # Check target relay against target git data
16# ./10-check-git-sync.sh output/archive/raw/state-events.json /var/lib/ngit-relay-archive/git output/archive 16# ./10-check-git-sync.sh output/archive/raw/state-events.json /var/lib/ngit-grasp/git output/archive
17# 17#
18# # Check and categorize in one step (convenience mode) 18# # Check and categorize in one step (convenience mode)
19# ./10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/ngit-relay/git output/prod --categorize 19# ./10-check-git-sync.sh output/prod/raw/state-events.json /var/lib/grasp-relay/git output/prod --categorize
20# 20#
21# INPUT: 21# INPUT:
22# state-events.json - JSONL file from Phase 1 (01-fetch-events.sh) 22# state-events.json - JSONL file from Phase 1 (01-fetch-events.sh)
@@ -53,7 +53,7 @@
53# - Handles packed refs (git show-ref) and loose refs 53# - Handles packed refs (git show-ref) and loose refs
54# 54#
55# SEE ALSO: 55# SEE ALSO:
56# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 56# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
57# 01-fetch-events.sh - Phase 1 script that produces input for this script 57# 01-fetch-events.sh - Phase 1 script that produces input for this script
58# 20-categorize.sh - Phase 3a script that consumes output from this script 58# 20-categorize.sh - Phase 3a script that consumes output from this script
59# 59#
@@ -101,13 +101,13 @@ usage() {
101 echo "" 101 echo ""
102 echo "Arguments:" 102 echo "Arguments:"
103 echo " state-events.json JSONL file from Phase 1 (kind 30618 events)" 103 echo " state-events.json JSONL file from Phase 1 (kind 30618 events)"
104 echo " git-base-dir Base directory for git repos (e.g., /var/lib/ngit-relay/git)" 104 echo " git-base-dir Base directory for git repos (e.g., /var/lib/grasp-relay/git)"
105 echo " output-dir Directory to store output files" 105 echo " output-dir Directory to store output files"
106 echo " --categorize Optional: also output category files (like Phase 3)" 106 echo " --categorize Optional: also output category files (like Phase 3)"
107 echo "" 107 echo ""
108 echo "Examples:" 108 echo "Examples:"
109 echo " $0 output/prod/raw/state-events.json /var/lib/ngit-relay/git output/prod" 109 echo " $0 output/prod/raw/state-events.json /var/lib/grasp-relay/git output/prod"
110 echo " $0 output/archive/raw/state-events.json /var/lib/ngit-relay-archive/git output/archive" 110 echo " $0 output/archive/raw/state-events.json /var/lib/ngit-grasp/git output/archive"
111 echo "" 111 echo ""
112 echo "Output:" 112 echo "Output:"
113 echo " git-sync-status.tsv - TSV with: repo, npub, state_refs, git_refs, matches, reason" 113 echo " git-sync-status.tsv - TSV with: repo, npub, state_refs, git_refs, matches, reason"
diff --git a/docs/how-to/migration-scripts/20-categorize.sh b/docs/how-to/migration-scripts/20-categorize.sh
index f47eb55..b38dc00 100755
--- a/docs/how-to/migration-scripts/20-categorize.sh
+++ b/docs/how-to/migration-scripts/20-categorize.sh
@@ -2,7 +2,7 @@
2# 2#
3# 20-categorize.sh - Categorize git sync status into 4 categories 3# 20-categorize.sh - Categorize git sync status into 4 categories
4# 4#
5# PHASE 3a of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 3a of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Takes git-sync-status.tsv from Phase 2 and categorizes into 4 files. 6# Takes git-sync-status.tsv from Phase 2 and categorizes into 4 files.
7# 7#
8# USAGE: 8# USAGE:
@@ -39,7 +39,7 @@
39# RUNTIME: < 1 second (local processing only) 39# RUNTIME: < 1 second (local processing only)
40# 40#
41# SEE ALSO: 41# SEE ALSO:
42# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 42# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
43# 10-check-git-sync.sh - Phase 2 script that produces input for this script 43# 10-check-git-sync.sh - Phase 2 script that produces input for this script
44# 44#
45 45
diff --git a/docs/how-to/migration-scripts/21-compare-relays.sh b/docs/how-to/migration-scripts/21-compare-relays.sh
index 6b40dc8..b9c0d30 100755
--- a/docs/how-to/migration-scripts/21-compare-relays.sh
+++ b/docs/how-to/migration-scripts/21-compare-relays.sh
@@ -2,7 +2,7 @@
2# 2#
3# 21-compare-relays.sh - Compare prod vs archive category files to find gaps 3# 21-compare-relays.sh - Compare prod vs archive category files to find gaps
4# 4#
5# PHASE 3b of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 3b of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Compares categorized output from prod and archive to identify: 6# Compares categorized output from prod and archive to identify:
7# - Repos complete in prod but missing/incomplete in archive 7# - Repos complete in prod but missing/incomplete in archive
8# - Repos in archive but not in prod 8# - Repos in archive but not in prod
@@ -39,7 +39,7 @@
39# RUNTIME: < 1 second (local processing only) 39# RUNTIME: < 1 second (local processing only)
40# 40#
41# SEE ALSO: 41# SEE ALSO:
42# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 42# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
43# 20-categorize.sh - Phase 3a script that produces input for this script 43# 20-categorize.sh - Phase 3a script that produces input for this script
44# 44#
45 45
diff --git a/docs/how-to/migration-scripts/30-extract-parse-failures.sh b/docs/how-to/migration-scripts/30-extract-parse-failures.sh
index 753fd3e..bc2049a 100755
--- a/docs/how-to/migration-scripts/30-extract-parse-failures.sh
+++ b/docs/how-to/migration-scripts/30-extract-parse-failures.sh
@@ -2,7 +2,7 @@
2# 2#
3# 30-extract-parse-failures.sh - Extract parse failure events from systemd logs 3# 30-extract-parse-failures.sh - Extract parse failure events from systemd logs
4# 4#
5# PHASE 4a of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 4a of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Extracts structured [PARSE_FAIL] log entries from journalctl. 6# Extracts structured [PARSE_FAIL] log entries from journalctl.
7# 7#
8# USAGE: 8# USAGE:
@@ -42,7 +42,7 @@
42# [PARSE_FAIL] log entries. Until those are implemented, this script will 42# [PARSE_FAIL] log entries. Until those are implemented, this script will
43# find no matching entries (which is handled gracefully). 43# find no matching entries (which is handled gracefully).
44# 44#
45# See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section) 45# See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)
46# 46#
47# Expected Rust logging code: 47# Expected Rust logging code:
48# tracing::warn!( 48# tracing::warn!(
@@ -59,7 +59,7 @@
59# RUNTIME: Depends on log volume, typically < 30 seconds 59# RUNTIME: Depends on log volume, typically < 30 seconds
60# 60#
61# SEE ALSO: 61# SEE ALSO:
62# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 62# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
63# 31-extract-purgatory-expiry.sh - Companion script for purgatory expiry logs 63# 31-extract-purgatory-expiry.sh - Companion script for purgatory expiry logs
64# 64#
65 65
@@ -231,7 +231,7 @@ main() {
231 if [[ "$sample_count" -eq 0 ]]; then 231 if [[ "$sample_count" -eq 0 ]]; then
232 log_warn "No [PARSE_FAIL] entries found in logs." 232 log_warn "No [PARSE_FAIL] entries found in logs."
233 log_warn "This is expected if ngit-grasp logging improvements are not yet deployed." 233 log_warn "This is expected if ngit-grasp logging improvements are not yet deployed."
234 log_warn "See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section)" 234 log_warn "See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)"
235 fi 235 fi
236 236
237 exit 0 237 exit 0
@@ -259,7 +259,7 @@ main() {
259 log_warn "" 259 log_warn ""
260 log_warn " [PARSE_FAIL] kind=30618 event_id=abc123 reason=\"...\" repo=myrepo npub=npub1..." 260 log_warn " [PARSE_FAIL] kind=30618 event_id=abc123 reason=\"...\" repo=myrepo npub=npub1..."
261 log_warn "" 261 log_warn ""
262 log_warn "See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section)" 262 log_warn "See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)"
263 log_warn "" 263 log_warn ""
264 264
265 # Create empty output file with header comment 265 # Create empty output file with header comment
diff --git a/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh b/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh
index 38b2ca3..8cadad9 100755
--- a/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh
+++ b/docs/how-to/migration-scripts/31-extract-purgatory-expiry.sh
@@ -2,7 +2,7 @@
2# 2#
3# 31-extract-purgatory-expiry.sh - Extract purgatory expiry events from systemd logs 3# 31-extract-purgatory-expiry.sh - Extract purgatory expiry events from systemd logs
4# 4#
5# PHASE 4b of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 4b of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Extracts structured [PURGATORY_EXPIRED] log entries from journalctl. 6# Extracts structured [PURGATORY_EXPIRED] log entries from journalctl.
7# 7#
8# USAGE: 8# USAGE:
@@ -53,7 +53,7 @@
53# [PURGATORY_EXPIRED] log entries. Until those are implemented, this script 53# [PURGATORY_EXPIRED] log entries. Until those are implemented, this script
54# will find no matching entries (which is handled gracefully). 54# will find no matching entries (which is handled gracefully).
55# 55#
56# See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section) 56# See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)
57# 57#
58# Expected Rust logging code: 58# Expected Rust logging code:
59# tracing::warn!( 59# tracing::warn!(
@@ -70,7 +70,7 @@
70# RUNTIME: Depends on log volume, typically < 30 seconds 70# RUNTIME: Depends on log volume, typically < 30 seconds
71# 71#
72# SEE ALSO: 72# SEE ALSO:
73# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 73# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
74# 30-extract-parse-failures.sh - Companion script for parse failure logs 74# 30-extract-parse-failures.sh - Companion script for parse failure logs
75# 75#
76 76
@@ -238,7 +238,7 @@ main() {
238 if [[ "$sample_count" -eq 0 ]]; then 238 if [[ "$sample_count" -eq 0 ]]; then
239 log_warn "No [PURGATORY_EXPIRED] entries found in logs." 239 log_warn "No [PURGATORY_EXPIRED] entries found in logs."
240 log_warn "This is expected if ngit-grasp logging improvements are not yet deployed." 240 log_warn "This is expected if ngit-grasp logging improvements are not yet deployed."
241 log_warn "See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section)" 241 log_warn "See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)"
242 fi 242 fi
243 243
244 exit 0 244 exit 0
@@ -266,7 +266,7 @@ main() {
266 log_warn "" 266 log_warn ""
267 log_warn " [PURGATORY_EXPIRED] repo=myrepo npub=npub1... reason=\"...\"" 267 log_warn " [PURGATORY_EXPIRED] repo=myrepo npub=npub1... reason=\"...\""
268 log_warn "" 268 log_warn ""
269 log_warn "See: docs/how-to/migrate-ngit-relay-to-ngit-grasp.md (Dependencies section)" 269 log_warn "See: docs/how-to/migrate-to-ngit-grasp.md (Dependencies section)"
270 log_warn "" 270 log_warn ""
271 271
272 # Create empty output file with header comment 272 # Create empty output file with header comment
diff --git a/docs/how-to/migration-scripts/40-classify-actions.sh b/docs/how-to/migration-scripts/40-classify-actions.sh
index 9fc718f..1706e47 100755
--- a/docs/how-to/migration-scripts/40-classify-actions.sh
+++ b/docs/how-to/migration-scripts/40-classify-actions.sh
@@ -2,7 +2,7 @@
2# 2#
3# 40-classify-actions.sh - Final classification of repos for migration action 3# 40-classify-actions.sh - Final classification of repos for migration action
4# 4#
5# PHASE 5 of the ngit-relay to ngit-grasp migration analysis pipeline. 5# PHASE 5 of the GRASP relay to ngit-grasp migration analysis pipeline.
6# Combines all data sources from previous phases to produce actionable results. 6# Combines all data sources from previous phases to produce actionable results.
7# 7#
8# USAGE: 8# USAGE:
@@ -82,7 +82,7 @@
82# RUNTIME: < 5 seconds (local processing only) 82# RUNTIME: < 5 seconds (local processing only)
83# 83#
84# SEE ALSO: 84# SEE ALSO:
85# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 85# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
86# 01-fetch-events.sh - Phase 1 (fetch events) 86# 01-fetch-events.sh - Phase 1 (fetch events)
87# 10-check-git-sync.sh - Phase 2 (git sync check) 87# 10-check-git-sync.sh - Phase 2 (git sync check)
88# 20-categorize.sh, 21-compare-relays.sh - Phase 3 (categorize and compare) 88# 20-categorize.sh, 21-compare-relays.sh - Phase 3 (categorize and compare)
diff --git a/docs/how-to/migration-scripts/run-migration-analysis.sh b/docs/how-to/migration-scripts/run-migration-analysis.sh
index 2ba25ab..84aec2a 100755
--- a/docs/how-to/migration-scripts/run-migration-analysis.sh
+++ b/docs/how-to/migration-scripts/run-migration-analysis.sh
@@ -1,6 +1,6 @@
1#!/usr/bin/env bash 1#!/usr/bin/env bash
2# 2#
3# run-migration-analysis.sh - Orchestrate the complete ngit-relay to ngit-grasp migration analysis 3# run-migration-analysis.sh - Orchestrate the complete GRASP relay to ngit-grasp migration analysis
4# 4#
5# This script runs all 5 phases of the migration analysis pipeline in sequence, 5# This script runs all 5 phases of the migration analysis pipeline in sequence,
6# with proper error handling, progress reporting, and timing information. 6# with proper error handling, progress reporting, and timing information.
@@ -13,8 +13,8 @@
13# ./run-migration-analysis.sh \ 13# ./run-migration-analysis.sh \
14# --prod-relay wss://relay.ngit.dev \ 14# --prod-relay wss://relay.ngit.dev \
15# --archive-relay wss://archive.relay.ngit.dev \ 15# --archive-relay wss://archive.relay.ngit.dev \
16# --prod-git /var/lib/ngit-relay/git \ 16# --prod-git /var/lib/grasp-relay/git \
17# --archive-git /var/lib/ngit-relay-archive/git 17# --archive-git /var/lib/ngit-grasp/git
18# 18#
19# USAGE: 19# USAGE:
20# ./run-migration-analysis.sh [options] 20# ./run-migration-analysis.sh [options]
@@ -64,12 +64,12 @@
64# ./run-migration-analysis.sh \ 64# ./run-migration-analysis.sh \
65# --prod-relay wss://relay.ngit.dev \ 65# --prod-relay wss://relay.ngit.dev \
66# --archive-relay wss://archive.relay.ngit.dev \ 66# --archive-relay wss://archive.relay.ngit.dev \
67# --prod-git /var/lib/ngit-relay/git \ 67# --prod-git /var/lib/grasp-relay/git \
68# --archive-git /var/lib/ngit-relay-archive/git \ 68# --archive-git /var/lib/ngit-grasp/git \
69# --service ngit-grasp.service 69# --service ngit-grasp.service
70# 70#
71# SEE ALSO: 71# SEE ALSO:
72# docs/how-to/migrate-ngit-relay-to-ngit-grasp.md - Full migration guide 72# docs/how-to/migrate-to-ngit-grasp.md - Full migration guide
73# 73#
74 74
75set -euo pipefail 75set -euo pipefail
@@ -658,7 +658,7 @@ display_summary() {
658main() { 658main() {
659 parse_args "$@" 659 parse_args "$@"
660 660
661 log_header "ngit-relay to ngit-grasp Migration Analysis" 661 log_header "GRASP Relay to ngit-grasp Migration Analysis"
662 662
663 validate_args 663 validate_args
664 check_prerequisites 664 check_prerequisites