<div>
            <div>
                <span>
                    <div>I am pleased to announce that Pika v0.9.5 is now available for download. Pika AMQP 0-9-1/RabbitMQ 2.0+ client library for Python.</div><div><br></div><div>Pika v0.9.5 adds over 100 additional unit and functional tests covering Python 2.4 through Python 2.7 and addresses major bugs found in v0.9.4. &nbsp;</div><div><br></div><div>All users of the 0.9 tree of Pika are highly encouraged to upgrade to v0.9.5.</div><div><br></div><div>Pika's home has moved to https://github.com/pika and documentation is now available at http://pika.github.com.</div><div><br></div><div>Thanks to Brian K. Jones, Jason J. W. Williams, Marek Majkowski, Peter Magnusson and Samuel Stauffer for bug-fixes, suggestions and contributions to this release.</div><div><br></div><div>Pika v0.9.5 is mainly a bug fix version and is intended to be the last version in the 0.9 tree, however please report any issues at https://github.com/pika/pika/issues</div><div><br></div><div>Pika may be installed via source from&nbsp;http://pypi.python.org/packages/source/p/pika/pika-0.9.5.tar.gz&nbsp;(md5: 38527f6977bf0a0b204710b93b0c6417)</div><div><br></div><div>It is also available for installation via easy_install and pip:</div><div><br></div><div>&nbsp;&nbsp; &nbsp; pip install pika / easy_install pika</div><div><br></div><div><u>Changelog</u></div><div>- Scope changes with adapter IOLoops and CallbackManager allowing for cleaner, multi-threaded operation</div><div>- Add support for Confirm.Select with channel.Channel.confirm_delivery()</div><div>- Add examples of delivery confirmation to examples (demo_send_confirmed.py)</div><div>- Update uses of log.warn with warning.warn for TCP Back-pressure alerting</div><div>- License boilerplate updated to simplify license text in source files</div><div>- Increment the timeout in select_connection.SelectPoller reducing CPU utilization</div><div>- Bug fix in Heartbeat frame delivery addressing issue #35</div><div>- Remove abuse of pika.log.method_call through a majority of the code</div><div>- Rename of key modules: table to data, frames to frame</div><div>- Cleanup of frame module and related classes</div><div>- Restructure of tests and test runner</div><div>- Update functional tests to respect RABBITMQ_HOST, RABBITMQ_PORT environment variables</div><div>- Bug fixes to reconnection_strategies module</div><div>- Fix the scale of timeout for PollPoller to be specified in milliseconds</div><div>- Remove mutable default arguments in RPC calls</div><div>- Add data type validation to RPC calls</div><div>- Move optional credentials erasing out of connection.Connection into credentials module</div><div>- Add support to allow for additional external credential types</div><div>- Add a NullHandler to prevent the 'No handlers could be found for logger "pika"' error message when not using pika.log in a client app at all.</div><div>- Clean up all examples to make them easier to read and use</div><div>- Move documentation into its own repository https://github.com/pika/documentation</div><div>- channel.py:</div><div>&nbsp;&nbsp;- Move channel.MAX_CHANNELS constant from connection.CHANNEL_MAX</div><div>&nbsp;&nbsp;- Add default value of None to ChannelTransport.rpc</div><div>&nbsp;&nbsp;- Validate callback and acceptable replies parameters in ChannelTransport.RPC</div><div>&nbsp;&nbsp;- Remove unused connection attribute from Channel</div><div>- connection.py:</div><div>&nbsp;&nbsp;- Remove unused import of struct</div><div>&nbsp;&nbsp;- Remove direct import of pika.credentials.PlainCredentials</div><div>&nbsp;&nbsp; &nbsp;- Change to import pika.credentials</div><div>&nbsp;&nbsp;- Move CHANNEL_MAX to channel.MAX_CHANNELS</div><div>&nbsp;&nbsp;- Change ConnectionParameters initialization parameter heartbeat to boolean</div><div>&nbsp;&nbsp;- Validate all inbound parameter types in ConnectionParameters</div><div>&nbsp;&nbsp;- Remove the Connection._erase_credentials stub method in favor of letting the Credentials object deal with &nbsp;that itself.</div><div>&nbsp;&nbsp;- Warn if the credentials object intends on erasing the credentials and a reconnection strategy other than NullReconnectionStrategy is specified.</div><div>&nbsp;&nbsp;- Change the default types for callback and acceptable_replies in Connection._rpc</div><div>&nbsp;&nbsp;- Validate the callback and acceptable_replies data types in Connection._rpc</div><div>- adapters.blocking_connection.BlockingConnection:</div><div>&nbsp;&nbsp;- Addition of _adapter_disconnect to blocking_connection.BlockingConnection</div><div>&nbsp;&nbsp;- Add timeout methods to BlockingConnection addressing issue #41</div><div>&nbsp;&nbsp;- BlockingConnection didn't allow you register more than one consumer callback because basic_consume was overridden to block immediately. New behavior allows you to do so.</div><div>&nbsp;&nbsp;- Removed overriding of base basic_consume and basic_cancel methods. Now uses underlying Channel versions of those methods.</div><div>&nbsp;&nbsp;- Added start_consuming() method to BlockingChannel to start the consumption loop.</div><div>&nbsp;&nbsp;- Updated stop_consuming() to iterate through all the registered consumers in self._consumers and issue a basic_cancel.</div>
                </span>
                <span></span>
            </div>
        </div>