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.
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:
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:
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:
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
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
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
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
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
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
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:
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
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)
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"
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)
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:
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:
Tambien es una buena practica de comprobar la ventana de "File changes" para ver que todo est谩 a tu gusto:
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!
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.
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
).
Si nunca has actualizado tu fork antes, escribe:
git remote add upstream https://github.com/azerothcore/azerothcore-wotlk.git
Luego sigue estos pasos:
git checkout master
git fetch upstream
git merge upstream/master
git push origin master
Y ya has actualizado tu fork :)
Tienes que actualizar el master branch de tu fork primero (mirar arriba).
Luego solo git checkout your-branch
y git merge master
.
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.
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.
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.