Files
momentry_core/scripts/package_release.sh
Accusys 48c3b13c37 fix: restore identity_id after face_dedup, rebuild package v20260512
- Re-ran identity_bind.py to restore identity_id on face_detections
- Dedup cleanup had removed rows with identity_id, kept NULL rows
- 70691 face_detections now have identity_id, 428 identities
- Full package rebuild: 169MB sqlite, 1358MB tar.gz
- identities.json: 428 identities + 5483 bindings + 5483 trace maps
- TMDB matching complete: Audrey Hepburn 843 traces, Cary Grant 482
2026-05-13 04:30:18 +08:00

101 lines
3.6 KiB
Bash

#!/bin/bash
# ===========================================================
# Package Release — Standard Deliverable for M4
# Usage: bash scripts/package_release.sh <version> [file_uuid]
# version: e.g. v1.0.2
# file_uuid: default aeed71342a899fe4b4c57b7d41bcb692
# ===========================================================
set -euo pipefail
VERSION="${1:?Usage: $0 <version> [file_uuid]}"
UUID="${2:-aeed71342a899fe4b4c57b7d41bcb692}"
PG_BIN="/Users/accusys/pgsql/18.3/bin"
PROJECT="/Users/accusys/momentry_core_0.1"
OUTPUT="$PROJECT/release/phase1/${VERSION}"
M4_DIR="$PROJECT/docs_v1.0/M4_HANDOVER"
T0=$(date +%s)
echo "=========================================="
echo " Package Release ${VERSION}"
echo " UUID: ${UUID}"
echo "=========================================="
echo ""
mkdir -p "$OUTPUT"
# ── Step 1: DB backup (post-correction) ──
echo "[1/5] DB backup (post-correction)..."
$PG_BIN/pg_dump -U accusys -d momentry \
--schema=dev \
--table=dev.chunk \
--table=dev.chunk_vectors \
--data-only --column-inserts \
> "$OUTPUT/dev_backup_post_correction.sql" 2>/dev/null
echo " $(ls -lh "$OUTPUT/dev_backup_post_correction.sql" | awk '{print $5}')"
# ── Step 2: Verify counts ──
echo "[2/5] Verify counts..."
SENTENCE=$($PG_BIN/psql -U accusys -d momentry -t -A -c "SELECT count(*) FROM dev.chunk WHERE file_uuid='$UUID' AND chunk_type='sentence';" 2>/dev/null)
VECTORS=$($PG_BIN/psql -U accusys -d momentry -t -A -c "SELECT count(*) FROM dev.chunk_vectors WHERE uuid='$UUID';" 2>/dev/null)
MATCHED=$($PG_BIN/psql -U accusys -d momentry -t -A -c "
SELECT count(*) FROM dev.chunk_vectors cv
JOIN dev.chunk c ON c.file_uuid=cv.uuid AND c.chunk_id=cv.chunk_id
WHERE cv.uuid='$UUID';" 2>/dev/null)
echo " sentence chunks: $SENTENCE"
echo " vectors: $VECTORS"
echo " matched: $MATCHED"
if [ "$SENTENCE" != "$VECTORS" ] || [ "$VECTORS" != "$MATCHED" ]; then
echo " ❌ MISMATCH — aborting"
exit 1
fi
echo " ✅ All counts consistent"
# ── Step 3: Source code archive ──
echo "[3/5] Source code (git archive)..."
cd "$PROJECT"
git archive --format=tar.gz -o "$OUTPUT/momentry_core_${VERSION}_source.tar.gz" HEAD 2>/dev/null
echo " $(ls -lh "$OUTPUT/momentry_core_${VERSION}_source.tar.gz" | awk '{print $5}')"
# ── Step 4: Correction record ──
echo "[4/5] Correction record (asr-1.json)..."
ASR1="/Users/accusys/momentry/output_dev/${UUID}.asr-1.json"
if [ -f "$ASR1" ]; then
cp "$ASR1" "$OUTPUT/"
echo " $(ls -lh "$OUTPUT/${UUID}.asr-1.json" | awk '{print $5}')"
else
echo " ⚠️ No asr-1.json found for $UUID"
fi
# ── Step 5: Copy to M4_HANDOVER ──
echo "[5/5] Deploy to M4_HANDOVER..."
rm -rf "${M4_DIR:?}"/*
cp "$OUTPUT/dev_backup_post_correction.sql" "$M4_DIR/"
cp "$OUTPUT/momentry_core_${VERSION}_source.tar.gz" "$M4_DIR/"
if [ -f "$OUTPUT/${UUID}.asr-1.json" ]; then
cp "$OUTPUT/${UUID}.asr-1.json" "$M4_DIR/"
fi
# Scripts
for s in generate_asr1.py apply_asr_corrections.py clean_sentence_text.py pipeline_status.py; do
cp "$PROJECT/scripts/$s" "$M4_DIR/"
done
# Handover doc + test script
cp "$PROJECT/docs_v1.0/API_V1.0.0/RELEASE/PHASE1_HANDOVER_V1.0.0.md" "$M4_DIR/HANDOVER_${VERSION}.md"
cp "/tmp/test_api.sh" "$M4_DIR/api_test.sh"
# Create RELEASE_INFO
cat > "$M4_DIR/RELEASE_INFO.txt" << EOF
Release: ${VERSION}
Date: $(date +%Y-%m-%d)
UUID: ${UUID}
Pipeline: $(python3 $PROJECT/scripts/pipeline_status.py 2>/dev/null | grep "TOTAL" | tr -d ' ')
EOF
ELAPSED=$(($(date +%s) - T0))
echo ""
echo "=========================================="
echo " Package ${VERSION} complete (${ELAPSED}s)"
echo " Output: $OUTPUT"
echo " M4: $M4_DIR"
echo "=========================================="