Open Source
Как устроены OSS-проекты
React используют 10 миллионов разработчиков. Кто решает что в него войдёт? Почему одни PR принимают за день, а другие висят годами? Ответ в governance - правилах власти, которые в OSS часто не написаны явно.
- Vue.js: Evan You как BDFL создал Vue за выходные, теперь Core Team из 20+ человек
- Python 2018: Guido van Rossum отказался от роли BDFL после токсичного дебата о walrus operator
- Redis Labs в 2018 изменил лицензию модулей на non-OSS - сообщество форкнуло проект
- Kubernetes перешёл из Google в CNCF именно для нейтральности governance
Роли в OSS-проекте
В любом OSS-проекте есть негласная иерархия. Понимание ролей - первый шаг к эффективному участию. Вы не «просто пользователь» и не «просто разработчик» - у каждого участника свои права и ответственность.
**Maintainer burnout - реальная проблема.** Денис Пушкарёв (Zloirock) в одиночку поддерживал `core-js` (загружается 9 млрд раз/месяц). В 2019 году опубликовал эмоциональный пост о том, что не может платить аренду. Это изменило разговор о финансировании OSS.
Вы регулярно делаете PR в проект уже полгода: 20+ принятых патчей. Какой следующий шаг в иерархии проекта?
Governance: BDFL, комитет, корпоративный
**Governance** - как принимаются решения в проекте. Это важно понимать: от governance зависит куда двигается проект и насколько ваш голос имеет значение.
**Lerna история:** В 2018 году мейнтейнер Lerna добавил в лицензию пункт, запрещающий использование компаниям из ICE contractors list. Сообщество разделилось, проект был форкнут. Это показывает: governance и лицензии - политика, даже в техническом проекте.
Вы предлагаете большое изменение API в Node.js. Какой процесс нужно пройти согласно TSC governance?
Ключевые идеи
- Роли: User → Contributor → Committer → Maintainer → Core Team
- BDFL - один лидер, быстрые решения, высокий bus factor
- TSC/Committee - распределённая власть, медленнее, устойчивее
- Корпоративный OSS - стабильность финансирования, риск смены direction
- GitHub Flow: branch → commit → PR → review → merge в main
Связанные темы
Разобравшись со структурой проектов, следующий шаг - найти подходящий проект для первого вклада.
- Следующий урок курса — Логическое продолжение
Вопросы для размышления
- Guido van Rossum ушёл с роли BDFL Python в 2018 после спора о синтаксисе. Как вы думаете, что лучше для долгосрочного здоровья проекта - BDFL или committee?
- Почему крупные компании (Google, Microsoft, Meta) предпочитают передавать важные проекты в независимые фонды (CNCF, Linux Foundation)?