### ----------------------------------------------------
### -- MongoDB
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman, Paweł Pabian
### -- File: docs/content-docs/about/release-notes.md
### ----------------------------------------------------
### -- Chunk 2 of 2
* Deprecated underscore methods modified in favor of dashed ones:
  * MongoDB::Connection: list_database, database_names, build_info.
  * MongoDB::Collection: find_one, find_and_modify, map_reduce, ensure_index, drop_index, drop_indexes, get_indexes, data_size.
  * Several parameters and attributes are also changed.
* Change die X::MongoDB.new(...) into $!status = X::MongoDB.new(...) MongoDB::Connection
* 0.25.8
* Removed exception class from Connection.pm, Collection.pm, Database.pm, Users.pm, Authenticate.pm and Cursor.pm. Usage is replaced by X::MongoDB from MongoDB.pm.
* Renamed some test files.
* Renamed some module files.
* Bugfixes in callframe processing in MongoDB
* 0.25.7
* Experiment converting OP_INSERT() to OP-INSERT() using deprication traits. Use of the method is modified in the package and users should not have problems seeing deprecation messages.
* modify 'if 1 { with CATCH }' in try {}.
* 0.25.6
* Module MongoDB::Protocol removed
* Moving out exception code in modules into MongoDB.pm.
* Enum type Severity with values Trace Debug Info Warn Error Fatal
* Logging role added to log exception information. This logging will throw when severity is above some level.
* 0.25.5
* Tests for connection to non existing server. There is no timeout setting at the moment. Sets $.status to an Exception object when it fails.
* Moved modules User and Authenticate out of Database directory into toplevel MongoDB because User is not a Database, i.e. User is not inheriting from Database. Same goes for Authentication.
* 0.25.4
* Travis-ci uses a mongod version of 2.4.12 which can not be used (yet) by this driver. A situation is now created to use the sandbox also for Travis for which a proper version mongodb server is downloaded as a pre install step.
* 0.25.3
* Extending the sandbox control. When environment variables TRAVIS or NOSANDBOX is set sandboxing is not done. Default portnumber of 27017 is used to get to the mongod server. Important to be sure that anything may happen including deletion of any databases and collections on the server!
* 0.25.2
* Changes because of updates in perl6.
* 0.25.1
* Installed a sandbox to start mongod in. Now no problems can occur with user databases and collections when testing. The sandbox is made in t/000-mk-sandbox.t and broken down in 999-rm-sandbox.t. This setup also helps in testing replication and sharding.
* Changed top module ```MongoDB```. Originally there are use statements to load other modules in. Modules are changed later in such a way that modules needed to be loaded in other modules as well and then it will be some overhead of loading the modules twice or more. So I want to clean these statements from the module. Now the user can decide for himself what he needs. Not all modules are always needed and some are loaded by others. E.g. ```MongoDB::Document::Users``` is needed only to add or remove accounts. Furthermore when a connection is made using ```MongoDB::Connection```, ```MongoDB::Database``` will be available because it needs to create a database for you. Because ```MongoDB::Database``` is then loaded, ```MongoDB::Collection``` is then loaded too because a database must be able to create a collection.
* get_users() to get info about all users.
* Use version 3.* type of config (in YAML) for sandbox setup.
* 0.25.0
* Create user
* Drop user
* Drop all users
* Users info
* Grant roles
* Revoke roles
* Update users
* Refactored code from Database to Database::Users
* 0.24.1
* Added document checks to inserts. No dollars on first char of keys and no dots in keys. This is checked on all levels. On top level the key ```_id``` is checked if the value is unique in te collection.
* Changes in code caused by upgrading from MongoDB 2.4 to 3.0.5. Many of the
  servers return messages were changed.
* 0.24.0
* Added version() and build_info() to MongoDB::Connection.
* 0.23.2
* Added error processing in Cursor::count(). Throws X::MongoDB::Cursor exception.
* 0.23.1
* Changes caused by rakudo update
* BIG PROBLEM!!!!!!!!! Should have seen this comming! Its about run_command(). A hash needs to be setup with therein a command to be processed. With the new rakudo the hash get hashed properly and the keys are now in some unpredictable order. One of the necessities of run_command is that the command is found at the first key value pair. During encoding into a BSON byte array the command can be placed anywhere in the string and some other option comming at the first location will be seen as the command. SOLVED; Hashes work like hashes... mongodb run_command needs command on first key value pair. Because of this a few multi methods in several modules are added to process Pair arrays instead of hashes.
* 0.23.0
* Added find_and_modify(), stats(), data_size() methods in Collection.
* 0.22.6
* Changes in testfiles to read in the proper module instead of the MongoDB module which will include all modules. Most of the time it is enaugh to use the Connection module only.
* 0.22.5
* Changes to packaging and adding more typing information
* 0.22.4
* Changes because of modifications in BSON
* 0.22.3
* Upgraded Rakudo * and bugfix in Protocol.pm
* 0.22.2
* Bugfixes in use of javascript
* 0.22.1
* Add use of BSON::Javascript in group() and map_reduce().
* 0.22.0
* map_reduce() in MongoDB::Collection.
* 0.21.0
* group() in MongoDB::Collection.
* 0.20.0
* list_collections() and collection_names() in MongoDB::Database

* 0.19.0
* explain() in MongoDB::Collection and MongoDB::Cursor.
* 0.18.0
* count() in MongoDB::Collection distinct() in MongoDB::Collection
* 0.17.1
* Collectionnames are checked. In perl dashes are possible and are also accepted by the server. In the mongo shell however it is not possible to manipulate these names because it works in a javascript environment which wil see it as a substraction operator. Perhaps other things will go wrong too such as running javascript on the server. It is now tested against `m/^ <[\$ _ A..Z a..z]> <[.\w _]>+ $/`. Note the `$`, It is accepted because the collection `$cmd` is sometimes used to get information from. The method `.create_collection()` will also check the collection name but will not accept the `$`.

* 0.17.0
* Create_collection() to MongoDB::Database X::MongoDB::Database Exception
* 0.16.1
* Cleanup databases at the end of tests. Documented tests what is tested
* 0.16.0
* Name change X::MongoDB::LastError into X::MongoDB::Collection. Added drop_indexes() drop() get_indexes() to MongoDB::Collection.
* 0.15.0
* Added drop_index() to MongoDB::Collection.
* 0.14.1
* Bugfixes find_one(), ensure_index(). Added Class X::MongoDB::LastError and used when ensure_index() fails.
* 0.14.0
* ensure_index() in MongoDB::Collection
* 0.13.7
* Changes depending on BSON
* 0.13.6
*  MongoDB::Cursor pod document
* 0.13.0
*  Added next() to MongoDB::Cursor.
* 0.12.0
*  Added count() to MongoDB::Cursor.
* 0.11.1
*  Added Connection.pod and Collection.pod.
* 0.11.0
*  Added methods to get error status in MongoDB::Database.
* 0.10.0
* Added drop() in MongoDB::Database to drop a database.
* 0.9.0
* Added list_databases() and database_names() to MongoDB::Connection
* 0.8.0
* run_command() added to MongoDB::Database
* 0.7.4
* bugfix return values in MongoDB::Cursor
* 0.7.3
* bugfix return values in MongoDB::Protocol
* 0.7.2
* extended signatures for return values
* 0.7.1
* find extended with return_field_selector
* 0.6.1
* add tests for insert(@docs)
* 0.6.0
* switched to semantic versioning
* 0.5
* compatibility fixes for Rakudo Star 2014.12
* 0.4
* compatibility fixes for Rakudo Star 2012.02
* 0.3
* basic flags added to methods (upsert, multi_update, single_remove,...), kill support for cursor
* 0.2
*  adapted to Rakudo NOM 2011.09+.
* 0.1
*  basic Proof-of-concept working on Rakudo 2011.07.


