# 原则

这些文档里的每条规则都来自下面某一条。遇到规则没覆盖的情况，就按这些原则和[目标](about.md#目标)来判断：一个运行高效、容易参与、速度优先的 remote。

1. **只用开发者自己的构建。**应用来自开发者的官方发布，安装时由你的 Flatpak 直接从开发者的服务器下载（extra-data）。FlatPark 不从源码构建应用，也不托管应用文件。有人需要、但没有官方 Linux 版本的应用，可以由公开的 `flatpark/<app>-release` 仓库严格按上游的构建方式、在其许可范围内发布一个版本，再像其他下载一样使用。
2. **开源应用原样运行。**不向它的进程注入任何东西，不改它的任何文件。如果它不这样做就没法在沙箱里工作，应该由上游修复，修好之前不上架。
3. **闭源应用的改动要经过审核并公开说明。**闭源应用可能需要改动才能在沙箱里工作；改动要经过审核，应用页面会写清改了什么、为什么。
4. **每个软件包都说明自己做了什么。**每个包都申报自己的打包级别（原样、有适配、有改动、隔离降低），CI 会把申报和软件包的实际行为对照检查。
5. **默认最小权限。**软件包只授予应用主要功能所需的权限；更多的权限由用户自己决定，以命令的形式写在页面上。只有在应用确实需要、或者不给就要用户做大量 override 时，宽泛的权限（home、在主机上运行命令）才会在审核后默认授予。
6. **开发者对自己的应用有最终决定权**：要不要上架、怎么打包、怎么介绍。对其他应用没有特权。
7. **看软件包本身，不看它是怎么写出来的。**应用能不能上架，看它做了什么、怎么打包，不看它是不是用 AI 写的。
8. **每个应用都用当前的 runtime。**freedesktop、GNOME 或 KDE runtime 出新版本时，用它的应用一起升级并测试，不会因为某个应用让你的磁盘上留着旧 runtime。
9. **上线前测试，上线后快速修复。**我们自己的改动在上线前测试（[测试手册](../reviewers/testing-playbook.md)）；上游的新版本立刻上线，出了问题就快速修。
10. **决策公开。**规则、软件包、审核、事故和下架，全都在公开的仓库里。