deployment

This commit is contained in:
2025-09-11 14:07:55 +03:00
parent c1ac5297f2
commit 9c2c879483
54 changed files with 1859 additions and 26 deletions

105
README.md
View File

@@ -282,15 +282,76 @@ The addon features a sophisticated three-tier preset system:
- **Conflict Resolution**: Smart handling of duplicate preset names
- **Migration Reports**: Detailed logs of preset migration operations
## Build System
### File Exclusion Strategy
The addon uses a sophisticated build-time file exclusion system instead of runtime feature flags, creating genuinely different versions:
#### Configuration Files:
- [`build/file_exclusions.json`](build/file_exclusions.json) - Defines which files are excluded from free builds
- [`build/build_addon.py`](build/build_addon.py) - Enhanced build script with intelligent exclusion logic
- [`build/sync_version.py`](build/sync_version.py) - Version synchronization without feature flag injection
#### Build Commands:
```bash
# Build free version
python3 build/build_addon.py --type free --version 1.0.0
# Build full version
python3 build/build_addon.py --type full --version 1.0.0
# Build both versions
python3 build/build_addon.py --type all --version 1.0.0
```
#### Exclusion Logic:
- **Free Version**: Physically excludes premium modules during build
- **Full Version**: Includes all source code modules
- **Smart Patterns**: Handles directory exclusions and glob patterns
- **Build Verification**: Shows excluded/included file counts and sizes
#### Benefits:
- **Security**: Users cannot access premium source code
- **Clean Separation**: No runtime feature checking complexity
- **Genuine Differences**: 37% smaller free version package
- **Maintainability**: Single codebase with build-time differentiation
## Development
### File Structure
```
text_texture_generator/
├── blender_manifest.toml # Modern addon manifest (Blender 4.0+)
├── __init__.py # Main addon code (~5000 lines)
└── README.md # Documentation
├── build/ # Build system
│ ├── build_addon.py # Main build script with file exclusion
│ ├── file_exclusions.json # File exclusion configuration
│ ├── sync_version.py # Version synchronization
│ └── templates/ # Build templates
├── src/ # Source code
│ ├── blender_manifest.toml # Blender 4.0+ manifest
│ ├── __init__.py # Main addon code (~5000 lines)
│ ├── core/ # Core functionality
│ │ ├── generation_engine.py # Text rendering engine
│ │ ├── normal_maps.py # Normal map generation (Premium)
│ │ ├── text_fitting.py # Text fitting algorithms
│ │ └── text_processor.py # Text processing utilities
│ ├── operators/ # Blender operators
│ │ ├── generation_ops.py # Core generation operations
│ │ ├── preset_ops.py # Preset operations (Premium)
│ │ └── utility_ops.py # Utility operations (Premium)
│ ├── ui/ # User interface
│ │ ├── panels.py # UI panels
│ │ └── preview.py # Live preview system
│ ├── properties/ # Property definitions
│ ├── presets/ # Preset management (Premium)
│ └── utils/ # Utility functions
├── marketing/ # Marketing materials
└── README.md # Documentation
```
### Code Organization
@@ -339,7 +400,39 @@ Marc Mintel <marc@mintel.me>
- Import/export functionality for preset backup and cross-installation sharing
- Enhanced error handling and user feedback throughout the interface
### Version 1.0.0 (Manifest Version)
### Version 1.0.0 (Current Release)
- Note: The blender_manifest.toml shows version 1.0.0 but the code implements v2.3.2 features
- Recommendation: Update manifest version to match actual code capabilities
**New Build Strategy**: Redesigned version distribution from runtime feature flags to build-time file exclusion for better security and genuine feature separation.
#### Free Version Features:
- Core text texture generation with full quality output (up to 1024×1024 resolution)
- Basic UI and generation engine
- Font system with system font detection and custom font support
- Standard positioning and text fitting capabilities
- Essential properties and operators
- **File Count**: 17 files (37.9 KB package size)
#### Full Version Features (Additional):
- Normal map generation from text alpha channels
- Complete preset management system with import/export
- Advanced utility operations and batch processing
- Extended UI components and advanced styling options
- **File Count**: 23 files (60.1 KB package size)
#### Technical Implementation:
- **Physical File Exclusion**: Free version physically lacks premium modules rather than using runtime restrictions
- **Build-Time Separation**: Different source code in each version ensures users cannot access premium features
- **37% Size Difference**: Meaningful package size reduction demonstrates genuine feature separation
- **Clean Architecture**: No complex feature flag systems, cleaner codebase maintenance
**Excluded from Free Version**:
- `core/normal_maps.py` - Normal map generation algorithms
- `operators/preset_ops.py` - Preset management operations
- `operators/utility_ops.py` - Batch processing and utility functions
- `presets/` - Entire preset storage and migration system
This approach ensures the free version provides genuine value while the full version offers substantially more capabilities through additional source code modules.