Cuál es la diferencia entre build, versión, revisión y release en términos de ingeniería de software?

Considere un número de versión completo como 8.3.2.37.

El primer grupo (antes del primer punto) es el número de versión. Una versión introduce nuevas características importantes, puede implicar una importante reelaboración/rearquitectura interna y puede romper la compatibilidad con versiones anteriores o plataformas previamente soportadas.

El segundo grupo es el número de versión. Se trata de una actualización más pequeña dentro de una actualización. Puede añadir algunas características nuevas y corregir errores variados. Por lo general, no incluye cambios importantes en el diseño interno o la arquitectura y debe ser (en su mayoría) compatible con otras versiones de la misma versión.

El tercer grupo es el número de revisión. Una revisión suele contener correcciones de errores y pequeñas mejoras.

El número de compilación es un número de compilación secuencial dentro de una versión. En mi ejemplo anterior, esta es la 37ª compilación de la revisión 8.3.2. El número de compilación generalmente se incrementa automáticamente por un proceso de construcción de integración continua (CI). Sólo una compilación será la oficial para una revisión determinada. Si mi 8.3.2.37 se libera y luego se encuentra un error crítico, la solución estaría en 8.3.3.x.

No todos los proyectos utilizan este esquema, pero es bastante común.