- Fix clippy warnings in test code by adding #[allow(dead_code)] - Move all unit tests from source files to tests/ directory - Add integration tests for SQL parsing and schema operations - Create examples directory with 5 SQL query examples - Add Windows CI job to ci.yml for cross-platform coverage - Update Cargo.toml with documentation and readme fields - Add comprehensive clean room audit documentation All 39 tests passing, clippy clean, formatting verified
55 lines
2.4 KiB
Bash
Executable File
55 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Release Verification Checklist
|
|
|
|
set -e
|
|
|
|
echo "=== notion-sql v1.0.0 Release Verification ==="
|
|
echo ""
|
|
|
|
# 1. Code Quality Gates
|
|
echo "🔍 Step 1/6: Code Quality Gates"
|
|
cargo fmt --check && echo "✅ Formatting OK" || { echo "❌ Formatting FAILED"; exit 1; }
|
|
cargo clippy --all-targets --all-features -- -D warnings && echo "✅ Clippy OK" || { echo "❌ Clippy FAILED"; exit 1; }
|
|
cargo test --all-targets --all-features && echo "✅ Tests OK" || { echo "❌ Tests FAILED"; exit 1; }
|
|
RUSTDOCFLAGS='-D warnings' cargo doc --no-deps --all-features && echo "✅ Docs OK" || { echo "❌ Docs FAILED"; exit 1; }
|
|
|
|
# 2. Build System Gates
|
|
echo ""
|
|
echo "🔍 Step 2/6: Build System Gates"
|
|
cargo build --release && echo "✅ Release build OK" || { echo "❌ Build FAILED"; exit 1; }
|
|
dist generate --check && echo "✅ Dist config OK" || { echo "❌ Dist config FAILED"; exit 1; }
|
|
dist plan --tag v1.0.0 && echo "✅ Release plan OK" || { echo "❌ Release plan FAILED"; exit 1; }
|
|
|
|
# 3. Release Process Gates
|
|
echo ""
|
|
echo "🔍 Step 3/6: Release Process Gates"
|
|
gh repo view KofTwentyTwo/homebrew-tap && echo "✅ Homebrew tap exists" || { echo "❌ Homebrew tap FAILED"; exit 1; }
|
|
gh secret list --repo KofTwentyTwo/notion-sql | grep HOMEBREW_TAP_TOKEN && echo "✅ Token exists" || { echo "❌ Token check FAILED"; exit 1; }
|
|
|
|
# 4. Documentation Gates
|
|
echo ""
|
|
echo "🔍 Step 4/6: Documentation Gates"
|
|
grep -q "2026-06-02" CHANGELOG.md && echo "✅ CHANGELOG updated" || { echo "❌ CHANGELOG not updated"; exit 1; }
|
|
test -f examples/README.md && echo "✅ Examples README exists" || { echo "❌ Examples README missing"; exit 1; }
|
|
|
|
# 5. Security Gates
|
|
echo ""
|
|
echo "🔍 Step 5/6: Security Gates"
|
|
grep -q "NOTION_TOKEN" SECURITY.md && echo "✅ Token handling documented" || { echo "❌ Token handling not documented"; exit 1; }
|
|
grep -q "dry-run" README.md && echo "✅ Dry-run mode documented" || { echo "❌ Dry-run mode not documented"; exit 1; }
|
|
|
|
# 6. Final Verification
|
|
echo ""
|
|
echo "🔍 Step 6/6: Final Verification"
|
|
git status --short && echo "✅ No uncommitted changes" || { echo "⚠️ Uncommitted changes detected"; }
|
|
git log --oneline -5 && echo "✅ Recent commits OK"
|
|
git tag -l && echo "✅ Tags OK"
|
|
|
|
echo ""
|
|
echo "=== Release Verification Complete ==="
|
|
echo ""
|
|
echo "If all checks passed, proceed with release:"
|
|
echo " git commit -am 'Update CHANGELOG for v1.0.0'"
|
|
echo " git tag v1.0.0"
|
|
echo " git push origin v1.0.0"
|