Changelog ========= All notable changes to PyPhoenix will be documented in this file. The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_. [Unreleased] ------------ [0.2.0] - 2025-08-13 -------------------- **🎉 Phase 2 Complete: Integration & Core Features** Added ~~~~~ **Phoenix App Integration** * Phoenix app class routes WebSocket connections to registered channels * Channel pattern matching (``room:*`` → RoomChannel) working * WebSocket transport integrated with Phoenix application * Complete routing from WebSocket → Phoenix → Channels **End-to-End Functionality** * Working client-server examples with real communication * Complete channel join/leave flows between client and server * Message broadcasting working across multiple connections **Core Feature Implementation** * PubSub integration with channel broadcasting (``channel.broadcast()``) * Presence tracking methods (``track_presence()``, ``list_presence()``, ``broadcast_from()``) * Comprehensive test suite with **71 passing tests** **Developer Experience** * Working examples: ``target_chat_server.py`` and ``target_chat_client.py`` * Phoenix-style decorator API (``@app.channel("room:*")``) * Robust error handling and socket cleanup Fixed ~~~~~ **Socket & Channel Cleanup** * Resolved double-leave issues and WebSocket close errors * Fixed socket state management to prevent sending on closed sockets * Added proper cleanup coordination between Socket and Channel **Client Compatibility** * Fixed join response handling and decorator patterns * Updated client join response format expectations * Corrected response format in ``_handle_reply()`` **Missing Implementation** * Implemented ``track_presence()``, ``list_presence()``, ``broadcast_from()`` methods * Added comprehensive presence method tests * Fixed websocket library compatibility with modern websockets.asyncio API [0.1.0] - 2025-08-13 -------------------- Added ~~~~~ **Core Features** * Channel system with Phoenix-compatible wire format * WebSocket transport with heartbeat and reconnection * PubSub messaging with pattern matching (``room:*`` wildcards) * Presence tracking with distributed state management * Phoenix application class for channel registration and routing **Phase 1+ Enhancements** * Middleware framework with logging, authentication, and rate limiting * Configuration system with environment variable support * Metrics collection with counters, gauges, and histograms * Message serialization support (JSON, MessagePack, Pickle) * Client-side Socket and Channel implementations * Message queue with delivery guarantees * Comprehensive exception handling * Background task management **Developer Experience** * Comprehensive documentation with Sphinx * API reference with detailed examples * User guides and deployment documentation * Example applications (basic and advanced servers) * Full test coverage with pytest * Code formatting with ruff (100-character line length) **Architecture** * AsyncIO-based concurrency model * Extensible middleware architecture * Hierarchical configuration system * Structured logging with contextual information * Automatic presence cleanup and connection management * Phoenix wire format: ``[join_ref, ref, topic, event, payload]`` Initial Features ~~~~~~~~~~~~~~~~ * **Channel Operations**: join, leave, push, broadcast with middleware processing * **Event System**: Event-based message routing with custom handler support * **Topic Patterns**: Flexible topic matching with wildcard support * **Transport Layer**: WebSocket communication with connection lifecycle management * **State Management**: Proper channel state transitions and error handling * **Integration**: Built-in PubSub and Presence system integration Dependencies ~~~~~~~~~~~~ * Python 3.13+ support * websockets for WebSocket transport * structlog for structured logging * aiohttp for HTTP server capabilities * pytest and pytest-asyncio for testing * ruff for code formatting and linting Documentation ~~~~~~~~~~~~~ * Complete API reference documentation * Quickstart guide and user manual * Deployment guide with Docker/Kubernetes examples * Examples and integration patterns * Performance and security best practices