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 xeito” 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!! 😀

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.

logo git
logo git, da wikipedia

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

fork do proxecto
Pulsa Fork, para traer o código ao teu espazo

Así traes ao teu espazo en github o código fonte orixinal.
clonar o repositorio localmente
url para traer o código

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

url da rama master
o url da rama master do código fonte orixinal

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

código subido en github
o noso código xa subido a web

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.

push request
fixen unha solicitude de engadir o código

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
pull request aceptado ;)
Pull Request aceptado

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!! 😛 😀

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í 😉

Advertisements

Deixar unha resposta

introduce os teu datos ou preme nunha das iconas:

Logotipo de WordPress.com

Estás a comentar desde a túa conta de WordPress.com. Sair /  Cambiar )

Google+ photo

Estás a comentar desde a túa conta de Google+. Sair /  Cambiar )

Twitter picture

Estás a comentar desde a túa conta de Twitter. Sair /  Cambiar )

Facebook photo

Estás a comentar desde a túa conta de Facebook. Sair /  Cambiar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.