Infraestructura

Planeta Linux es administrado por medio de un repositorio Subversion. El repositorio únicamente contiene un sólo directorio y no utiliza ramas, etiquetas y es en general bastante fácil de utilizar.

Estructura del árbol

El árbol tiene cuatro directorios en su nivel más alto:

planetalinux
|
+-- proc
|
+-- test
|
+-- tools
|
+-- www

proc es donde la mayor parte de los planetas a procesarse vive. test es un directorio donde aquellos que utilizan subversion por primera vez pueden experimentar. En tools pueden ir scripts o aplicaciones que corran con Planeta Linux pero que no sean vitales para su funcionamiento. www son todas las imágenes o HTMLs estáticos o dinámicos que serán desplegados en varias partes de la página.

proc

Dentro de proc vamos a tener los directorios de cada una de las instancias existentes en Planeta Linux, y además dos archivos genéricos que todas las instancias ocuparán:

|
+-- proc
    |
    +-- opml.xml.tmpl
    |
    +-- rss20.xml.tmpl
    |
    +-- mx
    |   |
    |   +-- config.ini
    |   |
    |   +-- index.html.tmpl
    |
    +-- pe
    |   |
    |   +-- config.ini
    |   |
    |   +-- index.html.tmpl
    |
    +-- ve
    |   |
    |   +-- config.ini
    |   |
    |   +-- index.html.tmpl
    |
    + ...

Básicamente, opml.xml.tmpl y rss20.xml.tmpl son los templates de ambos formatos de feeds y seguramente no tendrás que editarlos a menos que tengas una razón extremadamente válida. Dentro de cada directorio de instancia, encontrarás config.ini e index.html.tmpl. El primero será el que la mayoría de los colaboradores de Planeta Linux tienen que editar, tanto para agregar feeds, editarlos, borrarlos. El index.html.tmpl es el template para la página de cada una de la instancias. Ojalá en algún momento podamos tener un sólo template para todas las instancias, por el momento no lo tenemos así. También necesitas una suficientemente buena razón para editar los templates.

test

Por el momento contamos con un sólo archivo dentro de test:

|
+-- test
    |
    +-- hola.pl

Este único archivo sirve para que hagas tu primer commit, edítalo y envía el cambio. Si todo sale bien, verás el diff del cambio que hiciste en la lista de correos. Obviamente no necesitas saber Perl para editarlo, es un simple archivo de pruebas.

tools

En este directorio se pretenden subir cualquier tipo de herramientas que puedan ser de utilidad para Planeta Linux, aunque por el momento no hay mucho que digamos:

|
+-- tools
    |
    +-- icons
        |
        +-- banderas
            |
            +-- ad.png
            |
            +-- ae.png
            |
            +-- af.png
            |
            +-- ...

En el momento de escribir este documento, únicamente tenemos los íconos de la banderas que se utilizan en cada una de las instancias para ligar a las otras. Esas banderitas fueron algo difíciles de encontrar y loas guardamos ahí para que no se nos pierdan otra vez :-)

www

www es el directorio más grande donde se almacena la mayor parte de los scripts PHP, código en HTML, imágenes, cabezas, etc.

|
+-- www
    |
    +-- css
    |   |
    |   +-- alternativa.css
    |   |
    |   +-- ...
    |
    +-- images
    |   |
    |   +-- arte
    |   |   |
    |   |   +-- planetalinux-main.png
    |   |   |
    |   |   +-- ...
    |   |
    |   +-- banderas
    |   |   |
    |   |   +-- alternativa.png
    |   |   |
    |   |   +-- ...
    |   |
    |   +-- mar06
    |   |   |
    |   |   +-- ...
    |   |
    |   +-- astrata.png
    |   |
    |   +-- ...
    |
    +-- instancias
    |   |
    |   +-- mx
    |   |   |
    |   |   +-- images
    |   |       |
    |   |       +-- cabezas
    |   |           |
    |   |           +-- accesshigh.png
    |   |           |
    |   |           +-- ahioros.png
    |   |           |
    |   |           +-- ...
    |   |
    |   +-- ve
    |   |   |
    |   |   ...
    |   |
    |   +-- ...
    |
    +-- misc
    |
    +-- principal
    |   |
    |   +-- acerca

Uso de contraseñas

La autenticación para el repositorio no se efectúa mediante contraseñas. Si estás leyendo esta página es por que muy probablemente ya tengas una cuenta de acceso y tu llave pública SSH ya esté en el servidor.

Esa es la única posibilidad para acceder al repositorio, por medio de llaves SSH.

Obtener el árbol en una copia local

Para bajar todo el contenido del árbol de Planeta Linux a tu máquina, bastará con ejecutar:

$ svn checkout svn+ssh://usuario@menteslibres.org/home/planetalinux/svn planetalinux

Con co estás haciendo checkout y comenzará a descagar toda tu copia local. Es muy importante que tu llave local SSH sea la que estés usando desde ~/.ssh/id_rsa.pub, de otra forma no será posible autenticarse tu cuenta.

Copia local siempre actualizada

Es vital, antes de hacer alguna modificación en el árbol, que mantengas tu árbol sincronizado, ejecutando:

svn up

Agregar feeds o modificar los ya existentes

Cualquier modificación de nombres debe hacerse en UTF-8, pues así es como Planet entiende los acentos y tildes. Asegúrate de que tu cliente esté leyendo y escribiendo en UTF-8.

Para agregar feeds, basta con utilizar tu editor favorito:

$ editor planetalinux/proc/ubicacion/config.ini

...donde ubicacion es desde luego mx, ve, pe, etc.

El formato de los feeds, nombres e imágenes de hackergotchi es bastante intuitivo:

[http://aqui.va/la/url/del/feed]
name = Juanito Pérez
face = juanito.png

La URL del blog, cuando ya tenemos el feed que vamos a agregar, no nos importa mucho. La imagen juanito.png la agregaremos a continuación, pero sólo es necesario agregarla así, el nombre del archivo con su extensión. Planeta Linux ya sabe dónde buscarla.

Agregar hackergotchis

Todos los hackergotchis deben ser, de acuerdo a los lineamientos, de no más de 95 pixeles de ancho y/o de alto, deben estar en formato PNG y el fondo de las imágenes debe ser transparente, no blanco ni de otro color. Si es necesario y si accedemos, hay que editarla nosotros mismos para que cumpla con los lineamientos.

Una vez que tenemos la imagen tal como se necesita, la colocamos en su lugar y la agregamos al depósito:

$ mv /tmp/image001.png planetalinux/www/instancias/ubicacion/images/cabezas/juanito.png
$ svn add planetalinux/www/instancias/ubicacion/images/cabezas/juanito.png

...donde ubicacion es desde luego, alguna de las instancias.

Si lo que tenemos que hacer es reemplazar una imagen ya existente, sólo reescribimos la imagen previamente existente, no sería necesario hacer svn add, pues la imagen ya fue agregada al repositorio en algún momento.

Modificar otras cosas

Para estas alturas, si es necesario que edites cualquier otra cosa en el árbol, ya deberías tener suficiente experiencia con esta onda para necesitar este HOWTO :-)

Commit de los cambios

Una vez que realizaste algún cambio, es necesario hacer commit. Depende de tu ubicación en el árbol, el commit tendrá cierta recursividad. Si sólo quieres commitear los cambios de algún directorio en específico (por alguna extraña razón):

$ svn ci -m 'Agrego a Fulanito de las Porras' proc/mx

Siempre hay que proveer un comentario en los cambios.

Con un simple svn ci -m 'Comentario' en la raíz del árbol debería bastar.

El historial de cambios

Los diffs de cada uno de los commits es enviado a la lista de correos de Planeta Linux y son revisados minuciosamente, así que cualquier detalle es detectable. Actúa con responsabilidad. Para ver tú mismo el historial de los cambios en el árbol, utiliza svn log.

Otros comandos útiles

  • svn st
  • svn diff