В первую очередь вышестоящим проектам: основной принцип Fedora
Концепция «в первую очередь вышестоящим проектам» является основополагающим принципом проекта Fedora. Она формирует нашу историю, культуру и подход к участию в экосистеме открытого кода. Понимание этого принципа крайне важно для всех, кто хочет внести вклад в Fedora и более широкую экосистему дистрибутивов Linux.
Приверженность Fedora принципу «в первую очередь вышестоящим проектам»
Fedora как дистрибутив Linux играет уникальную роль интегратора бесчисленных программных компонентов. Хотя Fedora разрабатывает и собственное программное обеспечение, её основная функция заключается в упаковке и предоставлении целостного опыта работы с операционной системой, построенного на основе работы множества вышестоящих проектов.
С самого начала Fedora отстаивала принцип «в первую очередь вышестоящим проектам». Это не политика и не жёсткое правило; это основная ценность, вплетённая в ткань сообщества Fedora. Участники Fedora считают, что изменения и улучшения в программном обеспечении с открытым исходным кодом должны, когда это возможно, передаваться обратно вышестоящим проектам. Это гарантирует, что все пользователи этого программного обеспечения, а не только пользователи Fedora, могут получить выгоду. В конечном счёте, конечная цель Fedora — это польза для пользователя, и участники Fedora будут делать то, что считают лучшим для пользователя, даже если вышестоящий проект не согласен.
Принцип «в первую очередь вышестоящим проектам» — это также прагматичный инженерный принцип. Передавая изменения вышестоящим проектам, Fedora снижает долгосрочную нагрузку по сопровождению специфических для дистрибутива патчей. Поддержка внешних наборов патчей может становиться всё сложнее по мере развития вышестоящих проектов. Следование этому принципу помогает обеспечить устойчивость Fedora и её вклада.
Этот подход оказывает волновой эффект во всей экосистеме открытого кода. Изменения, попадающие в Fedora, часто влияют на множество нижестоящих проектов, которые используют Fedora в качестве основы. Поэтому вклад в Fedora является весьма эффективным способом влиять на более широкий ландшафт открытого кода и улучшать его, особенно в экосистеме RPM/Enterprise Linux.
Отдавая приоритет вкладу в вышестоящие проекты, Fedora соответствует своему видению мира, в котором каждый получает выгоду от свободного и открытого программного обеспечения, создаваемого инклюзивными и гостеприимными сообществами. Это обязательство распространяется на всё программное обеспечение с открытым исходным кодом, а не только на саму Fedora.
Понимание вышестоящих и нижестоящих проектов
В мире открытого кода проекты часто имеют взаимосвязанные отношения, описываемые как «вышестоящие» и «нижестоящие». Вышестоящий проект — это исходный источник программного обеспечения — основа, на которой строятся другие проекты. Нижестоящие проекты, в свою очередь, используют и часто модифицируют вышестоящее программное обеспечение. Представьте это как реку: вышестоящий участок — это исток, а нижестоящие проекты находятся дальше по течению, получая и потенциально изменяя воду.
Эта метафора важна для понимания того, как проекты с открытым исходным кодом зависят друг от друга и взаимодействуют. Разные модели разработки поощряют различные типы отношений между вышестоящими и нижестоящими проектами.
Открытое общение с вышестоящими проектами
Fedora признаёт важность чёткого и открытого общения с вышестоящими проектами. Мы верим в укрепление прочных отношений с разработчиками и сообществами вышестоящих проектов и активно ищем их мнение и отзывы.
Fedora всегда открыта к тому, чтобы услышать от вышестоящих проектов, как мы можем улучшить наши процессы сотрудничества и интеграции. Мы понимаем, что использование Fedora в качестве нижестоящего проекта иногда может создавать проблемы или трения для вышестоящих проектов. Мы призываем сопровождающих вышестоящих проектов обращаться к нам, если они сталкиваются с какими-либо проблемами или имеют предложения по улучшению.
Наша цель — конструктивно работать вместе, чтобы находить решения, которые приносят пользу как Fedora, так и вышестоящим проектам, на которые мы полагаемся. Хотя мы не всегда можем удовлетворить каждый запрос вышестоящего проекта, мы стремимся слушать, учиться и адаптировать наши практики, чтобы минимизировать любое негативное влияние на сообщества вышестоящих проектов.
Философия работы в первую очередь с вышестоящими проектами не заканчивается на разработке. Она также охватывает продуктивные, позитивные и уважительные отношения с нашими вышестоящими проектами. Наши сообщества пересекаются, и мы хотим распространять наши ценности Fedora на их проекты так же, как и внутри Fedora. С этой целью мы всегда хотим совместно решать проблемы между проектами и иметь чёткие каналы связи.
Когда происходят изменения в нижестоящих проектах
Хотя Fedora отдаёт приоритет вкладу в вышестоящие проекты, существуют ситуации, когда необходимы изменения, специфичные для нижестоящего проекта. Эти исключения не являются противоречием принципу «в первую очередь вышестоящим проектам», а скорее признанием сложных реалий разработки и распространения программного обеспечения.
Причины для патчей в нижестоящем проекте включают:
-
Отклонение вышестоящим проектом: Иногда сопровождающие вышестоящего проекта могут отклонить патч по разным причинам, даже если он полезен для Fedora. Fedora может по-прежнему нуждаться в этом патче для решения конкретной проблемы или требования.
-
Развитие вышестоящего проекта: Вышестоящие проекты могут внедрять новые функции или изменения, требующие значительной адаптации в Fedora. Fedora может потребоваться перенос исправлений или реализация временных обходных решений, пока не будет завершена адаптация в нижестоящем проекте.
-
Потребности, специфичные для дистрибутива: Fedora и её нижестоящие дистрибутивы, такие как EPEL, могут иметь уникальные требования или ограничения, которые делают необходимыми модификации в нижестоящем проекте. Эти потребности могут быть связаны с поддержкой конкретного оборудования, соображениями безопасности или интеграцией с другими компонентами Fedora.
-
Несвободные бинарные вставки: Fedora стремится продвигать свободное и открытое программное обеспечение и собирать всё из исходных кодов. Иногда вышестоящие проекты включают несвободные или предварительно собранные бинарные вставки, которые Fedora должна удалять с помощью патчей, чтобы соответствовать своим принципам. Хотя Fedora может обсуждать возможные исправления с вышестоящим проектом, эти патчи не всегда могут быть приняты, если нет подходящих альтернатив или если они удаляют функциональность.
В этих ситуациях Fedora стремится минимизировать объём и продолжительность существования патчей в нижестоящем проекте и продолжает работать над передачей изменений вышестоящим проектам, когда это возможно. Понимание причин изменений в нижестоящем проекте необходимо для поддержания прозрачности и доверия в сообществе.
Примеры в действии
Принцип «в первую очередь вышестоящим проектам» проявляется по-разному. Вот несколько примеров:
-
Улучшения упаковки: Упаковщик Fedora обнаруживает ошибку или отсутствующую функцию в цепочке инструментов сборки. Вместо создания патча, специфичного для Fedora, он отправляет патч вышестоящим сопровождающим цепочки инструментов. После проверки и обсуждения патч принимается в вышестоящий проект, что приносит пользу всем пользователям цепочки инструментов и устраняет необходимость в патче для Fedora.
-
Скрипт сообщества: Участник Fedora разрабатывает скрипт для анализа данных пакетов. Он публикует скрипт. Другой участник улучшает скрипт, добавляя новые функции, и отправляет запрос на включение изменений. Первоначальный автор принимает изменения, делая улучшенный скрипт доступным для всего сообщества.
-
Уточнение лицензий: Упаковщик Fedora обнаруживает проблемы с лицензированием в проекте с открытым исходным кодом, например, неясные или несоответствующие лицензии для включённых ресурсов. Вместо простого исключения проекта из Fedora он работает с вышестоящими разработчиками, чтобы прояснить или исправить лицензии. Это гарантирует, что проект может быть включён в Fedora, и приносит пользу более широкому сообществу открытого кода, способствуя соблюдению лицензий.
-
Избегание встроенных зависимостей: Упаковщик Fedora замечает, что вышестоящий проект включает в себя определённую версию зависимости. Вместо использования встроенной зависимости он переупаковывает проект для использования общесистемной версии зависимости. Это обеспечивает согласованность пакетов Fedora, позволяет быстро развёртывать исправления безопасности и поддерживает совместимость между взаимозависимыми пакетами.
-
Раннее тестирование и сообщение об ошибках: Fedora часто первой внедряет интеграцию новых версий программного обеспечения и библиотек. Это раннее внедрение позволяет участникам Fedora выявлять и сообщать об ошибках сборки или совместимости вышестоящим проектам, особенно в экосистеме Python. Эти вклады приносят пользу всему сообществу открытого кода, обеспечивая более плавные переходы и обновления для всех.
Эти примеры иллюстрируют, как принцип «в первую очередь вышестоящим проектам» способствует сотрудничеству, общей ответственности и постоянному улучшению в экосистеме открытого кода. Мы призываем вас подумать о том, как вы можете применить принцип «В первую очередь вышестоящим проектам» в своём вкладе в Fedora. Есть история о вкладе в вышестоящий проект? Поделитесь ею с сообществом!
Want to help? Learn how to contribute to Fedora Docs ›