Skip to content

v0.2.0-M5

Pre-release
Pre-release

Choose a tag to compare

@ancongui ancongui released this 19 Feb 08:16
· 908 commits to main since this 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-wires JWTService when pyjwt is installed and pyfly.security.enabled=true
    • PasswordEncoderAutoConfiguration — auto-wires BcryptPasswordEncoder when bcrypt is installed and pyfly.security.enabled=true
    • SchedulingAutoConfiguration — auto-wires TaskScheduler when croniter is installed
    • MetricsAutoConfiguration — auto-wires MetricsRegistry when prometheus_client is installed
    • TracingAutoConfiguration — auto-wires TracerProvider when opentelemetry is installed
    • ActuatorAutoConfiguration — auto-wires ActuatorRegistry and HealthAggregator when pyfly.web.actuator.enabled=true
    • MetricsActuatorAutoConfiguration — auto-wires MetricsEndpoint and PrometheusEndpoint when actuator is enabled and prometheus_client is installed
    • AopAutoConfiguration — auto-wires AspectBeanPostProcessor unconditionally (always active)
  • Stdlib logging fallback: StdlibLoggingAdapter provides zero-dependency logging when structlog is not installed
  • Post-processor deduplication: ApplicationContext._discover_post_processors() now performs type-level deduplication
  • Container-managed scheduler: _wire_scheduled() now prefers a container-managed TaskScheduler bean from auto-configuration

Changed

  • MongoDB guarded imports: pyfly.data.document.mongodb.__init__ wraps all beanie/motor imports in try/except ImportError

Fixed

  • Blank admin dashboard under Granian: WebFilterChainMiddleware now handles the ASGI http.response.pathsend extension 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.application no longer crashes with ImportError when structlog is 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"