All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Standard Noteable open source patterns
- Contributing / Code of Conduct files
- Issue templates
- CI/CD files and noxfile syntax
WebsocketManager
Backend- New extra install
-E websockets
, additionally a convenience-E all
option context_hook
in Base Manager that can be used to bind structlog contextvars for all workers (inbound, outbound, poll)connect_hook
anddisconnect_hook
for Websocket managercallback_hook
that takes inQueuedMessage
andCallback
, useful for adding things like topic to contextvars for callback functions
- Use
managed_service_fixtures
for Redis tests WebsocketManager
backend uses vanillalogging
instead ofstructlog
, remove need forstructlog
dependency oncemanaged-service-fixtures
also drops itJupyterBackend
introduce a short sleep in its poll loop while investigating 100% CPU usageJupyterBackend
zmq polling changed fairly significantly to avoid missing messages while reconnecting socket after a max message size disconnect- Try to include tracebacks during exception logs for inbound / outbound / process workers
- Debug logs now contain the qualified name of callbacks
- System events are now opt-in only for callbacks through the
on_system_event
kwarg
- Callback decorator supports system events
- New backend for Jupyter kernels
- Shorthand for callback predicates on message topic
- Shorthand for callback predicates on system events
- Added the ability to publish system events to callbacks that opt-in to it
- Created a separate method to get a DetachedPubSubSession
- Callbacks are concurrently delegated to all at once, instead of in batches
- Dependency on
prometheus-client
- Set up nox
- The ability to create isolated pubsub sessions that do not receive manager-level subscription messages
- Pubsub sessions no longer receive messages subscribed to in other sessions
- Initial project scaffolding