Giter Site home page Giter Site logo

clementine-framework-devtools's Introduction

Installation

Copier coller la ligne suivante dans un terminal :

curl -sS https://raw.githubusercontent.com/pa-de-solminihac/clementine-framework-devtools/master/init_devroot.sh -o init_devroot.sh && chmod u+x init_devroot.sh && ./init_devroot.sh

Le script va créer l'arborescence nécessaire dans un dossier clementine et y installer les outils nécessaires à la gestion de votre propre dépôt.

Performances : il est conseillé d'installer GNU parallel pour que le script puisse lancer les téléchargements en parallèle.

Explications sur l'arborescence

Le développement du framework Clémentine est organisé selon une arborescence précise :

/repository : c'est le repository utilisé par l'installeur des projets Clémentine. Il sert à distribuer les modules share. Il est rempli automatiquement par le biais du script /devtools/update_repository.sh

/modules/* : contient les dépots des modules share. Chaque dossier /modules/module/ contient 2 sous-dossiers : trunk pour le dépôt centralisant les développements du module (les releases sont créées parle biais de tags), et repository/scripts pour le dépôt contenant les scripts d'upgrades ainsi que les informations sur les dépendances du module.

/www/install : dépôt pour le dévelloppement de l'installeur

/www/trunk : dépôt pour la structure du framework (ie. l'arborescence qu'on créée pour tout nouveau projet Clémentine)

/devtools : contient les outils qu'on utilise lors du développement du framework, par exemple pour publier les packages (nouvelle release d'un module/du framework/de l'installeur, synchronisation du repository, et divers outils pour se faciliter la vie)

Publication d'une nouvelle version d'un module

Pour publier une nouvelle version du module users, dont les sources sont dans le dossier /modules/users/trunk :

  • préciser le numéro de version de la nouvelle version N.m dans etc/module.ini. (TODO: comment choisir un numéro de version ? N et m sont des entiers)
  • si la nouvelle version nécessite d'exécuter un script d'upgrade, il faut le créer dans /modules/users/repository/scripts/N.m/upgrade.php (où N.m est le numéro de version)
  • aller dans le dossier devtools : cd ../../../devtools/
  • créer la nouvelle version : ./create_package.sh users N.m (où N.m est le numéro de version)
  • c'est presque fini, il suffit de suivre les indications...

clementine-framework-devtools's People

Contributors

paquai13 avatar pa-de-solminihac avatar

Watchers

James Cloos avatar  avatar Pierre-Alexis de Solminihac avatar

clementine-framework-devtools's Issues

Créer un script rename_module

Le script se chargerait de :

  • renommer le dossier app/$from en app/$to
  • renommer les fichiers app/$from/ctrl/$from ***** Controller.php en app/$to/ctrl/$to ***** Controller.php
    • chercher-remplacer des noms de classes
    • chercher-remplacer des constantes utilisées : __WWW_ROOT_$FROM__ en __WWW_ROOT_$TO__(idem pour toutes les constantes du type)
    • idem pour model et helper
    • quid des fichiers config.ini (sections de config) ?
    • quid du fichier module.ini ?

Autoupdate

Les scripts devtools devraient vérifier qu'ils sont bien à jour avant de tourner.
S'ils ne sont pas à jour, arrêter le script en affichant :

  • Vos devtools ne sont pas à jour, faites un git pull

Certains scripts s'appelant en cascade, on prendra soin de ne faire cette vérification qu'au lancement du script principal (pour préserver les performances et pour éviter que la publication d'une mise à jour pendant qu'un script est en cours d'exécution ne le fassent planter lorsqu'il va appeler un sous-script).

Pistes à étudier :

  • utilisation d'une variable globale ou d'un lock pour ne pas refaire la vérification dans les scripts appelés en cascade ?
  • détecter si on est dans le script principal...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.