1. Una contribución paso a paso
Nota
Aunque QGIS documentación se utiliza para demostrar el proceso, todas las instrucciones y pasos que se muestran a continuación también se aplican al sitio web de QGIS.
Si está leyendo estas líneas, sin duda es porque está dispuesto a contribuir a escribir la documentación de QGIS y está buscando una guía práctica. ¡Has venido al lugar correcto! El documento actual lo guiará a través de las diferentes formas de lograr este objetivo, mostrándole los principales pasos a seguir, los trucos que puede usar y los trucos que debe conocer.
Para cualquier ayuda, no dude en preguntar ya sea por medio de un reporte de fallo o escribiendo a la lista QGIS-community-team list <https://lists.osgeo.org/mailman/listinfo/qgis-community-team> `_, describiendo el problema que está tratando. Más detalles en la sección `Participe en la documentación <https://qgis.org/en/site/getinvolved/document.html> _.
Vamos a sumergirnos en el proceso.
Las fuentes de documentación se almacenan utilizando el sistema de control de versiones de git y están disponibles en GitHub en https://github.com/qgis/QGIS-Documentation. Puede encontrar una lista de problemas para solucionar y funciones a explicar en https://github.com/qgis/QGIS-Documentation/issues.
Truco
Si es un colaborador por primera vez y no sabe por dónde empezar, es posible que le interese abordar nuestros informes de bienvenida.
Hay dos formas principales, no excluyentes entre sí, de modificar los archivos:
Usando la interfaz web de GitHub
1.1. Usando la interfaz web de GitHub
La interfaz web de GitHub le permite hacer lo siguiente:
editar archivos
previsualizar y confirmar -commit; sus cambios
haga un «pull request» para que sus cambios se inserten en el repositorio principal
Crear, actualizar o borrar ramas
Si aún no está familiarizado con el vocabulario de git y GitHub, se recomienda leer el proyecto en GitHub Hello-world <https://guides.github.com/activities/hello-world/> _ para aprender el vocabulario básico y las acciones que se utilizarán a continuación.
Nota
** Si está solucionando un problema reportado **
Si está realizando cambios para solucionar un problema <https://github.com/qgis/QGIS- Documentation/issues> _, agregue un comentario al informe de problemas -issue report; para auto-asignárselo. Esto evitará que más de una persona trabaje en el mismo problema.
1.1.1. Fork QGIS-Documentation
Suponiendo que ya tiene una cuenta en GitHub <https://github.com/join> _, lo primero que debe hacer es bifurcar los archivos fuente de la documentación.
Vaya a la página del repositorio QGIS-Documentation <https://github.com/qgis/QGIS-Documentation> _ y haga clic en el botón | githubFork | en la esquina superior derecha.
En su cuenta de GitHub encontrará un repositorio QGIS-Documentation (https://github.com/<usuario>/QGIS-Documentation
). Este repositorio es una copia del repositorio oficial de documentación QGIS donde tiene completo acceso de escritura y puede realizar cambios sin afectar la documentación oficial.
1.1.2. Hacer cambios
Hay diferentes formas de contribuir a la documentación de QGIS. Aunque se muestren por separado, se puede cambiar de un proceso a otro sin ningún problema.
Alternativa 1: Usa el atajo Editar en GitHub
Las páginas del sitio web de documentación de QGIS se pueden editar rápida y fácilmente haciendo clic en el enlace Editar en GitHub
en la parte superior derecha de cada página.
Esto abrirá el archivo en la rama `` qgis: master`` con un mensaje en la parte superior de la página que le indica que no tiene acceso de escritura a este repositorio y sus cambios se aplicarán a una nueva rama de su repositorio .
Realice los cambios. Dado que la documentación está escrita utilizando la sintaxis reStructureText, dependiendo de sus cambios, es posible que deba remitirse a: ref: directrices de escritura <QGIS-documentation-guidelines>.
Cuando termine, haga un breve comentario sobre sus cambios y haga clic en Proponer cambios. Esto generará una nueva rama (
patch-xxx
) en su repositorio.Despues de que pulse en Proponer cambios, github navegará página Comparando cambios.
Si está haciendo cambios, salte a Compare changes en la sección inferior Share your changes via Pull Request.
Si desea realizar cambios adicionales antes de enviarlos a QGIS, siga estos pasos:
Diríjase a su copia -fork- de la documentación QGIS(
https://github.com/<YourName>/QGIS-Documentation
)Click en y busque el ramal
patch-xxx
. Seleccione este ramal de parches. El botón ahora dirá Branch: patch-xxxSalte a Modify files abajo.
Nota
El atajo Editar en GitHub
también está disponible en el menú desplegable en la parte inferior de la barra lateral izquierda.
Alternativa 2: Cree una rama ad hoc en su repositorio de documentación
Puede editar archivos diréctamente desde su enlace de la Documentación de QGIS.
Click en en la esquina superior izquierda de su enlace QGIS- Repositorio de Documentación y entre un nombre único en el texto de campo para crear un nuevo ramal . El nombre de este nuevo ramal debe redactar el problema que intenta solucionar. EL botón ahora debe decir Branch: branch_name
Truco
Haga sus cambios en un ramal ad hoc, nunca en la **rama ** master
Por convención, evite realizar cambios en su rama maestra'', excepto cuando combine las modificaciones de la rama ``maestra
de qgis/QGIS-Documentation
en su copia del repositorio de documentación QGIS. Las ramas separadas le permiten trabajar en múltiples problemas al mismo tiempo sin interferir con otras ramas. Si comete un error, siempre puede eliminar una rama y comenzar de nuevo creando una nueva desde la rama maestra.
1.1.3. Modificar archivos
Explore los archivos fuente de su bifurcación de documentación de QGIS hasta el archivo que necesite ser modificado
Haga sus modificaciones siguiendo las writing guidelines
Cuando termine, navegue hasta el marco Confirmar cambios en la parte inferior de la página, haga un breve comentario sobre sus cambios y haga clic en Commit Changes” para confirmar los cambios directamente en su ramal. Asegúrese de que :guilabel:`Commit directly to the branch_name branch. esté seleccionado.
Repita los pasos anteriores para cualquier otro archivo que deba actualizarse para solucionar el problema.
1.1.5. Elimina tu rama fusionada
Puede eliminar la rama después de que se hayan fusionado sus cambios. Eliminar ramas antiguas le evita tener ramas no utilizadas y obsoletas en su repositorio.
1.2. Usando herramientas de línea de comando Git
La interfaz web de GitHub es una manera fácil de actualizar el repositorio de documentación de QGIS con sus contribuciones, pero no ofrece herramientas para:
agrupar sus confirmaciones y limpiar su historial de cambios
solucionar posibles conflictos con el repositorio principal
construir la documentación para probar sus cambios
Necesitará instalar git en su disco duro para tener acceso a herramientas más avanzadas y poderosas y tener una copia local del repositorio. A continuación se exponen algunos conceptos básicos que puede necesitar con frecuencia. También encontrará reglas importantes incluso si opta por la interfaz web.
En los ejemplos de código a continuación, las líneas que comienzan con $
muestra los comandos que debe escribir mientras #
son comentarios.
1.2.1. Repositorio local
Ahora está listo para obtener un clon local de su repositorio de documentación de QGIS.
Puede clonar su repositorio QGIS usando la URL web de la siguiente manera:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone https://github.com/<YourName>/QGIS-Documentation.git
La primera línea de comando es simplemente un ejemplo. Debe adaptar tanto la ruta como la URL del repositorio, reemplazando <YourName>
con su nombre de usuario de github.
Compruebe lo siguiente:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
origen es el nombre del repositorio remoto de su Repositorio Documentación de QGIS
master es la rama principal predeterminada. ¡Nunca debes usarlo para contribuir! ¡Nunca!
De manera alternativa, puede clonar su repositorio QGIS utilizando el protocolo SSH:
# move to the folder in which you intend to store the local repository
$ cd ~/Documents/Development/QGIS/
$ git clone [email protected]:<YourName>/QGIS-Documentation.git
Truco
Permission denied (publickey) error?
Si recibe un error de Permiso denegado (clave pública) con el comando anterior, es posible que haya un problema con su clave SSH. Consulte la ayuda de GitHub para detalles.
Compruebe lo siguiente si utilizó el protocolo SSH:
# Enter the local repository
$ cd ./QGIS-Documentation
$ git remote -v
origin [email protected]:<YourName>/QGIS-Documentation.git (fetch)
origin [email protected]:<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
Puede comenzar a trabajar aquí, pero en el proceso a largo plazo obtendrá muchos problemas cuando empuje su contribución (llamada Solicitud de extracción en el proceso de github) ya que la rama maestra del repositorio de documentación qgis/QGIS divergerá de su/repositorio remoto. Luego, debe realizar un seguimiento del repositorio remoto principal y trabajar con las ramas.
1.2.2. Adicionar otro repositorio remoto
Para poder seguir el trabajo en el proyecto principal, agregue un nuevo repositorio remoto en su repositorio local. Este nuevo repositorio remoto es el repositorio de documentación QGIS del proyecto QGIS:
$ git remote add upstream https://github.com/qgis/QGIS-Documentation.git
$ git remote -v
origin https://github.com/<YourName>/QGIS-Documentation.git (fetch)
origin https://github.com/<YourName>/QGIS-Documentation.git (push)
upstream https://github.com/qgis/QGIS-Documentation.git (fetch)
upstream https://github.com/qgis/QGIS-Documentation.git (push)
De manera similar, puede usar el protocolo SSH para agregar un repositorio remoto en su repositorio local:
$ git remote add upstream [email protected]:qgis/QGIS-Documentation.git
$ git remote -v
origin [email protected]:<YourName>/QGIS-Documentation.git (fetch)
origin [email protected]:<YourName>/QGIS-Documentation.git (push)
upstream [email protected]:qgis/QGIS-Documentation.git (fetch)
upstream [email protected]:qgis/QGIS-Documentation.git (push)
Ahora tiene la opción entre dos repositorios remotos:
origin to push your local branch in your remote repository
upstream para fusionar (si tiene derecho a hacerlo) su contribución a la oficial O para actualizar su rama principal del repositorio local desde la rama principal del repositorio oficial.
Nota
upstream is just a label, a kind of standard name but you can call it as you want.
1.2.3. Actualizar su rama base
Antes de trabajar en una nueva contribución, siempre debe actualizar su rama maestra en su repositorio local. Suponiendo que está dispuesto a introducir cambios en la documentación de prueba, ejecute las siguientes líneas de comando:
# switch to master branch (it is easy to forget this step!)
$ git checkout master
# get "information" from the master branch in the upstream repository
# (aka qgis/QGIS-Documentation's repository)
$ git fetch upstream master
# merge update from upstream/master to the current local branch
# (which should be master, see step 1)
$ git merge upstream/master
# update **your** remote repository (aka <YourName>/QGIS-Documentation)
$ git push origin master
Ahora tiene sus repositorios locales y remotos que tienen su rama master
actualizada con la rama master
oficial de QGIS-Documentation. Puede empezar a trabajar en su contribución.
Nota
Cambie de rama si desea contribuir al documento publicado
Junto con la documentación de prueba, continuamos solucionando problemas en la última versión, lo que significa que también puedes contribuir a ello. Siga el código de muestra de la sección anterior, reemplazando master
con la rama correspondiente de la documentación más reciente.
1.2.4. Contribuir a su rama de producción
Ahora que su sucursal base está actualizada, necesita crear una sucursal dedicada en la que agregue su contribución. ¡Trabaje siempre en una rama que no sea la rama base! ¡Siempre!
# Create a new branch
$ git checkout -b myNewBranch
# checkout means go to the branch
# and -b flag creates a new branch if needed, based on current branch
# Let's check the list of existing branches (* indicates the current branch)
$ git branch
master
release_2.18
...
* myNewBranch
# You can now add your contribution, by editing the concerned file(s)
# with any application (in this case, vim is used)
$ vim myFile
# once done
$ git add myFile
$ git commit
Pocas palabras acerca de comandos commit/push:
tratar de comprometer solo una contribución (cambio atómico), es decir, abordar solo un problema
intente explicar cuidadosamente lo que cambia en el título de su compromiso y en la descripción. La primera línea es un título y debe comenzar con una letra mayúscula y tener 80 caracteres de longitud, no terminar con un
.
. Sé conciso. Tu descripción puede ser más larga, terminar con un.
Y puedes dar muchos más detalles.use una
#
con un número para referirse a un problema. Prefijo conArreglar
si arregla el ticket: su confirmación cerrará el ticket.
Ahora que sus cambios están guardados y confirmados en su rama local, debe enviarlos a su repositorio remoto para crear un «pull request»:
$ git push origin myNewBranch
1.2.6. Limpiar su repositorio local y remoto
Después de que su «Pull Request» se haya fusionado con la documentación oficial de QGIS, puede eliminar la rama de su repositorio. Si no lo hace en pocas semanas endrá muchas ramas inútiles en su repo. Mantenga su repositorio limpio de esta manera:
# delete local branch
$ git branch -d myNewBranch
# Remove your remote myNewBranch by pushing nothing to it
$ git push origin :myNewBranch
Y no olvide de actualizar la rama master
en su repositorio local!
1.3. Lectura adicional
Además de la interfaz web de Github y las herramientas de línea de comandos de git expuestas anteriormente, también hay aplicaciones GUI que puede utilizar para crear y gestionar sus contribuciones a la documentación.
Cuando los cambios en la solicitud de extracción están en conflicto con los cambios recientes enviados a la rama de destino, los conflictos deben resolverse antes de que sea posible una fusión:
si el conflicto se relaciona con pocas líneas en competencia, un botón Resolver conflictos está disponible en la página de solicitud de extracción de Github. Presione el botón y resuelva el problema como se explica en https://help.github.com/articles/resolving-a-merge-conflict-on-github/
si el conflicto involucra el cambio de nombre o la eliminación de archivos, entonces deberá resolver el conflicto usando las líneas de comando de git. Por lo general, primero debe reajustar su rama sobre la rama de destino utilizando la llamada
git rebase targetBranch
y corregir los conflictos que se informan. Lea mas en https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/
A veces, al final del proceso de revisión, puede terminar con cambios divididos en múltiples confirmaciones que no necesariamente valen la pena. Las líneas de comando de Git te ayudan a reducir estas confirmaciones a un número menor y a mensajes de confirmación más significativos. Algunos detalles en https://help.github.com/articles/using-git-rebase-on-the-command-line/