IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java et la gestion des versions d'un projet


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 34
    Par défaut Java et la gestion des versions d'un projet
    Bonjour.
    Etant étudiant à la fac, je vais attaquer mon premier projet java. J'aimerai être capable de versionner mon projet tout au long de cette évolution. Voici déjà mon idée pour la numérotation, je pense adopter un système en x.y.z

    x : Le numéro de version majeur, il change uniquement lorsque je fais de grosses modifications, qui peuvent casser la rétro-compatibilité avec les autres versions.
    y : Le numéro de version mineur, il change lorsque j'ajoute de nouvelles fonctionnalités au programme, que je supprime des choses où que je corrige des bugs importants.
    y : Le numéro de release, il change quand je corrige des petits bugs ou que je fais de très légère modifcations.

    Que pensez-vous de ce système ?

    Une deuxième chose, j'ai récemment découvert git. Je n'arrive pas à comprendre comment je vais pouvoir l'utiliser pour versionner mon projet, est-ce qu'a chaque commit je vais devoir changer mon numéro de version, comment vais-je devoir procéder si je veux avoir toutes les versions de mon projet sur github ? J'ai du mal à comprendre comment coupler mon versionning avec l'utilisation de git. Merci à vous

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en général non, on ne fait pas un numéro de version sur chaque commit, mais un numéro de version sur chaque release qu'on fournis à l'extérieur. Le reste, c'est juste des snapshots.

    Typiquement tu va avoir la version x.y.z-SNAPSHOT (ou rc, ou buidd123456 peu importe) sur laquelle tu fais tout ton travail, et quand il faut livrer quelque chose ça deviendra la version x.y.z. Quand à la version sur ton git, elle passera à x.y.(z+1)-SNAPSHOT par exemple.

    Bien que je comprenne la démarche de vouloir te faire au versionning, un projet scolaire n'aura en général qu'une seule version, la version 1.0 qui est ce que tu livre à ton prof.

    Github n'est pas vraiment là pour gérer tes numéros de version, il est là pour gérer l'historique de tes fichiers. Pour tes numéros de version, je dirais vas y lance toi essaie et vois ce que chaque méthode apporte.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 34
    Par défaut
    Salut et merci pour ta réponse

    Si je comprends bien, je ne toucherai pas à mon numéro de version lorsque je ferai des commits, je le changerai uniquement lorsque je rend disponnible une nouvelle version de mon programme ?
    Est-ce que tu as un systèe/méthode à me conseiller pour organiser chacunes de mes versions, car j'aimerai toutes les conserver. Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en général on marque les numéros de version dans le repository (github / autre) en taggant les versions du code source qui ont servis à créer la version X. Ainsi, si on a besoin de travailler à partir de cette version X on repart de ce tag, si on a besoin de reconstruire X on le fait à partir de ce tag aussi.

    Pour ce qui est du stockage du binaire, tout dépends de comment tu travaille. Maven travaille avec un repository où l'on publie les snapshots et les release, pour qu'elles soient conservées et reste accessible aux projets qui en ont besoin. Tu peux aussi simplement mettre chaque version que tu release dans un dossier public, etc. Toutes les options existent, et je ne pense pas qu'il en existe une meilleure que d'autre. L'important est toujours de marquer dans ton GIT que tu fais une release en taggant le code servant à construire cette release. Le plus souvent quand on a besoin d'une ancienne release, c'est pour créer un bug fix donc la partie tagging est importante.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Note que si ton projet est sous ANT tu peux ajouter qq directives dans ton build.xml pour auto-incrementer la version et la date du build sur à chaque compilations sur le serveur d'intégration (inutile de le faire sur les postes dev bien sur).

    Quelques chose de similaire à :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        <target name="-post-compile">
            <propertyfile file="${src.dir}/mon/projet/version.properties"  comment="Build Number for ANT. Do not edit!">
                <!-- This will initialize the entire file content if needed. -->
                <entry key="version.major" type="int"  default="0" />
                <entry key="version.minor" type="int" default="0" />
                <entry key="version.release" type="int" default="1" />
                <entry key="version.codename" type="string" default="" />
                <entry key="version.date" type="date" default="${timestamp}"/>
                <!-- Update relevant values -and initialize them if needed. -->
                <entry key="build.number" type="int" operation="+" default="1" />
                <entry key="build.date" type="date" operation="=" value="${timestamp}" default="${timestamp}"/>
            </propertyfile>
            <!-- Recopy modified file in the binaries folder. -->
            <copy  file="${src.dir}/mon/projet/version.properties" todir="${build.dir}/compiled/mon/projet/"/>
        </target>
        <target name="-pre-jar">
            <propertyfile file="${src.dir}/mon/projet/version.properties"  comment="Build Number for ANT. Do not edit!">
                <!-- Update relevant values -and initialize them if needed. -->
                <entry key="version.release" type="int" operation="+" default="0"/>
                <entry key="version.date" type="date" operation="=" value="${timestamp}" default="${timestamp}"/>
            </propertyfile>
            <!-- Recopy modified file in the binaries folder. -->
            <copy  file="${src.dir}/mon/projet/version.properties" todir="${build.dir}/compiled/mon/projet/"/>
        </target>

    Ce qui permet après d'ouvrir et de parser le fichier version.properties (qui sera inclus dans le JAR) pour afficher les valeur et dates dans l'UI ou sur la ligne de commande.

    Ici outre la version et la date du build lors de la compilation, la version et la date de release sont aussi modifiée lors du packaging en JAR (dans les dernières versions de NetBeans ces deux opérations ont généralement lieu à chaque compilation alors qu'auparavant le JAR n'était pas forcément créé à chaque compilation du projet).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Gestion des versions d'un projet VB6
    Par marco62118 dans le forum Discussions diverses
    Réponses: 2
    Dernier message: 16/02/2011, 10h07
  2. [Utilisation] Gestion des versions archivées
    Par tatou42 dans le forum CVS
    Réponses: 2
    Dernier message: 14/12/2005, 15h10
  3. [applet] gestion des versions Java
    Par bigVinz dans le forum Applets
    Réponses: 1
    Dernier message: 09/12/2005, 15h06
  4. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57
  5. Gestion des versions travail en équipe
    Par yanis97 dans le forum WinDev
    Réponses: 1
    Dernier message: 05/10/2004, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo