El Comité Técnico de Debian (CTTE) ha aprobado la entrega de Kubernetes en forma de paquete monolítico que incluye dependencias, ya que Kubernetes requiere una gran cantidad de bibliotecas Go para ejecutarse.

De acuerdo con las reglas de Debian, cada biblioteca debe mantenerse en un paquete separado, lo que en el caso de un solo uso no es práctico y aumenta significativamente los costos laborales. Además, para grandes proyectos, existe una vinculación a las versiones de la biblioteca, con lo que se garantiza un trabajo estable.

El encargado de mantenimiento de Kubernetes no siguió las reglas y creó alrededor de 200 dependencias en el lenguaje Go en el paquete.

Después de revisar esta violación, el comité técnico de Debian hizo una excepción para Kubernetes y permitió que se enviara con dependencias integradas (en lugar de dividirse en bibliotecas separadas que están vinculadas a través del mecanismo de dependencia dpkg, todas las fuentes se descargarán del conjunto proporcionado por el proyecto Kubernetes y se colocarán en el repositorio de Debian en una entrada).

Nuestro consenso es que Kubernetes debe considerarse especial de la misma manera que Firefox se considera especial: tratamos el package de manera diferente a la mayoría de los otros paquetes fuente porque (i) es muy grande y complejo, y (ii) upstream tiene significativamente más recursos para mantener todas esas partes móviles actualizadas que Debian.

En el caso de Kubernetes, esto significa que en lugar de romper el paquete en bibliotecas separadas conectadas entre sí con  relaciones de dependencia dpkg , como es habitual, tomamos actualizaciones de todo el conjunto de fuentes directamente desde el flujo ascendente y hacemos una sola carga en nuestro archivo.

Por analogía con Firefox, el paquete de Kubernetes se clasifica como especial, que, debido a su gran tamaño y complejidad, se diferencia de otros paquetes y se puede procesar por separado.

También se observa que los desarrolladores de Kubernetes tienen significativamente más recursos para mantener la configuración actualizada que los mantenedores de Debian.

Permitir la inclusión de dependencias se considera la única ruta de entrega posible para Kubernetes para Debian.

La integración de dependencias fue aprobada previamente por el Proyecto Fedora para proyectos basados ​​en la plataforma Node.js. El problema de la integración de dependencias se discutió en detalle en la revisión publicada la semana pasada.

Fuente: https://bugs.debian.org/