Wow, what a week.
Five years ago i added the Notes Android app to F-Droid to give something back to the community, two years ago the Deck Android app followed. F-Droid asks periodically the repositories for new tags and builds in such a case the latest tag from source and adds it to its index. This index is refreshed every few days and can be updated from the F-Droid app on your smartphone.
Compared to the Play Store this solution has benefits and drawbacks. We don’t have to take care about anything, not even triggering any
fastlane command, just tag and forget.
On the other hand, due to the decentralized approach and the limited resources and infrastructure of F-Droid, a few nice features of the Play Store are not available by nature:
- No staged rollout
- No immediately stopping of a rollout when an error is noticed
- Not every tag is fetched immediately, but only the latest as soon as the crawler comes along
It all went pretty well for years, and of course it happened what has to happen: We recently tagged a version which had a pretty bad bug while trying to reduce the app size - for both, Deck & Notes.
We noticed the mistake, fixed it and tagged the version with the bugfix ~10 hours later. Fulfilling Murpheys Law, the F-Droid index has been updated at exact this time and distributed now the broken versions. While we have been able to actively push the bug fix release to the Play Store, we had to wait until the next index update of F-Droid has been published. This takes usually up to a few days or a week - and wow, what a week.
Of course it is also bad, that there is no proper way to downgrade an app. You will have to uninstall the version and install an older version of the app, which will cause all unsynchronized changes on the device to be lost.
This is bad, but since you are using a cloud based service, the chances are incredibly low to have actual data loss: The default settings will trigger a synchronization after each change. Changing the default settings is up to your personal responsibility (by the way everything else too). Of course we aim to have no data loss at all, but this can not cover each edge case scenario, like changing data when being offline and then quickly apply the broken update without opening the app before and give it time to synchronize.
To prepare (i knew what will happen), i answered the first issues and pinned them, so everyone can see them, even after successfully completely ignoring the issue template and using the search function. But i wasn’t prepared to this storm. Within two days, i responded to 25 issues in the Notes Android repository, 5 issues in the Deck Android repository and 5 issues in the Deck Server repository. I was called a “douchebag” and i got “suggestion[s] on how to effectively communicate with people” from someone who did not even read my responses. I answered round about 45 E-Mails. And this is something we need to talk about.
You are using Open Source software, this is awesome, i love it, too. You don’t donate, this is absolutely OK, really, i don’t rely on money, because you know: I have a job. And i do those projects in my free time. And this is also OK, because it’s my hobby and decision and i love doing it.
Here is what is not OK:
- You can rate the apps as you like, you can call it names, curse it or anything else. Calling me a “douchebag” is something personal, and this is an absolute no go when requesting free support for a free app.
- Ignoring the issue template. It is there for a reason and ignoring it is a sign of disrespect, not for my work, but for me in person, because this is my free time and i will happily provide support as good as i can, even for free users. But i expect an absolute minimum of cooperation.
- Not using the search function or not having a look at the pinned issues. They are already at the very top and right next to the New issue button. Everything has been answered, the cause, the workaround and the solution.
The worst about all of this is, that innocent users, who try hard to cooperate are the ones who are suffering the people who are yelling around loudest. People who never contributed a single line of code, posted not a single proper bug report, but expect to have a personal servant who lives only to serve them at
3:00 AM for nothing beclouds the fun we usually have when developing apps. Disabling the issue trackers is no solution for me, so let’s work more together.
It is an attempt to apology for the mistake and that it happened. Errare humanum est.
This is not a call for funding. We don’t care about money. If you don’t know where to put your money, give it to F-Droid.
This is an appeal to overthink your behavior and culture, think about what you are using for free, think about the people behind the apps you are using every day:
- The server apps
- The ecosystem (F-Droid)
- The infrastructure (Your hoster?)
- The Nextcloud guys
- Apache, NginX, Linux, PHP, MariaDB, the web frameworks used by Nextcloud, …
If something doesn’t work, report it proper, and just imagine for a second that there is a human being on the other side. Be polite. Check if this issue has already been reported. Fill in the issue templates.
Thank you for reading. And what a stupid question, of course both apps will stay free and open source forever, i just wanted to make you read my pain. Open source rocks.