Open Source
От контрибьютора к мейнтейнеру
Фарук Абесе поддерживает core-js - библиотеку которая входит в 75% всех веб-сайтов. В 2019 он написал что не может оплатить аренду. Реакция сообщества изменила разговор о финансировании OSS. Быть мейнтейнером - это не только слава, это реальный труд.
- core-js maintainer Zloirock: 9 млрд downloads/месяц, один maintainer, финансовые трудности
- OpenSSL: критический интернет-инструмент поддерживался 1-2 людьми до Heartbleed инцидента
- GitHub Sponsors запущен в 2019 как ответ на burnout epidemic в OSS
- Tidelift: бизнес-модель которая платит maintainers за enterprise поддержку их OSS
Ответственности мейнтейнера
Стать мейнтейнером - не цель, а обязательство. Пользователи начнут зависеть от вас. Security vulnerabilities будут репортить вам. Breaking changes станут вашей ответственностью. Это не почёт - это работа.
**Onboarding новых contributors - инвестиция в будущее.** Лучшие мейнтейнеры создают good first issue с очень подробным описанием: не просто «исправить X», а «вот файл, вот строка, вот что нужно изменить, вот как тестировать». Это создаёт pipeline contributors которые потом вырастают в committers.
У вашего проекта накопилось 200 открытых issues за год. Как правильно разобраться?
Burnout: предотвращение и передача проекта
**Maintainer burnout - эпидемия в OSS.** Исследование 2019 года: 58% OSS maintainers испытали burnout. Причины: неограниченные ожидания пользователей, ощущение долга перед каждым issue, токсичные interactions, работа без оплаты. Профилактика - не опциональна.
**Передача проекта - акт уважения.** Заброшенный проект с 10 000 пользователей которые не знают что он мёртв - это хуже чем явная передача. Варианты: найти co-maintainer заранее, передать в организацию (CNCF, ASF), опубликовать seeking-maintainer issue. Никогда не удаляйте - это может сломать зависимые проекты.
Вы поддерживаете проект 3 года, устали. Проект используют 50 000 человек. Что делать?
Ключевые идеи
- Мейнтейнер = еженедельный issue triage, PR review, releases, community management
- Triage labels: needs-reproduction, good first issue, help wanted, wontfix - стандартный набор
- Burnout признаки: тревога при открытии GitHub, избегание notifications, раздражение
- Профилактика: явные ожидания времени ответа, funding, делегирование, перерывы легитимны
- Передача проекта - акт уважения: ищите преемника заранее, никогда не удаляйте
Связанные темы
Это финальный урок курса. Весь путь: от понимания лицензий до ответственности мейнтейнера.
- Начало курса — Вернуться к основам
Вопросы для размышления
- Если бы вы создавали свой OSS проект сегодня, какие границы вы бы установили с первого дня? Что написали бы в README о поддержке?
- Как вы думаете, какие изменения в GitHub/npm экосистеме могли бы системно снизить burnout среди maintainers?
Связанные уроки
- oss-09-maintainers — Понять роль мейнтейнера перед тем как ею стать
- oss-07-code-review — Мейнтейнер проводит десятки ревью в неделю
- oss-08-community — Культура сообщества - ответственность мейнтейнера
- oss-17-security — Мейнтейнер управляет CVE и security disclosure
- se-14 — Рефакторинг кодовой базы как одна из ключевых обязанностей
- se-01