Titorial: exemplo de contribución ao código con git(hub)

Cómo contribuir a mellorar un aplicativo en GitHub

Exemplo: enviar unha tradución.

Acontece que de cando en vez estás a utilizar un programa ou aplicativo no teu dispositivo (móbil, ordenador personal, tablet, reloxo, etc) e pensas “creo que esta función estaría mellor si se realizase de tal xeit_o” ou “_aquí falta un botón que dé acceso directo a esta función” ou “por qué esto non está no meu idioma?”.

Si estás a utilizar unha ferramenta de código pechado, ou non libre, o que podes facer é contactar cos desenvolvedores e pedirlle que melloren o programa. E vaite sentando. ** Si estás a utilizar código aberto e libre estás de sorte!!** ti mesma podes arranxar o problema!! e ademáis mellorar a vida de outras personas!! :D

A túa capacidade técnica limitará o tipo de problemas que podes solucionar, pero non fai falta ser enxeñeira de software para contribuír ao código libre e aberto.

Aquí me tes. O meu coñecemento inclúe facer unha web con varias cores e tipos de letra e cubrir un formulario de wordpress, pero tamén me criei escoitando, falando, escribindo, estudando en galego. Traducir é comprender o que quere facer a persoa programadora, cómo llo quere transmitir a usuaria e intentar que unha persoa que utilice o programa en galego teña ese mismo tipo de información.

Este preámbulo só pretende** quitarlle o medo a xente** a que dentro das súas posibilidades colabore co mantemento e creación de software libre. Reportando erros, suxerindo melloras, etc. tamén se contribúe ao código. [caption width=”150” align=”aligncenter”]logo git logo git, da wikipedia[/caption]

Traducindo

Os desenvolvedores de programas FOSS utilizan repositorios públicos onde publican o código que calquera pode ver, estudar, modificar, distribuir, etc. Unha das ferramentas para colaborar na creación de código de xeito colectivo chámase git; e GitHub é un de esos repositorios onde un grupo de personas engaden a súa contribución; finalmente xúntanse esas pezas para construír o programa que será publicado. Existen outros repositorios públicos para git e ti podes instalar o teu propio (é software libre).

Unha das pezas é o ficheiro que inclúe os textos nos diferentes idiomas. Este é o ficheiro(s) que crearemos ou modificaremos coa nosa tradución e llo enviaremos aos desenvolvedores para que o inclúan en próximas actualizacións do aplicativo.

Ferramentas

Para este titorial precisas o seguinte:

  • navegador web (para acceder a información do repositorio en github)

  • crear unha conta en github (ou o repositorio web onde se aloxe o proxecto)

  • git (normalmente ven incluído en todas as distribucións, pero se non instálalo)

  • editor de texto (como aplicativo externo ou editando directamente no terminal linux)

Todo ven de serie ;) Non explicarei polo miúdo os comandos de git, pero a documentación é extensa na web, xa que o obxetivo é facer unha receita simple.

Obtendo o código

Para ilustrar este artigo traducín https://f-droid.org/packages/com.simplemobiletools.notes/ Un pequeno aplicativo para tomar notas en trebellos Android.

No navegador vas a web onde se aloxa o proxecto en github e na súa páxina principal pulsas o botón “Fork” [caption id=”attachment_2984” align=”aligncenter” width=”1024”]fork do proxecto Pulsa Fork, para traer o código ao teu espazo[/caption] Así traes ao teu espazo en github o código fonte orixinal. [caption id=”attachment_2983” align=”aligncenter” width=”1020”]clonar o repositorio localmente url para traer o código[/caption] Xa no teu espazo obtes a URL que precisas para traer o código ao teu ordenador persoal onde traballarás nos ficheiros.

Escribindo o código

Co URL do paso anterior (Clone or Download) pasamos a un terminal para traballar Entramos no cartafol de traballo $ cd git ou onde queiramos, pero eu teño un cartafol para estas cousas. Clonamos o repositorio propio $ git clone https://github.com/xmgz/Simple-Notes.git Crearase un cartafol novo, para este caso: “Simple-Notes”. Entramos nel. $ cd Simple-Notes Creamos unha fonte remota (remote) para o código $ git remote add upstream https://github.com/SimpleMobileTools/Simple-Notes.git [caption id=”attachment_2982” align=”aligncenter” width=”352”]url da rama master o url da rama master do código fonte orixinal[/caption] O URL do comando anterior obtémolo do repositorio orixinal. De ahí obteremos sempre a última versión pública do código. $ git fetch upstream obtemos o código, e creamos unha nova rama dándolle como nome “gl-simplenotes” (para o caso) $ git checkout -b gl-simplenotes vemos que temos dúas ramas con $ git branch e que HEAD (activa) está en gl-simplenotes $ git reset --hard upstream/master

asegurámonos de traer o último código dos desenvolvedores. Esto é útil en próximas actualizacións.

Editando

En este paso realizamos a edición dos ficheiros ou modificamos o código preciso para determinada función, no meu caso, traduzo e gardo o ficheiro. De volta no terminal (si saíches a un editor externo) $ git add . engadimos todo o modificado ao rexistro $ git commit -m "mensaxe explicativo" rexistrámolo con unha mensaxe informativa $ git checkout master voltamos a nosa rama master $ git merge gl-simplenotes traemos os cambios realizados e arranxamos calquer posible conflicto no código (o propio git informa de esto) Gardamos todo na rama master con $ git add . $ git commit -m "mensaxe bla bla bla". Finalmente subimos o código ao noso repositorio remoto en GitHub con $ git push [caption id=”attachment_2981” align=”aligncenter” width=”1019”]código subido en github o noso código xa subido a web[/caption]

Unha vez co código xa na web temos que propoñerlle aos desenvolvedores que avalíen a nosa contribución. Esto faise realizando un “pull request” ao seu repositorio desde o noso. Ver o botón na captura anterior. [caption id=”attachment_2980” align=”aligncenter” width=”1024”]push request fixen unha solicitude de engadir o código[/caption] Debemos agardar que os desenvolvedores valoren a proposta, que non conteña erros e finalmente si é aceptada recibiremos o aviso de que foi engadido ao proxecto [caption id=”attachment_2979” align=”aligncenter” width=”775”]pull request aceptado ;) Pull Request aceptado[/caption]

En** novas versións do software **poden engadirse novas cadeas de texto que sexa preciso traducir, para facelo entramos no directorio local onde está o código; entramos na rama gl-simplenotes; traemos o código novo; modificámolo; engadímosllo a nosa rama master; subimolo a github e facemos novamente un pull-request.

En git pódese traballar de diferentes formas e realizando os pasos de forma diferente, estuda a documentación para adaptar a receita ao teu gusto. Por exemplo: establecer gl-simplenotes como origin do noso upstream (esto está escrito en klingon) para subir directamente os cambios sin ter dúas ramas locais e sin facer o merge.

Para traducir aplicativos existen outros métodos así como plataformas as que se accede con unha interface web como transifex, weblate, crowdin,etc. Consulta a sección “Sobre” do aplicativo no que queiras colaborar ou contacta cos desenvolvedores para indicarlles que queres axudar.

Nota: a contribución ao código non sempre se realiza a rama master. Contacta cos desenvolvedores sobre cómo contribuír. Nota final: levoume máis tempo escribir este artigo que traducir o aplicativo e facer capturas e pensar si o publicaba ou non, catro veces máis!! :P :D

Tes dúbidas? Seguro que si.** Atopaches erros no artigo?** Probablemente. En calquer caso contacta conmigo para mellorar o artigo ou facer a túa consulta ben na sección de contacto ou co formulario inferior.

Grazas por ler ate aquí ;)