En el desarrollo de software , upstream se refiere a una dirección hacia los autores originales o mantenedores del software que se distribuye como código fuente , y es una calificación de una versión (publicada por los autores originales, basada en su código fuente upstream), un error o un parche .
Ejemplos prácticos:
- Se ofrece un parche enviado en sentido ascendente a los autores originales o mantenedores del software. Si se acepta, los autores o mantenedores incluirán el parche en su software, ya sea de inmediato o en una versión futura . Si se rechaza, la persona que envió el parche tendrá que mantener su propia distribución del software del autor.
- Repositorio ascendente o versión de distribución de código fuente , que puede ser una versión etiquetada para la cual el código fuente se ha empaquetado específicamente, una confirmación específica o maestra (jerga para la última confirmación). Donde las distribuciones personalizadas (como las bifurcaciones) pueden haberse perdido las correcciones de errores y las mejoras (maduración del proyecto vinculado a los autores originales, en sentido ascendente) como resultado de no fusionar (todos) los parches ascendentes. En tales casos, la distribución personalizada puede incluso haber sido adaptada para satisfacer las necesidades y requisitos específicos de quienes la utilizan o mantienen. Esto también se ve a menudo con las dependencias (paquetes de proveedores), donde el tomador simplemente se conforma con una versión base una vez y tiende a quedarse con ella, con el tiempo acumulando tantas modificaciones (arbitrarias) o usos no estándar en su entorno que fusionando lo último Los parches ascendentes en su distribución personalizada no serán posibles sin un trabajo adicional importante para la compatibilidad de parches y funciones, y evitando parches duplicados de errores que resolvieron ellos mismos (y a su manera) mientras que el flujo ascendente también tiene un parche para ello. Muchos usuarios de distribuciones personalizadas seguirían seleccionando y fusionando parches críticos ascendentes (como los relacionados con vulnerabilidades de seguridad).
El desarrollo ascendente permite que otras distribuciones se beneficien de él cuando adquieren la versión futura o fusionan los parches ascendentes recientes (o todos). [1] Del mismo modo, los autores originales (que se mantienen en sentido ascendente) pueden beneficiarse de las contribuciones que se originan en distribuciones personalizadas, si sus usuarios envían parches en sentido ascendente.
El término también se refiere a errores; Se dice que la responsabilidad de un error reside en sentido ascendente cuando no se debe a la transferencia de la distribución , la modificación no ascendente o los esfuerzos de integración.