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.
Licencia de software libre
Durante los años noventa, estas licencias de software libre empezaron a incluir cláusulas para protegerse contra las patentes de software. Esta nueva amenaza era una de las razones para escribir la versión 3 de la GPL de GNU en el 2006. En los últimos años, están apareciendo dispositivos específicamente diseñados para prevenir que los usuarios ejecuten versiones modificadas del software en ese hardware. Esto es visto por la FSF como una manera de transformar el software libre en no libre de manera efectiva, por lo que esta práctica es incompatible con la tercera licencia de la GPL. Las licencias de software libre escritas recientemente incluyen alguna forma de cláusulas contra patentes. Estas medidas estipulan que los derechos de uno bajo la licencia, tales como la de la redistribución, pueden ser eliminadas si se llevan a cabo prácticas, como la anteriormente mencionada, que restringen las libertades del usuario.