Uploaded image for project: 'Nuxeo Studio'
  1. Nuxeo Studio
  2. NXS-3102

Branch should integrate a proper version

    XMLWordPrintable

    Details

      Description

      aujourd'hui

      • snapshot: version=0.0.0-SNAPSHOT
        -> studio: oui
        -> admin center / nuxeoctl: oui
        -> maven: oui
      • release: version=1.2.3-qualifier
        -> studio: oui
        -> admin center / nuxeoctl: oui
        -> maven: oui
      • tag: version=tag
        -> studio: oui
        -> admin center / nuxeoctl: non
        -> maven: oui/non?

      bm et évolutions

      • release: version=1.2.3-qualifier
        -> studio: oui
        -> admin center / nuxeoctl: oui
        -> maven: oui
        BUG?: si version ne contient pas au moins un point -> BUG
        BUG?: peut-être un BUG si qualifier présent
      • tag: version=tag ??
        -> studio: oui? avec Release et Checkout
        -> admin center / nuxeoctl: non X
        -> maven: non X Build à la demande du tag - exemple: 1.2.3-tag-montag
      • 0.0.0-SNAPSHOT:
        -> admincenter: version de travail
        -> maven: snapshot de master
      • snapshot de branche de BM:
      • master: master-SNAPSHOT
      • checkout de nchapurlat de master: wip--nchapurlay-675D76-master-SNAPSHOT
      • checkout de rdaniellou de master: wip--rdaniellou-675DKB-master-SNAPSHOT
      • feature/branche2: feature-branche2-SNAPSHOT
      • checkout de glefevre de feature/branche2: wip--glefevre-I87KJH-feature-branche2-SNAPSHOT
      • snapshot de branche de BM:
      • master: 1.2.3-master-SNAPSHOT / 1.2.3-SNAPSHOT
      • checkout de nchapurlat de master: 1.2.3-wip--nchapurlay-675D76-master-SNAPSHOT
        branch: wip/nchapurlat-879879/master
      • checkout de rdaniellou de master: 1.2.3-wip--rdaniellou-675DKB-master-SNAPSHOT
      • feature/branche2: 1.2.3-feature--branche2-SNAPSHOT
      • checkout de glefevre de feature/branche2: 2.2.0-wip--glefevre-I87KJH-feature-branche2-SNAPSHOT
        CHANGEMENT:
      • on gère une version par branche
      • on utilise la version de la branche dans le nom du snapshot
      • on utilise le nom de la branche escapé comme qualifier
      • pas de qualifier pour master
      • on utilise le numéro de version d'une branche pour la releaser
        release: saisie validée (1.2.3 suggéré) - version suivante: saisie validée (suggéré 1.2.4-SNAPSHOT, 1.3.0-SNAPSHOT, 2.0.0-SNAPSHOT)
        validation: %d((\.%d)?\.%d)?

      Suggestion:

      • foldé les tags au même titre que les branches

      ============= TODO ==============
      =Fonctionnel
      A. créer une release, empêcher de créer une release existant dans une branche ? -> exists (based on .version file already exists in build folder)
      B. lister les releases/tags/versions pour toutes les branches
      C. Obtenir un artefact pour une version donnée (servlet Maven, Update Center, etc.)
      D. Merge deux branches avec des versions différentes, avec des nextVersion qui s'entrelacent
      E. Revert: OK revert is non destructive (it creates a new commit), thus releases/tags remain unchanged.
      F. Delete Tag d'une release: the current implementation deletes the tag, but let the jar + version file listing the release untouched (thus still appears in the GUI) -> OK
      G. when deleting a branch, are artifacts/snapshots deleted too?
      H. after a release, the proposed and selected nextVersion should not already exist (but may do so, the check is done when actually creating the release)

      =Implémentation Version
      1. Réutiliser Version.java, avec des propriétés null si nécessaire.
      2. créer AppDefinition.java, un objet représentant le contenu d'application.xml
      3. in the workspace adapter:

      • rename it from targetplatform only to versionadapter
      • être capable d'écrire soit la version, soit la target platform, soit les 2 (read, on complète avec les données d'input puis write)
      • en extraire un objet version (version + target platform) plutot qu'une simple target platform

      4. check the marshalling/xstream
      5. migration change nextVersion from DB -> application.xml (master) + check de la validité. Màj des fichiers versions utilisés pour le listing de branches
      6. store next version without -SNAPSHOT (add it visually) -> question: n'est-il pas plus simple de stocker -SNAPSHOT, plutôt que de devoir faire des manipulations à plusieurs endroits
      7. on change l'écran d'edit application definition: on ajoute la current version avec à coté du champs d'input un "-SNAPSHOT" qui exprime bien que c la version qu'on prépare
      8. on change le bouton release, le screen de release et le code qui release pour qu'il exploite la version de application.xml
      9. when you save your branch, it generates a .version file in the artifacts/snapshots directories. It needs to be updated

      Use Case / Implemented by:

      1 2 3 4 5 6 7 8 9
      A X X X   X X X X X
      B         X       X
      C X X X     X      
      D X X X     X     X
      E                  
      F                  

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: