Packager ses libs

  • Intégration continue
  • Dépôt dédié (public ou privé)
  • Numérotation des versions
  • Ajuster le rythme

Presenter Notes

Gérer les dépendances

  • Release early, release often
    • Marche bien pour une bibliothèque bien cadrée
    • Moins pour un module métier
  • Paired releases
    • Livraison des dépendances en même temps que l'application
    • Efficace pour les composants fortement couplés

Presenter Notes

Automatisation

  • Intégration continue
  • En fin de build, injection sur le dépôt "développement"
    • Numéro de version en -dev
    • Prévoir un script pour automatiser une nouvelle release
      • Mise à jour du numéro de version dans les fichiers
      • Commit de bump & tag
      • Upload sur le dépôt
    • Semantic versionning

Presenter Notes

Gestion des dépendances

  • Les branches de développement tirent leurs versions du dépôt de développement
  • Les branches "pour livraison" s'appuient sur le dépôt stable
    • Penser à packager la nouvelle version des dépendances
    • Gérer les numéros de version :
      • >=0.19.0-dev-123 sur la branche de développement,
      • >=0.20.0 une fois livré

Presenter Notes

Penser downstream

  • Tester l'installation des versions "packagées"
  • Si on livre en Debian, l'inclure en fin de processus
  • Prévoir un Makefile pour les opérations non gérées par setup.py
    • Compilation des .po
    • Conversion less -> js/CSS
    • collectstatic

Presenter Notes

Références

pip install --upgrade distribute; pip uninstall distribute

Presenter Notes