Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:godot:collaborer [2020/06/05 13:15] – [Gestion des Labels] YannKfr:godot:collaborer [2023/07/26 19:50] (Version actuelle) YannK
Ligne 3: Ligne 3:
 {{ :fr:godot:godot_logo_big.png?nolink&200 |}} {{ :fr:godot:godot_logo_big.png?nolink&200 |}}
  
-<WRAP center round todo 60%> +Ce dépôt [[https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-client|Khanat client]] sert à développer la partie client 3D du jeu, en se basant sur le logiciel Godot. Il contient des submodules git pour gérer certains apports, comme les assets. 
-Page en cours de réalisation/conception/rédaction --- //[[wiki:user:yannk|YannK]] 2020/06/05 09:05//+ 
 +<WRAP center round important 60%> 
 +La mise en place des submodules est en cours, mais non encore mise en place. Si la question vous intéresse, on en parle dans [[https://port.numenaute.org/khaganat/mmorpg_khanat/khanat-client/-/issues/7|ce ticket]]  --- //[[wiki:user:yannk|YannK]] 2021/10/11 10:58//
 </WRAP> </WRAP>
  
 +===== Chronologie =====
 +
 +Nous n'obtiendrons pas un client complet au premier jet. Nous proposons donc un succession de versions, chacune ajoutant de nouvelles fonctionnalités itérativement à la précédente. 
 +
 +Chaque version est numérotée x.y.z (voir la [[https://semver.org/lang/fr/|gestion sémantique de version]]).
 +  * x = version majeure. On le change quand les changements ne sont pas rétrocompatibles
 +  * y = version mineure. L’incrémentation se fait lorsqu’un ensemble de nouvelles fonctionnalités défini a été intégré, la compatibilité doit être maintenue, sauf dans le cas où la version majeure est en 0, car de nombreux changements peuvent être nécessaires avant de passer à la version 1.0.
 +  * z = version corrective. Incrémentée lorsque des correctifs de bugs sont ajoutés à une version mineure, sans ajout de nouvelle fonctionnalité.
 +
 +===== Versions ===== 
 +
 +==== Version 0.1 ====
 +
 +Le but de la 0.1 est d’avoir un client local qui permette de déplacer le personnage dans un environnement minimaliste extérieur statique, avec un résultat visuel sobre mais attrayant, présentant des spécificités du monde du Khanat et simple techniquement afin de tester les outils et processus de collaboration.
 +
 +Ce sera l’occasion  de mettre en place un sous-dépôt pour les assets glTF et de mettre en place une automatisation pour compiler les clients à fournir aux joueuses.
 +
 +Aucune fonctionnalité via un serveur n’aura à être implémentée.
 +
 +Lien vers le suivi des Tickets/Issues sur la forge : [[https://git.khaganat.net/groups/khaganat/mmorpg_khanat/-/milestones/1|Khanat Client - Release Candidate 0.1 ]]
  
 ===== Le workflow de travail ===== ===== Le workflow de travail =====
 +
 <WRAP center round info 90%> <WRAP center round info 90%>
-Créez toujours une [[#gestion_des_issues|Issue]] avant de créer une branche qui n'y est pas référencée.+Créez toujours [[#gestion_des_issues|une Issue/ un Ticket]] avant de créer une branche qui n'y est pas référencée.
 \\ Cela permet de suivre le travail en vérifiant si une branche Git avec ce numéro existe, de façon à éviter de refaire du travail déjà commencé. \\ Cela permet de suivre le travail en vérifiant si une branche Git avec ce numéro existe, de façon à éviter de refaire du travail déjà commencé.
 </WRAP> </WRAP>
Ligne 33: Ligne 56:
  
 ==== Le dépôt et ses branches ==== ==== Le dépôt et ses branches ====
 +
 +<WRAP center round important 60%>
 +Si vous n’avez pas accès en tant que développeur à notre dépôt officiel et travaillez depuis votre fork, merci de nous confirmer que la procédure fonctionne bien pour vous.
 +</WRAP>
 +
  
 Khanat utilise un workflow simplifié. Les branches principales sont : Khanat utilise un workflow simplifié. Les branches principales sont :
  
-  * Branche **Master** : Branche **stable**, qui contient toutes les données sonores qui servent au jeuainsi que les fichiers source.+  * Branche **stable** : c’est la branche qui contient le code qui est compilé pour fournir le client de jeu en cours. 
 + 
 +  * Branche **XXX_titre_du_ticket** : Branche contenant le développement d’un ticket (voir ci-dessous) XXX, en cours de travail. 
 + 
 +  * Branche **develop** : Branche par défaut sur laquelle le code récent se trouve, qui est celle qui vise à contenir les tâches des tickets définis pour le Milestone en cours. 
 + 
 +Les branches de module, que ce soit sur votre fork ou sur les dépôts officiels, doivent être nommées de la façon suivante : 
 + 
 +  * Branche **Module** : Doit être nommée "[numéro_du_ticket]_[titre du ticket en [[https://fr.wikipedia.org/wiki/Snake_case|snake case]]]" 
 +    * Exemple : pour travailler sur le ticket numéro 2 titré « Faire une des tâches détaillée de la tâche globale XXX », il faut créer une branche « 2-faire-une-des-taches-detaillee-de-la-tache-globale-xxx » 
 + 
 +Si vous êtes développeur officiel chez nous, vous pourrez créer automatiquement la branche et la merge request depuis l’issue en cliquant sur le bouton prévu : 
 + 
 +{{ :fr:godot:create_mr_from_issue.jpg?direct&500 |}} 
  
-  * Branche **module/XXX_nom_du_module** : Branche contenant le développement d’un module (voir ci-dessous) XXX, en cours de travail. 
  
-  * Branche **Develop** : Branche **historique**, utilisées lors des tests préliminaires, obsolète.+==== Travail sur un ticket ====
  
-Les branches feature, que ce soit sur votre fork ou sur les dépôts officielsdoivent être nommées de la façon suivante :+Si vous travaillez depuis un fork, vous devez créer une Merge Request, à destination de **develop** sur notre dépôt. Cette requête doit respecter ces impératifs :
  
-  * Branche **Module** Doit être nommée "module/[numéro_du_module][nom du module sans espaces ni ponctuation]en se basant sur les [[fr:gamedesign:khanat_client_godot:start#modules|modules]] définis dans le cahier des charges +  * elle doit avoir comme titre « DraftResolve "titre du ticket», donc, dans notre exemple, ce serait « DraftResolve "Faire une des tâches détaillée de la tâche globale XXX" » 
-        Exemple : "feature/3_dialogue"+  elle doit comporter en première ligne de sa description une commande pour fermer le ticket correspondant. Dans notre cas, ce serait « Closes #2 ».
  
-==== Publication d'un module ====+==== Merge sur la branche « stable » ====
  
-Une fois que vous considérez le module que vous avez développé terminévous pouvez créer une Merge Request, à destination de **Master**Cette requête doit respecter ces impératifs :+Une fois que l’ensemble des Tickets/Issues d’un Milestone a été résolu et que le client a atteint le point où il semble suffisamment achevé et stableon peut le passer sur la branche « stable ».
  
-  * La Merge Request doit clairement expliquer comment elle répond à la feature+Il est indispensable de bien vérifier le changelog à ce moment là, selon le modèle de [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). Un changelog permet d'avoir une idée claire de ce qui est possible/implémenté pour les tests du client.
  
 +Lors du commit de merge, il faudra passer une commande pour que la CI de Gitlab compile les clients ([[https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-client/-/issues/6|Ticket correspondant]] sur la forge).
 ===== Gestion des Merge Request ===== ===== Gestion des Merge Request =====
  
-Lorsqu'on a terminé un //Module//, il faut faire une demande de //Merge Request// en expliquant en quoi la tâche est terminée et l'affecter à une autre personne même si on a la capacité de merger directement.+Il ne faut pas hésiter à laisser des commentaires sur la demande de Merge Request, cette page est là pour expliquer les soucis, détailler l’approche etc. Cela permet de s’assurer que les solutions retenues sont pertinentes pour les autres contributrices et de faciliter l’intégration finale.
  
-Cela permettra d'avoir un contrôle, ne serait-ce que formel, sur l'ajout.+Lors de la validation de la Merge Requeston efface la branche de travail et on ne squashe pas les commits.
  
-**On ne merge jamais soi-même directement sur Master**.+**Dans la mesure du possible, on ne merge jamais soi-même directement**.
  
-===== Gestion des Issues ===== +===== Gestion des Tickets / Issues ===== 
-Créez les demandes de fonctionnaltiés ou les erreurs sur le [[gitlab>khaganat/mmorpg_khanat/khanat-client|système Gitlab de ce dépôt]] plutôt que sur [[taf>fr:start|la base TAF]] (qui sert surtout aux aspects non-techniques du projet Khaganat). Vous pouvez les rédiger en français par simplicité, mais dans la mesure du possible on essaiera de les traduire pour permettre à des contributeurs non francophones de collaborer. L'idéal est d'utiliser l'anglais et le français dans vos tickets, cela maximise les chances que quelqu'un puisse y répondre+Créez les demandes de fonctionnalités ou les erreurs sur le [[gitlab>khaganat/mmorpg_khanat/khanat-client|système Gitlab de ce dépôt]] plutôt que sur [[taf>fr:start|la base TAF]] (qui sert surtout aux aspects non-techniques du projet Khaganat). Il n’y a pas d’impératif d’utiliser l’anglais comme dans les commits et les commentaires du code, mais il est possible de l’utiliser, selon les personnes avec qui vous pensez collaborer. L'idéal serait d'utiliser l'anglais et le français dans vos tickets, mais vu la surcharge de travail que cela entraîne, ce n’est pas du tout obligatoire
  
 <WRAP center round info 80%> <WRAP center round info 80%>
  
-Avant de commencer une tâche, créez une Issue que vous vous attribuez, comme ça on sait que quelqu'un a commencé à travailler sur ce sujet.+Avant de commencer une tâche qui n’existe pas, créez une Issue que vous vous attribuez, comme ça on sait que quelqu'un a commencé à travailler sur ce sujet.
 </WRAP> </WRAP>
  
Ligne 79: Ligne 120:
 \\ Par contre, n'hésitez pas à être le plus précis possible dans la zone //Description//. \\ Par contre, n'hésitez pas à être le plus précis possible dans la zone //Description//.
  
-Il y a ensuite zones de champs à renseigner :+Il y a ensuite quelques zones de champs à renseigner :
  
-  * //Assignee// pour indiquer la personne à qui affecter la tâche ; +  * //Milestone// qui désigne la version du projet pour laquelle ce travail devra être fait (voir [[#gestion_des_milestones|ci-dessous]]) ; 
-  * //Milestone// qui désigne la version du projet pour laquelle ce travail devra être fait (voir ci-dessous) ; +  * //Labels// permet de choisir des tags pour déterminer le genre de tâche (voir [[#gestion_des_labels|ci-dessous]]) ;
-  * //Labels// permet de choisir des tags pour déterminer le genre de tâche (voir ci-dessous) ; +
-  * //Select due date// propose de fixer une date de remise des travaux.+
  
-Dans le doute, n'indiquez rien dans ces quatre champs. De toute façon, tout est éditable a posteriori donc ce n'est pas grave si vous faites des erreurs ou n'êtes pas assez précis.+Dans le doute, n'indiquez rien dans ces champs. De toute façon, tout est éditable a posteriori donc ce n'est pas grave si vous faites des erreurs ou n'êtes pas assez précis. 
 + 
 +===== Gestion des messages dans les Tickets / Issues ===== 
 + 
 +Pour chaque ticket, il est possible de laisser des messages. Chacun d’eux initie un fil de discussion auquel on peut répondre en cliquant sur l’icône de bulle dans son coin supérieur droit. Cela permet de conserver des fils thématiques sur des sujets abordés par le ticket. 
 + 
 +{{ :fr:godot:commenter.jpg?direct&500 |}}
  
 ===== Gestion des dossiers et des fichiers ===== ===== Gestion des dossiers et des fichiers =====
 +
 +Les noms des dossiers et des fichiers sont écrits en [[https://fr.wikipedia.org/wiki/Snake_case|snake_case]].
  
 **Les commentaires dans le code/les scripts se font en anglais**, de façon à ce que le code soit international. **Les commentaires dans le code/les scripts se font en anglais**, de façon à ce que le code soit international.
Ligne 117: Ligne 164:
 Description : Description :
   * contributors :   * contributors :
-      * indiquer le nom (obligatoire), le courriel (facultatif) et une url de référence (facultatif) pour chaque contributeur à ce fichier+      * indiquer le nom/le pseudonyme (obligatoire), le courriel (facultatif) et une url de référence (facultatif) pour chaque contributeur à ce fichier
   * licence :   * licence :
       * indiquer la licence appliquée aux fichiers de ce répertoire, pour uniformiser les références, utiliser les [[https://spdx.org/licenses/|codes spdx]], ce sera par défaut "CC-BY-SA-4.0" (ou  AGPL-3.0-or-later si ce sont des scripts/codes), mais cela peut être une licence plus permissive compatible.       * indiquer la licence appliquée aux fichiers de ce répertoire, pour uniformiser les références, utiliser les [[https://spdx.org/licenses/|codes spdx]], ce sera par défaut "CC-BY-SA-4.0" (ou  AGPL-3.0-or-later si ce sont des scripts/codes), mais cela peut être une licence plus permissive compatible.
Ligne 129: Ligne 176:
 ===== Gestion des Commits ===== ===== Gestion des Commits =====
  
-**On rédige ses commits en anglais**, de façon à ce que le code soit international (même si c’est du franglais, aucune importance).+**On rédige ses commits en anglais**, de façon à ce que le code soit international (même si c’est du franglais, aucune importance). Ne pas hésiter à remettre dans chaque message de Commit le numéro de ticket correspondant, cela peut aider à comprendre certains choix à l’avenir.
  
-Un commit est impérativement nommé en référence à un ''Bug'' qu’il participe à corriger ou une ''Feature'' qu’il contribue à implémenter. 
 ===== Gestion des Milestones ===== ===== Gestion des Milestones =====
  
-On se servira des //milestones// définies par le cahier des charges du client : [[fr:gamedesign:khanat_client_godot:start#versions]].+On se servira des //milestones// définies par le cahier des charges du client : [[https://git.khaganat.net/groups/khaganat/mmorpg_khanat/-/milestones]].
  
 ===== Gestion des Tags ===== ===== Gestion des Tags =====
  
 Nous n'utilisons pas de //Tags// sur ce dépôt Git pour le moment. Nous n'utilisons pas de //Tags// sur ce dépôt Git pour le moment.
- 
-<WRAP center round todo 60%> 
-Étudier la question et voir comment les déployer sur le projet 
-</WRAP> 
  
 ===== Gestion des Labels ===== ===== Gestion des Labels =====
-Nous n’utilisons pour l’instant que deux ''Labels'', qui sont affectés aux Issues : +La liste des Labels/Étiquettes est gérées au niveau du groupe Gitlab https://git.khaganat.net/groups/khaganat/mmorpg_khanat/-/labels
-  * ''Bug'' Pour les Issues décrivant un comportement anormal, une erreur ; +
-  * ''Feature'' : Pour les Issues décrivant une fonctionnalité nouvelle à apporter.+
  
  
-{{tag>Données Godot Outils Client}}+{{tag>Données Godot Outils Client  brouillon obsolète}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/godot/collaborer.1591355732.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact