Repository navigation
We're excited to announce PPG 1.2.0, our most significant release to date! This update brings revolutionary new features and major architectural improvements that will transform your development experience.
⚡ Major New Features
Hot Reloading
- Instant development feedback - See your changes in real-time without manual refreshes
- Smart change detection - Only updates what's actually changed for optimal performance
- Zero-configuration setup - Works out of the box with your existing projects
Reactive Components
- Declarative UI paradigm - Build dynamic interfaces with reactive data binding
- Component lifecycle management - Full control over component creation, updates, and destruction
- State synchronization - Automatic UI updates when data changes
- Performance optimized - Efficient rendering with minimal DOM manipulation
WebEngineBridge
- Seamless Python-JavaScript integration - Bridge the gap between backend and frontend
- Bidirectional communication - Call Python functions from JavaScript and vice versa
- Type-safe interfaces - Full IntelliSense support with proper type checking
- Event system - Real-time event handling across the bridge
Core Utilities & Architecture Improvements
- Enhanced module system - Better dependency management and lazy loading
- Improved error handling - More descriptive error messages and stack traces
- Memory optimization - Reduced memory footprint and better garbage collection
- Plugin architecture - Extensible system for custom functionality
Pydux 2.0 Integration
- Predictable state management - Redux-inspired state container for Python
- Time-travel debugging - Step through state changes for easier debugging
- Middleware support - Extend functionality with custom middleware
- DevTools integration - Visual state inspection and modification
Migration Notes
Breaking Changes
- New component system introduced
- Hot reloading enabled by default
WebEngineBridgereplaces previous JS-Python communication methodsPPGStoredeprecated in favor ofPydux- Updated project structure for better organization
- Updated CLI commands to support new features
- Removed support for Python versions below 3.8
- Updated dependencies to latest stable versions
- Legacy component syntax deprecated
🐛 Bug Fixes & Improvements
Compatibility & Core Fixes
- Added compatibility with PySide6.2+
- Fixed compatibility issues with PySide2 (
exec()vsexec_()) - Fixed issue preventing window maximization in new projects
- Added compatibility with PyInstaller 6.9.0+
- Fixed
QApplicationsingleton destruction issue before new instance creation - Fixed
get_resourcemethod (now works as expected) - Resolved macOS compilation issue with Sparkle
- Added Apple Silicon installer support
CLI & Project Management
- Fixed CLI generator issue when
"views"or"components"folder didn’t exist - Fixed missing
resourcesfolder creation when runningppg init - Fixed missing
src/build/settings/base.jsonbreakingppg initon new projects - Fixed application names not properly converted to CamelCase
- Fixed
build_settingsaccess in compiled apps and source projects - Updated icons
Major New Features: Pydux State Management
- Added Pydux: global state container for components, enabling real-time communication
- CLI-generated components now natively support Pydux
Advanced Pydux Features
- Type-safe state management with full Pydantic integration and dynamic schema validation
- Nested model support with automatic validation
- Partial updates via
update_nested_model()for efficient handling of nested objects - Dot notation access with
get_nested("user.name")for intuitive retrieval - Schema flexibility: evolve from simple dicts to strict Pydantic models
- Production-ready validation with runtime type checking and clear errors
Reactive Widgets
- Introduced Reactive Widgets as part of the new component system
- Components now update automatically when bound state changes
- Integrated with Pydux for seamless two-way state ↔ UI synchronization
Deprecation Notice
PPGStoreis deprecated. Use Pydux instead.- Backward compatibility maintained in 1.1.x, but
PPGStorewill be removed in a future major release.
Installation & Upgrade Instructions
New Installation
pip install ppgUpgrading from Previous Versions
pip install --upgrade ppgWhat's Next?
Our immediate focus will be on stability and fixing issues following the PPG 1.2.0 update. We want to ensure a smooth transition for all developers upgrading their projects.
All upcoming major features and architectural changes will move into the new core project Qyro Engine, which will power PPG 2.0.
This means:
- PPG 1.2.x → Will be focused on compatibility, bug fixes, and incremental improvements.
- PPG 2.0 → Will include all next-generation features, performance improvements, and an all-new architecture.
📚 Resources
🙏 Acknowledgments
Special thanks to our amazing community contributors who made this release possible! Your feedback, bug reports, and feature requests continue to drive PPG forward.
- Kastakin - https://github.com/Kastakin
- chenyulue - https://github.com/chenyulue
- Abhinavreddy-B - https://github.com/Abhinavreddy-B
- cccaballero - https://github.com/cccaballero
- mkodes - https://github.com/mkodes
- johnosbb - https://github.com/johnosbb
Happy coding with PPG 1.2.0! 🎊
Have questions? Found a bug? Open an issue or join our Discussion Forum to connect with other users and the development team.