Maintainer's Role in Open Source

Rate this content
Bookmark

Cualquiera puede publicar una biblioteca en NPM. Pero, ¿qué sucede cuando esa biblioteca es utilizada por millones de desarrolladores? ¿Cómo se manejan las complejidades de publicar uno de los paquetes más utilizados en el ecosistema y también lidiar con el soporte y mantenimiento de una comunidad?

Veremos la mentalidad y el enfoque para enfrentar estos desafíos y lo que significa ser un "mantenedor" hoy en día, incluyendo prácticas para proporcionar soporte a los usuarios en todas las plataformas, mantener una mentalidad de "devrel", diseñar documentación, diseñar características y APIs, cómo considerar la versionado de paquetes y la compatibilidad, cuándo lanzar cambios disruptivos, desafíos técnicos con la publicación de paquetes y mantenerse al día con el ecosistema en constante evolución.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Mark Erikson
Mark Erikson
29 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy trata sobre cómo es ser un mantenedor de una biblioteca de código abierto, con ejemplos y sugerencias de la experiencia del orador. Los mantenedores tienen varios roles y responsabilidades, incluyendo proporcionar soporte a los usuarios y gestionar la documentación. Establecer límites, priorizar la documentación y diseñar APIs son aspectos importantes de ser un mantenedor. La gestión de lanzamientos y la compatibilidad son desafiantes, requiriendo una consideración cuidadosa de las versiones de parches y los cambios disruptivos. El orador comparte un ejemplo de cómo marcar un método como obsoleto en Redux y proporcionar un camino de migración para los usuarios. La compensación para los mantenedores es un tema debatido, y los code mods pueden ayudar con la migración de código. Los mantenedores a menudo enfrentan desafíos, pero pueden tener un impacto significativo en el ecosistema y en las carreras de las personas. Apoyar a los desarrolladores de código abierto es muy apreciado.

1. Introducción al Mantenimiento de Bibliotecas de Código Abierto

Short description:

Soy Marc Erikson y seré su anfitrión para la charla de hoy. La charla de hoy trata sobre cómo es ser un mantenedor de bibliotecas de código abierto, y les daré algunos ejemplos y sugerencias de mi experiencia. Vamos a entrar en práctica.

Soy Marc Erikson y seré su anfitrión para la charla de hoy. Gracias por acompañarnos. Estoy emocionado de estar aquí hoy y espero poder compartir algunas cosas con ustedes. Antes de comenzar, me gustaría darles un poco de antecedentes sobre lo que hago en React. Soy desarrollador y soy desarrollador web. Soy ingeniero y he estado trabajando en el equipo de React por más de 10 años, y soy un desarrollador y una comunidad.

Un par de cosas rápidas sobre mí, la mitad de las cuales Daphne ya me robó. Mi trabajo diario es como ingeniero de front-end en Replay, donde estamos construyendo un depurador de viaje en el tiempo para JavaScript. Soy un respondedor de preguntas, responderé preguntas prácticamente en cualquier lugar donde haya un cuadro de texto en internet. Recolecto todo tipo de enlaces interesantes a herramientas y artículos y recursos. Tengo una familia de publicaciones de blog sobre React y Redux, y soy un mantenedor de Redux. He escrito gran parte de nuestra documentación, creado Redux Toolkit, trabajado mucho en React Redux. Pero sí, la mayoría de la gente me conoce como ese tipo con el avatar de los Simpsons.

Así que, la charla de hoy es un poco diferente para mí. La mayoría de mis charlas tienden a ser muy técnicas, y la de hoy es realmente más sobre personas. Estaba tratando de pensar, como, ¿qué estoy realmente tratando de lograr con esta charla? Y diría que los objetivos de hoy son, si eres un desarrollador de aplicaciones, quiero darte una idea de cómo es ser un mantenedor de bibliotecas de código abierto. Si tal vez estás pensando en trabajar en una biblioteca, o averiguando cómo empezar, quiero darte algunos ejemplos de cómo es, y tal vez ofrecerte algunas sugerencias o lecciones aprendidas de años de realmente hacer esto en la vida real. Y, como siempre, seré muy breve, y te daré un poco de antecedentes. Te daré un poco de antecedentes, y te daré un poco de antecedentes. Vamos a entrar en práctica.

2. Roles and Expectations of Open-Source Maintainers

Short description:

Cuando se trata de programadores y mantenedores, hay mucho más que solo escribir código. Los mantenedores tienen que lidiar con personas y cumplir con las expectativas implícitas de la comunidad. Un mantenedor lleva muchos sombreros y es responsable de varios roles. Algunos mantenedores incluso pueden asumir posiciones de relaciones con desarrolladores. Los mantenedores de código abierto realizan tareas similares a las que hacen los profesionales de relaciones con desarrolladores. Aquí hay algunos números recientes de descargas para las principales bibliotecas en el ecosistema de React.

Entonces, cuando pensamos en programadores, ya sabes, el estereotipo es, ya sabes, un programador es una máquina que convierte café en código, estás encorvado sobre tu teclado tarde en la noche, golpeando furiosamente y tratando de construir algo. Y de la misma manera, creo que cuando la gente piensa en mantenedores, es como una máquina expendedora. Y, ya sabes, de la misma manera que los programadores hacen mucho más que solo escribir código. Estamos teniendo discusiones en canales de Slack y en issues de GitHub. Estamos planificando la arquitectura, o averiguando cómo escribir bucles y YAML o algo así.

Y así, de la misma manera, los mantenedores hacen mucho más que solo escribir características y corregir errores. Y resulta que mucho de lo que hacemos realmente tiene que ver con las personas. Ahora, con el código abierto, realmente existe esta gran dicotomía que existe. Por un lado, está la licencia de código abierto. Y la licencia básicamente se reduce a aquí hay algo de código, tú puedes usarlo gratis, y si se rompe, no es mi culpa. Eso es tu responsabilidad. Pero por otro lado, cuando publicas un paquete o una biblioteca, hay una especie de expectativa comunitaria que es muy implícita, y es esta idea de que si he hecho este proyecto, tengo que mantenerlo. Y que la gente espera que responda a los issues y corrija errores y lo mantenga. Y eso no está en la licencia, pero eso está muy presente en la cultura que hemos construido alrededor del código abierto.

Entonces, ¿qué es realmente un mantenedor? Hubo una muy buena cita de Artem Zakharchenko, quien es el creador de MSW. Entonces, un mantenedor es una persona que mantiene una biblioteca, y mantiene una biblioteca. Y un mantenedor es una persona que es diseñador, defensor del desarrollador, soporte técnico, vendedor, gerente de comunidad, creador técnico, y un ser humano todo al mismo tiempo. Eso es muchos sombreros diferentes para usar. Y para muchas bibliotecas, puede que solo haya una persona manteniéndola, lo cual es por lo que tenemos el clásico XKCD que ilustra la torre de Jenga, que es la tecnología moderna, y eso es lo que queremos.

Ahora, en un momento, estaba buscando algunas posibles situaciones de trabajo hace un tiempo. Y alguien me envió una oportunidad de trabajo para una posición de relaciones con desarrolladores. Y lo miré, y estaba muy confundido. Soy ingeniero. Quiero pasar mi tiempo escribiendo código. ¿Por qué alguien pensaría que estoy buscando una posición de dev rel? Y alguien señaló que básicamente he sido un dev rel durante tres años. Y yo estaba como, bueno, así es como comencé. Es como, oh, está bien. Y si piensas en, como, busqué algunas definiciones de lo que hace un dev rel, y son cosas como creación de contenido técnico, hablar en público, participación comunitaria. Eso realmente suena mucho a lo que muchos mantenedores de código abierto hacen. Así que, para un poco de contexto, aquí hay algunos números recientes de descargas para algunas de las principales bibliotecas en el ecosistema de React, que son React, Redux core, Redux toolkit, React router, React query.

QnA