Commit graph

8 commits

Author SHA1 Message Date
adam
0aa5815adb py-mongo: updated to 3.10.1
Changes in Version 3.10.1
-------------------------

Version 3.10.1 fixes the following issues discovered since the release of
3.10.0:

- Fix a TypeError logged to stderr that could be triggered during server
  maintenance or during :meth:`pymongo.mongo_client.MongoClient.close`.
- Avoid creating new connections during
  :meth:`pymongo.mongo_client.MongoClient.close`.

Issues Resolved
...............

See the `PyMongo 3.10.1 release notes in JIRA`_ for the list of resolved issues
in this release.

.. _PyMongo 3.10.1 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=25039

Changes in Version 3.10.0
-------------------------

Version 3.10 includes a number of improvements and bug fixes. Highlights
include:

- Support for Client-Side Field Level Encryption with MongoDB 4.2. See
  :doc:`examples/encryption` for examples.
- Support for Python 3.8.
- Added :attr:`pymongo.client_session.ClientSession.in_transaction`.
- Do not hold the Topology lock while creating connections in a MongoClient's
  background thread. This change fixes a bug where application operations would
  block while the background thread ensures that all server pools have
  minPoolSize connections.
- Fix a UnicodeDecodeError bug when coercing a PyMongoError with a non-ascii
  error message to unicode on Python 2.
- Fix an edge case bug where PyMongo could exceed the server's
  maxMessageSizeBytes when generating a compressed bulk write command.

Issues Resolved
...............

See the `PyMongo 3.10 release notes in JIRA`_ for the list of resolved issues
in this release.

.. _PyMongo 3.10 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=23944

Changes in Version 3.9.0
------------------------

Version 3.9 adds support for MongoDB 4.2. Highlights include:

- Support for MongoDB 4.2 sharded transactions. Sharded transactions have
  the same API as replica set transactions. See :ref:`transactions-ref`.
- New method :meth:`pymongo.client_session.ClientSession.with_transaction` to
  support conveniently running a transaction in a session with automatic
  retries and at-most-once semantics.
- Initial support for client side field level encryption. See the docstring for
  :class:`~pymongo.mongo_client.MongoClient`,
  :class:`~pymongo.encryption_options.AutoEncryptionOpts`,
  and :mod:`~pymongo.encryption` for details. **Note: Support for client side
  encryption is in beta. Backwards-breaking changes may be made before the
  final release.**
- Added the ``max_commit_time_ms`` parameter to
  :meth:`~pymongo.client_session.ClientSession.start_transaction`.
- Implement the `URI options specification`_ in the
  :meth:`~pymongo.mongo_client.MongoClient` constructor. Consequently, there are
  a number of changes in connection options:

    - The ``tlsInsecure`` option has been added.
    - The ``tls`` option has been added. The older ``ssl`` option has been retained
      as an alias to the new ``tls`` option.
    - ``wTimeout`` has been deprecated in favor of ``wTimeoutMS``.
    - ``wTimeoutMS`` now overrides ``wTimeout`` if the user provides both.
    - ``j`` has been deprecated in favor of ``journal``.
    - ``journal`` now overrides ``j`` if the user provides both.
    - ``ssl_cert_reqs`` has been deprecated in favor of ``tlsAllowInvalidCertificates``.
      Instead of ``ssl.CERT_NONE``, ``ssl.CERT_OPTIONAL`` and ``ssl.CERT_REQUIRED``, the
      new option expects a boolean value - ``True`` is equivalent to ``ssl.CERT_NONE``,
      while ``False`` is equivalent to ``ssl.CERT_REQUIRED``.
    - ``ssl_match_hostname`` has been deprecated in favor of ``tlsAllowInvalidHostnames``.
    - ``ssl_ca_certs`` has been deprecated in favor of ``tlsCAFile``.
    - ``ssl_certfile`` has been deprecated in favor of ``tlsCertificateKeyFile``.
    - ``ssl_pem_passphrase`` has been deprecated in favor of ``tlsCertificateKeyFilePassword``.
    - ``waitQueueMultiple`` has been deprecated without replacement. This option
      was a poor solution for putting an upper bound on queuing since it didn't
      affect queuing in other parts of the driver.
- The ``retryWrites`` URI option now defaults to ``True``. Supported write
  operations that fail with a retryable error will automatically be retried one
  time, with at-most-once semantics.
- Support for retryable reads and the ``retryReads`` URI option which is
  enabled by default. See the :class:`~pymongo.mongo_client.MongoClient`
  documentation for details. Now that supported operations are retried
  automatically and transparently, users should consider adjusting any custom
  retry logic to prevent an application from inadvertently retrying for too
  long.
- Support zstandard for wire protocol compression.
- Support for periodically polling DNS SRV records to update the mongos proxy
  list without having to change client configuration.
- New method :meth:`pymongo.database.Database.aggregate` to support running
  database level aggregations.
- Support for publishing Connection Monitoring and Pooling events via the new
  :class:`~pymongo.monitoring.ConnectionPoolListener` class. See
  :mod:`~pymongo.monitoring` for an example.
- :meth:`pymongo.collection.Collection.aggregate` and
  :meth:`pymongo.database.Database.aggregate` now support the ``$merge`` pipeline
  stage and use read preference
  :attr:`~pymongo.read_preferences.ReadPreference.PRIMARY` if the ``$out`` or
  ``$merge`` pipeline stages are used.
- Support for specifying a pipeline or document in
  :meth:`~pymongo.collection.Collection.update_one`,
  :meth:`~pymongo.collection.Collection.update_many`,
  :meth:`~pymongo.collection.Collection.find_one_and_update`,
  :meth:`~pymongo.operations.UpdateOne`, and
  :meth:`~pymongo.operations.UpdateMany`.
- New BSON utility functions :func:`~bson.encode` and :func:`~bson.decode`
- :class:`~bson.binary.Binary` now supports any bytes-like type that implements
  the buffer protocol.
- Resume tokens can now be accessed from a ``ChangeStream`` cursor using the
  :attr:`~pymongo.change_stream.ChangeStream.resume_token` attribute.
- Connections now survive primary step-down when using MongoDB 4.2+.
  Applications should expect less socket connection turnover during
  replica set elections.

Unavoidable breaking changes:

- Applications that use MongoDB with the MMAPv1 storage engine must now
  explicitly disable retryable writes via the connection string
  (e.g. ``MongoClient("mongodb://my.mongodb.cluster/db?retryWrites=false")``) or
  the :class:`~pymongo.mongo_client.MongoClient` constructor's keyword argument
  (e.g. ``MongoClient("mongodb://my.mongodb.cluster/db", retryWrites=False)``)
  to avoid running into :class:`~pymongo.errors.OperationFailure` exceptions
  during write operations. The MMAPv1 storage engine is deprecated and does
  not support retryable writes which are now turned on by default.
- In order to ensure that the ``connectTimeoutMS`` URI option is honored when
  connecting to clusters with a ``mongodb+srv://`` connection string, the
  minimum required version of the optional ``dnspython`` dependency has been
  bumped to 1.16.0. This is a breaking change for applications that use
  PyMongo's SRV support with a version of ``dnspython`` older than 1.16.0.

.. _URI options specification: https://github.com/mongodb/specifications/blob/master/source/uri-options/uri-options.rst


Issues Resolved
...............

See the `PyMongo 3.9 release notes in JIRA`_ for the list of resolved issues
in this release.

.. _PyMongo 3.9 release notes in JIRA: https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004&version=21787

Changes in Version 3.8.0
------------------------

.. warning:: PyMongo no longer supports Python 2.6. RHEL 6 users should install
  Python 2.7 or newer from `Red Hat Software Collections
  <https://www.softwarecollections.org>`_. CentOS 6 users should install Python
  2.7 or newer from `SCL
  <https://wiki.centos.org/AdditionalResources/Repositories/SCL>`_

.. warning:: PyMongo no longer supports PyPy3 versions older than 3.5. Users
  must upgrade to PyPy3.5+.

- :class:`~bson.objectid.ObjectId` now implements the `ObjectID specification
  version 0.2 <https://github.com/mongodb/specifications/blob/master/source/objectid.rst>`_.
- For better performance and to better follow the GridFS spec,
  :class:`~gridfs.grid_file.GridOut` now uses a single cursor to read all the
  chunks in the file. Previously, each chunk in the file was queried
  individually using :meth:`~pymongo.collection.Collection.find_one`.
- :meth:`gridfs.grid_file.GridOut.read` now only checks for extra chunks after
  reading the entire file. Previously, this method would check for extra
  chunks on every call.
- :meth:`~pymongo.database.Database.current_op` now always uses the
  ``Database``'s  :attr:`~pymongo.database.Database.codec_options`
  when decoding the command response. Previously the codec_options
  was only used when the MongoDB server version was <= 3.0.
- Undeprecated :meth:`~pymongo.mongo_client.MongoClient.get_default_database`
  and added the ``default`` parameter.
- TLS Renegotiation is now disabled when possible.
- Custom types can now be directly encoded to, and decoded from MongoDB using
  the :class:`~bson.codec_options.TypeCodec` and
  :class:`~bson.codec_options.TypeRegistry` APIs. For more information, see
  the :doc:`custom type example <examples/custom_type>`.
- Attempting a multi-document transaction on a sharded cluster now raises a
  :exc:`~pymongo.errors.ConfigurationError`.
- :meth:`pymongo.cursor.Cursor.distinct` and
  :meth:`pymongo.cursor.Cursor.count` now send the Cursor's
  :meth:`~pymongo.cursor.Cursor.comment` as the "comment" top-level
  command option instead of "$comment". Also, note that "comment" must be a
  string.
- Add the ``filter`` parameter to
  :meth:`~pymongo.database.Database.list_collection_names`.
- Changes can now be requested from a ``ChangeStream`` cursor without blocking
  indefinitely using the new
  :meth:`pymongo.change_stream.ChangeStream.try_next` method.
- Fixed a reference leak bug when splitting a batched write command based on
  maxWriteBatchSize or the max message size.
- Deprecated running find queries that set :meth:`~pymongo.cursor.Cursor.min`
  and/or :meth:`~pymongo.cursor.Cursor.max` but do not also set a
  :meth:`~pymongo.cursor.Cursor.hint` of which index to use. The find command
  is expected to require a :meth:`~pymongo.cursor.Cursor.hint` when using
  min/max starting in MongoDB 4.2.
- Documented support for the uuidRepresentation URI option, which has been
  supported since PyMongo 2.7. Valid values are `pythonLegacy` (the default),
  `javaLegacy`, `csharpLegacy` and `standard`. New applications should consider
  setting this to `standard` for cross language compatibility.
- :class:`~bson.raw_bson.RawBSONDocument` now validates that the ``bson_bytes``
  passed in represent a single bson document. Earlier versions would mistakenly
  accept multiple bson documents.
- Iterating over a :class:`~bson.raw_bson.RawBSONDocument` now maintains the
  same field order of the underlying raw BSON document.
- Applications can now register a custom server selector. For more information
  see the :doc:`server selector example <examples/server_selection>`.
- The connection pool now implements a LIFO policy.

Unavoidable breaking changes:

- In order to follow the ObjectID Spec version 0.2, an ObjectId's 3-byte
  machine identifier and 2-byte process id have been replaced with a single
  5-byte random value generated per process. This is a breaking change for any
  application that attempts to interpret those bytes.
2020-01-29 13:08:35 +00:00
adam
111da1d0f7 py-mongo: updated to 3.7.2
Version 3.7.2 fixes a few issues discovered since the release of 3.7.1.
- Fixed a bug in retryable writes where a previous command's "txnNumber"
  field could be sent leading to incorrect results.
- Fixed a memory leak of a few bytes on some insert, update, or delete
  commands when running against MongoDB 3.6+.
- Fixed a bug that caused :meth:pymongo.collection.Collection.ensure_index
  to only cache a single index per database.
- Updated the documentation examples to use
  :meth:pymongo.collection.Collection.count_documents instead of
  :meth:pymongo.collection.Collection.count and
  :meth:pymongo.cursor.Cursor.count.
2019-01-22 10:00:13 +00:00
adam
f65d1e0cfb py-mongo: updated to 3.7.1
Changes in Version 3.7.1

Version 3.7.1 fixes a few issues discovered since the release of 3.7.0.

Calling :meth:~pymongo.database.Database.authenticate more than once with the same credentials results in OperationFailure.
Authentication fails when SCRAM-SHA-1 is used to authenticate users with only MONGODB-CR credentials.
A millisecond rounding problem when decoding datetimes in the pure Python BSON decoder on 32 bit systems and AWS lambda.
Issues Resolved


Changes in Version 3.7.0

Version 3.7 adds support for MongoDB 4.0. Highlights include:

Support for single replica set multi-document ACID transactions. See :ref:transactions-ref.
Support for wire protocol compression. See the :meth:~pymongo.mongo_client.MongoClient documentation for details.
Support for Python 3.7.
New count methods, :meth:~pymongo.collection.Collection.count_documents and :meth:~pymongo.collection.Collection.estimated_document_count. :meth:~pymongo.collection.Collection.count_documents is always accurate when used with MongoDB 3.6+, or when used with older standalone or replica set deployments. With older sharded clusters is it always accurate when used with Primary read preference. It can also be used in a transaction, unlike the now deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count methods.
Support for watching changes on all collections in a database using the new :meth:pymongo.database.Database.watch method.
Support for watching changes on all collections in all databases using the new :meth:pymongo.mongo_client.MongoClient.watch method.
Support for watching changes starting at a user provided timestamp using the new start_at_operation_time parameter for the watch() helpers.
Better support for using PyMongo in a FIPS 140-2 environment. Specifically, the following features and changes allow PyMongo to function when MD5 support is disabled in OpenSSL by the FIPS Object Module:
Support for the :ref:SCRAM-SHA-256 <scram_sha_256> authentication mechanism. The :ref:GSSAPI <gssapi>, :ref:PLAIN <sasl_plain>, and :ref:MONGODB-X509 <mongodb_x509> mechanisms can also be used to avoid issues with OpenSSL in FIPS environments.
MD5 checksums are now optional in GridFS. See the disable_md5 option of :class:~gridfs.GridFS and :class:~gridfs.GridFSBucket.
:class:~bson.objectid.ObjectId machine bytes are now hashed using FNV-1a instead of MD5.
The :meth:~pymongo.database.Database.list_collection_names and :meth:~pymongo.database.Database.collection_names methods use the nameOnly option when supported by MongoDB.
The :meth:pymongo.collection.Collection.watch method now returns an instance of the :class:~pymongo.change_stream.CollectionChangeStream class which is a subclass of :class:~pymongo.change_stream.ChangeStream.
SCRAM client and server keys are cached for improved performance, following RFC 5802.
If not specified, the authSource for the :ref:PLAIN <sasl_plain> authentication mechanism defaults to $external.
wtimeoutMS is once again supported as a URI option.
When using unacknowledged write concern and connected to MongoDB server version 3.6 or greater, the bypass_document_validation option is now supported in the following write helpers: :meth:~pymongo.collection.Collection.insert_one, :meth:~pymongo.collection.Collection.replace_one, :meth:~pymongo.collection.Collection.update_one, :meth:~pymongo.collection.Collection.update_many.

Deprecations:
Deprecated :meth:pymongo.collection.Collection.count and :meth:pymongo.cursor.Cursor.count. These two methods use the count command and may or may not be accurate, depending on the options used and connected MongoDB topology. Use :meth:~pymongo.collection.Collection.count_documents instead.
Deprecated the snapshot option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 3.6 and removed in MongoDB 4.0.
Deprecated the max_scan option of :meth:~pymongo.collection.Collection.find and :meth:~pymongo.collection.Collection.find_one. The option was deprecated in MongoDB 4.0. Use maxTimeMS instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.close_cursor. Use :meth:~pymongo.cursor.Cursor.close instead.
Deprecated :meth:~pymongo.mongo_client.MongoClient.database_names. Use :meth:~pymongo.mongo_client.MongoClient.list_database_names instead.
Deprecated :meth:~pymongo.database.Database.collection_names. Use :meth:~pymongo.database.Database.list_collection_names instead.
Deprecated :meth:~pymongo.collection.Collection.parallel_scan. MongoDB 4.2 will remove the parallelCollectionScan command.

Unavoidable breaking changes:
Commands that fail with server error codes 10107, 13435, 13436, 11600, 11602, 189, 91 (NotMaster, NotMasterNoSlaveOk, NotMasterOrSecondary, InterruptedAtShutdown, InterruptedDueToReplStateChange, PrimarySteppedDown, ShutdownInProgress respectively) now always raise :class:~pymongo.errors.NotMasterError instead of :class:~pymongo.errors.OperationFailure.
:meth:~pymongo.collection.Collection.parallel_scan no longer uses an implicit session. Explicit sessions are still supported.
Unacknowledged writes (w=0) with an explicit session parameter now raise a client side error. Since PyMongo does not wait for a response for an unacknowledged write, two unacknowledged writes run serially by the client may be executed simultaneously on the server. However, the server requires a single session must not be used simultaneously by more than one operation. Therefore explicit sessions cannot support unacknowledged writes. Unacknowledged writes without a session parameter are still supported.
2018-10-07 07:33:42 +00:00
adam
9ae41c19ce databases/py-mongo: update to 3.5.1
Changes in Version 3.5.1

Version 3.5.1 fixes bugs reported since the release of 3.5.0:
* Work around socket.getsockopt issue with NetBSD.
* :meth:`pymongo.command_cursor.CommandCursor.close` now closes the cursor synchronously instead of deferring to a background thread.
* Fix documentation build warnings with Sphinx 1.6.x.

Issues Resolved
See the PyMongo 3.5.1 release notes in JIRA for the list of resolved issues in this release.
2017-09-12 16:32:22 +00:00
wiz
5d86518619 Switch github HOMEPAGEs to https. 2017-07-30 22:32:10 +00:00
wiz
57199de455 Switch to MASTER_SITES_PYPI. 2016-06-08 17:43:20 +00:00
agc
d549bff9a5 Add SHA512 digests for distfiles for databases category
Problems found with existing distfiles:
	distfiles/D6.data.ros.gz
	distfiles/cstore0.2.tar.gz
	distfiles/data4.tar.gz
	distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 01:56:09 +00:00
rodent
e8efb6d8ec Import py27-mongo-2.7.1 as databases/py-mongo.
The PyMongo distribution contains tools for interacting with MongoDB
database from Python.

The bson package is an implementation of the BSON format for Python.
The pymongo package is a native Python driver for MongoDB.
The gridfs package is a gridfs implementation on top of pymongo.
2014-06-08 22:13:36 +00:00