Forum Programmation.php Comment développer un logiciel Open Source?

Posté par  .
Étiquettes : aucune
0
18
oct.
2005
Cher amis du forum,

J'ai l'intention de développer un logiciel Open Source en PHP/MySQL sous linux, mais je ne sais pas encore comment s'y prendre.

J'ai quelques questions à vous poser sur les outils techniques à mettre en place pour permettre a des gens de divers horizons de pouvoir développer une application Open Source ensemble:

1. Outre PHP/MySQL qui sont déja installés sur notre serveur linux, quels autre outils devraient nous être nécessaire pour permettre à des gens de Paris ou de Lille de développer librement

2. Pour la gestion du code, comment un utilisateur peut il mettre à jour ou apporter du code sans pour autant bloquer le bon fonctionnement du logiciel.

3. Doit il y'avoir un modérateur dans un tel projet pour contrôler le code soumis.

En espérant dans réponse à mes questions, je reste attentif à vos suggestions et conseils.

Merci

Que faudrait-il comme
  • # heuu

    Posté par  . Évalué à 2.

    Dans l'OpenSource tout le monde ne peut pas ecrire n'importe quoi dans n'importe quel logiciel. Sinon c'est la porte ouverte à toutes les fenetres

    Le code source est mis a disposition via un cvs, un acces ftp ou un site http ...

    le developpeur externe lit le source qu'il a téléchargé, vois qu'il lui manque un truc ou qu'il y a un bug, il ecrit la modification et il t'envois le fichier modifié, toi tu lit la modification, et si elle est pertinante tu l'ajoute dans le source de ton logiciel que tu remet ensuit a dispo.

    Ca c'ets la base. Une variante est que le développeur fasse un patch pour facilité l'integration, en gros c'est un ou plusieurs fichier qui rassemble toute les différence avec le fichiers original. (l'outil pour faire cela est "diff") et toi tu lit les fichiers (plus facil, tu n'a pas a chercher les modifs, il n'y a _que_ les modifs) et si ça te parrait pertinent tu applique le patch sur tes source avec la commande "patch"

    Pour travailler a plusieur personnes de confiances sur un projet, le systeme de gestion de version ce revelera bien utile (cvs ou subversion pour les plus connus) pour eviter d'effacer les modif d'un camarade en ecrivant sur le fichiers qu'il vient de metre à jour ... (ce qui n'empeche surtout pas de communiquer)

    De toute façon il faut qu'il y ai un processus de validation des sources pour release des versions stable du projets (branche cvs/subversion) ...

    Regarde comment ca marche sur http://sourceforge.net ou tuxfamily.org ou http://savannah.gnu.org/ pour en siter quelques uns ...

    Dam
    • [^] # Re: heuu

      Posté par  . Évalué à 1.

      Si j'ai bien compris votre message, pour dévélopper en communauté Open Source il faut absolument un processus de validation des codes sources soumis surtout si on utilise un acces ftp. Ce processus de validation n'est il pas trop lourd pour une application de grand envergure?

      Avec CVS, n'y a t il pas moyen de permettre aux gens de développer directement sur la machine et de pouvoir mettre à jour leurs modifications. Si aprés des modifications, le logiciel plante c'est à la personne de revenir en arrière à condition que CVS le permet. Ne penses tu pas que c'est une bonne méthode de travail?

      Le patch (diff) doit on l'écrire ou bien? A quel fréquence faut -il le lancer?

      Merci
      • [^] # Re: heuu

        Posté par  . Évalué à 2.

        Si tu laisse n'importe qui ecrire n'importe quoi tu sens bien que ca laisse comme un arriere gout de trou de sécurité enorme non ?

        Bien sur qu'il faut que quelqu'un de confiance valide les modification venant de l'exterieur ... (corolaire de base : le monde exterieur est ostile) chez Mozilla il sont 400 et les source sont lu 3 fois avant d'être intégrée dans le tron (si j'en crois http://www.marmottux.org/index.php/2005/10/15/353-tristan-ni(...)

        je ne crois pas me tromper en disant que c'est Linus lui même qui valide les modification apportée par les contributeurs au noyaux Linux ... (c'est assez grand comme projet ?)

        Le CSV permet de garder un historique des modification et de sortir des version stable tout en les maintenant (on merge les modif de maintenance avec la branche en developement ensuite) et en continuant de developper une nouvelle version.

        pour faire un diff il suffit de lancer la commande "diff" entre 2 fichiers (lo'riginal et la version modifiée) ensuite tu lances "patch" pour intégré la modif sur la version à corriger (qui peut etre un peu différente que la version qui a servit d'originale pour le diff)

        Dam
  • # Honnêtement,

    Posté par  . Évalué à 3.

    D'abord, ne crois pas que c'est parce que tu vas ouvrir un forums un cvs, un site web et tout et tout que des milliers de développeurs font t'aider.

    - D'abord parce qu'ils n'ont pas forcément le temps,
    - et de 2, ils n'en ont pas forcément envie.
    - 3eme cas. ils ne connaissent pas ton projet.

    Mes conseils: (si je peux me permettre).
    - Vois petit au départ. une page web simple avec les instructions pour télécharger, installer et configurer ton truc. L'idéal, c'est de faire 2 versions, une en anglais, une en français.

    - Code une première version. Fait attention à produire des commentaires utiles et des sources clairs. Au besoin, note tout sur un wiki comme une aide à celui qui aimerait se lancer dans l'aventure avec toi. Important aussi : LE CHOIX D'UNE LICENCE.

    - Ta première version simple est fini ? bien. Fait un peu de pub sur des sites comme ici, sur d'autres plus spécialisé php/mysql, sur freshmeat... Si ton projet répond à un besoin, quelques personnes viendront.

    - Prévoit l'avenir calment. Lors qu'un volontaire de demandera s'il peut participer, demande lui quelles structures il aimerait, et met en place le strict nécessaire.:

    - une mailing liste (avec archive sur le site web)
    - un bug tracker.
    - un wiki pour la doc.

    et laisse venir. Continue ton projet à ton rythme et surtout n'attend pas d'aide, tu pourrais être déçu.

    Mais la question importante a se poser est : "Qu'est ce que je veux développer ?" et "existe-ce qu'il n'existe pas déjà un type de projet open source avec une licence qui me conviendrait auquel je pourrais participer???" et si après avoir chercher, rien ne correspond à ton besoin, regarde si tu ne peux pas utiliser d'autres briques open sources pour monter ton affaire.

    Bon courage.
    • [^] # Re: Honnêtement,

      Posté par  . Évalué à 1.

      et plus sérieusement, le "chef de projet" pourrait commencer par apprendre les bases de l'informatique et des outils de développement existants.
      • [^] # Re: Honnêtement,

        Posté par  . Évalué à 2.

        Pas forcement, il peut par exemple en imposer...

        Quant aux bases de l'info, j'aurai plutôt dit base de la programmation, car sinon les bases de l'info, c'est quoi? Tapez au clavier? Savoir surfer sur internet?
        Je pense que c'est pour ça que t'es fait moinsser, car tu ne definit pas ce que sont les bases de l'info qu'un chef de projet doit savoir.
        • [^] # Re: Honnêtement,

          Posté par  . Évalué à 1.

          je précise :les base de l informatique professionnelle et de production

          "quels autre outils devraient nous être nécessaire pour permettre à des gens de Paris ou de Lille de développer librement "

          les moyens de communications informatisés en général

          en dehors de ça :

          "un logiciel Open Source en PHP/MySQL sous linux, mais je ne sais pas encore comment s'y prendre."

          Quels besoins ? L'open source semble etre l'objectif et pas ce que va faire le soft.
          comment s y prendre ?
          Les bonnes questions ne sont pas posées => manque de maitrise du domaine du développement, confirmé par :

          "Pour la gestion du code, comment un utilisateur peut il mettre à jour ou apporter du code sans pour autant bloquer le bon fonctionnement du logiciel."

          Réponse : recherche sur google : développement collaboratif
          • [^] # Re: Honnêtement,

            Posté par  . Évalué à 2.

            PArce que pour moi, les connaissances de base en info, c'est pas de pondre les lignes en C, mais de savoir où se trouve le noyau des differents unix par exemple. Ou alors ce qu'est un traitement.
            Enfin bref, chacun voit midi à sa porte.
            Il n'y a qu'une informatique mais beaucoup de point de vue differents.
            Ton point de vue est le tien, mais n'est pas obligatoirement vrai pour tout le monde.
      • [^] # Re: Honnêtement,

        Posté par  . Évalué à 2.

        Je pense que tu n'as pas compris le but de mon message. Notre probléme n'est pas une connaissance des bases de l'informatique!

        Ce qui nous anime actuellemnt c'est que nous travaillons dans un domaine de Recherche. Nous voulons patarger les fruits de cette Recherche en développant une application sous licence Open Source et les personnes le désirant peuvent participer à sa réalisation. C'est surtout cette idée de partage qui nous tient à coeur. Mais avant d'ouvrir notre application gratuitement au monde extérieur, nous voulons profiter de votre expérience pour savoir ce qu'il faut faire ou éviter dans la mesure où c'est une première expérience.

        Merci néanmoins pour tes commentaires.
    • [^] # Re: Honnêtement,

      Posté par  . Évalué à 2.

      Mais la question importante a se poser est : "Qu'est ce que je veux développer ?" et "existe-ce qu'il n'existe pas déjà un type de projet open source avec une licence qui me conviendrait auquel je pourrais participer???" et si après avoir chercher, rien ne correspond à ton besoin, regarde si tu ne peux pas utiliser d'autres briques open sources pour monter ton affaire.

      D'accord avec toi sur la démarche, mais parvois il vaut mieux, surtout pour un petit bidule tout simple partir de zéro et faire un truc qui répond a ses besoins, plutot que de mettre le nez dans une "usine a gaz" ( egroupware par exemple) et de l'adapter a ses besoins pour n'utiliser qu'1 % de ses capacités. Le tout est de savoir évaluer le temps et l'investissement que prendra chacune des deux méthodes.
  • # C'est simple

    Posté par  . Évalué à 2.

    Supposons que vous mettiez votre logiciel sous GPL.

    * Oubliez ce que vous pensez sur le logiciel libre (genre "tout le monde peut ecrire")
    * Developpez votre code comme vous l'auriez fait pour n'importe quel logiciel
    * Distribuez non seulement le binaire, mais aussi le code source.

    Voila. Notez que a aucun moment vous n'avez laisse de ftp ou de cvs ouvert en ecriture. La diffusion se fait completement de vous vers les utilisateurs.

    Maintenant si vous avez de la chance vous allez recevoir des contribution, et c'est a vous de decidez si vous les integrez ou pas. Mais c'est seulement si vous avez de la chance.

    Soyez conscient que personne ne vous aidera par benevolat, ou parce que votre projet semble porteur. Si quelqu'un vous aide, ce sera quelqu'un a qui votre logiciel est deja utile, mais il lui manque un petit alpha (qu'il va developper). C'est a vous de commencer le projet, et de le rendre assez mature pour etre utilisable. Ne comptez pas sur l'aide d'une communaute au debut.

    En conclusion: pour un petit projet, ou un projet qui demarre, les methodes ne sont pas bien differentes pour un logiciel libre ou pour autre chose.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.