Noticias

La base del software: bibliotecas de código abierto y sus mantenedores

Una biblioteca de código abierto es un depósito de código que los desarrolladores pueden usar, contribuir, modificar y redistribuir bajo una licencia. Las bibliotecas de código abierto suelen desarrollarse en plataformas como GitHub y distribuirse mediante registros de paquetes como PyPI para Python y npm para JavaScript. Estos repositorios contienen código reutilizable preescrito que los desarrolladores pueden utilizar para agregar nuevos elementos o funcionalidades a sus proyectos de software. No es sorprendente que las bibliotecas de código abierto sean mantenidas (actualizadas, parcheadas, mejoradas, etc.) por personas llamadas «mantenedores».

Al menos esa es una definición simple, pero no hace justicia a lo que sucede detrás de escena. La verdad es que los mantenedores de bibliotecas de código abierto son comunidades cuyos esfuerzos respaldan la gran mayoría de las aplicaciones de software modernas en las que confiamos. Por ejemplo, React se usa ampliamente para crear interfaces de usuario para aplicaciones web y móviles. reaccionar nativo Se utiliza para crear muchas aplicaciones populares. Es posible que ya los utilices, incluidos Facebook, Discord y Airbnb. Las bibliotecas como React a veces cuentan con el respaldo de fundaciones específicas, pero hay cientos o incluso miles de bibliotecas que también dependen de mantenedores individuales.

Quizás hayas notado que recientemente comenzamos una nueva serie en nuestro canal de YouTube”,Un clic para hablar | Conozca a los mantenedores.» Esta serie destaca el trabajo de conocidos desarrolladores de código abierto como Andrew Gallant (el mantenedor detrás de ripgrep) y ofrece una mirada detrás de escena de su viaje en la comunidad de código abierto. En este blog, brindaremos algo de contexto al analizar las capas de las bibliotecas de código abierto: cómo funcionan, por qué son importantes y los mantenedores que las hacen trabajar detrás de escena.

Cómo funcionan las bibliotecas de código abierto y en qué se diferencian de las bibliotecas de código cerrado

El software no se crea en el vacío. Alguien (o el equipo de alguien) tiene que compilarlo primero, escribir el código y ejecutarlo. Pero el software nunca es real completo. Siempre hay errores que deben corregirse, se pueden imaginar o solicitar nuevas funciones y siempre se puede mejorar el rendimiento. Además, el código está constantemente expuesto a nuevas amenazas de seguridad, cambios en bibliotecas y marcos externos y actualizaciones de sistemas operativos, navegadores y hardware, todo lo cual requiere que alguien esté al tanto para evitar que el código quede obsoleto o inutilizable.

En términos generales, en un marco de software propietario, se utiliza un equipo de desarrolladores para hacer el trabajo (construir y/o mantener la biblioteca de software). Sin embargo, solo personas autorizadas, como empleados de la empresa y ciertos socios, pueden acceder al código fuente de la biblioteca (texto legible por humanos escrito en un lenguaje de programación que una computadora convierte en binarios, procesa y ejecuta). La empresa, como propietaria del software, conserva los derechos de propiedad que generalmente impiden la visualización, modificación y redistribución no autorizadas del código en bibliotecas de código cerrado. Esto significa que sólo los propietarios de software pueden incluir código de la biblioteca en sus proyectos, por lo que si hay un problema con el software creado utilizando una biblioteca de código cerrado, los usuarios sólo pueden obtener soporte a través del proveedor propietario del código.

Los marcos de desarrollo de código abierto funcionan de manera diferente. Las bibliotecas de código abierto a menudo se crean gracias a esfuerzos comunitarios. Según el acuerdo de licencia y colaborador, cualquiera puede realizar contribuciones al código. Generalmente, cualquiera puede solicitar nuevas funciones o modificaciones, o proporcionar correcciones de errores. Los mantenedores dirigen la biblioteca, gestionando y moderando la comunidad de contribuyentes y usuarios. Dependiendo de la biblioteca, los mantenedores pueden prestar atención a los detalles (revisar el código aportado, decidir qué código termina en la biblioteca, garantizar que la documentación sea clara y precisa), así como a decisiones globales, como guiar la dirección de toda la biblioteca de código abierto.

Por lo general, no se contrata a los mantenedores de bibliotecas de código abierto para administrar el marco. En cambio, el trabajo es voluntario. En algunos casos, los mantenedores individuales pueden apoyar su trabajo mediante patrocinios o donaciones. En otros casos, las fundaciones (como la Fundación Eclipse o la Fundación Linux) adoptan un enfoque de gestión para mantener el código abierto. En estos casos, la fundación actúa como custodio del proyecto o biblioteca y no como propietaria en el sentido tradicional. La fundación garantiza que el proyecto permanezca disponible y respaldado, lo que puede incluir el establecimiento de un Comité Directivo Técnico (TSC) para proporcionar dirección estratégica y guiar la base del código, actuar como mediador en conflictos dentro de la comunidad con respecto al desarrollo del proyecto y garantizar que el código tenga la licencia adecuada. Lo más importante es que la fundación puede recopilar y organizar patrocinios para ayudar a comprar servidores, aumentar el ancho de banda y proporcionar financiación a los contribuyentes del proyecto.

Bibliotecas de código abierto: la columna vertebral del software moderno

El software de código abierto está en todas partes. Último informe de nuestra asociación con The Linux FoundationSegún los informes, el 55% de las empresas de todo el mundo han adoptado sistemas operativos de código abierto, el 49% de las empresas han adoptado tecnología de contenedores y nube de código abierto, y el 46% de las empresas han adoptado el desarrollo de aplicaciones y web de código abierto. Incluso si un proyecto no es completamente de código abierto, es probable que contenga algún código fuente abierto de bibliotecas de código abierto: Auditoría de base de código Se descubrió que hasta el 96% de los proyectos contienen código fuente abierto. Esto no es sorprendente: el acceso abierto al código significa que cualquier número de contribuyentes pueden trabajar en él y brinda más oportunidades para probarlo exhaustivamente en busca de errores.

Sin mantenedores que administren las bibliotecas, muchas bibliotecas de código abierto se estancarían. Algunas bibliotecas de código abierto tienen una gran cantidad de contribuyentes, mientras que para otras bibliotecas de código abierto el mantenedor puede ser el único contribuyente. En el último caso, si el mantenedor hace esto, la biblioteca se suspende: no se proporcionan más parches, ni actualizaciones de seguridad, ni correcciones de errores.

Si el código necesita actualizarse y mantenerse constantemente para garantizar que no quede obsoleto, y la mayoría de los proyectos de software incluyen código de bibliotecas de código abierto, no se pueden subestimar los esfuerzos de los mantenedores para mantener las bibliotecas actualizadas.

Entonces, ¿por qué el personal de mantenimiento hace este trabajo?

¿Qué motiva a los reparadores?

A partir de 2023 El mantenedor de código abierto de Tidelift informa el estado Se reveló que la mayoría de las personas están motivadas por tener un impacto positivo en el mundo (70%) y el hecho de que el trabajo sea creativo, desafiante y/o agradable (62%). En términos generales, los mantenedores están motivados por la creencia en el software, la comunidad y los ideales del código abierto. Pero ¿qué significa esto en la práctica?

El primer episodio de la serie «Conozca a los mantenedores» de Canonical comienza a revelar lo que estas motivaciones generales significan para los mantenedores individuales. Andrew Gallant (también conocido como BurntSushi), el responsable de ripgrep, explica que sus primeras contribuciones al código abierto se inspiraron en su deseo de albergar foros de discusión en su sitio de fans. Los Simpson. Gallant se interesó en el software de foros en general, comenzando con un autoproclamado «truco» del software propietario de foros VBulletin. Al igual que las motivaciones informadas por otros mantenedores, Gallant disfruta del desafío y la creatividad que implica piratear el código PHP para modificarlo de modo que «haga pequeñas cosas». Veinte años después, las motivaciones de Gallant están aún más centradas en la comunidad: la satisfacción de crear algo «gratuito para que todos lo usen» y «ver a la gente usarlo». [he] Hospedarse[s]». Para obtener más información sobre las numerosas bibliotecas y proyectos en los que Gallant ha contribuido y en los que ha trabajado a lo largo de los años, Mira el vídeo en nuestro canal de YouTube.

Mantenedores de soporte: por qué ayuda y cómo hacerlo

Es posible que los incentivos financieros no sean la motivación principal para todos los mantenedores; sin embargo, brindar apoyo financiero puede ayudar a facilitar el trabajo y, en última instancia, dar como resultado un software más potente y un desarrollo de código más rápido.

Afortunadamente, contribuir a bibliotecas y proyectos de código abierto es simple y directo. Plataformas como Thanks.dev pueden ayudarlo a donar a los repositorios utilizados por su software y asignar fondos automáticamente de manera proporcional según la frecuencia de uso de las dependencias. como Gracias a .dev por la sugerencia en su sitio web.lo que facilita a las grandes organizaciones «administrar la logística de respaldar los miles de proyectos de los que dependen», incluidos paquetes profundamente anidados y dependencias indirectas críticas que pueden pasarse por alto.

Canonical comenzará a donar a través de Thanks.dev en abril de 2025. Nos hemos comprometido a donar $120,000 a través de la plataforma dentro de 12 meses, con una donación mensual de $10,000. Puede encontrar la lista completa de destinatarios hasta la fecha en: Gracias.dev/r/canonical.

Mantenedor aprobado

Las bibliotecas de código abierto son un trabajo de amor y dependen del arduo trabajo de comunidades y desarrolladores talentosos. Este trabajo es a menudo invisible, no remunerado y no reconocido, pero –directa o indirectamente– dependemos de él más de lo que creemos.

Como empresa de código abierto, Canonical se compromete a difundir ideas de código abierto a tantas personas y comunidades como sea posible. Impulsamos nuestros propios proyectos, pero también aportamos personas, código y financiación a muchos más proyectos, que puedes conocer en nuestro sitio web. Página web. «Conozca a los mantenedores» revela a los mantenedores detrás de las bibliotecas, reconoce su trabajo y espera inspirar a más personas a apoyar el código abierto, unirse a la comunidad y contribuir a las bibliotecas de código abierto.

Mira la serie >

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba