Menu Docs
Página inicial do Docs
/ / /
Driver C++

Atualizar versões do driver

Nesta página

  • Visão geral
  • Mudanças de última hora

Esta página descreve as alterações que você deve fazer no seu aplicação ao atualizar para uma nova versão do driver C++ .

Antes de atualizar, execute as seguintes ações:

  • Certifique-se de que a nova versão do driver C++ seja compatível com as versões do MongoDB Server às quais seu aplicação se conecta e com a versão padrão C++ com a qual seu aplicação é compilado. Para obter informações sobre compatibilidade de versões, consulte a página Compatibilidade do driver C++ .

  • Resolva quaisquer alterações significativas entre a versão do driver que seu aplicação está usando e a versão de atualização planejada na seção Alterações significativas.

Dica

Para garantir a compatibilidade entre as versões do MongoDB Server ao atualizar as versões do driver, use a Stable API.

Observação

O driver C++ segue o controle de versão semântica. O driver pode quebrar a compatibilidade do sistema de compilação ou do pacote em qualquer versão. As versões de patch podem reverter alterações acidentais de quebra da API.

Para obter mais informações, consulte Controle de versão de API e ABI.

Uma alteração significativa é uma alteração de uma convenção ou comportamento a partir de uma versão específica do driver. Esse tipo de alteração pode impedir que seu aplicativo funcione corretamente se não for resolvido antes de atualizar o driver.

As alterações interruptivas nesta seção são categorizadas pela versão do driver que as introduziram. Ao atualizar as versões do driver, resolva todas as alterações interruptivas entre a versão atual e a atualizada.

Exemplo

Atualização da versão 3.0

Se você estiver atualizando o driver C++ da versão 3.0 para a versão 3.10, resolva todas as alterações significativas listadas para as versões 3.1 a 3.10, se houver.

  • Elimina o suporte para o MongoDB Server v3.6.

  • Requer o Driver MongoDB C v1.28.0 ou posterior.

  • Se a opção de configuração do ENABLE_TESTS estiver definida para ON, C++14 ou posterior será necessário. Você pode desativar o requisito C++14 desativando os testes com ENABLE_TESTS=OFF durante a configuração do CMake.

  • Remove a exportação das seguintes funções de membro privado na ABI bsoncxx:

    bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t)
    bsoncxx::v_noabi::types::bson_value::view::_init(void*)
    bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t)
    bsoncxx::v_noabi::types::bson_value::view::view(void*)
  • Remove a exportação das seguintes funções de membro privado na ABI mongocxx:

    mongocxx::v_noabi::options::change_stream::as_bson()
    mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&)
    mongocxx::v_noabi::options::index::storage_options()
  • Declare todos os símbolos de funções exportadas com __cdecl quando compilados com MSVC. Esta é uma alteração interruptiva de ABI se você usar uma convenção de chamada padrão alternativa ao construir projetos.

Esta versão do driver apresenta a seguinte alteração interruptiva:

  • Suporte a drops para find_package(libbsoncxx) e find_package(libmongocxx). Em vez disso , use find_package(bsoncxx) e find_package(mongocxx) .

  • Descarta o suporte para as variáveis LIBBSONCXX_* e LIBMONGOCXX_* CMake fornecidas pelos arquivos de configuração do pacote CMake legado . Use os destinos CMake mongo::bsoncxx_* e mongo::mongocxx_* .

  • Remove a biblioteca padrão experimental do C++ (BSONCXX_POLY_USE_STD_EXPERIMENTAL) como uma opção de polyfill.

Esta versão do driver apresenta a seguinte alteração interruptiva:

  • Remove o suporte para destinos exportados da árvore de compilação do projeto CMake

  • Elimina o suporte para macOS 10.14, macOS 10.15 e Ubuntu 14.04

  • Exige MongoDB C Driver v1.25.0 ou posterior

  • Exige CMake v3.15 ou posterior

Para 3.8 as versões e anteriores do driver, consulte as notas de versão e os tickets JIRA associados para cada versão no Github.

Voltar

NOVIDADES