* PHPC-2049: Bump libmongoc and libmongocrypt submodules
libmongoc master (1.22-dev) now depends on libmongocrypt master (1.5-dev).
libmongoc's bundled zlib library was updated to 1.2.12.
* PHPC-2049: BulkWrite and Query support comment option of any type
MongoDB 4.4+ allows a comment option of any type on most commands. Previously, find required a string type and write commands did not support comment at all. The driver does not validate the option and relies on the server to raise an error.
* Fix title and variable access in BulkWrite and Query let option tests
* Fix grammar in php_phongo_bulkwrite_delete_apply_options comment
* Undefine additional Query option macros
The bson_t used to hold the intermediary result between zval conversion and bson_value_t extraction must be freed.
This also refactors the function to use a stack-allocated zval for the data envelope.
* Remove pre-3.6 server versions from Evergreen matrix
* Remove skipped tests for pre-3.6 servers
* Remove old mongo-orchestration configs and Evergreen tasks
* Remove flaky replica set tests
These tests assume a particular replica set member is always the primary, so tag assertions may fail if a different member is elected. The server-getTags-002.phpt test has more flexible assertions for replica set tags, so we can safely remove these tests.
"nocache" output from skip_if_not_clean may cause "skip" output from other functions to be ignored. Changing the order so that skip_if_not_clean is always called last will fix this in most cases (excluding tests that call skip_if_not_clean multiple times).
* PHPC-2047: Update load balancer testing config
Upstream changes in drivers-evergreen-tools now require passing LOAD_BALANCER to run-orchestration.sh. Additionally, service ID mocking is no longer required as of server version 5.1.
* Add missing live server checks in tests
This also cleans up header includes throughout the project. The order follows: libbson, libmongoc, libmongocrypt, PHP, contrib (e.g. PHP array API), internal modules (e.g. php_phongo.h, phongo_bson.h), and class headers. Quoted strings are used for all but PHP includes, which are always sourced from system directories.
php_phongo.h is now responsible for including config.h and assigning the default logging domain.
zend_object_alloc was introduced in php/php-src@b72b1a4e4d for PHP 7.3+. For PHP 7.2, we define a macro providing the original behavior of PHONGO_ALLOC_OBJECT_T (slower dynamic memset).
* PHPC-2023: Allow observation of TopologyClosedEvent
Observation is only possible for non-persistent clients freed before RSHUTDOWN. This change also allows for reliable testing of ServerClosedEvent.
* PHPC-2030: Test observation of commands issued during client destruction
Command monitoring events can only be observed for non-persistent clients freed before RSHUTDOWN.
* PHPC-1805: Implement ServerDescription class
* PHPC-1910: Implement Server::getServerDescription()
* PHPC-1934: Check for uninitialized intern in ServerDescription get_properties_hash
* PHPC-1925: Change ServerDescription::getType() to return a string
* PHPC-1891: Implement TopologyDescription class
* PHPC-1892: Implement SDAMSubscriber interface
* PHPC-1893: Implement SDAM event classes
* Revise server and topology event classes and tests
Use phongo_objectid_init in getTopologyId() methods. Report topologyId as an ObjectId in debug info. Report TopologyDescription servers as ServerDescription in debug info.
Copy parameters in phongo_serverdescription_init and phongo_topologydescription_init for consistency with other functions (e.g. phongo_readconcern_init). This also creates phongo_serverdescription_init_ex for when we want to skip copying in Server::getServerDescription().
* PHPC-1953: Add tests for debug handlers
* PHPC-1959: Utilize Manager::addSubscriber() in tests
Skip TopologyClosedEvent test (pending PHPC-2023)
* PHPC-1958: Assert same topologyId for SDAM events
* PHPC-2025: Support load balancer in ServerDescription and TopologyDescription
* PHPC-2026: Handle 64-bit lastUpdateTime for 32-bit platforms
Co-authored-by: Tanli Su <46271307+tanlisu@users.noreply.github.com>
Co-authored-by: Andreas Braun <git@alcaeus.org>
Co-authored-by: Tanli Su <tanli.su@gmail.com>