release fix and blur improvements

This commit is contained in:
Michael Freno
2025-11-25 16:20:47 -05:00
parent f1f883f5ea
commit 06d87b80f3
8 changed files with 425 additions and 13 deletions

View File

@@ -40,16 +40,16 @@ get_description() {
get_modules() {
case "$1" in
minimal)
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua GestureRecognizer.lua ModuleLoader.lua"
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua ModuleLoader.lua types.lua"
;;
slim)
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua GestureRecognizer.lua Animation.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua ModuleLoader.lua"
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua ModuleLoader.lua types.lua Animation.lua NinePatch.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua"
;;
default)
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua GestureRecognizer.lua Animation.lua NinePatch.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua Theme.lua Blur.lua ModuleLoader.lua"
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua ModuleLoader.lua types.lua Animation.lua NinePatch.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua Theme.lua Blur.lua GestureRecognizer.lua"
;;
full)
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua GestureRecognizer.lua Animation.lua NinePatch.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua Theme.lua Blur.lua Performance.lua ModuleLoader.lua"
echo "utils.lua Units.lua Context.lua StateManager.lua ErrorHandler.lua Color.lua InputEvent.lua TextEditor.lua LayoutEngine.lua Renderer.lua EventHandler.lua ScrollManager.lua Element.lua RoundedRect.lua Grid.lua ModuleLoader.lua types.lua Animation.lua NinePatch.lua ImageRenderer.lua ImageScaler.lua ImageCache.lua Theme.lua Blur.lua GestureRecognizer.lua Performance.lua MemoryScanner.lua"
;;
esac
}

169
scripts/test-release-locally.sh Executable file
View File

@@ -0,0 +1,169 @@
#!/bin/bash
# Local test script for release workflow
# This simulates the key steps of .github/workflows/release.yml
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}==================================${NC}"
echo -e "${BLUE}Local Release Workflow Test${NC}"
echo -e "${BLUE}==================================${NC}"
echo ""
# Step 1: Extract version
echo -e "${YELLOW}Step 1: Extract version from FlexLove.lua${NC}"
VERSION=$(grep -m 1 "_VERSION" FlexLove.lua | sed -E 's/.*"([^"]+)".*/\1/')
if [ -z "$VERSION" ]; then
echo -e "${RED}Error: Could not extract version${NC}"
exit 1
fi
echo -e "${GREEN}✓ Version: ${VERSION}${NC}"
echo ""
# Step 2: Make scripts executable
echo -e "${YELLOW}Step 2: Make scripts executable${NC}"
chmod +x scripts/generate_docs.sh
chmod +x scripts/create-release.sh
chmod +x scripts/create-profile-packages.sh
chmod +x scripts/archive-docs.sh
echo -e "${GREEN}✓ Scripts are executable${NC}"
echo ""
# Step 3: Create release packages
echo -e "${YELLOW}Step 3: Create release packages${NC}"
./scripts/create-profile-packages.sh
echo ""
# Step 4: Verify all packages were created
echo -e "${YELLOW}Step 4: Verify all packages${NC}"
for profile in minimal slim default full; do
if [ ! -f "releases/flexlove-${profile}-v${VERSION}.zip" ]; then
echo -e "${RED}✗ Error: ${profile} profile package was not created${NC}"
exit 1
fi
if [ ! -f "releases/flexlove-${profile}-v${VERSION}.zip.sha256" ]; then
echo -e "${RED}✗ Error: ${profile} checksum file was not created${NC}"
exit 1
fi
SIZE=$(du -h "releases/flexlove-${profile}-v${VERSION}.zip" | cut -f1)
echo -e "${GREEN}${profile} package verified (${SIZE})${NC}"
done
echo ""
# Step 5: Verify checksums
echo -e "${YELLOW}Step 5: Verify checksums${NC}"
cd releases
if shasum -a 256 -c flexlove-*-v${VERSION}.zip.sha256 2>&1 | grep -q "OK"; then
shasum -a 256 -c flexlove-*-v${VERSION}.zip.sha256
echo -e "${GREEN}✓ All checksums verified${NC}"
else
echo -e "${RED}✗ Checksum verification failed${NC}"
exit 1
fi
cd ..
echo ""
# Step 6: Extract checksums for display
echo -e "${YELLOW}Step 6: Extract checksums for release notes${NC}"
MINIMAL_CHECKSUM=$(cat "releases/flexlove-minimal-v${VERSION}.zip.sha256" | cut -d ' ' -f 1)
SLIM_CHECKSUM=$(cat "releases/flexlove-slim-v${VERSION}.zip.sha256" | cut -d ' ' -f 1)
DEFAULT_CHECKSUM=$(cat "releases/flexlove-default-v${VERSION}.zip.sha256" | cut -d ' ' -f 1)
FULL_CHECKSUM=$(cat "releases/flexlove-full-v${VERSION}.zip.sha256" | cut -d ' ' -f 1)
echo -e "${BLUE}Minimal: ${MINIMAL_CHECKSUM}${NC}"
echo -e "${BLUE}Slim: ${SLIM_CHECKSUM}${NC}"
echo -e "${BLUE}Default: ${DEFAULT_CHECKSUM}${NC}"
echo -e "${BLUE}Full: ${FULL_CHECKSUM}${NC}"
echo ""
# Step 7: Check if pre-release
echo -e "${YELLOW}Step 7: Check if pre-release${NC}"
if [[ "$VERSION" =~ (alpha|beta|rc|dev) ]]; then
echo -e "${BLUE}This is a pre-release version${NC}"
else
echo -e "${GREEN}This is a stable release${NC}"
fi
echo ""
# Step 8: Verify package contents
echo -e "${YELLOW}Step 8: Verify package contents${NC}"
TEMP_DIR=$(mktemp -d)
for profile in minimal slim default full; do
unzip -q "releases/flexlove-${profile}-v${VERSION}.zip" -d "${TEMP_DIR}/${profile}"
# Check FlexLove.lua exists
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/FlexLove.lua" ]; then
echo -e "${RED}${profile}: Missing FlexLove.lua${NC}"
exit 1
fi
# Check LICENSE exists
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/LICENSE" ]; then
echo -e "${RED}${profile}: Missing LICENSE${NC}"
exit 1
fi
# Check README exists
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/README.md" ]; then
echo -e "${RED}${profile}: Missing README.md${NC}"
exit 1
fi
# Count modules
MODULE_COUNT=$(find "${TEMP_DIR}/${profile}/flexlove/modules" -name "*.lua" | wc -l | tr -d ' ')
# Check themes for default and full
if [ "$profile" == "default" ] || [ "$profile" == "full" ]; then
if [ ! -d "${TEMP_DIR}/${profile}/flexlove/themes" ]; then
echo -e "${RED}${profile}: Missing themes directory${NC}"
exit 1
fi
# Verify theme files
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/themes/metal.example.lua" ]; then
echo -e "${RED}${profile}: Missing metal.example.lua${NC}"
exit 1
fi
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/themes/space.example.lua" ]; then
echo -e "${RED}${profile}: Missing space.example.lua${NC}"
exit 1
fi
if [ ! -f "${TEMP_DIR}/${profile}/flexlove/themes/README.md" ]; then
echo -e "${RED}${profile}: Missing themes/README.md${NC}"
exit 1
fi
# Verify no other files in themes
THEME_FILE_COUNT=$(find "${TEMP_DIR}/${profile}/flexlove/themes" -type f | wc -l | tr -d ' ')
if [ "$THEME_FILE_COUNT" != "3" ]; then
echo -e "${RED}${profile}: Expected 3 files in themes, found ${THEME_FILE_COUNT}${NC}"
find "${TEMP_DIR}/${profile}/flexlove/themes" -type f
exit 1
fi
echo -e "${GREEN}${profile}: ${MODULE_COUNT} modules + themes verified${NC}"
else
# Verify no themes for minimal and slim
if [ -d "${TEMP_DIR}/${profile}/flexlove/themes" ]; then
echo -e "${RED}${profile}: Should not have themes directory${NC}"
exit 1
fi
echo -e "${GREEN}${profile}: ${MODULE_COUNT} modules verified${NC}"
fi
done
rm -rf "$TEMP_DIR"
echo ""
echo -e "${GREEN}==================================${NC}"
echo -e "${GREEN}✓ All tests passed!${NC}"
echo -e "${GREEN}==================================${NC}"
echo ""
echo -e "${BLUE}Release packages are ready in: releases/${NC}"
echo -e "${BLUE}Version: v${VERSION}${NC}"
echo ""