Releases: gmr/rejected
Releases · gmr/rejected
4.0.0a3
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_messageto run codec decode before consumer execution, matching production message flow - Remove redundant
releasetrigger from docs workflow that failed due to github-pages branch policy
4.0.0a2
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
asyncioand pika'sAsyncioConnection - Prometheus metrics exporter — built-in
/metricsHTTP endpoint - All consumer methods are now
async def—process(),prepare(),finish(),initialize(),shutdown(),publish_message() - Avro datum encoding/decoding is now built in, including remote schemas
SmartConsumerandPublishingConsumerremoved — functionality merged intoConsumer- New
FunctionalConsumer— concurrent message processing without a lock, receivesProcessingContext. True async concurrency: process up toBasic.QoSmessages at a time - Module reorganization — new
codecs,config,connection,exceptions,measurement,models,prometheusmodules - Pickle support removed — security hardening (RCE risk)
- TOML configuration support
- Only
import rejectedneeded for consumer apps —rejected.Consumer,rejected.FunctionalConsumer,rejected.ProcessingException,rejected.ProcessingContext, etc. are all top-level exports
Changes since 4.0.0a1
- Renamed
TransactionConsumertoFunctionalConsumer - Renamed
Message.message_typetoMessage.typeto match AMQP - Added
-n/--max-messagesCLI flag for debug mode (closes #31) - Exported
RejectedExceptionandProcessingContextat top level - Updated all docs and examples to use
rejected.Consumerstyle imports - Added
--max-messagesvalidation (rejects zero/negative values) - Updated docs URL to GitHub Pages
- Removed stale Python version badge from README
Full Changelog
4.0.0a1
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 (
mypystrict) - Tornado removed — replaced with
asyncioand pika'sAsyncioConnection - Prometheus metrics exporter — built-in
/metricsHTTP endpoint - All consumer methods are now
async def—process(),prepare(),finish(),initialize(),shutdown(),publish_message() - Avro datum encoding/decoding is now built in, including remote schemas
SmartConsumerandPublishingConsumerremoved — functionality merged intoConsumer- New
FunctionalConsumer— concurrent message processing without a lock, receivesProcessingContext- true async concurrency, process up toBasic.QoSmessages at a time. - Module reorganization — new
codecs,config,connection,exceptions,measurement,models,prometheusmodules - Pickle support removed — security hardening (RCE risk)
- TOML configuration support
Documentation
- Complete documentation rewrite for 4.0
- Migration guide from 3.x
Full Changelog
3.20.1
3.13.0 Bug Fixes
- Construct the proper InfluxDB base URL
- Fix the mixin
__init__signature to support the new kwargs - Remove overly verbose logging
3.13.0
- Add support for InfluxDB
- Deprecates
Consumer.statsd_*methods, replacing them withConsumer.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, anderror_max_retryConsumer settings which were previously only supported via class level attributes.