v1.0.0, 14 Jan 2022
    Propagate exceptions raised by the user's packet callback
    Avoid calls to the packet callback during queue unbinding
    Raise an error if a packet verdict is set after its parent queue is closed
    set_payload() now affects the result of later get_payload()
    Handle signals received when run() is blocked in recv()
    Accept packets in COPY_META mode, only failing on an attempt to access the payload
    Add a parameter NetfilterQueue(sockfd=N) that uses an already-opened Netlink socket
    Add type hints
    Remove the Packet.payload attribute; it was never safe (treated as a char* but not NUL-terminated) nor documented, but was exposed in the API (perhaps inadvertently).

v0.9.0, 12 Jan 2022
    Improve usability when Packet objects are retained past the callback
    Add Packet.retain() to save the packet contents in such cases
    Eliminate warnings during build on py3
    Add CI and basic test suite
    Raise a warning, not an error, if we don't get the bufsize we want
    Don't allow bind() more than once on the same NetfilterQueue, since that would leak the old queue handle
 ** This will be the last version with support for Python 2.7. **

v0.8.1, 30 Jan 2017
    Fix bug #25- crashing when used in OUTPUT or POSTROUTING chains

v0.8, 15 Dec 2016
    Add get_hw()
    Fix byte order bug in set_mark

v0.7, 28 June 2016
    Add Python 3 compatibility.
    Add sock_len argument to bind()
    Add block argument to run()
    Add run_socket()
    Fix COPY* constants
    Don't crash on double unlink()

v0.6, 15 Apr 2013
    Add get_mark.

v0.5, 3 Apr 2013
    Add repeat.

v0.4, 24 Dec 2012
    Add set_payload.

v0.2, 13 May 2011
    Rename NetfilterQueue to QueueHandler.
    Add API section to README.rst.

v0.1, 12 May 2011
    Initial release.