Obtención del código fuente con Subversion

1.  Introducción

Subversion (SVN) permite a muchas personas trabajar a la vez en el desarrollo de código. Puedes conseguir mucha más información sobre Subversion y/o descargar el código desde su página web. Recomendamos encarecidamente leer la documentación y las FAQ de Subversion.

La gente que pertenezca a la religión GIT, aquí, por favor.

2.  Módulos

Hay dos módulos activos en el repositorio actual de Subversion:

lyx-devel
Este repositorio aloja el código fuente de LyX. El desarrollo de la próxima edición principal tiene lugar en el tronco y las ediciones secundarias (de mantenimiento) se preparan en las ramas. La próxima versión estable reside en el directorio de la rama más reciente, branches/BRANCH_X_X_X.
www-user
En este repositorio hay algunos contenidos de nuestras páginas www (www.lyx.org).

Aunque ya no están en uso, estos se mantienen por su interés histórico:

lyx-tests
Este repositorio contiene varios archivos .lyx que pueden ser útiles para pruebas.
lyx-1_0_x
Esta es la antigua rama estable. No se hace más trabajo en ella.
lyx
Es la antigua e inestable rama de desarrollo y tampoco se usa ya.
www-devel
Solía contener las páginas www de los desarrolladores. Los contenidos se han añadido al subdirectorio devel de www-user
lyxdoc
La documentación para LyX 1.3.x se mantiene aquí (en la rama BRANCH_1_3_X) y recogida en el directorio doc antes de la publicación. Ya no se usa para el tronco principal, ya que la documentación se ha movido al módulo lyx-devel.

3.  Navegador de fuente Trac

Usando SVN puedes descargar un módulo completo con solo un comando. Si quieres ver solo un archivo SVN, considera el uso del navegador de fuente Trac. Trac es una herramienta que permite, entre otras cosas, navegar por un repositorio SVN, y da la posibilidad de echar un vistazo a archivos diffs entre versiones arbitrarias así como leer archivos de registro y demás.

El navegador de fuente Trac para el repositorio SVN de LyX está en la página de inicio de LyX. Lo más probable, no obstante, es que quieras descargar un módulo completo. Si es así, sigue leyendo.

4.  Login anónimo SVN

Desde dentro del directorio en el que quieras colocar tu copia local de las fuentes, haz:

 svn co svn://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel

Esto creará un directorio lyx-devel y descargará muchos archivos en él. (Una copia reciente necesitará unos 150MB. Sin embargo, en función de la interfaz que se vaya a compilar, para la versión compilada hará falta mucho más espacio, hasta 800MB).

Por supuesto, puedes poner en su lugar svn co svn://svn.lyx.org/lyx/www-user/trunk www-user, según el módulo que quieras descargar.

5.  Después de la primera descarga

Si se actualiza el código, haz cd al directorio lyx-devel y:

 svn update

Esto descargará o parcheará mágicamente solo aquellos archivos que se han cambiado o añadido, ahorrándote (y al servidor) mucho tiempo.

Si solo quieres comprobar lo que ha cambiado en tu copia local respecto al repositorio, haz:

 svn status

Si quieres comprobar lo que ha cambiado en el servidor, pero aún no actualizado en tu copia local, haz:

 svn status -u

6.  Compilando la fuente

Solo sigue las instrucciones en INSTALL, como si hubieras descargado un archivo tar. Para el módulo estable, esto es bastante más apropiado, autogen.sh, configure, make, y make install.

Si quieres compilar y ejecutar el módulo de desarrollo, las cosas son algo más complicadas que para el módulo de publicación. Vas a necesitar automake, autoconf, y gettext, que pueden descargarse de tu sitio ftp GNU favorito. (Empieza en gnu.org para encontrar una réplica.) Una vez instaladas todas estas cosas, solo debes ejecutar el guión autogen.sh escrito por Allan Rae, que hará las cosas en el orden correcto, y después te indicará que ejecutes configure y make.


7.  Cambios en la fuente

Apoyamos firmemente cualesquiera impulsos creativos que puedas tener. Arreglos de fallos, documentación, nuevas características, siempre se analizarán cuidadosamente y serán generalmente aceptadas, con algunas excepciones. Raramente se aceptarán características nuevas para la versión estable publicada. La documentación que no siga los requerimientos del documento DocStyle no se aceptarán. Aparte de esto, no obstante, ¡nos encanta recibir nuevas contribuciones!

Si quieres proponer cambios a LyX, será más fácil para todos si cambias las últimas fuentes SVN en vez de la última liberación. Aquí hay un rápido resumen de lo que deberías hacer:

  • Obtener la última versión de la fuente con svn update. Un parche a fuentes antiguas será mucho más pesado de aplicar, y por tanto probablemente ignorado.
  • Cambia los archivos. (Bien editando en el sitio, bien copiádolos a algún otro lugar, edítalos, y después cópialos dondequiera que mantengas el árbol SVN).
  • Ejecuta svn diff > mypatch.diff para crear un parche.
  • Envía el parche a la lista de correo de desarrolladores de LyX.

8.  Acceso a escritura mediante ssh

Si estás creando muchos parches que el equipo LyX incorpora al código, se te puede conceder acceso a SVN. En ese caso tu vida se hará aún más fácil. En vez del anterior acceso anónimo, puedes verificar las fuentes con

 svn co svn://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel

Después ejecutas un svn commit para comprobar los cambios en el árbol de Subversion, en vez de crear un parche y enviarlo. La primera vez se te piden el nombre de usuario y la contraseña, que se guardarán para sucesivas sesiones por tu comodidad (esto se puede deshabilitar a petición).

El sitio web de los desarrolladores de LyX y la página Inicio de LyX también están bajo Subversion. Probablemente no son de descarga válida a menos que tengas acceso a escritura, por supuesto. Ambos están en el módulo www-user.

9.  Ramas SVN

El desarrollo principal en LyX se hace en ramas SVN. Si estás interesado en ayudar al desarrollo o con trabajos de prueba en estas ramas, puedes verificar una copia con un comando como:

 svn co svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X lyx-1.6.x
Nombre RamaMantenedorEstadoComentario
trunkJMatosinestableRama principal
BRANCH_1_6_XJSpitzmestableRama estable de la serie 1.6

Hay además algunas ramas antiguas obsoletas:

Nombre RamaMantenedorEstadoComentario
BRANCH_1_5_XJSpitzmestableRama estable de la serie 1.5
BRANCH_1_4_XJMarcestableRama estable de la serie 1.4
BRANCH_1_3_XJMarcestableRama estable de la serie 1.3
BRANCH-1_2_XJMarcestableRama estable de la serie 1.2
BRANCH_1_1_6JMarcestableEstabilización de 1.1.6