v0.2.0-M5
Pre-release
Pre-release
v0.2.0-M5 (2026-02-19)
Added
- Auto-configuration audit: 8 new auto-configuration classes bring total to 20, completing Spring Boot-style auto-wiring for all applicable modules
JwtAutoConfiguration— auto-wiresJWTServicewhenpyjwtis installed andpyfly.security.enabled=truePasswordEncoderAutoConfiguration— auto-wiresBcryptPasswordEncoderwhenbcryptis installed andpyfly.security.enabled=trueSchedulingAutoConfiguration— auto-wiresTaskSchedulerwhencroniteris installedMetricsAutoConfiguration— auto-wiresMetricsRegistrywhenprometheus_clientis installedTracingAutoConfiguration— auto-wiresTracerProviderwhenopentelemetryis installedActuatorAutoConfiguration— auto-wiresActuatorRegistryandHealthAggregatorwhenpyfly.web.actuator.enabled=trueMetricsActuatorAutoConfiguration— auto-wiresMetricsEndpointandPrometheusEndpointwhen actuator is enabled andprometheus_clientis installedAopAutoConfiguration— auto-wiresAspectBeanPostProcessorunconditionally (always active)
- Stdlib logging fallback:
StdlibLoggingAdapterprovides zero-dependency logging whenstructlogis not installed - Post-processor deduplication:
ApplicationContext._discover_post_processors()now performs type-level deduplication - Container-managed scheduler:
_wire_scheduled()now prefers a container-managedTaskSchedulerbean from auto-configuration
Changed
- MongoDB guarded imports:
pyfly.data.document.mongodb.__init__wraps all beanie/motor imports intry/except ImportError
Fixed
- Blank admin dashboard under Granian:
WebFilterChainMiddlewarenow handles the ASGIhttp.response.pathsendextension used by Granian for zero-copy file serving. Previously, static file responses (CSS/JS) were silently dropped, resulting in a completely blank admin dashboard page. - Hard import crash:
pyfly.core.applicationno longer crashes withImportErrorwhenstructlogis not installed
Install
pip install "pyfly @ https://github.com/fireflyframework/pyfly/releases/download/v0.2.0-M5/pyfly-0.2.0a5-py3-none-any.whl"