chore(reset)!: strip storefront → network-service seed (v0.9.0)
ci / check (push) Has been cancelled
ci / check (push) Has been cancelled
Pivot ecomm from a generic multi-tenant Shopify-alternative storefront to the commitment-commerce + cross-maker verified referral NETWORK direction (ecomm-content/rfcs/network_strategy.md; OHM identity/relationality super-drafts). Phase A of the reset — clear the decks: - Strip the storefront surfaces with no carry-forward: the storefronts domain, the products import/export/image HTTP spine (service/imagefetch/repo + endpoints), the SPA frontend, and the Playwright e2e suite. - Keep the reusable core: /healthz + /api/auth/* (accounts); the catalog-normalization library (codec/dialect/models/serialize/validate/diff/hosted — importable, no HTTP yet); platform/* infra. Migrations untouched (append-only). - Reduce check.sh to backend-only (import-linter + pytest); trim dev.sh and the unused GCS overlay env. Repoint app.json/README/CLAUDE.md; bump VERSION 0.8.0 -> 0.9.0. check.sh green: import-linter (main > domains > platform) KEPT, pytest passing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+2
-7
@@ -2,7 +2,8 @@
|
||||
# The single pre-merge gate for wiggleverse-ecomm (SD-0001 §6.8). Runs, in order:
|
||||
# 1. the import-linter layering contract (main > domains > platform)
|
||||
# 2. the backend test suite (pytest, against Postgres)
|
||||
# 3. the frontend typecheck + production build
|
||||
# The network-seed reset stripped the SPA frontend, so the frontend typecheck/build
|
||||
# and vitest steps are gone — this is a backend-only gate now.
|
||||
# CI (.gitea/workflows/ci.yml) calls this exact script, so local and server gates
|
||||
# cannot drift. Exits non-zero on the first failure.
|
||||
#
|
||||
@@ -31,10 +32,4 @@ echo "==> import boundaries (lint-imports)"
|
||||
echo "==> backend tests (pytest)"
|
||||
( cd "$repo_root/backend" && "$PY" -m pytest -q )
|
||||
|
||||
echo "==> frontend typecheck + build"
|
||||
( cd "$repo_root/frontend" && npm run build )
|
||||
|
||||
echo "==> frontend unit tests (vitest)"
|
||||
( cd "$repo_root/frontend" && npm test )
|
||||
|
||||
echo "==> all gates green"
|
||||
|
||||
+10
-43
@@ -1,12 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
# Local bring-up for ecomm (SD-0001 PUC-10). From a clean checkout this:
|
||||
# Local bring-up for the ecomm network-service seed (SD-0001 PUC-10). From a clean
|
||||
# checkout this:
|
||||
# 1. starts the dev Postgres container and waits for it to be healthy (owns its
|
||||
# lifecycle — Docker is the one prerequisite, docs/BOOTSTRAP.md);
|
||||
# 2. ensures the backend venv + deps and the frontend node_modules;
|
||||
# 3. runs the FastAPI backend (:8000, self-migrating an empty DB) and the Vite dev
|
||||
# server (:5173, proxying /api -> :8000) together.
|
||||
# Ctrl-C stops both processes; the container keeps running (stop it with
|
||||
# 2. ensures the backend venv + deps;
|
||||
# 3. runs the FastAPI backend (:8000, self-migrating an empty DB).
|
||||
# Ctrl-C stops the backend; the container keeps running (stop it with
|
||||
# `docker compose down`, or `docker compose down -v` to reset to empty).
|
||||
# The storefront SPA was removed in the network-seed reset — there is no frontend dev
|
||||
# server yet (the network admin UI is a future build).
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
@@ -24,41 +26,6 @@ if [ ! -x "$repo_root/.venv/bin/python" ]; then
|
||||
"$repo_root/.venv/bin/python" -m pip install -r "$repo_root/backend/requirements.txt"
|
||||
fi
|
||||
|
||||
if [ ! -d "$repo_root/frontend/node_modules" ]; then
|
||||
echo "==> installing frontend deps"
|
||||
( cd "$repo_root/frontend" && npm install )
|
||||
fi
|
||||
|
||||
echo "==> starting backend (:8000) and Vite (:5173) — Ctrl-C to stop"
|
||||
"$repo_root/.venv/bin/python" -m uvicorn app.main:app --app-dir "$repo_root/backend" --port 8000 --reload &
|
||||
backend_pid=$!
|
||||
( cd "$repo_root/frontend" && npm run dev ) &
|
||||
frontend_pid=$!
|
||||
|
||||
# Kill a process and its whole descendant tree (children first), portably across
|
||||
# macOS and Linux — npm spawns vite as a grandchild, so killing the captured pid
|
||||
# alone would orphan it on :5173. `pgrep -P` (list children) exists on both.
|
||||
kill_tree() {
|
||||
local pid=$1 child
|
||||
for child in $(pgrep -P "$pid" 2>/dev/null); do
|
||||
kill_tree "$child"
|
||||
done
|
||||
kill "$pid" 2>/dev/null || true
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
trap - INT TERM
|
||||
echo
|
||||
echo "==> stopping backend and Vite"
|
||||
kill_tree "$backend_pid"
|
||||
kill_tree "$frontend_pid"
|
||||
wait "$backend_pid" "$frontend_pid" 2>/dev/null || true
|
||||
}
|
||||
trap cleanup INT TERM
|
||||
|
||||
# Wait until either process exits, then tear the other down. `wait -n` would be
|
||||
# tidier but is unsupported on macOS's bundled bash 3.2, so poll portably.
|
||||
while kill -0 "$backend_pid" 2>/dev/null && kill -0 "$frontend_pid" 2>/dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
cleanup
|
||||
echo "==> starting backend (:8000) — Ctrl-C to stop"
|
||||
# exec hands the terminal (and Ctrl-C) straight to uvicorn; no child-process juggling.
|
||||
exec "$repo_root/.venv/bin/python" -m uvicorn app.main:app --app-dir "$repo_root/backend" --port 8000 --reload
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# E2E browser gate (SD-0002 §6.8) — Playwright against a fresh local stack.
|
||||
# Not yet part of check.sh/CI: the CI runner has no browsers (§10.6 gap).
|
||||
set -euo pipefail
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$repo_root/e2e"
|
||||
if [ ! -d node_modules ]; then
|
||||
npm install
|
||||
npx playwright install chromium
|
||||
fi
|
||||
npx playwright test "$@"
|
||||
Reference in New Issue
Block a user