Руководство по стилю репозитория

Эта страница является незавершенной работой и требует внимания со стороны экспертов по данному вопросу, особенно по проверке фактов.

Это руководство дает более подробную информацию о том, что следует хранить в полях метаданных. Большинство пунктов устарели и со временем будут объединены с руководством.

Исходный код

Сервер F-Droid не публикует APK непосредственно в Интернете, вместо этого серверу F-Droid необходим источник, из которого можно собрать APK. Таким образом, сервер гарантирует, что полученный APK точно представляет исходный код без каких-либо скрытых анти-функций.

Поскольку F-Droid собирает каждое приложение из его исходного кода (через Android SDK с помощью ant, gradle или maven, иногда с помощью Android NDK, стандартных программ GNU/Linux и небольшой предварительной обработки в оболочке BASH), вероятно, если вы видите файл под названием AndroidManifest.xml или build.gradle в ваших исходниках, то существует возможностm, что F-Droid сможет собрать его.

Обратите внимание, что большинство проектов используют готовые библиотеки. Их исходный код можно найти в другом месте. Для ant они находятся в папке libs/, а внешние упоминаются в файлах project.properties; для gradle они упоминаются в build.gradle и обычно берутся из http://mvnrepository.com; для maven есть файлы pom.xml, описывающие зависимости. Если используются предварительно созданные библиотеки для нативного кода, то они часто находятся в res/raw/ или assets/: о них должно быть что-то сказано в README. Приведенный выше пример имеет одну зависимость от jar-файла с текстовой ссылкой и не использует никаких внешних библиотек, поэтому дополнительные ссылки не нужны.

Лицензия

  • Например В общем:

https://gitlab.com/fdroid/fdroidclient/blob/master/LICENSE (общая часть исходного кода по лицензии GPLv3+); - Например Заголовок исходного кода: https://gitlab.com/fdroid/fdroidclient/blob/master/app/src/main/java/org/fdroid/fdroid/AppDetails.java (заголовок файла под лицензией GPLv3+); - Например Библиотеки: https://gitlab.com/fdroid/fdroidclient/tree/master/libs (см. файл LICENSE с лицензией Apache License, Version 2.0 для этой библиотеки); - Например Artwork: https://f-droid.org/about (см. лицензию CC BY-SA 3.0 для произведений искусства)

Все приложения в репозитории F-Droid должны быть FOSS (Free and Open Source software). Если в программе не указана лицензия, которая перечислена как лицензия свободного программного обеспечения в списке лицензий GNU, то, вероятно, она таковой не является.

Если в исходном коде приложения нет README или LICENSE, сообществу F-Droid очень трудно проверить, что весь исходный код, библиотеки и иллюстрации выпущены под соответствующей лицензией Free and Open Source. Поэтому хорошей практикой является проверка того, что приложение имеет заголовки в каждом файле исходного кода, текстовый файл в папке библиотек и заявление в исходном коде или на официальном сайте приложения, которое четко объясняет лицензию на все материалы, которые можно найти в приложении.

Примечание: Есть небольшая оговорка по поводу использования GNU General Public License v2. Библиотека поддержки Android и большинство другие библиотеки Android лицензированы по Лицензии Apache. В связи с техническими юридическими причинами, они не могут быть объединены с GNU General Public License v2. В случае приложения, выпущенного под GPLv2, оно юридически признается только в том случае, если в заголовках исходного кода приложения указано “GPLv2 или более поздняя”, тогда мы можем выбрать общую лицензию GPLv3 (это потому, что, напротив, GPLv3 полностью юридически совместима с библиотекой поддержки Android и другими библиотеками).

Сводки

Резюме должно как можно короче описывать то, что приложение делает или позволяет делать пользователю, например, вместо “E-mail клиент” используйте “Получение и отправка электронной почты”.

Описания

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

Некоторые другие примечания:

  • Фразы типа “приложение для ведения заметок для Android” никогда не должны появляться. Очевидно, что это приложение для Android. Очевидно, что это приложение.
  • Аналогично, не говорите “это свободное программное обеспечение” или “это открытый исходный код”, потому что очевидно, что это так.
  • Там не должно быть ничего, связанного с совместимостью (например, “для Android 2.3+”), потому что это обрабатывается автоматически. Заметки о совместимости следует включать только в том случае, если клиентское приложение не обнаруживает их автоматически.
  • Резюме всегда будет отображаться вместе с описанием, поэтому избегайте его повторения.
  • Если сборка F-Droid чем-то отличается от стандартной, это следует описать.
  • Никогда не должно быть ничего, написанного с точки зрения разработчика, например, “Я написал это приложение для галереи кошек, потому что я люблю кошек”.

Стоит упомянуть и другую информацию:

  • Требуются ли приложению root-права?
  • Может ли оно взаимодействовать с другими приложениями?
  • Насколько прост он в использовании?

Пожертвования

Если проект принимает пожертвования, идеальной ссылкой для пожертвований будет специальная страница, которую проект ведет для этой цели. Если такой страницы не существует, допустимо просто ссылаться на их страницу, на которой есть значок пожертвования или что-то подобное, но это не создает хорошего пользовательского опыта, когда, например, кто-то выбирает “Пожертвовать” в клиенте F-Droid, а затем вынужден искать информацию на странице. Попытайтесь убедить разработчиков создать специальную страницу, если это возможно.

Анти-Функции

Кроме того, некоторые программы, даже будучи свободными и открытыми, могут делать действия, которые можно считать нежелательными и которые мы считаем AntiFeatures”. По возможности сообщество F-Droid продолжает включать эти приложения в репозиторий, но помечая и каталогизируя эти антифичи, чтобы предупредить пользователей (в клиенте F-Droid и в браузере веб-репозитория) о любых антифичах, присутствующих в приложении. Хотя программы могут быть включены в F-Droid даже с антифигурами, часто бывает, что программы с такими антифигурами на самом деле не совсем FOSS (например, реклама и отслеживание активности пользователя часто включаются с помощью несвободных бинарных библиотек), что ставит под угрозу включение приложения в репозиторий F-Droid.

Обновление

https://gitlab.com/fdroid/fdroidclient/network/master & http://f-droid.org/news-and-reviews

Поместить приложение в хранилище - это еще не конец истории: мы должны поддерживать версии, описания и URL в актуальном состоянии.

Самое важное - знать, когда публикуются новые версии. У нас есть три автоматических метода и один ручной: из тегов; проверка AndroidManifest.xml на самую последнюю ревизию в репозитории; и проверка Google Play. Если эти способы не подходят, мы должны посмотреть на версию пакета, опубликованную разработчиками, либо загрузив веб-страницу Google Play, либо скачав APK и проверив его версию. Теги репозитория являются естественным способом маркировки новых версий (ищите их в разделе “releases” на примере github.com или в каталоге “tags” в случае SVN-репозитория). Если вы не можете найти теги, будет полезно создать проблему об этом на трекере проблем. В примере мы указываем на страницу журнала изменений в качестве резервной проверки; другими вариантами могут быть страница загрузки Google Code или ссылка на Google Play.