Cross-Compilation & Getting Started Docs #15

Open
opened 2026-03-11 04:38:30 +00:00 by mik-tf · 0 comments
Owner

Cross-Compilation & Getting Started Docs

Remaining items from #1 (Release Management — closed).


Environments

Tier Gateway Port Image Container Status
dev herodev.gent02.grid.tf 8805 hero_zero:dev herodev ✓ 31 services, ~110 tests green
demo herodemo.gent02.grid.tf 8806 hero_zero:demo herodemo ✓ 31 services, ~110 tests green

VM: Both containers on same TFGrid VM at Mycelium IP 495:72fa:8ec3:9264:ff0f:c0a8:abad:234c
Registry: forge.ourworld.tf/lhumina_code/hero_zero


Build Pipeline

cd hero_services
make deploy        # dist → pack → push → deploy to herodev
Step Command What it does
1 make dist docker/build-local.sh — compiles all service repos inside rust:1.93-bookworm with lhumina_code/ and geomind_code/ volume-mounted. Whatever is checked out gets built. 1-3 min incremental, 10-15 min cold.
2 make pack docker build -f Dockerfile.pack — copies pre-built dist/ into thin debian:bookworm-slim. No compilation.
3 make push Push hero_zero:dev to forge registry
4 make update ENV=herodev SSH into VM, pull image, restart container

Promotion: make demo tags :dev:demo, pushes, deploys to herodemo.


Smoke Tests

cd deploy/single-vm
make test ENV=herodev     # or ENV=herodemo
Suite Tests Coverage
smoke_gateway.sh ~47 SPA routing, auth flow, inspector discovery, RPC discovery, MCP gateway, WebDAV, SSE, health checks, UI pages
smoke_test.sh ~52 All UI health endpoints, page content, RPC calls, WASM island RPC, server-side health, socat-bridged services
smoke_theme.sh ~14 hero:theme postMessage listener in all 14 iframe-embedded services

Branching & PRs

development_{name}     ← work freely, many commits, push often
    ↓ PR with "closes #N"
    ↓ Forgejo "Squash commit" merge
development            ← one clean commit per issue

Rules:

  • Same branch name across all affected repos
  • Never rebase — merge development INTO feature branch if needed
  • PRs into development: Squash commit
  • PRs into main: Create merge commit (preserves release boundary)
  • Commit message format: https://forge.ourworld.tf/lhumina_code/home/issues/{N} — Description

11-Step Pipeline (3 human gates)

Step Action Who Gate
1 Fix code on development_{name} in each repo AI
2 make deploy (1-3 min incremental) AI Must compile
3 make test ENV=herodev (30 sec, ~110 tests) AI
Iterate steps 1-3 until green. Push freely. AI
4 Human verifies herodev Human ✓ Must confirm
5 Create PRs: development_{name}development with closes #N AI Only after step 4
6 Squash merge PRs on Forgejo AI/Human
7 git checkout development && git pull all repos, make deploy AI Clean build
8 Human verifies herodev (clean merged code) Human ✓ Must confirm
9 make demo (tag :dev→:demo, deploy herodemo) AI Only after step 8
10 Human verifies herodemo Human ✓ Must confirm
11 Update issue log AI

Tasks

1. ARM/Intel Cross-Compilation

  • Extend build-local.sh to support --platform linux/arm64 builds
  • Add make dist-arm target (or parameterize make dist ARCH=arm64)
  • Verify all service binaries compile and run on ARM (aarch64)
  • Publish multi-arch container image (manifest list: amd64 + arm64)
  • Test on ARM hardware or QEMU

2. Getting Started Documentation

  • Write getting started guide in dev_docs/ covering:
    • How to install Claude Code skills for Hero development
    • How to use the build container for local development
    • How to get a full hero_os container running locally
    • How to iterate: edit code → make deploy → test → repeat
  • Include prerequisites (Docker, Rust toolchain, Bun, forge access)
  • Document the environment setup (~/hero/cfg/env/env.sh, tokens)
  • Cover the branching model and PR workflow

Affected Repos

Repo What
lhumina_code/hero_services Build scripts, Makefile, Dockerfile.pack
geomind_code/dev_docs Getting started documentation

Log

Date Step Notes
2026-03-11 Created Remaining items from #1
# Cross-Compilation & Getting Started Docs Remaining items from [#1](https://forge.ourworld.tf/lhumina_code/home/issues/1) (Release Management — closed). --- ## Environments | Tier | Gateway | Port | Image | Container | Status | |------|---------|------|-------|-----------|--------| | dev | `herodev.gent02.grid.tf` | 8805 | `hero_zero:dev` | `herodev` | ✓ 31 services, ~110 tests green | | demo | `herodemo.gent02.grid.tf` | 8806 | `hero_zero:demo` | `herodemo` | ✓ 31 services, ~110 tests green | **VM:** Both containers on same TFGrid VM at Mycelium IP `495:72fa:8ec3:9264:ff0f:c0a8:abad:234c` **Registry:** `forge.ourworld.tf/lhumina_code/hero_zero` --- ## Build Pipeline ```bash cd hero_services make deploy # dist → pack → push → deploy to herodev ``` | Step | Command | What it does | |------|---------|--------------| | 1 | `make dist` | `docker/build-local.sh` — compiles all service repos inside `rust:1.93-bookworm` with `lhumina_code/` and `geomind_code/` **volume-mounted**. Whatever is checked out gets built. 1-3 min incremental, 10-15 min cold. | | 2 | `make pack` | `docker build -f Dockerfile.pack` — copies pre-built `dist/` into thin `debian:bookworm-slim`. No compilation. | | 3 | `make push` | Push `hero_zero:dev` to forge registry | | 4 | `make update ENV=herodev` | SSH into VM, pull image, restart container | Promotion: `make demo` tags `:dev` → `:demo`, pushes, deploys to herodemo. --- ## Smoke Tests ```bash cd deploy/single-vm make test ENV=herodev # or ENV=herodemo ``` | Suite | Tests | Coverage | |-------|-------|----------| | `smoke_gateway.sh` | ~47 | SPA routing, auth flow, inspector discovery, RPC discovery, MCP gateway, WebDAV, SSE, health checks, UI pages | | `smoke_test.sh` | ~52 | All UI health endpoints, page content, RPC calls, WASM island RPC, server-side health, socat-bridged services | | `smoke_theme.sh` | ~14 | `hero:theme` postMessage listener in all 14 iframe-embedded services | --- ## Branching & PRs ``` development_{name} ← work freely, many commits, push often ↓ PR with "closes #N" ↓ Forgejo "Squash commit" merge development ← one clean commit per issue ``` **Rules:** - Same branch name across all affected repos - Never rebase — merge `development` INTO feature branch if needed - PRs into `development`: **Squash commit** - PRs into `main`: **Create merge commit** (preserves release boundary) - Commit message format: `https://forge.ourworld.tf/lhumina_code/home/issues/{N} — Description` --- ## 11-Step Pipeline (3 human gates) | Step | Action | Who | Gate | |------|--------|-----|------| | 1 | Fix code on `development_{name}` in each repo | AI | — | | 2 | `make deploy` (1-3 min incremental) | AI | Must compile | | 3 | `make test ENV=herodev` (30 sec, ~110 tests) | AI | — | | — | _Iterate steps 1-3 until green. Push freely._ | AI | — | | 4 | **Human verifies herodev** | Human | ✓ Must confirm | | 5 | Create PRs: `development_{name}` → `development` with `closes #N` | AI | Only after step 4 | | 6 | **Squash merge** PRs on Forgejo | AI/Human | — | | 7 | `git checkout development && git pull` all repos, `make deploy` | AI | Clean build | | 8 | **Human verifies herodev** (clean merged code) | Human | ✓ Must confirm | | 9 | `make demo` (tag :dev→:demo, deploy herodemo) | AI | Only after step 8 | | 10 | **Human verifies herodemo** | Human | ✓ Must confirm | | 11 | Update issue log | AI | — | --- ## Tasks ### 1. ARM/Intel Cross-Compilation - [ ] Extend `build-local.sh` to support `--platform linux/arm64` builds - [ ] Add `make dist-arm` target (or parameterize `make dist ARCH=arm64`) - [ ] Verify all service binaries compile and run on ARM (aarch64) - [ ] Publish multi-arch container image (manifest list: amd64 + arm64) - [ ] Test on ARM hardware or QEMU ### 2. Getting Started Documentation - [ ] Write getting started guide in `dev_docs/` covering: - How to install Claude Code skills for Hero development - How to use the build container for local development - How to get a full hero_os container running locally - How to iterate: edit code → `make deploy` → test → repeat - [ ] Include prerequisites (Docker, Rust toolchain, Bun, forge access) - [ ] Document the environment setup (`~/hero/cfg/env/env.sh`, tokens) - [ ] Cover the branching model and PR workflow --- ## Affected Repos | Repo | What | |------|------| | `lhumina_code/hero_services` | Build scripts, Makefile, Dockerfile.pack | | `geomind_code/dev_docs` | Getting started documentation | --- ## Log | Date | Step | Notes | |------|------|-------| | 2026-03-11 | Created | Remaining items from #1 |
mik-tf added this to the ACTIVE project 2026-03-11 04:38:59 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/home#15
No description provided.