diff --git a/Makefile b/Makefile index bbf6d2d0..548b006d 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ env: rm -fr env mkdir -p .download_cache $(VIRTUALENV) --no-site-packages env - env/bin/pip install --download-cache=.download_cache/ -r requirements.txt + env/bin/pip install --download-cache=.download_cache/ -r requirements-dev.txt echo "\n\n>> Run 'source env/bin/activate'" docs: diff --git a/README.rst b/README.rst index a0aca2e5..0df7ebb8 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,22 @@ -MongoDB driver for Python Twisted -================================= +TxMongo +======= +.. image:: https://travis-ci.org/twisted/txmongo.png?branch=master + :target: https://travis-ci.org/twisted/txmongo -txmongo is a Python/Twisted driver for MongoDB that implements the wire -protocol on non-blocking sockets. The API derives from the original pymongo. +.. image:: https://coveralls.io/repos/twisted/txmongo/badge.svg?branch=master + :target: https://coveralls.io/r/twisted/txmongo?branch=master + +.. image:: https://badge.fury.io/py/txmongo.png + :target: https://pypi.python.org/pypi/txmongo + + + +TxMongo is an asynchronous Python/Twisted driver for MongoDB that implements the wire +protocol on non-blocking sockets. The API derives from the original PyMongo. + +Compatibility +------------- +Python 2.6, 2.7 and PyPy. Installing ---------- @@ -16,7 +30,7 @@ sudo python setup.py install Docs and examples ----------------- -Generate them with `make docs`. You will need `epydoc` installed. +Generate them with `make docs`. You will need `sphinx` installed. There are some examples in the *examples/* directory. Hacking @@ -25,6 +39,8 @@ Hacking Run `make env` to create clean hacking environment with `virtualenv`. Run `make` to torture your code with tests and code style tools. +Take a look in Makefile for commonly used commands and tools we use to develop. + Packages -------- diff --git a/docs/source/NEWS.rst b/docs/source/NEWS.rst index 9221752b..1653f036 100644 --- a/docs/source/NEWS.rst +++ b/docs/source/NEWS.rst @@ -1,6 +1,47 @@ Changelog ========= +Release 15.1 (UNRELEASED) +------------------------- + +This is a major release in that while increasing code coverage to 91% +( see https://coveralls.io/builds/2650466 ), we've also caught several +bugs, added features and changed functionality to be more inline with PyMongo. + +This is no small thanks to travis-ci and coveralls while using tox to cover all iterations +that we support. + +We can officially say that we are Python 2.6, 2.7 and PyPy compatible. + +API Changes +^^^^^^^^^^^ + +- Better handling of replica-sets, we now raise an ``autoreconnect`` when master is unreachable. +- Changed the behaviour of ``find`` and ``find_one`` to return ``None`` instead of an empty + dict ``{}`` when no result is found. + +Features +^^^^^^^^ + +- Added ``db.command`` function, just like PyMongo. +- Added support for named indexes in ``filter``. +- Replaced all traditional deferred callbacks (and errbacks) to use @defer.inlineCallbacks + +Bugfixes +^^^^^^^^ + +- Fixed typo in ``map_reduce()`` when returning results. +- Fixed hang in ``create_collection()`` in case of error. +- Fixed typo in ``rename()`` that wasn't using the write factory. +- Fixed exception in ``drop_index`` that was being thrown when dropping a non-existent collection. +This makes the function idempotent. +- Fixed URI prefixing when "mongodb://" is not present in URI string in ``connection``. +- Fixed fail-over when using replica-sets in ``connection``. It now raises ``autoreconnect`` when + there is a problem with the existing master. It is then up to the client code to reconnect to the + new master. +- Fixed number of cursors in protocol so that it works with py2.6, py2.6 and pypy. + + Release 15.0 (2015-05-04) -------------------------