Open returntrip opened 4 years ago
Thanks for taking time to open the issue. Unfortunately the update process on F-droid is very difficult and manual. I gave up because of unresponsiveness. There is a way to automate the updates but I've been told that it is not possible since I use more dynamic versioning in the repo.
auto-updates don't work because they require literal values for versionName & versionCode, while build.gradle
here uses variables instead. If you see a way to provide the literal values some way (eg in a separate file, the way Flutter apps do, just a single line like version: 2.8+20801
with 2.8
being versionName and 20801
versionCode), we could check if that could be used.
Apart from that, unless the build process changed, triggering an update is not that hard either: you'd need to open a merge request for the metadata file with the new build block added and CV/CVC adjusted. If I guessed above values correctly, the end of that file would look like
- versionName: 2.9-floss
versionCode: 20901
commit: '2.9'
subdir: app
gradle:
- floss
prebuild: sed -i -e '/playImplementation/,+2d' -e '/fabric/d' -e '/SimpleDateFormatConstant/d'
build.gradle ../build.gradle
MaintainerNotes: |-
Summary and Description have been removed since upstream provides
much better ones via Triple-T Gradle Play Publisher:
https://f-droid.org/docs/All_About_Descriptions_Graphics_and_Screenshots
AutoUpdateMode: None
UpdateCheckMode: None
CurrentVersion: 2.9-floss
CurrentVersionCode: 20901
I'm just not sure about the versionCode :wink:
I don't really understand why they require this. Gradle provides tooling to make it easy to take this dynamically. There is a lot of examples out there.
This kind of manual involvement is impossible especially when I open an MR and don't get responses.
Can the auto update mechanism based on git tags? The git tag can be taken as the version.
Then let me explain how update check basically works (abbreviated, simplified):
build.gradle
at that tag and compare tag name with the versionName
there to make sure that's what shall be buildversionCode
in the very same build.gradle
and compare it to the last version we have. Make sure it's higher (newer) than hours – else it makes no sense building itSo now: Step 1, OK. Step 2: Compare '2.9' with 'versions.versionName' – fail. Even if we'd ignore that, step 3: 'versions.versionCode' > 20503
returns false
, so we don't build it as it's not newer than what we already have.
It would be a crazy overkill if for all 3k+ apps we'd need to pull the entire code, start a VM, run the gradle – only to find out there's nothing new. Let alone this wouldn't be possible: if for each app this would take just a minute, that would mean we could check at max 1440 apps a day. So we'd need 3 machines just for update check, to get through the current 3.3k apps. And just running the netire build only to find versionCode
hasn't changed would be even worse; a build usually takes at least 10min, for some apps even several hours. So that would be impossible for us.
Hope this explanation helps you understand why we require this.
But that assumes that every single app adds a new tag every single day. It can be done by a GitHub hook and only when a new tag added.
Automated builds are enabled manually anyways. It can be enabled for selected apps where adding new tags are consistent with new versions.
I just explained how the update process works. I cannot change it. Discussions on how to enable such "dynamic naming" are taking place for more than a year – I don't expect a "solution" popping up any time soon. So if you want to stick to dynamic versioning, and cannot provide the "literal values" in any way, that only leaves manual updates for the next time.
For your convenience I've added your app to my repo yesterday. I don't build from source, so I just rely on tags and pick the APK from there – which means auto-update works (in the worst case the APK downloaded is simply thrown away if it's already here; not nice resource-wise but luckily happens rarely). You can also use this badge to link to that page. Once auto-update at F-Droid itself starts working again for your app we can see if I shall keep it or it can be removed from my repo again.
Google Play version is stuck on 2.8 while 2.10 is the latest...
@IzzySoft Could you please add version 2.10 to your repo?
Theoretically I could – if there were an APK attached to the tag, my updater would fetch it automatically. Unfortunately, there is not, so I can't. Maybe @tasomaniac could attach the APK to its corresponding release?
I can do that. That sounds good. It is nice to have that anyways.
But how would this work? I thought fdroid servers build and sign the APK itself. I don't have the signing keystore that would match the existing versions in fdroid
@tasomaniac The main F-Droid repo yes (it host only apps compiled from scratch) but not the repo of IzzySoft. Every repo owner can choose.
Exactly that. My updater fetches the APKs from the app's Git repos. F-Droid rather builds them using the code from the same repos. Your app is listed in both (was added to mine as updates in "main" are currently stuck).
PS: Please give me a ping when the APK is there so I trigger an update. As there was none for more than a year, update frequency was lowered from 24h to 30d, so waiting for the automated update could mean some delay.
@tasomaniac Hi, any news about this?
Can we at least get an apk for 2.10? Both play store and f Droid are seriously behind now
Unfortunately rather looks like it's dead now. Not even a single commit for almost a year. And still no APK at the 1-year-old tag. :man_shrugging:
Y'all could try @tasomaniac's Twitter https://twitter.com/tasomaniac but he seems to be dealing w/ larger, probably more-important issues than us whiny users. Forking might be the way to go. Volunteers?
he seems to be dealing w/ larger, probably more-important issues than us whiny users.
Not sure what you mean. What could possibly be more important than a bunch of nerds who want links to open in App A instead of App B? /s
Hey 👋 I'm here. I laughed out loud at the joke 🤣
It's true that I'm really busy nowadays. But still I'm not sure if forking is a good idea. If anyone has an intention to contribute, I would be open to give access to the repository and work together on it. Let me know.
I do not see Version 2.8 in F-droid, could it be made available there please?