Release Notes

1.7.2 (2019-08-02)

Bug Fixes

  • Fix variable substitution in log messages. (PR#200)
  • Add MANIFEST.in and include tests for sample schema package. (PR#197)

Documentation Improvements

  • Document the sent-at header in messages. (PR#199)
  • Create a quick-start guide. (PR#196)

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Adam Williamson
  • Aurélien Bompard
  • Jeremy Cline
  • Shraddha Agrawal

v1.7.1 (2019-06-24)

Bug Fixes

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Randy Barlow
  • Aurélien Bompard
  • Jeremy Cline
  • Adam Williamson

Documentation Improvements

  • Document some additional app properties and add a note about setting up logging in the fedora.toml and stg.fedora.toml configuration files (PR#188)
  • Document how to setup logging in the consuming snippets so any problems are logged to stdout (PR#192)
  • Document that logging is only set up for consumers (#181)
  • Document the fedora_messaging.config.conf and fedora_messaging.config.DEFAULTS variables in the API documentation (#182)

v1.7.0 (2019-05-21)

Features

  • “fedora-messaging consume” now accepts a “–callback-file” argument which will load a callback function from an arbitrary Python file. Previously, it was required that the callback be in the Python path (#159).

Bug Fixes

  • Fix a bug where publishes that failed due to certain connection errors were not retried (#175).
  • Fix a bug where AMQP protocol errors did not reset the connection used for publishing messages. This would result in publishes always failing with a ConnectionError (#178).

Documentation Improvements

  • Document the body attribute on the Message class (#164).
  • Clearly document what properties message schema classes should override (#166).
  • Re-organize the consumer documentation to make the consuming API clearer (#168).

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Randy Barlow
  • Aurélien Bompard
  • Jeremy Cline
  • Dusty Mabe

v1.6.1 (2019-04-17)

Bug Fixes

Development Changes

  • Stop pinning pytest to 4.0 or less as the incompatibility with pytest-twisted has been resolved (PR#158).

Other Changes

  • Include commands to connect to the Fedora broker in the documentation (PR#154).

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline

v1.6.0 (2019-04-04)

Dependency Changes

  • Twisted is no longer an optional dependency: fedora-messaging requires Twisted 12.2 or greater.

Features

  • A new API, fedora_messaging.api.twisted_consume(), has been added to support consuming using the popular async framework Twisted. The fedora-messaging command-line interface has been switched to use this API. As a result, Twisted 12.2+ is now a dependency of fedora-messsaging. Users of this new API are not affected by Issue #130 (PR#139).

Bug Fixes

  • Only prepend the topic_prefix on outgoing messages. Previously, the topic prefix was incorrectly applied to incoming messages (#143).

Documentation

  • Add a note to the tutorial on how to instal the library and RabbitMQ in containers (PR#141).
  • Document how to access the Fedora message broker from outside the Fedora infrastructure VPN. Users of fedmsg can now migrate to fedora-messaging for consumers outside Fedora’s infrastructure. Consult the new documentation at Fedora’s Public Broker for details (PR#149).

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline
  • Shraddha Agrawal

v1.5.0 (2019-02-28)

Dependency Changes

  • Replace the dependency on pytoml with toml (#132).

Features

  • Support passive declarations for locked-down brokers (#136).

Bug Fixes

  • Fix a bug in the sample schema pachage (#135).

Development Changes

  • Switch to Mergify v2 (#129).

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline
  • Michal Konečný
  • Shraddha Agrawal

v1.4.0 (2019-02-07)

Features

  • The topic_prefix configuration value has been added to automatically add a prefix to the topic of all outgoing messages. (#121)
  • Support for Pika 0.13. (#126)
  • Add a systemd service file for consumers.

Development Changes

  • Use Bandit for security checking.

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard

v1.3.0 (2019-01-24)

API Changes

  • The Message._body attribute is renamed to body, and is now part of the public API. (PR#119)

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline

v1.2.0 (2019-01-21)

Features

  • The fedora_messaging.api.consume() API now accepts a “queues” keyword which specifies the queues to declare and consume from, and the “fedora-messaging” CLI makes use of this (PR#107)
  • Utilities were added in the schema_utils module to help write the Python API of your message schemas (PR#108)
  • No long require “–exchange”, “–queue-name”, and “–routing-key” to all be specified when using “fedora-messaging consume”. If one is not supplied, a default is chosen. These defaults are documented in the command’s manual page (PR#117)

Bug Fixes

  • Fix the “consumer” setting in config.toml.example to point to a real Python path (PR#104)
  • fedora-messaging consume now actually uses the –queue-name and –routing-key parameter provided to it, and –routing-key can now be specified multiple times as was documented (PR#105)
  • Fix the equality check on fedora_messaging.message.Message objects to exclude the ‘sent-at’ header (PR#109)
  • Documentation for consumers indicated any callable object was acceptable to use as a callback as long as it accepted a single positional argument (the message). However, the implementation required that the callable be a function or a class, which it then instantiated. This has been fixed and you may now use any callable object, such as a method or an instance of a class that implements __call__ (PR#110)
  • Fix an issue where the fedora-messaging CLI would only log if a configuration file was explicitly supplied (PR#113)

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline
  • Sebastian Wojciechowski
  • Tomas Tomecek

v1.1.0 (2018-11-13)

Features

  • Initial work on a serialization format for fedora_messaging.message.Message and APIs for loading and storing messages. This is intended to make it easy to record and replay messages for testing purposes. (#84)
  • Add a module, fedora_messaging.testing, to add useful test helpers. Check out the module documentation for details! (#100)

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Jeremy Cline
  • Sebastian Wojciechowski

v1.0.1 (2018-10-10)

Bug Fixes

  • Fix a compatibility issue in Twisted between pika 0.12 and 1.0. (#97)

v1.0.0 (2018-10-10)

API Changes

  • The unused exchange parameter from the PublisherSession was removed (PR#56)
  • The setupRead API in the Twisted protocol has been removed and replaced with consume and cancel APIs which allow for multiple consumers with multiple callbacks (PR#72)
  • The name of the entry point is now used to identify the message type (PR#89)

Features

  • Ensure proper TLS client cert checking with service_identity (PR#51)
  • Support Python 3.7 (PR#53)
  • Compatibility with Click 7.x (PR#86)
  • The complete set of valid severity levels is now available at fedora_messaging.api.SEVERITIES (PR#60)
  • A queue attribute is present on received messages with the name of the queue it arrived on (PR#65)
  • The wire format of fedora-messaging is now documented (PR#88)

Development Changes

  • Use towncrier to generate the release notes (PR#67)
  • Check that our dependencies have Free licenses (PR#68)
  • Test coverage is now at 97%.

Other Changes

  • The library is available in Fedora as fedora-messaging.

Contributors

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Jeremy Cline
  • Michal Konečný
  • Sebastian Wojciechowski

v1.0.0b1

API Changes

Features

  • Configuration parsing failures now produce point to the line and column of the parsing error (#21).
  • fedora_messaging.message.Message now come with a set of standard accessors (#32).
  • Consumers can now specify whether a message should be re-queued when halting (#44).
  • An example consumer that prints to standard output now ships with fedora-messaging. It can be used by running fedora-messaging consume --callback="fedora_messaging.example:printer" (#40).
  • fedora_messaging.message.Message now have a severity associated with them (#48).

Bug Fixes

Development Features

  • The fedora-messaging code base is now compliant with the Black Python formatter and this is enforced with continuous integration.
  • Test coverage is moving up and to the right.

Many thanks to the contributors of bug reports, pull requests, and pull request reviews for this release:

  • Aurélien Bompard
  • Clement Verna
  • Ken Dreyer
  • Jeremy Cline
  • Miroslav Suchý
  • Patrick Uiterwijk
  • Sebastian Wojciechowski

v1.0.0a1

The initial alpha release for fedora-messaging v1.0.0. The API is not expected to change significantly between this release and the final v1.0.0 release, but it may do so if serious flaws are discovered in it.