Major Changes
Breaking
* `Collection.add_geo_index()` parameter `ordered` has been renamed to `geo_json`. The name `ordered` used to create lots of confusion.
* The `api/traversal` endpoint is no longer available starting with ArangoDB 3.12. This renders the `arango.graph.Graph.traverse()` unusable.
Non-Breaking
* Dropped support for ArangoDB 3.10.
* Pregel is deprecated since ArangoDB 3.12. The API can still be used with the driver, but it will eventually be removed when 3.11 support is over.
* Compression of requests and responses. By default compression is turned off, so this change has no effect unless the user specifies one of the newly introduced parameters.
The ArangoClient gets two optional parameters:
- request_compression - Represents the compression strategy, None by default. The reason for passing in an object instead of a string (such as deflate) is to allow the client to fine tune the compression algorithm.
- response_compression - The equivalent of an Accept-Encoding string. This has no effect unless the server is configured to use encoding.
python
client = ArangoClient(
hosts="http://127.0.0.1:8529",
request_compression=DeflateRequestCompression(),
response_compression="deflate",
)
* Full support on Options API [3.12]
* The `add_index()` becomes the new way of creating indexes. It takes a `data` parameter - the keys are pure ArangoDB REST API arguments, no snake_case conversion anymore. However, for the output, the legacy methods remain the same, while the new add_index method by default skips formatting. Legacy methods have been deprecated.
python
collection.add_index({'type': 'persistent', 'fields': ['name'], 'unique': True})
New Features
Improved [administration interface](https://docs.arangodb.com/stable/develop/http-api/administration/)
* Added `/_admin/log/structured` support
* Added `/_admin/compact` support
* Added `/_admin/echo` support
* Added `/_admin/server/mode` support
* Added `/_admin/execute` support
* Added `/_admin/support-info`
* Added `/_admin/cluster/maintenance/`
Updated `/metrics` endpoint to `v2`
New `fetch_transaction()` method
Introduced a new `StandardDatabase.fetch_transaction()` method that allows users to create a `TransactionDatabase` based on an existing Transaction, instead of starting a new transaction.
Minor changes
* Improved documentation pages
* External versioning support, adding `version_attribute` to some of the `Collection` methods
* Fixed `autoincrement` collection creation
* Updated `ServerConnectionError` to contain an error code
New Contributors
* Moortiii made their first contribution in https://github.com/arangodb/python-arango/pull/331
Other Contributors
* aMahanna
* apetenchea
**Full Changelog**: https://github.com/arangodb/python-arango/compare/7.9.1...8.0.0