You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
					
						
							6.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							6.7 KiB
						
					
					
				TimeSafari Asset Configuration Migration Plan
Author: Matthew Raymer
Date: 2025-08-14
Status: 🎯 IMPLEMENTATION - Ready for Execution
Overview
This document outlines the migration from the current mixed asset management
system to a standardized, single-source asset configuration approach using
capacitor-assets as the standard generator.
Current State Analysis
Asset Sources (Duplicated)
assets/directory: Containsicon.png,splash.png,splash_dark.pngresources/directory: Contains identical files in platform-specific subdirectories- Result: Duplicate storage, confusion about source of truth
 
Asset Generation (Manual)
- Custom scripts: 
generate-icons.sh,generate-ios-assets.sh,generate-android-icons.sh - Bypass capacitor-assets: Manual ImageMagick-based generation
 - Inconsistent outputs: Different generation methods for each platform
 
Configuration (Scattered)
capacitor-assets.config.json: Basic configuration at root- Platform-specific configs: Mixed in various build scripts
 - No validation: No schema or consistency checks
 
Target State
Single Source of Truth
resources/directory: Capacitor default location for source assets- Eliminate duplication: Remove 
assets/directory after migration - Standardized paths: All tools read from 
resources/ 
Standardized Generation
capacitor-assets: Single tool for all platform asset generation- Build-time generation: Assets generated during build, not committed
 - Deterministic outputs: Same inputs → same outputs every time
 
Centralized Configuration
config/assets/: All asset-related configuration files- Schema validation: JSON schema for configuration validation
 - CI safeguards: Automated validation and compliance checks
 
Migration Steps
Phase 1: Foundation Setup ✅
- Create 
config/assets/directory structure - Create asset configuration schema (
schema.json) - Create enhanced capacitor-assets configuration
 - Convert 
capacitor.config.jsontocapacitor.config.ts - Pin Node.js version (
.nvmrc,.node-version) - Create dev-time asset configuration generator
 - Create asset configuration validator
 - Add npm scripts for asset management
 - Update 
.gitignorewith proper asset exclusions - Create CI workflow for asset validation
 
Phase 2: Validation & Testing
- Run 
npm run assets:configto generate new configuration - Run 
npm run assets:validateto verify configuration - Test 
npm run build:nativeworkflow - Verify CI workflow passes all checks
 - Confirm no platform assets are committed to VCS
 
Phase 3: Cleanup & Removal
- Remove 
assets/directory (after validation) - Remove manual asset generation scripts
 - Remove asset checking scripts
 - Update documentation references
 - Final validation of clean state
 
Implementation Details
File Structure
resources/                     # Image sources ONLY
  icon.png
  splash.png
  splash_dark.png
config/assets/                 # Versioned config & schema
  capacitor-assets.config.json
  schema.json
scripts/
  assets-config.js            # Dev-time config generator
  assets-validator.js         # Schema validator
Configuration Schema
The schema enforces:
- Source files must be in 
resources/directory - Required fields for icon and splash sections
 - Android adaptive icon support (foreground/background/monochrome)
 - iOS LaunchScreen preferences
 - Target directory validation
 
CI Safeguards
- Schema validation: Configuration must comply with schema
 - Source file validation: All referenced files must exist
 - Platform asset denial: Reject commits with generated assets
 - Clean tree enforcement: Build must not modify committed configs
 
Testing Strategy
Local Validation
# Generate configuration
npm run assets:config
# Validate configuration
npm run assets:validate
# Test build workflow
npm run build:native
# Clean generated assets
npm run assets:clean
CI Validation
- Asset validation workflow: Runs on asset-related changes
 - Schema compliance: Ensures configuration follows schema
 - Source file existence: Verifies all referenced files exist
 - Platform asset detection: Prevents committed generated assets
 - Build tree verification: Ensures clean tree after build
 
Risk Mitigation
Data Loss Prevention
- Backup branch: Create backup before removing 
assets/ - Validation checks: Multiple validation steps before removal
 - Gradual migration: Phase-by-phase approach with rollback capability
 
Build Continuity
- Per-platform scripts unchanged: All existing build orchestration preserved
 - Standard toolchain: Uses capacitor-assets, not custom scripts
 - Fallback support: Manual scripts remain until migration complete
 
Configuration Consistency
- Schema enforcement: JSON schema prevents invalid configurations
 - CI validation: Automated checks catch configuration issues
 - Documentation updates: Clear guidance for future changes
 
Success Criteria
Technical Requirements
- Single source of truth in 
resources/directory - All platform assets generated via 
capacitor-assets - No manual asset generation scripts
 - Configuration validation passes all checks
 - CI workflow enforces asset policies
 
Quality Metrics
- Zero duplicate asset sources
 - 100% configuration schema compliance
 - No platform assets committed to VCS
 - Clean build tree after asset generation
 - Deterministic asset outputs
 
User Experience
- Clear asset management documentation
 - Simple development commands
 - Consistent asset generation across platforms
 - Reduced confusion about asset sources
 
Next Steps
- Execute Phase 2: Run validation and testing steps
 - Verify CI workflow: Ensure all checks pass
 - Execute Phase 3: Remove duplicate assets and scripts
 - Update documentation: Finalize README and BUILDING.md
 - Team training: Ensure all developers understand new workflow
 
Rollback Plan
If issues arise during migration:
- Restore backup branch: 
git checkout backup-before-asset-migration - Revert configuration changes: Remove new config files
 - Restore manual scripts: Re-enable previous asset generation
 - Investigate issues: Identify and resolve root causes
 - Plan revised migration: Adjust approach based on lessons learned
 
Status: Ready for Phase 2 execution
Priority: High
Estimated Effort: 2-3 hours
Dependencies: CI workflow validation
Stakeholders: Development team