Il faudrait définir la façon dont les ajouts/modifications peuvent être faits au niveau du code, des datas et des assets graphiques, définir la façon dont on peut committer (histoire d'avoir des branches utiles et pas plein de scories qui trainent), peut-être une branche claire qui permette aux mainteneurs de paquets de savoir qu'ils peuvent s'appuyer dessus sans s'attarder sur les branches de développement.
Ma proposition se base sur Git, et son interface graphique GitLab, et le workflow Gitflow.
De ce fait, j'ai prévu d'avoir 4 branches principales :
Merge = on prend toutes le modifications.
Cherry-pick = on ne prend que certains commit, et pas d'autres.
Il y aura également des branche secondaires (propre à Gitflow) :
Plus d'info sur GitFlow ici : http://danielkummer.github.io/git-flow-cheatsheet/index.fr_FR.html
Correspondances des branches :
Avantages :
Inconvénients :
Dremor, qui s'occupe des paquets, aurait besoin de savoir où exactement obtenir les données à empaqueter, cela doit être défini clairement.
Une liste des branches serait également utile, avec des sandbox pour ceux qui veulent par exemple.
Enfin, il faudrait rédiger tout cela clairement et proprement pour faciliter et aider les contributions. Des schémas détaillés, des instructions claires et des notices sur les différents dépôts aideraient.
C'est la page Recupérer les données : Mercurial, Git qu'il faudrait refaire
Pour réfléchir à l'usage (ou non) de GitFlow : Une critique avec sa suite. Toute la question semble être de voir si on est plutôt 'merge' ou plutôt 'rebase' car cela affecte l'organisation générale (la première option = gitflow,la seconde donnant un historique plus linéaire). Il y a des éléments de réflexion à récupérer dans Bien utiliser Git merge et rebase.
Il faut aussi tenir compte du fait que nous aurons une branche upstream
qui sera issue du code Mercurial de Bitbucket pour récupérer les commits de RC.
Documentation possible sur Git:
Documentation sur GitFlow: