deployment
This commit is contained in:
105
README.md
105
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user