Overview
Esta página describe los cambios que debe realizar en su aplicación cuando actualiza a una nueva versión del controlador C.
Antes de actualizar, realiza las siguientes acciones:
Asegúrese de que la nueva versión del controlador C sea compatible con las versiones de MongoDB Server a las que se conecta su aplicación y con la plataforma en la que se ejecuta. Para obtener información sobre la compatibilidad de versiones, consulte Página decompatibilidad del controlador C.
Aborda cualquier cambio disruptivo entre la versión actual del driver que utiliza la aplicación y tu versión de actualización planificada en la sección Cambios disruptivos. Para aprender más sobre los cambios de compatibilidad de las versiones de MongoDB Server, consulta la sección Cambios de compatibilidad del lanzamiento del servidor.
Tip
Para minimizar la cantidad de cambios que requiere su aplicación al actualizar las versiones de los controladores en el futuro, utilice la API estable. Para obtener más información, consulte Stable API guide.
Cambios radicales
Nota
El driver en C sigue el versionado semántico. El driver puede perjudicar los sistemas de compilación o la compatibilidad de paquetes en cualquier versión. Los lanzamientos de parches pueden revertir cambios disruptivos accidentales en la API.
Un cambio disruptivo es un cambio en una convención o comportamiento que empieza a partir de una versión específica del driver. Este tipo de cambios puede evitar que tu aplicación funcione correctamente si no se abordan antes de actualizar el controlador.
Los cambios disruptivos en esta sección se categorizan según la versión del driver que los ha introducido. Al actualizar las versiones del driver, debes abordar todos los cambios disruptivos entre la versión actual y la versión de actualización.
El controlador C consta de dos librerías: libbson y libmongoc. Las secciones de este guía describen los cambios disruptivos que se incluyen en cada librería.
Ejemplo
Actualizando a la versión 2.0.0
Si está actualizando el controlador C de la versión 1.x a la versión 2.0.0, aborde todos los cambios importantes que se enumeran para las versiones 1.x hasta la versión 2.0.0inclusive.
Versión 2.2.0
Cambios disruptivos en libbson
La versión 2.2.0 de libbson incluye el siguiente cambio importante:
Elimina el soporte para Visual Studio 2015. La versión mínima compatible es Visual Studio 2017.
Cambios disruptivos en libmongoc
La versión 2.2.0 de libmongoc incluye el siguiente cambio importante:
Elimina el soporte para Visual Studio 2015. La versión mínima compatible es Visual Studio 2017.
Versión 2.1.0
Cambios disruptivos en libbson
La versión 2.1.0 de libbson incluye los siguientes cambios disruptivos:
Remueve el soporte para Debian 9 y Debian 10.
El proyecto CMake establece una versión máxima de la política de CMake de
4.0. Las versiones anteriores del controlador no establecen esta versión máxima. Esto podría afectar al sistema de compilación, dependiendo de la versión y las opciones de configuración de CMake.
Cambios disruptivos en libmongoc
La versión 2.1.0 de libmongoc incluye los siguientes cambios disruptivos:
Remueve el soporte para Debian 9 y Debian 10.
El proyecto CMake establece una versión máxima de la política de CMake de
4.0. Las versiones anteriores del controlador no establecen esta versión máxima. Esto podría afectar al sistema de compilación, dependiendo de la versión y las opciones de configuración de CMake.
Versión 2.0.0
Cambios importantes en libbson en v2.0.0
La versión 2.0.0 de libbson incluye los siguientes cambios disruptivos:
Reduce el valor de la macro
BSON_ERROR_BUFFER_SIZEde504a503para reservar el byte final para uso interno.Renombra los siguientes archivos
pkg-config:libbson-1.0: Renombrado abson2libbson-static-1.0: Renombrado abson2-static
Elimina el paquete CMake
bson-1.0. En su lugar, utilicebsony especifique la versión o el rango de versiones que se importará, como se muestra en el siguiente ejemplo:find_package(bson 1.30...2.0) Renombra los siguientes targets importados:
mongo::bson_static: Renombrado abson::staticmongo::bson_shared: Renombrado abson::shared
Agrega el objetivo
bson::bson, que apunta a la librería estática o a la librería compartida dependiendo del valor de la opciónBSON_DEFAULT_IMPORTED_LIBRARY_TYPEde CMake. Si no configura esta opción y ambos tipos de librerías están disponibles,bson::bsonutiliza la librería estática.
Cambios disruptivos en libmongoc en la versión v2.0.0
La versión 2.0 de libmongoc incluye los siguientes cambios disruptivos:
Si pasa la opción
batchSize:0amongoc_client_watch,mongoc_database_watchomongoc_collection_watch, el comandoaggregateya no ignora esta opción y la aplica.Remueve
bson_oid_init_sequence. En su lugar, usebson_oid_init.Cambia el tipo de devolución de
mongoc_server_description_hostdemongoc_host_list_t *aconst mongoc_host_list_t *.Implementa los siguientes cambios en la validación de credenciales de autenticación URI, que se aplican al crear un nuevo objeto
mongoc_uri_ta partir de una cadena de conexión:Requiere que los nombres de usuario no estén vacíos para todos los mecanismos de autenticación.
Valida los requisitos de especificación de nombre de usuario y contraseña y devuelve un error del cliente para el mecanismo de autenticación especificado.
Para el mecanismo de autenticación
MONGODB-AWS, el valor deauthSourcese establece por defecto en$external.Valida
authMechanismvalores y retorna un error del cliente para valores no válidos.Valida los valores de
authMechanismPropertiesy devuelve un error del cliente para las propiedades no válidas para el mecanismo de autenticación especificado.Analiza correctamente los caracteres de dos puntos (
:) dentro de los valoresauthMechanismProperties. Por ejemplo, establecerauthMechanismProperties=A:B,C:D:E,F:Ghizo que el controlador analizará el valor como{'A': 'B', 'C': 'D:E,F:G'}. Esto ahora se analiza como{'A': 'B': 'C': 'D:E', 'F': 'G'}.
Se genera un error si se llama a
mongoc_bulk_operation_executeen el mismomongoc_bulk_operation_trepetidamente.Aplica de manera consistente la convención de llamadas
__cdecla las declaraciones de funciones en la API pública.mongoc_client_set_ssl_optsignora unmongoc_client_tagrupado y registra un error. Antes de extraer un cliente, usemongoc_client_pool_set_ssl_optspara configurar las opciones de TLS en unmongoc_client_pool_t.mongoc_client_set_ssl_stream_initiatorignora unmongoc_client_tagrupado y registra un error.Renombra los siguientes archivos
pkg-config:libmongoc-1.0: Renombrado amongoc2libmongoc-static-1.0: Renombrado amongoc2-static
Elimina el paquete CMake
mongoc-1.0. En su lugar, utilicemongocy especifique la versión o el rango de versiones que se importará, como se muestra en el siguiente ejemplo:find_package(mongoc 1.30...2.0) Renombra los siguientes targets importados:
mongo::mongoc_static: Renombrado amongoc::staticmongo::mongoc_shared: Renombrado amongoc::shared
Agrega el objetivo
mongoc::mongoc, que apunta a la librería estática o a la librería compartida dependiendo del valor de la opciónMONGOC_DEFAULT_IMPORTED_LIBRARY_TYPEde CMake. Si no configura esta opción y ambos tipos de librerías están disponibles,mongoc::mongocutiliza la librería estática.
Versión 1.29.0
Cambios disruptivos en libmongoc en la versión v1.29.0
La versión 1.29.0 de libmongoc incluye los siguientes cambios disruptivos:
Descarta la compatibilidad con Visual Studio 2013
Aumenta la versión requerida de la dependencia
libmongocrypta 1.12.0 para admitir la funcionalidad de cifrado en uso.
Versión 1.28.0
Cambios importantes en libbson en v1.28.0
La versión 1.28.0 de libbson incluye los siguientes cambios disruptivos:
Elimina la detección y el uso automáticos de
ccacheremover
Mongo_USE_CCACHE
Cambios disruptivos en libmongoc en la versión v1.28.0
La versión 1.28.0 de libmongoc incluye los siguientes cambios disruptivos:
Eleva la versión mínima del protocolo de conexión de
6a7Eleva la versión requerida de
libmongocrypta v1.11.0 para soportar Encriptación en Uso
Versión 1.27.0
Cambios disruptivos en libmongoc en la versión v1.27.0
La versión 1.27.0 de libmongoc incluye los siguientes cambios disruptivos:
Eleva la versión requerida de libmongocrypt a 1.10.0 para dar soporte al cifrado en uso. Esto corresponde a la opción CMake
ENABLE_CLIENT_SIDE_ENCRYPTION.
Versión 1.26.2
Cambios disruptivos en libmongoc en la versión v1.26.2
La versión 1.26.2 de libmongoc incluye los siguientes cambios disruptivos:
Por defecto, desactiva la carga de plugins con Cyrus SASL en Windows. Para volver a habilitar, configure la opción de CMake
CYRUS_PLUGIN_PATH_PREFIXen el prefijo de ruta absoluta de los complementos de Cyrus SASL.
Versión 1.24
cambios disruptivos en libmongoc en la versión1.24
La versión 1.24 de libmongoc incluye los siguientes cambios disruptivos:
Requiere la versión 7.0 y posteriores del servidor MongoDB para usar el cifrado consultable
Cambios en la compatibilidad de la versión del servidor
Un cambio de compatibilidad de versión del servidor es una modificación al driver que descontinúa el soporte para un conjunto de versiones de MongoDB Server.
El driver interrumpe el soporte para una versión de MongoDB Server después de que esta llegue a su final de vida útil (EOL).
Para aprender más sobre el soporte de MongoDB para productos EOL, consulta la Política de Soporte heredado.