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: Contains- icon.png,- splash.png,- splash_dark.png
- resources/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