flatpak-external-data-checker icon indicating copy to clipboard operation
flatpak-external-data-checker copied to clipboard

Document Flathub's auto-merging policy

Open tinywrkb opened this issue 3 years ago • 4 comments

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.

tinywrkb avatar May 11 '22 12:05 tinywrkb

I want to believe it goes without further explanation that maintainers should test applications before pull requests are merged.

barthalion avatar May 11 '22 13:05 barthalion

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 :)

wjt avatar May 11 '22 13:05 wjt

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.

tinywrkb avatar May 11 '22 14:05 tinywrkb

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.

vchernin avatar May 11 '22 14:05 vchernin