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)?

Связанные уроки

  • se-01
Как устроены OSS-проекты

0

1

Войти