AzerothCore
Pages :

Como crear una PR

Esta gu铆a explica c贸mo abrir PRs para enviar cualquier tipo de correciones (C++, SQL, etc...).

Si s贸lo env铆as correcciones de DB, deber铆as probar nuestra nueva simplificada manera de abrir una PR que contenga c贸digo SQL.

Hacer s贸lo UNA VEZ: crear y clonar tu fork de AzerothCore

1. Crear un fork de AzerothCore

Necesitas estar registrado en github.com. Si aun no tienes una cuenta, crea una.

Abre el repositorio de AzerothCore Y crea un fork de este haciendo click en el bot贸n "Fork" de arriba a la derecha:

Create a fork of AzerothCore

2. Clona tu fork a tu dispositivo local

Una vez que tu fork est茅 listo, ver谩s un nuevo repositorio mostrando YourUsername/azerothcore-wotlk.

Haz click en el bot贸n "Clone or download" (a la derecha) y copia la direcci贸n https de tu fork:

Copy your AzerothCore fork address

Ahora abre la terminal (si estas en Windows, usa terminal git bash) y escribe git clone seguido de la direcci贸n de tu fork que acabas de copiar:

Clone your AzerothCore fork

git clone https://github.com/YourUsername/azerothcore-wotlk.git

Espera a que la descarga termine y luego accede al directorio de azerothcore-wotlk:

cd azerothcore-wotlk

Access the AzerothCore directory

Creando una nueva PR

1. Actualiza tu fork en GitHub

Abre tu navegador y navega hasta tu fork en GitHub (cambia YourUsername con tu usuario actual de GitHub):

https://github.com/YourUsername/azerothcore-wotlk

Si tu master branch no est谩 actualizado a la 煤ltima versi贸n de AzerothCore, ver谩s algo como:

This branch is XX commits behind azerothcore:master

AzerothCore update fork

para actualizarlo, haz click en Fetch upstream y luego Fetch and merge.

Como resultado, el master branch de tu fork deber铆a directorio:

This branch is even with azerothcore:master

AzerothCore update fork

2. Actualiza tu clone local

En el anterior paso acabas de actualizar tu fork remoto, pero tambi茅n tienes que sincronizarlo con tu clon local.

Abre tu terminal dentro del directorio azerothcore-wotlk y ejecuta:

git checkout master; git pull

3. Crear un nuevo branch

IMPORTANTE: nunca cometas cambios en tu branch master , esto har谩 ver tu fork muy desordenado.

Cuando est茅s creando un nuevo branch, git crear谩 una copia de tu branch actual. Siempre asegurate de que estas en master branch antes de crear un nuevo branch escribiendo:

 git checkout master

Crea un nuevo branch dandole un nombre que sea diferente que ningun branch ya existente.

Puedes darle cualquier nombre que quieras (substituye "xxx" con lo que sea que estas corrigiendo):

git checkout -b fix-issue-xxxx

Access the AzerothCore directory

4. A帽adir tus cambios de C++ (si hay alguno)

Si no has hecho ning煤n cambio al C++, puedes saltar este paso. De lo contrario 隆Abre tu editor y hazlos ahora! Te esperar茅...

En esta gu铆a vamos a asumir que has modificado el archivo instance_deadmines.cpp

Ahora a帽ade tu archivo(s) para que sean cometidos:

git add src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp

AzerothCore - add files with git add

Si has modificado mas archivos, solo a帽adelos usando git add path/to/file

Puedes usar el comando git status para comprobar que archivos han sido seleccionados para ser cometidos:

AzerothCore - git status

5. A帽ade tus cambios SQL (si hay alguno)

Si no has hecho ning煤n cambio SQL, puedes saltar este paso. De lo contrario, ejecuta lo siguiente:

./data/sql/updates/pending_db_world/create_sql.sh

Esto generar谩 un nuevo archivo ubicado en data/sql/updates/pending_db_world teniendo un nombre 煤nico como rev_XXXXXXXXXXXX.sql

AzerothCore - create pending sql file

Abrelo con un editor de texto. Te dar谩s cuenta de que contiene c贸digo SQL como:

INSERT INTO `version_db_world` (`sql_rev`) VALUES ('XXXXXXXXXXXX');

NO elimines esta linea. A帽ade tu c贸digo SQL debajo y guardalo.

Ahora a帽ade este archivo para que sea cometido usando el comando git add path/to/file:

git add data/sql/updates/pending_db_world/rev_XXXXXXXXXXXX.sql

(obviamente remplaza rev_XXXXXXXXXXXX.sql con el verdadero nombre del archivo)

AzerothCore - git add pending sql file

6. Commit & Push tus cambios

Hacer solo UNA vez: git config

Primero antes que todo asegurate de usar la plantilla de commit AC (esto deber铆a ser necesario solo una vez):

git config --local commit.template ".git_commit_template.txt"

Cuando escribas tu mensage de commit, este usar谩 el editor de texto por defecto Vim que es bastante complicado de manipular. Sin embargo puedes mantenerlo mas simple usando el editor Nano . Aqu铆 est谩 como proceder, escribe:

git config --global core.editor "nano"

Git commit

Luego comete tus cambios escribiendo:

git commit

Se te pedir谩 que especifique un mensaje de confirmaci贸n apropiado. Por favor, siga las pautas de formato aqu铆 (= cada l铆nea que empieza por un # que ser谩 ignorado en el mensaje de confirmaci贸n), y puede referirse a una confirmaci贸n como esto como un ejemplo. Si estas usando Nano, pressiona [ctrl]+[x] y escribe yes para guardar y salir (los otros comandos estan escritos abajo de la interfaz en Nano, y pueden ser encontrados facilmente en la net o escribiendo man nano en la terminal).

Verifica que est谩s satisfecho usando git show. Y sal usando [q]. Si no estas satisfecho, puedes hacer un recommit al 煤ltimo commit local escribiendo git commit --amend.

Ahora es el momento de hacer un push remotamente. Si usas el comando git push por primera vez en este branch, git te pedir谩 que especifiques a que branch remoto quieres hacer el push.

As铆 que deber铆as ejecutar:

git push --set-upstream origin fix-issue-xxxx

(Por supuesto remplaza fix-issue-xxxx con el nombre de tu branch)

AzerothCore - git push

7. Abrir la PR

Vuelve al repositorio principal AzerothCore, te dar谩s cuenta de que GitHub es lo suficientemente listo para darse cuenta de que est麓麓as a punto de abrir una PR y muestra este recuadro amarillo claro:

AzerothCore - Compare & pull request

Haz click en el bot贸n verde de "Compare & pull request" (ubicado a la derecha).

Ahora llena la plantilla de la PR siguiendo las instrucciones que aparecer谩n en tu pantalla, no te olvides de a帽adir las instrucciones de testing para que la gente pueda probar tu PR y pueda ser unida:

AzerothCore - Compare & pull request

Tambien es una buena practica de comprobar la ventana de "File changes" para ver que todo est谩 a tu gusto:

AzerothCore - Compare & pull request

NOTA: No respondemos bien con los leechers! Si tu fix viene de otra organizacion o persona deber铆as SIEMPRE dar credito al autor original y el commit.

Eso es todo!

FAQ

Hay algo mal o faltan archivos en los cambios, Quiero subir m谩s cambios

Solo edita/a帽ade los archivos que quieras, git add , luego haz el commit y el push otra vez. Si refrescas la pagna de tu PR ver谩s los cambios.

Ya he creado una PR, deber铆a crear otra?

Solo repite el procedimiento empezando desde el paso 3.

Se cuidadoso creando un nuevo branch: debes estar en el master branch primero (escribe git checkout master).

Como puedo actualizar el master branch de mi fork?

Si nunca has actualizado tu fork antes, escribe:

git remote add upstream https://github.com/azerothcore/azerothcore-wotlk.git

Luego sigue estos pasos:

  1. git checkout master
  2. git fetch upstream
  3. git merge upstream/master
  4. git push origin master

Y ya has actualizado tu fork :)

C贸mo puedo actualizar mi branch con el ultimo master?

Tienes que actualizar el master branch de tu fork primero (mirar arriba).

Luego solo git checkout your-branch y git merge master.

Cu谩nto tiempo tardar谩 que mi PR sea revisada, testeada y unida?

Esto es un proyecto de codigo abierto y la gente trabaja en su tiempo libre, as铆 que no podemos estimarlo.

Lo que si podemos recomendar es: escribe instrucciones claras para testear tu PR, asi sera m谩s f谩cil para todos de testearlo.

Si tus instrucciones no son claras o inexistentes, solo los usuarios avanzados seran capaces de testear tu PR y tardara mucho m谩s tiempo.

Qu茅 terminal fue usada en este tutorial?

https://github.com/robbyrussell/oh-my-zsh

Pero cualquier terminal de linux/mac esta bien tambi茅n Si tienes tan mala suerte de estar en Windows, usa git bash.

Do I have to re-autenticar cada vez que uso git push?

Puedes clonar tu propio fork usando SSH en vez de HTTPS y luego sigue esta gu铆a to set the SSH keys.

De esta manera puedes usar git push sin tener que repetir tu contrase帽a.