Skip to content

hpalacio/leyes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

La Constitución Española en git

Este repositorio recoge la ley fundamental de España (Constitución Española) como si se tratara de un repositorio de código fuente en git, de modo que se puedan ver sus cambios a lo largo de la historia.

Motivación

Cada cierto tiempo, suenan campanas sobre posibles modificaciones que deben hacerse a la Constitución Española (C.E.). Temas como la eliminación de la preferencia del varón sobre la mujer en la herencia de la Corona, discusiones sobre el término nacionalidades del artículo 2, uso de lenguaje inclusivo, reforma del estado autonómico, etc.

Desde su promulgación en 1978, ya ha habido dos modificaciones de la C.E.; sin embargo, no resulta especiamente fácil ver las diferencias con respecto al texto original. El Boletín Oficial del Estado (B.O.E.) publica las modificaciones de un modo parecido a este:

Artículo único.

El apartado 2 del artículo 13 de la Constitución Española queda redactado como sigue:

<texto nuevo aquí>

Como programador que soy, y acostumbrado a revisar diferencias de código en el sistema de control de versiones git, me pareció que estaría bien poder ver las modificaciones con respecto al texto anterior, sin tener que cambiar continuamente entre la versión anterior y la nueva. Pero, sobre todo, deseo poder revisar los cambios que, seguro, están por venir.

Cómo ver las diferencias

Existen multitud de herramientas de código abierto que pueden procesar y mostrar los commits (cambios de código) de forma visual. Es así como trabajamos en la revisión por pares de código fuente en proyectos como el kernel de Linux.

En GitHub, es tan sencillo como ir a la historia del fichero constitucion-espanola-1978.adoc y hacer click en cada commit.

diff github articulo13

Como historia para un repositorio no parece gran cosa, pero supongo que eso dice mucho de la buena redacción de la Constitución.

git ls constitucion

Ver propuestas de cambio

Cuando algún organismo o partido político sugiera algún cambio en la Constitución Española, puedo publicarlo como un Pull request, que es como llamamos los programadores a las solicitudes de cambio de código.

Actualmente, existen varias propuestas de reforma de la Consititución admitidas a trámite por las Cortes que se pueden consultar en los Pull requests abiertos:

Otro ejemplo: el 16 de enero de 2020, y a petición de la vicepresidenta del Gobierno, la Real Academia Española emitió un informe sobre el lenguaje inclusivo en la C.E. Basándome en dicho informe, he creado un Pull request con las sugerencias de la R.A.E. para mejorar el texto constitucional en ese sentido.

Metodología

Lenguaje de markup

El sistema de control de versiones git funciona sobre ficheros de texto plano. Además, el objetivo del proyecto es poder ver las diferencias de contenido, por lo que hay que usar un lenguaje de markup que tenga el mínimo impacto sobre el contenido.

Los textos legislativos usan fundamentalmente listas ordenadas y, en ese sentido, el lenguaje Markdown no es muy flexible, ya que no permite intervenir sobre el símbolo que se utiliza en las listas. Así que me he decantado por el lenguaje AsciiDoc que sí lo permite y está soportado por GitHub y GitLab.

Fuente

La fuente de los textos es el B.O.E.

Convenciones

  • Cada oración ocupa una línea de texto. Esto tiene dos ventajas:

    • Como git muestra diferencias a nivel de líneas, permite ver frases completas que han sido modificadas.

    • En AsciiDoc, los retornos de línea no implican un punto y aparte (tan solo punto y seguido), por lo que el formato original se mantiene en el HTML generado.

  • Para las listas se utiliza el lenguaje de markup.

    • Ventaja: el HTML generado tabula correctamente los ítems, lo que permite una mejor lectura incluso que la que muestra el propio B.O.E. en su página web.

    • Inconveniente: en listas con letras, o con números a partir del segundo nivel en adelante, el markup no permite anteponer el símbolo (número o letra) en el código fuente. No queda otra que usar un punto seguido de un espacio `. `) para cada ítem de una lista ordenada, lo que hace que se pierda dicho símbolo en el código fuente (aunque sale bien en el HTML generado). Por ejemplo:

      lista ordenada nivel2

Proceso

En pocas palabras, consiste en:

  • Copiar el texto del B.O.E.

  • Formatearlo en AsciiDoc siguiendo las Convenciones.

  • Generar el commit, usando:

    • como autor a las Cortes Generales;

    • como título, un resumen del cambio;

    • como descripción, las motivaciones de la ley;

    • como firmas, las de las personas que intervinien en él.

  • Modificar la fecha del commit para que corresponda a la fecha de publicación en el B.O.E. Eso lo hago con un comando como este:

    ~$ GIT_COMMITTER_DATE="Fri 29 Dec 1978 12:00:00 CEST" git commit --amend --no-edit --date "Fri 29 Dec 1978 12:00:00 CEST"

Releases

No releases published