Ejemplos mínimos

¿Qué son los “ejemplos mínimos”?

Un ejemplo mínimo es un ejemplo del que no se puede eliminar nada.

¿Por qué crearlos?

  • Cuanto más simple es el ejemplo, más rápidamente pueden los desarrolladores entenderlo y ayudarle.
  • Un ejemplo mínimo demuestra que se ha esforzado en resolver el problema por sí mismo. Cuando alguien envía bloques grandes de código de entrada, da la impresión de que no le importa que le ayudemos o que no.
  • La creación de un ejemplo mínimo le ayuda a entender lo que está ocurriendo. Muchos informes falsos de problemas se podrían evitar intentando crear un ejemplo mínimo; si no puede reproducir un “bug” en un ejemplo mínimo, probablemente el problema era una comprensión insuficiente sobre LilyPond, ¡no un verdadero bug!

¿Cómo se hacen?

  • Incluya el número de versión en una instrucción \version.
  • ¡Hágalo muy pequeño! Los ejemplos relacionados con el espaciado o la disposición de las páginas pueden requerir muchos compases, pero casi todos los problemas se pueden reproducir mediante un solo compás o menos.
  • Cuando trate de crear un ejemplo, pruebe a convertir en comentarios (% ó %{ … %}) distintas secciones del archivo. Si puede convertir un bloque en un comentario y aún mostrar la idea principal, entonces elimine ese bloque.
  • Evite la utilización de notas, tonalidades o compases muy complicados, a no ser que el bug esté relacionado con el comportamiento de esos elementos.
  • No utilice instrucciones \override ni \set a no ser que el bug se refiera a esas instrucciones en concreto.
  • Opcionalmente, adjunte una imagen que muestre el resultado gráfico que desea.

¿Cuán pequeño debe ser?

El código que sigue ¿es un ejemplo mínimo?

\version "2.14.1"
\include "español.ly"

\score {
  \new Staff {
    \key re \major
    \numericTimeSignature
    \time 2/4
    <dos' re'' si''>16 <dos' re'' si''>8.
    %% Aquí: la ligadura de unión sobre los Re tiene un aspecto gracioso
    %% ¿Demasiado alta? ¿El punto final de la mano izquierda no se alinea
    %% con la ligadura del Si?
    ~
    <dos' re'' si''>8 [ <si re'' la''> ]
  }
}

Bueno, no es muy grande, pero he aquí un ejemplo verdaderamente mínimo:

\version "2.14.1"
{
  % la ligadura intermedia tiene un aspecto gracioso aquí:
  <c' d'' b''>8. ~ <c' d'' b''>8
}

Muy pocos ejemplos mínimos superan las 10 líneas de código; ¡lo más corriente es que basten 4 líneas para mostrar el problema!