Why does the F-Droid website nearly always host an outdated F-Droid apk?

There is no “additional” testing. A bug that presents itself only on install but not on upgrade will not be device specific. If you are making changes to code that could create this type of bug, like the SQLite database creation code, you should test installing on at least one device. This is not “additional” testing. This is the bare minimum testing that should be required before any proposed updated is released as stable.

Therefore, the designation of a new release as stable should be sufficient to make that release the one that is distributed on the website.

My guess is that you are assuming that fdroidclient is developed via the
process you use. I’m guessing it is not. I generally work by limiting
changes to specific areas for each release, that means that all aspects
of the app do not need to be tested before each release. That saves a
lot of dev and testing time. This is a common dev workflow for doing
things efficiently.

Of course, a complete, automated test suite across every device we
support would be welcome. That does not currently exist.

Regardless, the point still stands that there is no conceivable scenario where F-Droid should be considered stable for upgrades but not for new installs. Every other open source project in the world, with every sort of development process (some much more complicated than F-Droid), has been able to figure this out.

Your argument seems to come down to, “We don’t do any testing of F-Droid before we release it as stable and recommend upgrades in the app. Rather, only after that point do we start testing to make sure it works. When we have finished the testing that everyone else does before they move a release candidate to stable, then we finally put our ‘stable’ version on the website.” I have a hard time believing that this describes the process as it actually happens, but if it does, then you need to fix it.

For my app I always do the tests on several emulators (phone, tablet, tv):

  1. make a fresh install
  2. make an update from previous version
  3. make an update from a very old version (all new updates will be installed)

Works well for me :slight_smile:

The problem with F-Droid is, I think, there are too much preferences with wifi, img download, auto refresh, network dependencies, F-Droid website dependencies, several repos… it becomes a nightmare to detect problems and reproduce them.

What I would do is to reduce the parameters to minimum to always have the same initial settings.
After installation, the users can change them.

How would you tackle https://gitlab.com/fdroid/fdroidclient/issues/1433 exactly?

It would be awesome if we finally could find a solution for this. Like @sorenstoutner wrote, its really no help to the users. I really have never seen any usecase, not even here in the forum, where people wrote ‘i am happy that i have been pushed to an outdated version before and had to update the app again at its first start’. It would make sense if there were many people who have issues when they would always get the most recent version by default. But there are none such users to my knowledge.

I really dont get the understandings for the benefits why the users should install an outdated F-Droid version first. There is no practical usecase that requires this behavior.

1 Like

How would you tackle https://gitlab.com/fdroid/fdroidclient/issues/1433 exactly?

This is a good example of an intermittent issue that is difficult to catch in testing, especially on an emulator (because one doesn’t often rotate an emulator while a process is running). But it isn’t a good example of an issue that affects this topic. Because users who installed an outdated version of F-Droid from the website and then updated to the current version inside the app would experience this bug just as frequently as users who installed a current version from the website.

Which is my whole point. You are not solving any problem that should occur in the real world by deploying old versions from the website once they have been marked as stable releases in the app.

1 Like

A small thing maybe, but f-droid needs “advanced” permission to install “unknown” apps. By quickly doing an f-droid update after f-droid download and install, it is sure to be given that permission by the user before trying to install other apps using f-droid.

1 Like

It will automatically request that permission the first time it installs anything. There is no difference between the first thing it installs being an F-Droid update or any other app as far as this dialog is concerned.

There is no difference

The difference is timing. After a few days, I might be concerned about permissions escalation…