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, 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”] 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”] 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”] 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”] 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”] 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[/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í ;)