Release Management
Cuando son conocidos los requerimientos, dependencias y plazos, se comienza la construcción de la nueva entrega. El primer paso es el diseño de la nueva entrega. Se puede hacer usando técnicas de desarrollo de software, por ejemplo UML. El diseño es convertido en código fuente de algún lenguaje de programación (por ejemplo C). Se da a conocer a los desarrolladores la fecha de término para cambios (congelar el repositorio). Las piezas de código, clases, archivos de configuración, etc son entonces traídas desde el repositorio mediante un checkout, compiladas, enlazadas y finalmente armadas en un solo programa, un built. Se debe colocar una marca (tag) en el repositorio sobre la versión que fue traída, para posteriormente conocer el estado de avance de la versión usada por el usuario.
Copyleft
Muchas licencias de software libre, como las que utilizan los sistemas operativos BSD, el Sistema de Ventanas X y el servidor web Apache, no son licencias copyleft puesto que no exigen al titular de la licencia la distribución de los trabajos derivados bajo la misma licencia. En la actualidad, se debate sobre qué licencia proporciona mayor grado de libertad. En este debate se consideran cuestiones complejas como la propia definición de libertad y qué libertades son más importantes. A veces se dice que las licencias copyleft tratan de maximizar la libertad de todos aquellos destinatarios potenciales en el futuro (inmunidad contra la creación de software privativo), mientras que las licencias de software libre sin copyleft maximizan la libertad del destinatario inicial (libertad para crear software privativo). Con un enfoque similar, la libertad del destinatario (que es limitada por el copyleft) puede distinguirse de la libertad del propio software (la cual es garantizada por el copyleft).