====== Collaborer sur le dépôt khanat-ressources ====== {{ :fr:system.png?nolink |}} Ce dépôt contient toutes les données, généralement sous forme de données xml, des [[fr:tag:informatique:ryzom_core:datasheet:start|datasheets]] ou des [[fr:tag:informatique:ryzom_core:datasheet:primitives:start|primitives]] le plus souvent. C'està partir de ces données qu'il sera possible de créer un univers de jeu. Celui de Khanat en l'occurence. ===== Avoir un dépôt sur lequel travailler ===== ==== Mise en place d'un dépôt personnel (fork) ==== Pour commencer, il vous faudra forker le dépôt principal : [[gitlab>khaganat/khanat-ressources|khanat-ressources]]. Ainsi, vous aurez votre propre dépôt, sur lequel vous pourrez effectuer vos modification sans interférer avec le dépôt principal. Pour cela, il vous suffit de clique sur le bouton suivant sur la page d’accueil du projet. {{:fr:fork.png}} Vous serrez alors redirigé vers votre copie du dépôt. ==== Travailler directement sur le dépôt principal ==== Si vous êtes un développeur "officiel" (avec une autorisation d'accès dans le groupe LevelDesign) chez nous, vous aurez accès au dépôt principal sur notre GitLab : [[gitlab>khaganat/khanat-ressources|khanat-ressources]]. Vous n'aurez pas à créer un dépôt personnel (sauf si vous en avez envie) pour pouvoir contribuer, il vous suffira de travailler sur des branches en interne. ===== Le dépôt et ses branches ===== Khanat utilise un workflow inspiré de [[fr:gitflow]]. De ce fait, il y a deux types de branches : principales et temporaires. Les branches principales sont : * Branche **Master** (aka Lirria) : Branche **stable**, où seuls des éléments d'organisations importants sont autorisés à être mergés directement. Cette branche garantit un serveur fonctionnel, dans la mesure du possible. * Branche **Develop** : Branche de développement, dans laquelle les features terminées sont mergées, en vue des futures releases. * Branche **Spofu** : Branche de test, qui permet de tester sur le serveur spofu de nouvelles données. À cela s'ajoute des branches temporaires, ouvertes et fermées suivants les besoins: * Branche **Feature** : C'est **une nouvelle addition** au contenu de Khanat, développée dans une branche séparée afin de réduire les risque d'introduction de bugs dans develop. Elle sera à merge sur la branche "spofu" pour tester ou, si cela n'est pas nécessaire, sur develop. Les branches, que ce soit sur votre fork ou sur les dépôts officiels, doivent être nommés de la façon suivante: * Branche **Feature** : Doit être nommée "feature/[numéro(s) de(s) (l')issue][nom de la feature sans espaces ni ponctuation]" * Exemple : "feature/43-mission_peche" ===== Publication d'une feature ===== Une fois que vous considérez la feature que vous avez développé terminée (après des tests éventuels sur spofu), vous pouvez créer une Merge Request, à destination de **lirria**. Cette requête doit respecter ces impératifs : * La feature et son code doivent être documentée. * La Merge Request doit clairement expliquer la feature (son utilisation et de la doc éventuelle etc.) ===== Gestion des Merge Request ===== Lorsqu'on a terminé une //Feature//, 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. Cela permettra d'avoir un contrôle, ne serait-ce que formel, sur l'ajout. **On ne merge jamais soi-même directement sur Master**. ===== Gestion des Issues ===== De préférence à la [[taf>fr:start|la base TAF]], créez les demandes d'ajout de features sur le système Gitlab de ce dépôt. Bien évidement, les //Bugs// en rapport avec le contenu de jeu (datasheets, traductions et primitives principalement) sont à signaler ici également. De même, avant de commencer une tâche, créez une Issue que vous vous attribuez, comme ça vous pouvez numéroter la branche correctement et on sait que quelqu'un a commencé à travailler sur ce sujet. Les travaux à faire, modifications de fichier, créations, doivent être indiqués en se servant du système d'//Issues// de ce dépôt : [[gitlab>khaganat/khanat-ressources/issues|Issue sur khanat-ressources]] Il suffit de cliquer sur : {{ :fr:new_issue2.jpg?nolink |}} Vous renseignez ensuite les différents champs. Le titre doit être concis et le plus explicite possible. \\ Par contre, n'hésitez pas à être le plus précis possible dans la zone //Description//. Il y a ensuite 3 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 ; * //Labels// permet de choisir des tags pour déterminer le genre de tâche ; * //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. ===== Gestion des Milestones ===== On se servira des mêmes //milestones// que pour les autres dépôts et secteurs de développement du projet, présentés sur la page [[fr:milestones]]. ===== Gestion des Tags ===== Nous n'utilisons pas de //Tags// sur ce dépôt Git pour le moment. ===== Gestion des Labels ===== Les //Labels// doivent être génériques et permettre ainsi de regrouper par genre de compétence. Il est possible d'en créer lors de la génération d'une //Issue// si aucune ne convient mais cela peut être fait par la suite, surtout quand on est indécis. {{tag>Données Ryzom_Core Outils}}