Práticas recomendadas de controle de versão da biblioteca

5

Eu posso estar violando alguns termos do StackOverflow fazendo uma pergunta com maior probabilidade de gerar discussão do que uma resposta clara. Aqui vai, no entanto.

Desenvolvi alguns softwares para uma pequena empresa que não é uma casa de software (portanto, não temos muitos processos em andamento). Está em Turbo Pascal (Delphi 2009) e minha fonte é versão controlada (CVS).

Eu uso vários componentes de terceiros (gráficos, comandos TCP, etc.) No Delphi, o comportamento padrão é que a fonte para estes sejam armazenados em uma pasta include na pasta de arquivos do programa Delphi IDE.

Agora é hora de passar este projeto para outro desenvolvedor. Agora ele terá que instalar os componentes IDE + para que eles apareçam corretamente ao editar formulários neste aplicativo. Mas eu gostaria que nosso processo de criação de produção fosse automatizado e eu gostaria que um servidor de compilação fosse capaz de realizar uma verificação e compilação de código.

Isso significa que eu realmente preciso colocar todo o código-fonte (ou pelo menos os DCUs onde eu não tenho os arquivos de origem) para esses addons de terceiros no controle de origem. Eu acho que eles devem fazer parte do módulo CVS para o projeto de software que está sendo desenvolvido (ou seja, não o seu próprio módulo controlado por fonte).

Eu acho que precisamos ser capazes (como uma pequena empresa) de apontar um futuro desenvolvedor no repositório, e dizer "Confira este módulo" e ele terá tudo que ele precisa para poder compilar a partir da linha de comando sem fazer mais nada. (ou seja, portabilidade para novos ambientes de desenvolvimento é importante)

Isso é sensato, ou seria mais escalável para nós manter cada biblioteca em seu próprio estado controlado por versão e, em seguida, no script de construção, extrair o código-fonte para este projeto e a versão correta do código-fonte para cada biblioteca?

Agradeço antecipadamente e peço desculpas pela natureza desconexa da pergunta.

Duncan

    
por Duncan 19.05.2011 / 17:02
fonte

2 respostas

7

Bem, não acho que haja uma única resposta definitiva. Mas posso dizer-lhe o que acontece no meu local de trabalho, e que toda a árvore de código-fonte está sob controle de revisão: todos os meus componentes de terceiros, todas as rotinas C estranhas que são compiladas e vinculadas, um número de .obj arquivos etc.

É muito importante para nós podermos ter um processo de construção repetível e o acima é realmente um pré-requisito para isso.

Agora, como alcançar esse objetivo com o seu sistema de controle de origem é outra questão, mas você deve ter o objetivo de poder verificar todo o projeto e ser capaz de construí-lo sem intervenção humana.

    
por 19.05.2011 / 17:21
fonte
0

Eu também falarei sobre como fazemos as coisas na minha empresa. Temos um repositório para o projeto principal e um repositório separado para todos os nossos componentes Delphi.

Quando eu crio uma nova versão do projeto principal, marquei a versão nos repositórios do projeto e do componente.

Eu também tenho um script de compilação que faz o check-out do tronco ou de uma tag especificada para os dois repositórios e, em seguida, cria uma versão de lançamento do projeto.

Se os componentes que você usa em seu projeto são usados apenas naquele projeto, então eu acho que faria mais sentido mantê-los com o projeto. Por outro lado, se você usar esses componentes de terceiros com outros projetos, talvez faça mais sentido mantê-los em um repositório separado.

    
por 11.08.2011 / 19:44
fonte