Comment gérez-vous vos projets Delphi avec des composants tiers dans le contrôle de Version?

L'installation de composants tiers prend toujours beaucoup de temps, surtout si vous en avez de gros, mais cela prend aussi plus de temps si vous configurez l'environnement sur plus d'un ordinateur.

Et je pense les ajouter au contrôle de Version (Subversion), donc il sera toujours facile de commander le projet avec tous les composants requis.

Alors, comment vous gérez cela, et quelle est la meilleure pratique pour les gérer à l'intérieur du VCS?

Considérons également certains de ces tiers viennent sans source mais en tant que bibliothèques Delphi. (BPL).

24
demandé sur Paul Roub 2009-02-12 18:53:18

5 réponses

Si nous avons la source, nous l'incluons dans notre référentiel, sous un dossier séparé.

Si nous n'avons pas la source, nous conservons simplement les binaires les plus récents (BPL, dll, etc.) dans le référentiel et incluons des instructions d'installation / utilisation dans un document d'installation.

Cela ressemble à ceci:

\root
    \third_party_stuff
        \vendor1  --we *do* have the source for this
            \src
            \bin
        \vendor2  --we *do* have the source for this
            \src
            \bin
        \vendor3  --we don't have the source for this one
            \bin
    \our_stuff
        \project1
            \src
            \bin
        \project2
            \src
            \bin
13
répondu JosephStyons 2009-02-12 15:56:14

Avec Subversion, j'utilise la fonction externals. Il est facile d'utiliser les éléments tiers dans plusieurs projets; lorsque vous consultez un projet, vous obtenez également les dépendances externes.

Si vous ne l'avez pas déjà, vous devriez obtenir une copie de Pragmatic Version Control en utilisant Subversion. C'est un excellent livre sur la fonctionnalité de Subversion et comment faire les choses. Bien qu'il fasse référence à SVN à partir de la ligne de commande, l'information est également facilement traduisible par L'interface graphique dans TortoiseSVN.

Pour réinstaller les composants dans Delphi pour les projets plus anciens, j'exporte généralement les entrées de Registre pour n'importe quelle version de Delphi utilisée dans le dossier du projet, puis je vérifie cela .Fichier REG dans Subversion avec le projet. Vous pouvez facilement consulter le projet, exporter votre section de registre Delphi existante pour la version correspondante de Delphi, importer la.Fichier REG à partir du dossier source de votre projet, puis démarrez Delphi avec tous les composants installer.

En ce qui concerne le problème "binaire BPL", honte à vous! Si vous avez des projets en fonction d'outils tiers, vous devriez acheter la source pour eux. De cette façon, vous êtes protégé contre la fermeture de cette entreprise, la suppression de la prise en charge des composants ou les nouvelles versions de Delphi qui ne sont pas compatibles. JeToujours obtenir la source pour les composants tiers; si la source n'est pas disponible, je trouve un produit différent ou écris le code moi-même. Cela s'appelle de l'auto-préservation. :-)

11
répondu Ken White 2009-02-12 17:13:15

Tout d'abord, je suis d'accord avec Ken et Fabricio que vous devez avoir le code source pour tous les composants que vous utilisez dans un projet. Tout le reste ne demande que des ennuis.

Nous n'utilisons pas Subversion pour notre contrôle de Source, mais je suppose que ce que nous faisons serait toujours applicable...

Chaque projet que nous travaillons a une copie complète de tous les composants (source) utilisés dans ce projet. Lorsque nous publions, nous créons une branche de version qui inclut les composants ainsi que le source du projet. Chaque projet inclut son propre répertoire BPL.

Nous créons toujours des raccourcis séparés pour exécuter Delphi pour chaque projet (ou branche d'un projet) sur lequel nous voulons travailler, et utilisons le paramètre de ligne de Commande-R pour définir une clé de Registre unique pour les paramètres Delphi de ce projet.

Nous nous assurons ensuite de remplacer la variable D'environnement Path dans Delphi pour pointer vers notre répertoire BPL de projet au lieu du répertoire BPL de Delphi normal.

Nous définissons le BPL et Les répertoires de sortie DCP pour tous les composants doivent être le répertoire BPL du projet local.

Cela nous permet d'avoir plusieurs versions de Delphi, avec plusieurs versions de projets utilisant différentes versions de composants sans aucun problème.

2
répondu Alistair Ward 2009-02-13 06:10:08

Je suis d'accord avec Ken White sur ceci: Delphi 3rd party components ' utilisé dans le code de production

Doivent avoir le code source

Point. Binaires compilés-seules les distributions sont à des fins d'évaluation uniquement . C'est notre politique ici.

Quant à la question: Je ne les mets pas sur VCS. En fait, j'utilise la dernière version que mes projets compilent et fonctionnent. Le désordre avec le système, la recherche, la bibliothèque, etc... les chemins ne vaut pas le coup. 2 JVCL sur la même machine ou comimg en arrière versions par tout nouveau projet? ARRRRGH.

Si je dois utiliser une ancienne version sur un système de maintenance, supprimez une nouvelle machine virtuelle et installez la dernière version. Il fonctionne? OK. Pas? Il reste sur la VM jusqu'à ce que je découvre un moyen d'intégrer sur l'environnement principal.

Une version de chaque chose est plus que suffisante.

1
répondu Fabricio Araujo 2009-02-12 18:28:54

Il convient de mentionner que certaines entreprises comme LMD offrent un accès à distance à leur propre référentiel SVN pour les clients ayant un abonnement au support. Je trouve que c'est un bon moyen d'obtenir des corrections de bugs rapides pour les problèmes critiques.

1
répondu Roddy 2009-02-12 18:33:49