Pergunta

Se você tem um projeto, que libera uma biblioteca e uma aplicação, como você lida com versão de números entre os dois.

Exemplo: Seu projeto oferece uma biblioteca, que converte diferentes de arquivo-formatos em si. A biblioteca é liberada para inclusão em outras aplicações. Mas você também lançar uma linha de aplicação de comando, que utiliza esta biblioteca e implementa uma interface para a funcionalidade.

Novas versões do chumbo biblioteca para novas versões do aplicativo (para fazer uso de todos os novos recursos), mas novas versões do aplicativo não pode desencadear novas versões da biblioteca. Agora, como estão os números de versões tratado: Completamente independente ou deve Library- e aplicação da versão ser dependente de alguma forma

Foi útil?

Solução

Eu diria que usam números de versão separadas, e do documento claro que mínimo versão da biblioteca é necessária para cada versão do aplicativo. Se eles têm sempre o mesmo número de versão, e você só testar o aplicativo contra a versão da biblioteca igual de número, então eles não são realmente componentes separados, então não dizem que são. Liberar o lote inteiro como um nódulo.

Se você torná-los separados, você pode ainda dar-lhes o mesmo número de versão quando é apropriado -., Por exemplo, depois de um grande quebra compatibilidade que você pode lançar a versão 2.0 de ambos simultaneamente

O exemplo a seguir ilustra: xsltproc (um aplicativo de linha de comando) é lançado como parte da libxslt (a biblioteca), por isso não tem o seu próprio número da versão. Mas libxslt depende de duas outras bibliotecas, e os números de versão dos que são independentes.

$ xsltproc --version
Using libxml 20628, libxslt 10120 and libexslt 813
xsltproc was compiled against libxml 20628, libxslt 10120 and libexslt 813
libxslt 10120 was compiled against libxml 20628
libexslt 813 was compiled against libxml 20628

Outras dicas

números de versão completamente independente, mas a linha de comando (ou qualquer outro dependente) aplicativo deve dizer qual versão da biblioteca que foi compilado com a na seção de ajuda ou um banner.

Dessa forma, você será capaz de dizer qual funcionalidade dos aplicativos tem e reduzir o potencial de confusão, especialmente tendo em conta que alguém poderia compilar uma versão mais recente aplicativo contra uma antiga biblioteca, por qualquer motivo. Além disso, você dissociar-los e pode adicionar recursos na biblioteca sem depender de lançamento de uma nova versão do aplicativo e assim por diante.

Se você tem certeza que você sempre vai querer todos os aplicativos e biblioteca para ir em sincronia, então você poderia usar mesmos números, mas isso é adicionar uma restrição para não uma razão forte.

Nós construímos um aplicativo que usa um quadro. Mantemos números de versão diferentes para ambos.

Isso funciona bem, especialmente agora que o enquadramento e aplicação têm crescido suficientemente grande para ser desenvolvidos por diferentes equipes.

Assim, a minha opinião ... manter os números versão separada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top