Ciclo de vida del lanzamiento de software
En la programación de código abierto los números de las versiones, o los términos estable e inestable, normalmente distinguen las fases del desarrollo. En el pasado, el núcleo Linux usaba el número de versión para denotar si una versión era estable o inestable. En efecto, las versiones estaban formada por cuatro números, separados por un punto. Una cifra impar en el segundo número de la versión indicaba una versión inestable. Hoy en día ya no se usa esta convención, y todas las versiones son estables independientemente del número de versión. En la práctica el uso de números pares e impares para indicar la estabilidad de un producto ha sido usado por otros muchos proyectos de "software" libre.
Licencia de software libre
Los paquetes de licencias de software que contienen explicaciones contradictorias, hacen imposible combinar el código de estos paquetes para crear nuevos paquetes de software. La compatibilidad de licencias entre una licencia copyleft y otra licencia a menudo se produce en un único sentido. Las licencias que no son copyleft tienen menos problemas de compatibilidad al ser menos restrictivas. Por ejemplo si una licencia dice que las versiones modificadas deben mencionar a los desarrolladores en cualquier material de marketing, y otra dice que las versiones modificadas no pueden contener atribución adicional, entonces si alguien combina un paquete de software que usa una licencia con un paquete de software que usa la otra entonces sería imposible satisfacer la combinación porque estos requisitos son contradictorios y no se pueden completar a la vez, luego estos dos paquetes serían incompatibles. Asimismo, una licencia copyleft no necesariamente es compatible con otra licencia copyleft. Un claro ejemplo de esto está en la incompatibilidad de la versión 2 de la GPL con la versión 3.