Dotclear

Vous n'êtes pas identifié(e).

Annonce

#1 2013-07-16 14:43:25

lipki
Membre
Inscription : 2008-11-10

La bonne façon de proposer un patch

IMPORTANT : La 2.5.1 a été publiée (ou sur le point de l'être) ce matin et dorénavant tous les tickets concernant les futures releases 2.5.n (à commencer par la prochaine 2.5.2) devront être fait sur la branche 2.5 et non plus sur la branche default. La branche default quant à elle servira à développer la future 2.6.

----

Ça y est !
Vous avez passé les étapes les plus difficiles,
vous avez décidé de contribuer à Dotclear,
vous avez créé un compte sur Bitbucket.
Vous avez fait un Fork du repo de Dotclear.
Vous avez même réussi a le cloner en local et à l'installer avec wamp ou lamp.

C'est bon il est temps de mettre les mains dans le cambouis comme on dit !
C'est bon pour la peau !

Oui mais attention, il faut le faire correctement.

Vous avez fait ce Fork sous les conseils des vieux sorciers croisé sur la mailing liste ou sur IRC, pour pouvoir faire des "Pull request".
Mais pour que ces "Pull request" soit facilement intégré vous devez les faire d'une certaine manière.
Chaque modification devra se trouver dans sa propre branche.
ET chaque branche devra être rattaché au dernier commit présent sur le repo d'origine de Dotclear.

-------

Avant de commencer une modification : assurez-vous d'être synchro avec le repo principal.
Sur cette page : https://bitbucket.org/votrepseudo/dotclear (https://bitbucket.org/lipki/dotclear)
dans la colonne de droite un message et un lien s'affichent pour faire la synchro.
(Si pas de message, on se récupère plus bas, mais lisez quand même la suite.)

Ce lien va directement créer un merge avec ce commentaire : "dotclear/dotclear a bien été ajouté dans default" (ou pas, ça dépend du nombre de commits syncronisés) et un numéro de révision exemple "1256".

Ensuite n'oubliez pas de mettre à jour votre repo local.

hg update --rev 1256 (adapter le numéro de révision)

Si votre fork est récent et que vous n'avez pas ce message, ce n'est pas grave.
Vous n'avez pas touché au code encore ?
OK alors passez à la suite.

-----

Créez une branche en local :

Il vous faut un nom pour votre branche, par exemple, le numéro de ticket sur lequel vous compter travailler,
("ticket-42") ou bien un nom assez court et représentatif de votre projet "feature_de_ouf" n'est pas un bon exemple.

IMPORTANT : N'utilisez pas de caractère spéciaux tels que / ou \ dans vos noms de branches, certains logiciels clients ont parfois des difficultés à les gérer comme tels.

hg branch ticket-42

-----

Ca y est, récréation !
Mains dans le cambouis, test, bug, erreur, prise de tête.
Faites-vous plaisir, faits-moi disparaître ce ticket #42 de la liste.

PS : Dans la mesure du possible, utilisez l'anglais dans vos messages de commits.

...

Ca y est ? ça marche ?

Impeccable ! Vous avez fait plusieurs commits je suppose ?
En tout cas, faites en un dernier pour être sûr que tout est dans la branche.

Et puis poussez tout ça sur votre fork en ligne.

hg push --new-branch

n'oubliez pas --new-branch, sinon ça ne marchera pas.

-----

Maintenant retour sur Bitbucket :
https://bitbucket.org/votrepseudo/dotclear

Pour le plaisir aller voir votre (ou vos) branche(s) ici : https://bitbucket.org/votrepseudo/dotclear/commits/all
et cliquez sur le petit label portant le nom de votre branche [ticket#42]

Maintenant, on va proposer notre patch aux autres développeurs, bouton [pull request] tout en haut à droite.

Là fait attention, vous avez deux cadres.
L'un vous représente vous, l'autre représente Dotclear.

A gauche :
. votrepseudo/dotclear
et en dessous
. votre branche

A droite :
. dotclear/dotclear
et en dessous
. default

Ajouter un titre et une description et appuyer sur [Create pull request]

-----

Votre "pull request" envoyé, il sera relu, critiqué commenté, puis accepté ou refusé.

-----

A partir de là vous avez trois choix qui s'offrent à vous.

Pendant que votre "pull request" passera au grill de la relecture, vous pourrez commencer un autre chantier.
Recommencez ce tutoriel depuis le début et assurez-vous de toujours repartir sur un commit présent dans le repo officiel et de bien créer une nouvelle branche.

Il vous sera parfois demandé de le modifier votre patch. Dans ce cas, il vous suffit de retourner sur votre branche, avec par exemple :

hg update nom_de_votre_branche

De faire les modifs, les commits, les push. Le "pull request" sera modifié en même temps que votre branche, automatiquement.


-------

D'autres questions ?

Dernière modification par Franck (2013-07-20 08:46:34)


Mes fautes font saigner mes propre yeux.

Hors ligne

#2 2013-07-16 14:56:08

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : La bonne façon de proposer un patch

Super merci lipki !


Dotclear addicted since 2004

Hors ligne

#3 2013-07-29 12:08:56

lipki
Membre
Inscription : 2008-11-10

Re : La bonne façon de proposer un patch

Travailler avec toutes les branches de Dotclear et même ClearBricks.

Une fois que vous avez fait votre fork sur Bitbucket et votre clone en local, vous ne pouvez vous synchroniser que sur une seule branche et vous ne pouvez pas faire immédiatement de PR pour Clearbricks. Pas de souci ça ce règle facilement.

----

Travailler avec toutes les branches :

Pour cela il faut récupérer tous les commits faits sur toutes les branches,
mais par défaut les Fork de Bitbucket ne permettent pas de le faire.
Il faut changer les sources en local.

Dans votre dossier local trouvez le fichier .hg/hgrc
Vous ajoutez/modifiez comme ceci :

-

[paths]
default = https://bitbucket.org/dotclear/dotclear
default-push = https://*pseudo*@bitbucket.org/*pseudo*/dotclear

-

default =  le repo principal de Dotclear, ou le repo Bitbucket de Dotclear.
default-push = votre fork qui vous permet de proposer des pull-request

De cette manière que vous fassiez un pull, avec "hg pull", TortoiseHG ou MacHG, etc., vous mettrez toujours à jour toutes les branches.

Et, si vous faites un push avec "hg push", TortoiseHG ou MacHG, etc., vous envoyez tout sur votre fork pour vos futurs PR.


-----

Travailler avec Dotclear et ClearBricks :

Lorsque que vous clonez Dotclear en local, vous clonez également ClearBricks, comme sous-repo, mais vous clonez le repo originel, sur lequel vous n'avez aucun droit.

Pour pouvoir faire simplement des PR ClearBricks en parallèle des PR Dotclear,
il vous faut également un fork de ClearBricks, que vous pouvez faire à cette adresse :
https://bitbucket.org/dotclear/clearbricks

Une fois que vous avez récupéré votre clone en local, faites la même manœuvre que pour le dépôt Dotclear.

-

[paths]
default = https://*pseudp*@bitbucket.org/dotclear/clearbricks
default-push = https://*pseudo*@bitbucket.org/*pseudo*/clearbricks

-

De cette manière vous pourrez proposer des PR sur les deux repo,
mais pas en même temps, il faudra toujours faire les PR séparément.

Dernière modification par lipki (2013-07-29 12:31:28)


Mes fautes font saigner mes propre yeux.

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map