f-droid/fdroidserver

GitHub: f-droid/fdroidserver

F-Droid 官方维护的 Android 应用仓库服务端与构建工具集,用于发布、处理 APK 文件及管理应用仓库。

Stars: 738 | Forks: 116

# F-Droid Server ### 用于维护 F-Droid 仓库系统的工具。
## 什么是 F-Droid Server? _fdroidserver_ 是一套用于发布和处理 Android 应用(APK 文件)及其他类型包集合的工具。它被用于维护 [f-droid.org 应用仓库](https://f-droid.org/packages)。这些工具同样可用于创建额外的或替代的发布仓库,或者协助创建、测试并将元数据提交到 f-droid.org 仓库(也称为 [_fdroiddata_](https://gitlab.com/fdroid/fdroiddata))。 有关文档,请参阅 。 起初,_fdroidserver_ 是运行 f-droid.org 的完整服务端配置。后来,网站及其他部分被拆分到了各自独立的项目中。尽管这套工具集不再包含任何真正的服务端组件,但它的名称依然是 _fdroidserver_。 ## 安装 安装 _fdroidserver_ 的方式有很多种,包括使用各种包管理器。所有选项均在网站上有详细说明: https://f-droid.org/docs/Installing_the_Server_and_Repo_Tools ## 发布 用于 f-droid.org 的 _fdroidserver_ 生产环境直接基于 _master_ 分支运行。它会按计划(目前为每周)投入生产环境。因此,开发和测试都在各个分支中进行。我们通过 merge request 来跟踪分支。因此,会有许多 WIP(进行中)和长期存在的 merge request。 此外,_fdroidserver_ 也有稳定的发布版本。这主要是为运行构建过程相互独立的自定义仓库而设计的。由于稳定版本可以通过包管理器获取,它也可以作为开始向 _fdroiddata_ 贡献包的一种简单方式。 ## 测试 要运行完整的测试套件: ``` tests/run-tests ``` 要运行单个 Python 模块的测试,请查看 `tests/test_*.py` 文件,例如: ``` python -m unittest tests/test_metadata.py ``` 也可以运行单个测试: ``` python -m unittest tests.test_metadata.MetadataTest.test_rewrite_yaml_special_build_params ``` 目前有一个不断增长的测试套件,对该代码库的许多关键部分具有良好的覆盖率。它尚未覆盖所有代码,并且有些部分由于技术债务,使得编写单元测试变得困难。新的测试应为标准的 Python _unittest_ 测试用例。只要有可能,_tests/run-tests_ 中用 _bash_ 编写的旧测试都应移植到 Python。 这个测试套件随着时间的推移有些随意地建立起来,因此它并不是那么干净、有条理或完整。我们欢迎贡献。我们的目标是向标准的 Python 测试模式靠拢,并扩大单元测试覆盖率。在对其中任何部分进行重构之前,请务必先[联系我们](https://f-droid.org/about)讨论这些更改。 ### 针对 Linux 不同发行版的额外测试 这些测试也会通过 GitLab CI 在各种配置下运行。这仅对 `master@fdroid/fdroidserver` 启用,因为它的完成时间比常规 CI 测试要长。大多数情况下您不需要担心它们,但有时在您的 merge request 中运行它们也是有意义的。在这种情况下,您需要[从 .gitlab-ci.yml 中移除这些行](https://gitlab.com/fdroid/fdroidserver/-/blob/0124b9dde99f9cab19c034cbc7d8cc6005a99b48/.gitlab-ci.yml#L90-91),并将其推送到您 fork 的新分支中。 或者,像这样[在本地运行它们](https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-exec):`gitlab-runner exec docker ubuntu_lts` ## 文档 基于 docstring 生成的 API 文档会在每次提交到 `master` 分支时自动[在此处](https://fdroid.gitlab.io/fdroidserver)发布。 它也可以通过以下命令在本地构建: ``` pip install -e .[docs] cd docs sphinx-apidoc -o ./source ../fdroidserver -M -e sphinx-autogen -o generated source/*.rst make html ``` 要额外对代码进行 lint,请调用: ``` pydocstyle fdroidserver --count ``` 在编写 docstring 时,您应遵循 [numpy 风格指南](https://numpydoc.readthedocs.io/en/latest/format.html)。 ## 翻译 所有内容都可以翻译。有关更多信息,请参阅[翻译与本地化](https://f-droid.org/docs/Translation_and_Localization)。
[![](https://hosted.weblate.org/widgets/f-droid/-/287x66-white.png)](https://hosted.weblate.org/engage/f-droid)
查看所有语言的翻译状态。 [![](https://hosted.weblate.org/widgets/f-droid/-/fdroidserver/multi-auto.svg)](https://hosted.weblate.org/engage/f-droid/?utm_source=widget)
标签:Android, DSL, F-Droid, 应用仓库, 应用安全, 打包部署, 服务器, 逆向工具