Astuces pratiques pour Satis



Cette documentation apporte des astuces pratiques pour compléter la documentation originale
voir plus.
Comme vous avez vu dans le lien précédent, il faut installer satis dans un serveur ayant suffisamment d'espace disque pour stocker les packages.
Ce serveur jouera le rôle de dépôt des modules téléchargés.
On suppose ici que satis va prendre non seulement les bundles privés de l'entreprise, mais la totalité des bundles que nos projets en dépendent.

  • Après installation de Satis (exp ~/satis) , on fait la création du répertoire dépôt (exp ~/repo-lamp.sifast.local et on y crée un local host exp: repo-lamp.sifast.local ).
On définit un fichier de configuration Satis :
~/repo-lamp.sifast.local/satis.json

{
    "name": "Packagist Equipe LAMP SiFAST",
    "homepage": "http://repo-lamp.sifast.local",
    "repositories": [
        {"type": "vcs", "url": "https://github.com/sonata-project/SonataAdminBundle"},
        {"type": "vcs", "url": "https://github.com/KnpLabs/KnpMenuBundle"},
        {"type": "vcs", "url": "https://github.com/KnpLabs/KnpMenu"},
        {"type": "vcs", "url": "https://github.com/KnpLabs/KnpPaginatorBundle"},
        ...

    ],
    "require-dependencies": false,
    "archive": {
        "directory": "dist",
        "format": "tar",
        "prefix-url": "http://repo-lamp.sifast.local",
        "skip-dev": false
    },
    "config": {
      "github-oauth": {
        "github.com": "7cb413fe608fa901677b63d98ab2a24e87fxxxxx"
       }
    }
}


  • On peut choisir de charger dynamiquement les dépendances avec "require-dependencies", mais pour plus de visibilité et de contrôle j'ai choisi de l'y mettre en False.



  • Pour charger plusieurs bundles et plusieurs fois des github VCS, il faut se disposer d'un compte github et de générer un token et le mentionner une fois pour toute dans satis.json;


    "config": {
      "github-oauth": {
        "github.com": "7cb413fe608fa901677b63d98ab2a24e87fxxxxx"
       }
    }



  • Le téléchargement de quelques bundles prendra une période de temps importante et emmènera à annuler le chargement, faute de la valeur par défaut de COMPOSER_PROCESS_TIMEOUT (par défaut égale à 300) augmenter cette valeur pourra résoudre ce type de problème.

export COMPOSER_PROCESS_TIMEOUT=2000


  • Pour lancer une requete de mise à jour, il suffit de lancer la commande suivante:

 ~/satis$ php bin/satis build ../repo-lamp.sifast.local/satis.json ../repo-lamp.sifast.local/ -n
Ceci permettra non seulement le chargement des nouveaux dépôts ajoutés dans le fichier de configuration satis.json, mais également à charger les dernières branches des dépôts existants.


  • A chaque build satis, un fichier index.html sera généré, affichant les packages et ses releases. Une interface web accessible depuis votre host local.
Dans le composer.json de mon projet je mets la config suivante:
{
    "repositories": [
        { "packagist" : false },
        {
            "type": "composer",
            "url": "http://repo-lamp.sifast.local/"
        }
    ],
    ...
}



  • Définir "minimum-stability":"dev" pourra aussi de se débarrasser d'éventuelles surprises.
voir plus
Le chargement (composer update) est maintenant nettement plus rapide!

Il existe une autre altérnative de Satis qui est Toran Proxy (basé sur l'architecture de symfony), qui offre en plus la rapidité, une interface web facilitant la gestion des dépots VCS.

Commentaires

Posts les plus consultés de ce blog

Connecting to MS Exchange Server with Thunderbird

SVN and GIT Tag with Jenkins Job

[Solr 4.7] : Installation, Configuration , Manipulation