Question

Je travaille actuellement sur l’automatisation / l’amélioration du processus de validation de l’emballage de l’ensemble du produit de ma boutique. Actuellement, le produit est une combinaison de:

  • base de code Java côté serveur
  • Fichiers de configuration et d'application XML
  • Scripts shell et batch pour les administrateurs
  • Pages HTML servies de manière statique
  • et quelques autres choses, mais c'est la plupart d'entre eux

Tous ou la plupart d’entre eux contiennent diverses informations de contrôle de version utilisées à diverses fins. Une partie du processus de mise en forme de la version consiste à rechercher, mettre en attente et séduire (dans des scripts) de nombreuses manières pour mettre à jour les informations. Cette colle qui emballe le produit semble avoir été concoctée de manière organique, juste à temps, et est assez horrible à entretenir. Par exemple, certaines méthodes Java créent des objets Date pour la date de publication, dont les arguments sont mis à jour par un remplacement textuel, sans validation du compilateur ... juste, urgh.

J'essaie d'éviter de donner des exemples de logiciels réellement utilisés (CVS, SVN, ant, etc.), car j'aimerais éviter d'utiliser l'option "utiliser xyz pour le faire". et se concentrer davantage sur les pratiques générales. Je voudrais blâmer le problème pour les concepteurs de mauvaise qualité, mais si je devais recommencer, tout en utilisant diverses technologies, je ne saurais pas comment gérer au mieux cette situation, au-delà de la définition de conventions.

Ma question est la suivante: existe-t-il des pratiques recommandées ou des astuces pour maintenir et mettre à jour les informations de version sous différentes technologies, types de fichiers, plates-formes et systèmes de contrôle de version?

Était-ce utile?

La solution

En effet, pour compléter la réponse de Craig Angus, la règle de base devrait être de ne pas inclure de méta-informations dans vos fichiers de diffusion habituels , mais de signaler ces méta -données (numéro de version, date de publication, etc.) dans un fichier spécial - inclus dans la version -.

Cela vous aide lorsque vous utilisez un outil VCS (Version Control System) du développement à l'homologation, en passant par la pré-production.
Cela signifie que chaque fois que vous chargez un espace de travail (que ce soit pour le développement, les tests ou la préparation d'une version en production), c'est l'outil de mise en version qui vous fournit tous les détails.

Lorsque vous préparez une diffusion (un ensemble de fichiers empaquetés), vous devez demander à cet outil VCS de spécifier chaque méta-information que vous souhaitez conserver, puis de l'écrire dans un fichier spécial lui-même inclus dans ledit ensemble de fichiers.

Cette diffusion doit être empaquetée dans un répertoire externe (en dehors de tout espace de travail) et:

  • copié dans un répertoire partagé (ou un référentiel maven) s'il s'agit d'une version non officielle (mais juste un emballage rapide pour aider l'équipe d'à côté qui attend votre livraison ). De cette façon, vous pouvez faire 10 ou 20 accouchements par jour, peu importe: ils sont facilement jetables.

  • importé dans le VCS afin de servir de livraisons officielles et de pouvoir être déployé facilement car tout ce dont vous avez besoin est de demander à l'outil de version la version correcte de la bonne livraison, et vous pourrez commencer à le déployer. il.

Remarque: je viens de décrire un processus de gestion des versions principalement utilisé pour de nombreux projets interdépendants. Pour un petit projet, vous pouvez ignorer l'importation dans l'outil VCS et stocker vos livraisons ailleurs.

Autres conseils

Créez un fichier de propriétés contenant le numéro de version et faites référence au fichier de propriétés par tous les composants

  • Les fichiers Java peuvent référencer les propriétés via
  • XML peut utiliser des inclus?
  • HTML peut utiliser un code JavaScript pour écrire le numéro de version à partir des propriétés du HTML
  • Les scripts de shell peuvent lire dans le fichier

Outre ceux de Craig Angus, la version des outils utilisés est fournie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top