Document Flathub's auto-merging policy
According to @barthalion only extra-data apps should have auto-merge set to true.
The automerge-flathubbot-prs property seems to be only mentioned here, it's not in github.com/flathub/flathub/wiki, so Flathub's auto-merging policy should be documented here.
I want to believe it goes without further explanation that maintainers should test applications before pull requests are merged.
I think it goes even further than what you said. My not-actually-a-Flathub-admin-but-have-my-face-on-this-piece-of-infra understanding is that apps should only automerge if one of the following is true:
- They are extra-data, and old versions become uninstallable (as in Unity because they reuse the same URL for each release) or unusable (as in discourse AIUI) when a new one is released
- They're explicitly unstable apps, such as the Insiders channel of Visual Studio Code (which I think is only in beta)
- Or some other special-cases, e.g. this app itself whose Flathub version always tracks main because it's maintained part of the infra
but this search https://github.com/search?q=org%3Aflathub+%22automerge-flathubbot-prs%22%3A+true&type=Code suggests that the reality is different :)
I want to believe it goes without further explanation that maintainers should test applications before pull requests are merged.
That's very optimistic. Application maintainers are not only maintaining the application's packaging, but also the packaging for its dependencies. Checking that every minor release of a library that triggered an f-e-d-c PR didn't break some feature is unrealistic. It's not that unusual for apps to have more than a handful of dependencies.
We have run-tests property that could give us some assurance, but it's not used by the CI.
The alternative is to completely disable f-e-d-c, and only update dependencies when the application has a new release. I had a chat with a maintainer that did that and refused my PR bumping the runtime and updating dependencies.
edit: Testing that the application runs and operational, yes. But further than that? Not really.
The alternative is to completely disable f-e-d-c, and only update dependencies when the application has a new release.
Allowing to reduce the number of PRs i.e. https://github.com/flathub/flatpak-external-data-checker/pull/276 is probably the best fix here. Ideally people would test and republish for every dependency change, but indeed it’s not realistic. Updating them all occasionally in one go (without needing automerge) is better than nothing.