389 lines
11 KiB
Markdown
389 lines
11 KiB
Markdown
|
|
# Bundle Documentation Reference
|
||
|
|
|
||
|
|
This document explains where bundle documentation lives, how to update it, and how it flows through the provisioning system.
|
||
|
|
|
||
|
|
## Quick Answer
|
||
|
|
|
||
|
|
**Where are they?**
|
||
|
|
```
|
||
|
|
docs/BUNDLE_README.md ← Source for bundle README.md
|
||
|
|
docs/docs/installation.md ← Source for bundle docs/installation.md
|
||
|
|
docs/QUICK_START.md ← Source for bundle QUICK_START.md
|
||
|
|
docs/CONFIG.md ← Source for docs/CONFIG.md in bundle
|
||
|
|
docs/TROUBLESHOOTING.md ← Source for docs/TROUBLESHOOTING.md in bundle
|
||
|
|
docs/PACK.md ← Source for docs/PACK.md in bundle
|
||
|
|
```
|
||
|
|
|
||
|
|
**How to update for next pack:**
|
||
|
|
1. Edit the source files in `docs/` folder directly
|
||
|
|
2. Run `nu scripts/provisioning/pack.nu`
|
||
|
|
3. New bundle will include your changes
|
||
|
|
4. Checksums will be recalculated automatically
|
||
|
|
|
||
|
|
**What gets reused?**
|
||
|
|
Everything. Each pack run:
|
||
|
|
- Reads `configs/provisioning.toml` for file references
|
||
|
|
- Copies latest versions of docs/*.md
|
||
|
|
- Renames/places them in bundle structure
|
||
|
|
- Calculates fresh checksums
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Complete Workflow
|
||
|
|
|
||
|
|
### 1. Source Documentation (Always in docs/)
|
||
|
|
|
||
|
|
```
|
||
|
|
BUNDLE DOCUMENTATION:
|
||
|
|
├── BUNDLE_README.md [6.5K] User-facing bundle overview
|
||
|
|
├── docs/installation.md [8.2K] Installation guide (generic, no platform-specific)
|
||
|
|
├── QUICK_START.md [3.8K] 5-minute getting started tutorial
|
||
|
|
├── CONFIG.md [8.2K] Configuration reference for all apps
|
||
|
|
├── TROUBLESHOOTING.md [9.7K] Common issues and solutions
|
||
|
|
└── PACK.md [9.3K] Provisioning system documentation (for developers)
|
||
|
|
|
||
|
|
DEVELOPMENT DOCUMENTATION (NOT in bundle):
|
||
|
|
├── ARCHITECTURE.md Project architecture (developers)
|
||
|
|
├── CLI_QUICK_REFERENCE.md CLI reference (developers)
|
||
|
|
├── SURREALDB_*.md SurrealDB guides (developers/advanced)
|
||
|
|
└── PERSISTENCE_*.md Database persistence (developers)
|
||
|
|
|
||
|
|
DEPRECATED (can be deleted):
|
||
|
|
├── CONFIG_GUIDE.md [OLD - superseded by CONFIG.md]
|
||
|
|
└── BUNDLE_docs/installation.md [OLD - superseded by docs/installation.md]
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Configuration (provisioning.toml)
|
||
|
|
|
||
|
|
Located: `configs/provisioning.toml`
|
||
|
|
|
||
|
|
References which docs to include:
|
||
|
|
```toml
|
||
|
|
[artifacts]
|
||
|
|
docs = [
|
||
|
|
"docs/BUNDLE_README.md", # Bundle overview (becomes README.md at root)
|
||
|
|
"docs/docs/installation.md", # Installation guide (generic, no platform-specific)
|
||
|
|
"docs/QUICK_START.md", # 5-minute getting started guide
|
||
|
|
"docs/CONFIG.md", # Configuration reference for all apps
|
||
|
|
"docs/TROUBLESHOOTING.md", # Common issues and solutions
|
||
|
|
"docs/PACK.md", # Provisioning system documentation
|
||
|
|
]
|
||
|
|
|
||
|
|
scripts = [
|
||
|
|
"scripts/provisioning/provision.sh", # Master provisioner (install + config orchestrator)
|
||
|
|
"scripts/provisioning/install.sh", # Bash installer for offline bundles
|
||
|
|
"scripts/provisioning/install.nu", # NuShell installer (if available)
|
||
|
|
"scripts/provisioning/setup-config.sh", # Interactive configuration helper
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Pack Process (pack.nu)
|
||
|
|
|
||
|
|
Located: `scripts/provisioning/pack.nu`
|
||
|
|
|
||
|
|
Process:
|
||
|
|
```
|
||
|
|
1. Read configs/provisioning.toml
|
||
|
|
2. Find all referenced files:
|
||
|
|
- docs/BUNDLE_README.md
|
||
|
|
- docs/docs/installation.md
|
||
|
|
- docs/QUICK_START.md
|
||
|
|
- docs/CONFIG.md
|
||
|
|
- docs/TROUBLESHOOTING.md
|
||
|
|
- docs/PACK.md
|
||
|
|
- scripts/provisioning/*.sh
|
||
|
|
3. Create bundle structure:
|
||
|
|
- Rename BUNDLE_README.md → README.md (at root)
|
||
|
|
- Place docs/installation.md at root
|
||
|
|
- Place QUICK_START.md at root
|
||
|
|
- Place CONFIG.md in docs/
|
||
|
|
- Place TROUBLESHOOTING.md in docs/
|
||
|
|
- Place PACK.md in docs/
|
||
|
|
- Place scripts at root with executable permissions
|
||
|
|
4. Generate manifest.toml with artifact list
|
||
|
|
5. Calculate SHA256 checksums for every file
|
||
|
|
6. Create archive (tar.gz or zip)
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. Bundle Output
|
||
|
|
|
||
|
|
Located: `dist/`
|
||
|
|
|
||
|
|
```
|
||
|
|
dist/
|
||
|
|
├── syntaxis-v0.1.0-aarch64-apple-darwin.tar.gz
|
||
|
|
├── syntaxis-v0.1.0-aarch64-apple-darwin.checksums.toml
|
||
|
|
|
||
|
|
When extracted:
|
||
|
|
syntaxis-v0.1.0-aarch64-apple-darwin/
|
||
|
|
├── README.md [from BUNDLE_README.md]
|
||
|
|
├── docs/installation.md [from docs/docs/installation.md]
|
||
|
|
├── QUICK_START.md [from docs/QUICK_START.md]
|
||
|
|
├── provision.sh [from scripts/provisioning/provision.sh]
|
||
|
|
├── install.sh [from scripts/provisioning/install.sh]
|
||
|
|
├── setup-config.sh [from scripts/provisioning/setup-config.sh]
|
||
|
|
└── docs/
|
||
|
|
├── CONFIG.md [from docs/CONFIG.md]
|
||
|
|
├── TROUBLESHOOTING.md [from docs/TROUBLESHOOTING.md]
|
||
|
|
└── PACK.md [from docs/PACK.md]
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## How to Update Documentation for Next Pack
|
||
|
|
|
||
|
|
### Step 1: Identify What Needs Updating
|
||
|
|
|
||
|
|
Each document has a specific purpose:
|
||
|
|
|
||
|
|
| File | Purpose | Audience | Update When |
|
||
|
|
|------|---------|----------|-------------|
|
||
|
|
| **BUNDLE_README.md** | Bundle overview, what's inside | New users | Adding features, changing bundle contents |
|
||
|
|
| **docs/installation.md** | Installation methods and options | Users installing | Changing installation workflow, new platforms |
|
||
|
|
| **QUICK_START.md** | First 5 minutes, basic workflow | New users | Changing basic workflow, new quick commands |
|
||
|
|
| **CONFIG.md** | All configuration options | Users configuring | Adding config options, database changes |
|
||
|
|
| **TROUBLESHOOTING.md** | Common issues and solutions | Users with problems | New issues discovered, bugs fixed |
|
||
|
|
| **PACK.md** | Provisioning system internals | Developers building bundles | Pack.nu changes, new features |
|
||
|
|
|
||
|
|
### Step 2: Edit the Source File
|
||
|
|
|
||
|
|
All files are markdown in `docs/`:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Edit installation guide
|
||
|
|
nano docs/docs/installation.md
|
||
|
|
|
||
|
|
# Edit configuration reference
|
||
|
|
nano docs/CONFIG.md
|
||
|
|
|
||
|
|
# Edit quick start
|
||
|
|
nano docs/QUICK_START.md
|
||
|
|
|
||
|
|
# Edit troubleshooting
|
||
|
|
nano docs/TROUBLESHOOTING.md
|
||
|
|
|
||
|
|
# Edit bundle overview
|
||
|
|
nano docs/BUNDLE_README.md
|
||
|
|
|
||
|
|
# Edit provisioning docs
|
||
|
|
nano docs/PACK.md
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: Create New Bundle
|
||
|
|
|
||
|
|
After editing, create a new bundle with your changes:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Generate new bundle (for current platform)
|
||
|
|
nu scripts/provisioning/pack.nu
|
||
|
|
|
||
|
|
# Or for specific target
|
||
|
|
nu scripts/provisioning/pack.nu --target x86_64-unknown-linux-gnu
|
||
|
|
|
||
|
|
# Or verify before creating
|
||
|
|
nu scripts/provisioning/pack.nu --verify
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 4: Verify Changes
|
||
|
|
|
||
|
|
Check the bundle contains your updates:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Extract and verify
|
||
|
|
tar -tzf dist/syntaxis-v0.1.0-*.tar.gz | grep -E '(README|INSTALL|QUICK|CONFIG)'
|
||
|
|
|
||
|
|
# View specific document
|
||
|
|
tar -xzOf dist/syntaxis-v0.1.0-*.tar.gz syntaxis-v0.1.0-*/docs/installation.md | head -20
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## File Naming Conventions
|
||
|
|
|
||
|
|
| Source File | Bundle Name | Location | Notes |
|
||
|
|
|---|---|---|---|
|
||
|
|
| `docs/BUNDLE_README.md` | `README.md` | Root | Renamed for standard naming |
|
||
|
|
| `docs/docs/installation.md` | `docs/installation.md` | Root | High visibility |
|
||
|
|
| `docs/QUICK_START.md` | `QUICK_START.md` | Root | High visibility |
|
||
|
|
| `docs/CONFIG.md` | `CONFIG.md` | docs/ | Supplementary |
|
||
|
|
| `docs/TROUBLESHOOTING.md` | `TROUBLESHOOTING.md` | docs/ | Supplementary |
|
||
|
|
| `docs/PACK.md` | `PACK.md` | docs/ | Developer reference |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Content Guidelines
|
||
|
|
|
||
|
|
### BUNDLE_README.md
|
||
|
|
|
||
|
|
**What to include:**
|
||
|
|
- What SYNTAXIS is (brief)
|
||
|
|
- What's in the bundle
|
||
|
|
- Quick 2-3 step installation
|
||
|
|
- What's next
|
||
|
|
- Links to other docs
|
||
|
|
|
||
|
|
**What to avoid:**
|
||
|
|
- Project history or philosophy (save for website)
|
||
|
|
- Development setup instructions
|
||
|
|
- Links to GitHub issues/PRs
|
||
|
|
|
||
|
|
### docs/installation.md
|
||
|
|
|
||
|
|
**What to include:**
|
||
|
|
- System requirements
|
||
|
|
- Multiple installation methods
|
||
|
|
- Step-by-step instructions
|
||
|
|
- Environment setup
|
||
|
|
- Troubleshooting common install issues
|
||
|
|
|
||
|
|
**What to avoid:**
|
||
|
|
- Platform-specific variations (keep generic)
|
||
|
|
- Development installation (users are end-users)
|
||
|
|
- Bleeding-edge/git installation
|
||
|
|
|
||
|
|
### CONFIG.md
|
||
|
|
|
||
|
|
**What to include:**
|
||
|
|
- All configuration files and their locations
|
||
|
|
- Every configuration option with examples
|
||
|
|
- Environment variables
|
||
|
|
- How to apply changes
|
||
|
|
- Common customization scenarios
|
||
|
|
|
||
|
|
**What to avoid:**
|
||
|
|
- Development-only settings
|
||
|
|
- Internal/debug options
|
||
|
|
- Experimental features
|
||
|
|
|
||
|
|
### TROUBLESHOOTING.md
|
||
|
|
|
||
|
|
**What to include:**
|
||
|
|
- Common problems users encounter
|
||
|
|
- Solutions with commands
|
||
|
|
- Diagnostic steps
|
||
|
|
- When to seek help
|
||
|
|
- Where to report issues
|
||
|
|
|
||
|
|
**What to avoid:**
|
||
|
|
- Development debugging
|
||
|
|
- Known but unfixable issues
|
||
|
|
- Workarounds for bugs (fix the bug instead)
|
||
|
|
|
||
|
|
### QUICK_START.md
|
||
|
|
|
||
|
|
**What to include:**
|
||
|
|
- 5-minute timeline
|
||
|
|
- Minimal steps to working system
|
||
|
|
- "Next steps" with references
|
||
|
|
- Common commands reference
|
||
|
|
|
||
|
|
**What to avoid:**
|
||
|
|
- Options and customization
|
||
|
|
- Full documentation
|
||
|
|
- Advanced features
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Local Development Editing
|
||
|
|
|
||
|
|
### Using Version Control
|
||
|
|
|
||
|
|
When updating docs:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Create feature branch
|
||
|
|
git checkout -b docs/update-install-guide
|
||
|
|
|
||
|
|
# Edit docs
|
||
|
|
nano docs/docs/installation.md
|
||
|
|
|
||
|
|
# Commit
|
||
|
|
git add docs/docs/installation.md
|
||
|
|
git commit -m "docs: update installation guide for new setup-config flow"
|
||
|
|
|
||
|
|
# Push and create PR
|
||
|
|
git push origin docs/update-install-guide
|
||
|
|
```
|
||
|
|
|
||
|
|
### Testing Doc Changes
|
||
|
|
|
||
|
|
Before packing:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check TOML syntax of markdown (if using front matter)
|
||
|
|
cat docs/docs/installation.md | head -20
|
||
|
|
|
||
|
|
# Verify references to other docs work locally
|
||
|
|
grep -n "CONFIG.md\|QUICK_START.md" docs/docs/installation.md
|
||
|
|
|
||
|
|
# Check markdown syntax (with mdl if installed)
|
||
|
|
mdl docs/docs/installation.md
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Cleanup: Removing Deprecated Files
|
||
|
|
|
||
|
|
Old files that can be deleted (replaced by newer versions):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
rm docs/CONFIG_GUIDE.md # Replaced by CONFIG.md
|
||
|
|
rm docs/BUNDLE_docs/installation.md # Replaced by docs/installation.md
|
||
|
|
```
|
||
|
|
|
||
|
|
These were superseded by the new naming scheme.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Summary: Update Cycle
|
||
|
|
|
||
|
|
```
|
||
|
|
1. Source Files 2. Configuration 3. Pack Process 4. Distribution
|
||
|
|
(always in docs/) (provisioning.toml) (pack.nu) (user bundle)
|
||
|
|
|
||
|
|
BUNDLE_README.md ─┐
|
||
|
|
docs/installation.md ├─→ provisioning.toml ──→ pack.nu ──→ dist/ ──→ bundle
|
||
|
|
QUICK_START.md ├─→ [artifacts.docs] [reads & copies] tar.gz
|
||
|
|
CONFIG.md ├─→ [artifacts.scripts] [generates manifest]
|
||
|
|
TROUBLESHOOTING ├─→ [calculates checksums]
|
||
|
|
PACK.md ┘
|
||
|
|
|
||
|
|
Edit Here Configure Here Processes Here Users Extract Here
|
||
|
|
Simple! Simple! Automatic! Get Latest!
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Quick Reference: Common Updates
|
||
|
|
|
||
|
|
### Users report installation issue
|
||
|
|
1. Edit `docs/TROUBLESHOOTING.md`
|
||
|
|
2. Add issue + solution
|
||
|
|
3. Run `nu scripts/provisioning/pack.nu`
|
||
|
|
4. Distribute new bundle
|
||
|
|
|
||
|
|
### Configuration option changes
|
||
|
|
1. Edit `docs/CONFIG.md`
|
||
|
|
2. Update examples and descriptions
|
||
|
|
3. Run `nu scripts/provisioning/pack.nu`
|
||
|
|
4. Distribute new bundle
|
||
|
|
|
||
|
|
### Workflow improvements
|
||
|
|
1. Edit `docs/QUICK_START.md` and/or `docs/docs/installation.md`
|
||
|
|
2. Update instructions
|
||
|
|
3. Run `nu scripts/provisioning/pack.nu`
|
||
|
|
4. Distribute new bundle
|
||
|
|
|
||
|
|
### System changes
|
||
|
|
1. Edit `docs/PACK.md` if provisioning system changes
|
||
|
|
2. Run `nu scripts/provisioning/pack.nu`
|
||
|
|
3. Distribute new bundle
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Key Point:** Your source of truth is always `docs/`. Edit there, run pack.nu, distribute the bundle. Each pack automatically includes the latest versions of everything.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**SYNTAXIS** v0.1.0 • [syntaxis.dev](https://syntaxis.dev)
|