Menu Docs
Página inicial do Docs
/ / /
Mongoid
/

Atualizando o Mongoid

Nesta página

  • Controle de Versão
  • Como atualizar o Mongoid
  • Antes de atualizar
  • Atualizando o Mongoid
  • Carregar padrões e sinalizadores de recursos
  • Política de depreciação

O Mongoid fornece um caminho de atualização estável para os usuários migrarem para novas versões.

Cada versão do Mongoid tem um número de versão no formato major.minor.patch . Começando no mongoide 7.4, O Mongoid usa Versão semântica (SemVer), o que normalmente significa:

  • Alterações significativas, habilitação de novas funcionalidades e remoção de funcionalidades obsoletas só serão feitas em versões principais.

  • Novas funcionalidades serão adicionadas usando sinalizadores de recursos, que devem ser habilitados por meio de uma alteração de configuração de aceitação. Esses sinalizadores de recurso podem ser adicionados em versões principais ou secundárias.

  • A funcionalidade pode ser marcada como obsoleta em versões principais ou secundárias, mas não será removida até a próxima versão principal, no mínimo.

  • As versões de patch conterão apenas correções e atualizações de segurança não significativas.

Aviso

O Mongoid 7.3 e versões anteriores não aderem estritamente ao SemVer e podem conter alterações significativas mesmo em versões menores. Os usuários devem ter cuidado adicional ao atualizar para essas versões.

  • Cobertura de teste: a melhor maneira de garantir que seu aplicação ainda funcione após a atualização é fazer uma boa cobertura de teste antes de iniciar o processo.

  • Atualizar Ruby and Rails: Consulte "Atualizando Ruby on Rails" para mais informações

Veja a seguir nosso procedimento recomendado para atualizar para uma nova versão do Mongoid:

  1. Atualize para cada versão secundária individualmente.

    Por exemplo, se você estiver atualizando do Mongoid 7.4 para 8.1, recomendamos que siga este procedimento para a versão de patch mais recente de cada versão secundária, por exemplo primeiro para 7.5.x, depois para 8.0.x e, finalmente, para 8.1.x.

  2. Antes de atualizar, certifique-se de ter load_defaults definido para sua versão atual.

    Se você ainda não habilitou o comportamento mais recente em sua versão atual, faça isso antes de atualizar.

  3. Revise asNotas de versão do cuidadosamente ao atualizar.

  4. Teste seu aplicativo na nova versão.

    Seu aplicativo deve ser testado e lançado "como está" na nova versão do Mongoid _sem_ ajustar load_defaults ou qualquer sinalizador de recurso.

  5. Depois que a etapa 4 for confirmada como estável, defina load_defaults para a nova versão para habilitar a nova funcionalidade. Corrija também quaisquer avisos de depreciação no momento.

    Você também pode habilitar novas funcionalidades uma a uma usando sinalizadores de funcionalidades.

Quando um sinalizador de recurso é introduzido, ele terá um valor padrão que preserva a funcionalidade anterior (legada). Nesse momento, os usuários são encorajados a definir manualmente o sinalizador para seu novo valor para experimentar a nova funcionalidade.

Na próxima versão principal, o valor padrão do sinalizador será invertido para habilitar a nova funcionalidade. Neste momento, a própria bandeira será marcada como obsoleta. Finalmente, o sinalizador obsoleto será totalmente removido da configuração em um lançamento de versão principal subsequente.

Os sinalizadores de recursos são adicionados como uma conveniência para facilitar a atualização, mas não se destinam a serem suportados perpetuamente.

O Mongoid pode descontinuar recursos, funcionalidades, métodos, constantes etc. de tempos em tempos. Para fazer isso, o Mongoid pode realizar uma ou mais das seguintes ações:

  • Marque o código relevante @deprecated em um comentário de código.

  • Adicione um aviso de registro se a funcionalidade obsoleta for usada.

  • Informe sobre a descontinuação nas Notas de versão.

O Mongoid pode então remover a funcionalidade obsoleta na próxima versão principal.

Métodos marcados como @api private podem ser removidos sem depreciação, mesmo que sejam public em Ruby.

Voltar

Notas de versão