Spec-Zone.ru › Homebrew

Приемлемые Casks

Некоторые бочки не должны попадать в homebrew/cask. Но существуют дополнительные Интересные Taps и Forks, и любой может создать свой собственный!

Нахождение места для вашей бочки

Мы поддерживаем отдельные Taps для разных типов библиотек. Наша номенклатура:

  • Стабильная: Последняя версия, предоставленная разработчиком, определенная ими как таковая.
  • Бета, Разработка, Нестабильная: Последующие версии к стабильной, но неполные и находящиеся в разработке, стремящиеся в конечном итоге стать новой стабильной. Также включает альтернативные версии, специально ориентированные на разработчиков.
  • Ежедневная: Постоянно обновляемые версии текущего состояния разработки.
  • Устаревшая: Любая стабильная версия, которая не является последней.
  • Региональная, Локализованная: Любая версия, которая не является англоязычной (США), если таковая существует.
  • Пробная: Версия с ограниченным по времени сроком действия, которая полностью перестает работать после истечения срока действия, требуя оплаты для снятия ограничения.
  • Фримиум: Бесплатная версия, которая работает неограниченно, но с ограничениями, которые можно снять, оплатив.
  • Fork: Альтернативная версия существующего проекта, с базовым, но измененным исходным кодом и бинарным файлом.
  • Неофициальная: По заявлениям неизмененный скомпилированный бинарник от третьей стороны, бинарника, у которого нет существующей сборки от владельца исходного кода.
  • Без поставщика: Библиотека, распространяемая без официального веб-сайта, например, с форума.
  • Защищенная: Когда URL для загрузки защищен формой входа/регистрации и с хоста, отличного от домашней страницы.
  • Шрифт: Файл данных, содержащий набор глифов, символов или знаков, которые изменяют напечатанный текст.
  • Драйвер: Программное обеспечение для распознавания и использования периферийного оборудования системой. Если без периферийного устройства программное обеспечение бесполезно, оно считается драйвером.

Стабильные версии

Стабильные версии находятся в главном репозитории по адресу Homebrew/homebrew-cask. Они должны работать на последнем выпуске macOS или на предыдущем релизе (High Sierra и Mojave по состоянию на конец 2018 года).

Но стабильной версии нет!

Когда программное обеспечение доступно только в виде бета-, разработчика или нестабильной версии, его бочка может быть размещена в главном репозитории. Когда доступны стабильные версии, только они будут приняты в качестве последующих обновлений.

Бета, Нестабильная, Разработка, Ежедневная или Устаревшая

Альтернативные версии должны быть отправлены в Homebrew/homebrew-cask-versions.

Региональные и локализованные

Когда приложение существует на нескольких языках или имеет различные региональные версии, следует использовать %%%CODE_BLOCK_0%% стазу, чтобы переключаться между языками или регионами.

Пробные и фримиум версии

Перед отправкой пробной версии убедитесь, что ее можно сделать полной рабочей версией без необходимости повторного скачивания. Если приложение предоставляет пробную версию, но единственный способ купить полную версию — через Mac App Store, оно не должно находиться ни в одном из официальных репозиториев. Фримиум версии допустимы.

Ветки и приложения с конфликтующими названиями

Ветки должны иметь имя поставщика в качестве префикса в имени файла и токена Cask. Если исходное программное обеспечение прекратило работу, ветки всё равно должны следовать этому правилу, чтобы не удивлять пользователя. Есть два исключения, которые позволяют вилке заменить основную бочку:

  • Исходное прекратившее работу программное обеспечение рекомендует эту вилку.
  • Вилка настолько популярна, что превосходит оригинал и теперь является фактическим проектом, когда люди думают об этом имени.

Для несвязанных приложений с одинаковым названием наиболее популярное (обычно уже присутствующее) остается без префикса. Поскольку это может быть субъективным, если вы не согласны с решением, откройте вопрос и объясните свою позицию хранителям.

Неофициальные, без поставщика и защищенные сборки

Мы не принимаем эти бочки, так как они представляют более высокий, чем обычно, риск безопасности.

Шрифты

Бочки шрифтов находятся в репозитории Homebrew/homebrew-cask-fonts. Смотрите файл CONTRIBUTING.md в репозитории шрифтов для получения дополнительной информации.

Драйверы

Бочки драйверов находятся в репозитории Homebrew/homebrew-cask-drivers. Смотрите файл CONTRIBUTING.md в репозитории драйверов для получения дополнительной информации.

Приложения, содержащие вредоносное ПО

К сожалению, в мире программного обеспечения есть злоумышленники, которые упаковывают вредоносное ПО в свои приложения. Несмотря на это, Homebrew Cask давно принял решение не быть активным контролирующим органом (macOS уже имеет свой) и пользователи должны быть осведомлены о программном обеспечении, которое они устанавливают. Это означает, что мы не всегда будем удалять бочки, которые связаны с такими приложениями, отчасти потому, что нет четкой границы между полезным приложением, потенциально нежелательной программой и различными оттенками вредоносных программ — то, что полезно одному пользователю, может рассматриваться как вредоносное другим.

Тем не менее, мы хотели бы, чтобы пользователи имели некоторую защиту, минимизируя случаи, когда законные разработчики маркируются как распространители вредоносного ПО. Для этого мы оцениваем бочки на индивидуальной основе, и любой пользователь может обратить наше внимание на потенциальный случай вредоносного ПО. Однако важно помнить, что последняя линия защиты — всегда пользователь.

Если приложение, содержащее вредоносное ПО, не было подписано с помощью идентификатора разработчика Apple, и вы намеренно отключили или обошли Gatekeeper, с нашей стороны не будет никаких действий. При отключении функций безопасности вы делаете это на свой страх и риск. Однако, если приложение, содержащее вредоносное ПО, подписано, Apple может отозвать его разрешения, и оно больше не будет работать на компьютерах пользователей, которые сохраняют функции безопасности — мы все выигрываем, пользователи Homebrew Cask или нет. Для сообщения об подписанном приложении, содержащем вредоносное ПО, используйте Apple’s Feedback Assistant.

Мы также открыты для удаления бочек, где у нас есть достаточные доказательства того, что приложение является вредоносным. Чтобы предложить бочку для удаления, отправьте запрос на добавление с объяснением. Как правило, это означает предоставление сканирования VirusTotal приложения, показывающего, что оно вредоносное, в идеале с дополнительным отчетом, подтверждающим, что это не ложноположительный результат.

Аналогичным образом, программное обеспечение, которое предоставляет как «чистые», так и содержащие вредоносное ПО версии, может быть удалено из репозитория — даже если у нас есть доступ к «хорошей» версии — если его разработчики призывают пользователей устанавливать «плохую» версию. Мы делаем это, потому что в этих случаях существует более высокий, чем обычно, риск, что обе версии (или вскоре станут) каким-то образом скомпрометированы.

Если бочка, от которой вы зависите, была удалена из-за этих правил, не бойтесь. Удаление бочки из официальных репозиториев означает, что мы ее не поддерживаем, но вы можете сделать это, разместив свой собственный tap.

Исключения из порога заметности

Бочки, которые не достигают минимального порога заметности (см. Отклоненные бочки), не принимаются в основные репозитории, поскольку повышенная нагрузка на поддержку не оправдывает низких показателей использования, которые они, вероятно, получат. Эта проверка заметности выполняется автоматически с помощью команд аудита, которые мы предоставляем, но ее решения не являются окончательными. Бочку, не прошедшую проверку заметности, можно добавить, если она:

  1. Популярное приложение, у которого есть собственный веб-сайт, но разработчики используют GitHub для размещения бинарников. Этот репозиторий не будет заметен, но приложение может быть.
  2. Представлена хранителем или активным участником. Большая часть аргументов в пользу правила заметности заключается в том, что непопулярное программное обеспечение привлекает меньше внимания, и бочка становится заброшенной, устаревшей и неработающей. Человек, доказавший свою приверженность Homebrew Cask, менее склонен позволить этому произойти с программным обеспечением, от которого он зависит.
  3. Недавно выпущенное программное обеспечение, которое вызвало большой ажиотаж — о нем все говорят в Twitter и Hacker News, и мы даже получили несколько преждевременных отправлений для него. Это явный пример приложения, которое быстро достигнет порога, поэтому мы не будем закрывать PR сразу (но можем подождать с объединением).

Обратите внимание, что ни одно из этих исключений не гарантирует включения, но это примеры ситуаций, в которых мы можем пересмотреть свой подход.

Homebrew Cask не является сервисом обнаружения

С момента создания Homebrew Cask различные запросы были классифицированы как отвечающие на этот вопрос. Хотя это довольно популярный запрос, после тщательного рассмотрения несколько раз мы всегда приходили к одному выводу: мы не являемся сервисом обнаружения, и ожидается, что наши пользователи будут обладать достаточными знаниями об приложениях, которые они устанавливают через нас, прежде чем это делать. Например, группировка бочек по категориям не входит в задачи проекта.

В числе прочего, логистика таких запросов невыполнима для Homebrew Cask. Прежде чем сделать запрос такого рода, необходимо ознакомиться с предыдущими похожими проблемами, а также с любыми другими проблемами, на которые они ссылаются, чтобы получить полное понимание, почему это так, и почему аргументы «но проект x делает y» не применимы, и не каждый пакетный менеджер одинаков.

Вы также должны уметь предоставить четкие и практичные решения этих проблем. Простое обращение без предложений решения приведет к закрытию вашего вопроса.

Однако есть разница между обнаружением (поиск новых приложений, о которых вы не знали) и поиском (определение приложения, о котором вы знаете и хотите установить). Хотя первый вариант вряд ли когда-либо станет частью наших целей, второй действительно важен для нас, и мы продолжаем над этим работать.

Отклоненные бочки

Перед отправкой бочки в любой из наших репозиториев вы должны прочитать наше руководство по приемлемым бочкам и провести (по крайней мере, быстрое) поиск, чтобы увидеть, были ли ранее предприняты какие-либо попытки ее внедрения.

Общие причины для полного отклонения бочки:

  • У нас есть веские причины полагать, что включение Cask может поставить весь проект под угрозу. Такое случалось только один раз до сих пор, с Popcorn Time.
  • Поддержание Cask необоснованно сложно. В качестве примеров можно привести Audacity и старые Cask для разработки Java.
  • Приложение является пробной версией, и единственный способ получить полную версию — через Mac App Store.
    • Аналогично (и сложнее обнаружить), приложение переместилось в Mac App Store, но по-прежнему предоставляет старые версии через прямую загрузку. Мы отклоняем их во всех официальных репозиториях, чтобы пользователи не застряли на старой версии, ошибочно полагая, что используют последнюю (что, помимо прочего, может представлять собой угрозу безопасности).
  • Приложение является открытым исходным кодом и работает только через командную строку (т.е. оно использует только binary артефакт). В этом случае и в духе дедупликации, сначала отправьте его в Homebrew/core в виде формулы, которая собирается из исходного кода. Если оно будет отклонено, вы можете повторить попытку в виде cask (укажите нам ссылку на вопрос, чтобы мы могли видеть обсуждение и обоснование отклонения).
  • Приложение открытое исходный код и имеет графический интерфейс, но не предоставляет скомпилированные версии (или только старые). Лучше разместить их в Homebrew/core, чтобы пользователи не получали постоянно устаревшие версии. См. gedit для примера.
  • Приложение ранее отклонялось из-за проблемы, которую мы не можем исправить, и новое отправление её не решает. Примером является первое отправление soapui, проблемы с установкой которых не были устранены в двух последующих отправлениях (#9969, #10606).
  • Cask является дубликатом. Такие отправления чаще всего происходят, когда не был соблюдён справочник по токенам.
  • Ссылка для скачивания приложения защищена формой входа/регистрации и размещена на хосте, отличном от домашней страницы, что затрудняет пользователям проверку её подлинности.
  • Cask предназначен для приложения, которое не поддерживается (нет релизов в течение последнего года или явный отказ от поддержки).
  • Cask предназначен для слишком малоизвестного приложения. Примеры:
    • Приложение из репозитория кода, не достаточно заметное (менее 30 форков, 30 наблюдателей, 75 звёзд).
    • Программное обеспечение для электронной идентификации (eID).
  • Cask предназначен для приложения без информации на домашней странице (например, репозиторий GitHub без файла README).
  • Автор специально попросил нас не включать его.
  • Для установки и/или использования Cask требуется отключить SIP.
  • Cask является pkg и требует allow_untrusted: true.

Общие причины отклонения Cask из основного репозитория:

  • Cask был отправлен в неправильный репозиторий. При составлении cask, обратитесь к «Поиск места для вашего cask», чтобы узнать, куда его следует поместить.

Ни один cask не гарантирует принятия

Следуйте приведенным выше рекомендациям, и у вашего отправления есть большая вероятность быть принятым. Но помните, что документация может отставать от текущих решений, и мы не можем предсказать каждый случай. Администраторы могут переопределить эти правила, когда опыт подскажет, что это приведёт к лучшему общему результату Homebrew.

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Acceptable-Casks

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API