Gestion de projet multi-parties

Gestion de projet multi-parties - Divers - Programmation

Marsh Posté le 09-11-2006 à 16:44:46    

Bonjour,
 
Je travaille actuellement sur le projet d'une plateforme web. Cette plateforme est composée d'un noyau et de plusieurs modules plus ou moins indépendents les un des autres selon le module.
Cette plateforme est utilisée par plusieurs clients, mais ils ne désirent pas tous utiliser l'integralité des modules.
Je dois donc m'organiser pour que quand je fais une modif sur un module, toutes les personnes en aillant l'utilité recoivent la modif, et que les autres non.  
Pour le moment je m'organisais avec un projet complet (contenant tous les modules) et un script de deploiment qui envoyait le bon module au bon client. Mais voila, maintenant je commance à être embêté par le fait que certains fichiers, qui doivent être présents chez tous les clients, ne contiennent pas les mêmes info (par exemple les identifiants de connection, etc.) ce qui m'obblige à chaque fois à aller faire à la main les modifications à ces fichiers ... Ce qui est de plus en plus long et difficile vu que le nombre de fichiers de ce type augmente.
 
Je voudrais donc savoir comment vous vous y prenez pour regler ce genre de problème, y a-t-il des logiciels (sous linux de préférence) a qui on soit capable de gerer ce genre de truc?
 
J'ai pensé a faire une architecture composée de liens symboliques au repertoire de base + de fichiers différenciés pour chaque client mais je m'en sort pas trop :s (quand l'arborescence devient compliquée c'est un vrai calvaire).
 
Je vous remercie de votre aide


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 09-11-2006 à 16:44:46   

Reply

Marsh Posté le 09-11-2006 à 16:50:39    

pour les trucs "spécifiques" à chaque client (accès à la base, etc.) pourquoi ne pas reprendre le système du "web.config" de .NET ?
ainsi l'ensemble de l'application est 100% identique pour tout le monde, sauf ce fichier.

Reply

Marsh Posté le 09-11-2006 à 17:03:06    

Je ne connais pas bien web.config mais j'ai l'impression que ça permet uniquement de faire de petites modifications (par exemple pour le fichier de connection ça marcherait :)) mais rien de plus, alors que certaines pages (par exemple la page d'acceuil) sont completement différentes de client en client.
Je pense que ce que je cherche pourrait être representé par une sorte de logiciel faisant l'interface entre plusieurs projets et moi. Par exemple, quand un fichier/repertoire existe sur toutes les plateformes mais est différent, plusieurs copies de ce fichier sont faites, et l'interface me fourni la bonne "au bon moment" ... Parcontre je sais absolument pas si ça existe :/ et je trouve rien sur google :/ Pourtant je doute être la première personne à avoir ce problème [:pingouino]


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 09-11-2006 à 17:04:41    

Si tu utilises un outil de versionning, il te suffit de ne pas mettre le fichier de config dans la branche et si vraiment un jour tu as besoin de le modifier(genre ajout de ligne) tu fais un petit script qui ajoutes les nouvelles lignes à la fin.
 
Si pas de versionning... il est temps de s'y mettre.

Reply

Marsh Posté le 09-11-2006 à 17:05:15    

là, j'ai pas trop d'idée.
 
de ce que je comprend, chaque client s'héberge chez lui ? oui si tu héberges tout le monde ?
 
dans le second cas (ça marche aussi pour le premier mais bon), le mieux est de se poser la question d'un redéveloppement important de la gestion du multi-site par l'application elle-même.
 
c'est à dire avoir un unique source pour tous les domaines, et se démerder, à partir d'infos de configuration (si possible, au maximum dans la base) pour faire le bon rendu.
 
 
par exemple, à mon boulot, je travaille avec un ERP.
cet ERP se compose de centaines de petits exécutables.
 
tous les clients ont les mêmes EXE.
seulement, parceque tout le monde ne veut pas faire la même chose avec, ils ont des comportements différents.
on utilise pour ça des "PPE" ("petit paramètre extra" :D) qui sont simplement des valeurs dans une table spécifique de la base de données, et que l'EXE va tester à chaque exécution afin d'adapter son comportement.
 
c'est pas super évident à expliquer, mais disons que cette notion de paramétrage permet d'utiliser chez un client la fonction de validation d'une commande d'achat pour changer le statut d'un évènement d'achat, faire une mise à jour de ses compteurs de stock, et lancer une édition, alors que chez un autre client, ça va recopier son évènement de commande en évènement de réception, avant de solder la commande et ne pas toucher aux compteur de stock).
 
en gros, le source est bourré de "case" sur ces paramètres, et ça permet à tout le monde d'avoir la même version sans du tout avoir le même fonctionnement.


Message édité par MagicBuzz le 09-11-2006 à 17:11:05
Reply

Marsh Posté le 11-11-2006 à 11:15:13    

Rebonjour,
 
Donc j'ai installé subversion sur mon tronc "de base". Si j'ai bien compris, il faut que je fasse un fork par "client"?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-11-2006 à 09:38:21    

ça dépend vraiment de ton appli! un fork par module ou par client ...
 
Mais de ce que j'ai compris je ferais un "Core Module" qui est le plus petit dénominateur commun à chacun de tes projets, et ensuite une version par client ( sauf si certains modules sont présents identiquement sur plus d'un client), bref je t'aide pas la :D

Reply

Marsh Posté le 14-11-2006 à 21:01:22    

Ou en gros c'est ça. Le problème étant que certains modules, se retrouvent chez chaque client, mais avec des spécificité differentes (exemple bidon : Le module X herite de Y et contient la classe C. Chez tout le monde, sauf chez le client F, la classe C ne contient que le constructeur. Du coups je me trouve avec 1 fichier qui est different suivant le client)
Et vu que comme vous l'avez senti, je n'utilise pas de versioning (pour le moment on travaille à 2 sur ce projet, et on n'a pas encore eu le besoin d'utiliser des serveurs cvs/svn), je suis totalement paumé sur la strategie à adopter.  
Si une âme genereuse pouvait m'éclairer :)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-11-2006 à 20:22:36    

Personne ? :(


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-12-2006 à 22:33:37    

Bonjour, je reviens à la charge.
J'ai implanté un système subversion avec plusieurs branches (une par client en fait). Par contre y a-t-il moyen de faire en sorte qu'une modification sur le tronc soit propagée directement et immédiatement à toutes les branches? Ou faut-il que je me pose sur les branches une par une et que je fasse un update du/des fichiers en cause?
 
Merci


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 04-12-2006 à 22:33:37   

Reply

Marsh Posté le 04-12-2006 à 23:53:52    

Question supplémentaire.
 
J'ai commité tout mon projet, et maintenant il y a certains fichiers que je désire mettre "readonly" (c'est des templates destinés à être modifiés par chaque branche, et je veux éviter de les écraser par mégarde). J'ai vu qu'on peut ajouter des trucs en "svn ignore" mais pas une fois qu'il sont déjà commités. Est-ce que qqn peut me dire comment faire?
 
Merci


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed