6.1.1
=====

#9: Fix issue with MongoDBInstance by using
``subprocess.PIPE`` for stdout. Users may read from
this pipe by reading ``instance.process.stdout``.

6.1
===

Now, suppress creation of MongoDBInstance log file in
fixture and MongoDBInstance service.

6.0
===

Removed workarounds module.

5.6
===

Added workarounds module with ``safe_upsert_27707``.

5.5
===

No longer startup MongoDBInstance with
``textSearchEnabled=true``, fixing startup on MongoDB 3.4
and dropping implicit support for text search on MongoDB 2.4.

#7: Oplog tool now supports MongoDB 3.4 for the tested
use cases.

5.4
===

``assert_covered`` now will fail when the candidate cursor
returns no results, as that's almost certainly not an effective
assertion.

5.3
===

Nicer rendering of operations in the oplog tool.

In ``testing`` module, assertions now return the objects
on which they've asserted (for troubleshooting or additional
assertions).

5.2.1
=====

#6: Oplog tool will now include, exclude, and apply namespace
renames on 'renameCollection' commands.

5.2
===

Oplog tool no longer has a default window of 86400 seconds,
but instead requires that a window or valid resume file
be specified. Additionally, there is no longer a default
resume file (avoiding potential issues with multiple
processes writing to the same file).

Oplog tool now accepts a ``--window`` argument, preferred
to the now deprecated ``--seconds`` argument. Window
accepts simple time spans, like "3 days" or "04:20" (four
hours, twenty minutes). See the docs for `pytimeparse
<https://github.com/wroberts/pytimeparse>`_ for specifics
on which formats are supported.

5.1.1
=====

Fix version reporting when invoked with ``-m``.

5.1
===

Oplog tool no longer defaults to ``localhost`` for the dest,
but instead allows the value to be None. When combined with
``--dry-run``, dest is not needed and a connection is only
attempted if ``--dest`` is indicated.

Oplog tool now logs the name and version on startup.

5.0
===

Removed ``oplog.increment_ts`` and ``Timestamp.next`` operation
(no longer needed).

Ensure that ts is a oplog.Timestamp during ``save_ts``.

4.4
===

#3: ``create_db_in_shard`` no longer raises an exception when
the database happens to be created in the target shard.

#5: Better MongoDB 3.2 support for oplog replication.

Tests in continuous integration are now run against MongoDB
2.6, 3.0, and 3.2.

4.3
===

Oplog replay now warns if there are no operations preceding
the cutoff.

4.2.2
=====

#2: Retain key order when loading Oplog events for replay.

4.2.1
=====

Avoid race condition if an operation was being applied
when sync was cancelled.

4.2
===

``oplog`` now reports the failed operation when an oplog
entry fails to apply.

4.1
===

``oplog`` command now accepts multiple indications of the
following arguments::

 - --ns
 - --exclude
 - --rename

See the docstring for the implications of this change.

4.0
===

Drop support for Python 3.2.

3.18.1
======

Add helper module to docs.

3.18
====

Added ``sharding`` module with ``create_db_in_shard``
function and pmxbot command.

3.17
====

Add Trove classifier for Pytest Framework.

3.16
====

Extract migration manager functionality from YouGov's
cases migration.

3.15.2
======

Correct syntax error.

3.15.1
======

Set a small batch size on fs query for move-gridfs to
prevent the cursor timing out while chunks are moved.

3.15
====

Add ``jaraco.mongodb.move-gridfs`` command.

3.14
====

Exposed ``mongod_args`` on ``MongoDBInstance``
and ``MongoDBReplicaSet``.

Allow arbitrary arguments to be included as mongodb
args with pytest plugin. For example::

    py.test --mongod-args=--storageEngine=wiredTiger

3.13
====

Added ``manage`` module with support for purging all databases.
Added ``.purge_all_databases`` to MongoDBInstance.

3.12
====

Minor usability improvements in monitor-index-creation script.

3.11
====

Better error reporting in mongodb_instance fixture.

3.10
====

MongoDBInstance now allows for a ``.soft_stop`` and subsequent ``.start``
to restart the instance against the same data_dir.

3.8
===

``repair-gridfs`` command now saves documents before removing
files.

3.7
===

Add ``helper.connect_gridfs`` function.

Add script for removing corrupt GridFS files:
``jaraco.mongodb.repair-gridfs``.

3.6
===

Add ``helper`` and ``uri`` modules with functions to facilitate common
operations in PyMongo.

3.5
===

Add script for checking GridFS. Invoke with
``python -m jaraco.mongodb.check-gridfs``.

3.4
===

#1: Rename a namespace in index operations.

3.3
===

Add a ``dry-run`` option to suppress application of operations.

3.0
===

Oplog command no longer accepts '-h', '--host', '--to', '--port', '-p',
or '--from', but
instead accepts '--source' and '--dest' options for specifying source
and destination hosts/ports.

2.8
===

Adopt abandoned ``mongooplog_alt`` as ``jaraco.mongodb.oplog``.

2.7
===

Support PyMongo 2.x and 3.x.

2.6
===

Adopted ``service`` module from jaraco.test.services.

2.4
===

Add ``testing.assert_distinct_covered``.

2.3
===

Add ``query.compat_explain``, providing forward compatibility
for MongoDB 3.0 `explain changes
<http://docs.mongodb.org/v3.0/reference/explain-results/>`_.

``testing.assert_covered`` uses compat_explain for MongoDB 3.0
compatibility.

2.2
===

Add query module with ``project`` function.

2.0
===

Removed references to ``jaraco.modb``. Instead, allow the Sessions object to
accept a ``codec`` parameter. Applications that currently depend on the
``use_modb`` functionality must instead use the following in the config::

    "sessions.codec": jaraco.modb

1.0
===

Initial release, introducing ``sessions`` module based on ``yg.mongodb`` 2.9.
