Pergunta

Atualmente, estou trabalhando em automatizar / melhorar o processo de liberação para a embalagem de produtos inteira da minha loja. Atualmente, o produto é uma combinação de:

  • do lado do servidor Java codebase
  • arquivos
  • configuração XML e aplicação
  • Shell e batch scripts para os administradores
  • estaticamente servido páginas HTML
  • e algumas outras coisas, mas isso é mais do mesmo

Todos ou a maioria dos quais têm várias informações de versão contidas neles, usado para fins variados. Parte do processo de embalagem liberação envolve fazer um monte de encontrar, grep'ing e sed'ing (em scripts) para atualizar as informações. Esta cola que empacota o produto parece ter sido remendada de forma orgânica, just-in-time, e é muito horrível para manter. Por exemplo, alguns métodos Java criar objetos de data para a época do lançamento, os argumentos para os quais são atualizados por uma substituição textual, sem validação compilador ... apenas, urgh.

Eu estou tentando evitar dar exemplos de software real utilizado (ou seja, CVS, SVN, formiga, etc.) porque eu gostaria de evitar "recurso de uso de xyz de fazer isso", o e se concentrar mais em práticas gerais. Eu gostaria de culpar projeto de má qualidade para o problema, mas se eu tivesse que começar de novo, ainda usando tecnologias diferentes, eu não ter certeza a melhor forma de ir sobre como lidar com isso, além do que estabelece as convenções.

As minhas perguntas é, existem melhores práticas ou dicas e sugestões para manutenção e atualização de versão de informações entre diferentes tecnologias, tipos de arquivos, plataformas e sistemas de controle de versão?

Foi útil?

Solução

Na verdade, para completar a resposta de Craig Angus, a regra de ouro aqui deve ser o de não inclui quaisquer meta-informações em seus arquivos de entrega normais , mas para denunciar aqueles meta -data (número da versão, data de lançamento, e assim por diante) em um arquivo especial - incluído na versão -.

Isso ajuda quando você usa uma ferramenta VCS (Versão Control System) a partir do desenvolvimento de homologação de pré-produção.
Isso significa que sempre que coloca um espaço de trabalho (tanto para o desenvolvimento, ou para testar ou para preparar um lançamento em produção), é a ferramenta versionning que lhe dá todos os detalhes.

Quando você prepara uma entrega (um conjunto de arquivos embalados), você deve perguntar a essa ferramenta VCS sobre cada meta-informação que você deseja manter, e gravá-los em um arquivo especial em si incluído no referido conjunto de arquivos.

Essa entrega deve ser embalado em um diretório externo (fora de qualquer espaço de trabalho) e:

  • copiados para um diretório compartilhado (ou um repositório maven) se for um não-oficial release (mas apenas uma embalagem rápida para ajudar a equipe ao lado que está à espera de sua entrega ). Dessa forma, você pode fazer 10 ou 20 proporciona um dia, não importa:. Eles são facilmente descartáveis ??

  • importados para a VCS, a fim de servir como entregas oficiais, e, a fim de ser implantado facilmente pois tudo que você precisa é perguntar a ferramenta versionning para a versão correta do direito entregar, e você pode começar a implantar -lo.

Nota: eu acabei de descrever um processo de gerenciamento de liberação usado principalmente para muitos projetos inter-dependentes. Para um pequeno projeto único, você pode ignorar a importação na ferramenta VCS e armazenar suas entregas em outro lugar.

Outras dicas

Crie um arquivo de propriedades que contém o número da versão e ter todas as diferentes componentes referenciar o arquivo de propriedades

  • arquivos Java pode referenciar as propriedades por meio
  • XML pode usar inclui?
  • HTML pode usar um JavaScript para escrever o número da versão a partir das propriedades no HTML
  • Shell scripts pode ler no arquivo

Além dos Craig Angus' incluem a versão de ferramentas utilizadas.

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