2010-01-02 12 views
2

J'ai beaucoup de petits projets (à la maison comme au travail). J'écris un script pour automatiser les versions. Je le fais dans mon temps libre pour apprendre Python.Mon script de version en vaut-il la peine?

En fait, il fait un travail assez facile:

Pour chaque projet donné:

  1. exporter un dossier de dépôt svn
  2. Créer une archive (tar.gz, zip, etc.) avec elle
  3. télécharger sur un serveur FTP public

il peut gérer le tronc et l'étiquette s (c.-à-d. exporter le répertoire courant OU exporter chaque dossier dans un répertoire donné). Il en tant que support de référentiel multiple.

Cependant, je ne suis pas un programmeur expérimenté et puisqu'il fonctionne à peu près je pose quelques questions sérieuses:

  • Est-ce la meilleure façon de gérer les rejets (ou balises, ce que vous appelez)?
  • Ce projet pourrait-il être utile à tout le monde sauf moi?
  • Est-ce que ce projet en vaut la peine ou devrais-je retomber en écrivant quelques lignes de shell dans un crontab pour faire le même travail?

Merci.

+3

Si vous apprenez et que vous l'aimez, allez-y.Si cela faisait partie d'un projet professionnel/professionnel, j'examinerais d'abord les solutions existantes; pour le passe-temps/travail éducatif, c'est génial –

+0

Comment pourrait-on juger si votre implémentation particulière est la «meilleure» façon de le faire sans lire le code? – bmargulies

+0

Michael, je le fais pour m'amuser mais je suis prêt à l'utiliser au travail. Bibgulies, je parlais de ce que fait le programme, pas du code lui-même. – SamK

Répondre

1

Personnellement, je pense que c'est un excellent moyen d'utiliser Python (ou n'importe quel langage de programmation, d'ailleurs): vous l'utilisez dans un but pragmatique avec un gain immédiat et vous gagnez de la valeur dès la première ligne de code. Cela vaut toujours la peine de voir comment une langue peut résoudre vos problèmes pratiques de tous les jours, au lieu des exemples théoriques de jouets que les tutoriels ont habituellement. Est-ce le meilleur moyen de gérer les versions (ou tags, quel que soit votre nom)? Les libérations sont généralement effectuées manuellement, dans le sens où un humain prend la décision du moment où il doit être libéré. Mais le processus de libération réel est certainement quelque chose qui devrait être automatisé - l'humain ne devrait pas faire beaucoup plus que pousser un bouton pour faire bouger les choses. Ce sera génial si vous êtes diplômé à tout moment à un système d'intégration continue. Cela dit, il y a quelques gestionnaires de build existants qui automatisent déjà le processus de publication des versions, et c'est probablement l'endroit où quelqu'un irait en premier s'ils devaient le faire eux-mêmes. Mais qui sait - peut-être que les gens préféreront votre version pour sa simplicité et son non-ballonnement.

Ce projet pourrait-il être utile à quiconque d'autre que moi?

Certainement! Même si vous ne le pensez pas, mettez-le sur Github (ou ailleurs) de toute façon, et cela peut faire partie de votre portefeuille de logiciels.