Skip to content

Releases: gmr/rejected

4.0.0a3

04 Apr 22:17
@gmr gmr
0da5221

Choose a tag to compare

4.0.0a3 Pre-release
Pre-release

Changes since 4.0.0a2

  • Add missing configuration sections to the 3.x → 4.0 migration guide (connection SSL/frame_max/socket_timeout, influxdb_measurement removal, debug_only removal, --max-messages CLI flag, SIGHUP reload)
  • Fix AsyncTestCase.process_message to run codec decode before consumer execution, matching production message flow
  • Remove redundant release trigger from docs workflow that failed due to github-pages branch policy

4.0.0a2

03 Apr 21:20
@gmr gmr
34ffe5e

Choose a tag to compare

4.0.0a2 Pre-release
Pre-release

4.0.0a2

This is a pre-release. pip install rejected will still install 3.23.1.
Install with pip install rejected==4.0.0a2 or pip install rejected --pre.

Major Changes

  • Python 3.11+ with full typing (mypy --strict)
  • Tornado removed — replaced with asyncio and pika's AsyncioConnection
  • Prometheus metrics exporter — built-in /metrics HTTP endpoint
  • All consumer methods are now async defprocess(), prepare(), finish(), initialize(), shutdown(), publish_message()
  • Avro datum encoding/decoding is now built in, including remote schemas
  • SmartConsumer and PublishingConsumer removed — functionality merged into Consumer
  • New FunctionalConsumer — concurrent message processing without a lock, receives ProcessingContext. True async concurrency: process up to Basic.QoS messages at a time
  • Module reorganization — new codecs, config, connection, exceptions, measurement, models, prometheus modules
  • Pickle support removed — security hardening (RCE risk)
  • TOML configuration support
  • Only import rejected needed for consumer apps — rejected.Consumer, rejected.FunctionalConsumer, rejected.ProcessingException, rejected.ProcessingContext, etc. are all top-level exports

Changes since 4.0.0a1

  • Renamed TransactionConsumer to FunctionalConsumer
  • Renamed Message.message_type to Message.type to match AMQP
  • Added -n / --max-messages CLI flag for debug mode (closes #31)
  • Exported RejectedException and ProcessingContext at top level
  • Updated all docs and examples to use rejected.Consumer style imports
  • Added --max-messages validation (rejects zero/negative values)
  • Updated docs URL to GitHub Pages
  • Removed stale Python version badge from README

Full Changelog

4.0.0a1...4.0.0a2

4.0.0a1

03 Apr 19:57
@gmr gmr
c69633e

Choose a tag to compare

4.0.0a1 Pre-release
Pre-release

4.0.0a1 — Alpha Release

This is the first alpha release of rejected 4.0. It is a pre-release and will not be installed by pip install rejected unless explicitly requested with pip install rejected==4.0.0a1 or pip install rejected --pre.

Major Changes

  • Python 3.11+ with full typing (mypy strict)
  • Tornado removed — replaced with asyncio and pika's AsyncioConnection
  • Prometheus metrics exporter — built-in /metrics HTTP endpoint
  • All consumer methods are now async defprocess(), prepare(), finish(), initialize(), shutdown(), publish_message()
  • Avro datum encoding/decoding is now built in, including remote schemas
  • SmartConsumer and PublishingConsumer removed — functionality merged into Consumer
  • New FunctionalConsumer — concurrent message processing without a lock, receives ProcessingContext - true async concurrency, process up to Basic.QoS messages at a time.
  • Module reorganization — new codecs, config, connection, exceptions, measurement, models, prometheus modules
  • Pickle support removed — security hardening (RCE risk)
  • TOML configuration support

Documentation

Full Changelog

3.23.1...4.0.0a1

3.20.1

28 Mar 19:08
@gmr gmr

Choose a tag to compare

asycio.Future does not have .exc_info()

3.13.0 Bug Fixes

05 Oct 18:33
@gmr gmr

Choose a tag to compare

  • Construct the proper InfluxDB base URL
  • Fix the mixin __init__ signature to support the new kwargs
  • Remove overly verbose logging

3.13.0

05 Oct 18:05
@gmr gmr

Choose a tag to compare

  • Add support for InfluxDB
  • Deprecates Consumer.statsd_*methods, replacing them with Consumer.stats_* methods
  • Alters stats related configuration format while retaining backward compatibility
  • Fixes data encoding issues (#11, #13)
  • Adds per-consumer Sentry DSN support
  • Adds configurable support for drop_invalid_messages, message_type, error_exchange, and error_max_retry Consumer settings which were previously only supported via class level attributes.