tasomaniac / OpenLinkWith

Open the current webpage you have in another app. Magic! 🔮
https://play.google.com/store/apps/details?id=com.tasomaniac.openwith
Apache License 2.0
369 stars 32 forks source link

F-droid version stuck to 2.5? #67

Open returntrip opened 4 years ago

returntrip commented 4 years ago

I do not see Version 2.8 in F-droid, could it be made available there please?

tasomaniac commented 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.

IzzySoft commented 3 years ago

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:

tasomaniac commented 3 years ago

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.

tasomaniac commented 3 years ago

Can the auto update mechanism based on git tags? The git tag can be taken as the version.

IzzySoft commented 3 years ago

Then let me explain how update check basically works (abbreviated, simplified):

  1. check the tags
  2. look at the build.gradle at that tag and compare tag name with the versionName there to make sure that's what shall be build
  3. if that matches, check versionCode 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 it

So 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.

tasomaniac commented 3 years ago

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.

IzzySoft commented 3 years ago

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.

azumukupoe commented 2 years ago

Google Play version is stuck on 2.8 while 2.10 is the latest...

ale5000-git commented 1 year ago

@IzzySoft Could you please add version 2.10 to your repo?

IzzySoft commented 1 year ago

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?

tasomaniac commented 1 year ago

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

ale5000-git commented 1 year ago

@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.

IzzySoft commented 1 year ago

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.

ale5000-git commented 1 year ago

@tasomaniac Hi, any news about this?

pressRtowin commented 1 year ago

Can we at least get an apk for 2.10? Both play store and f Droid are seriously behind now

IzzySoft commented 1 year ago

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:

TPS commented 1 year ago

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?

pressRtowin commented 1 year ago

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

tasomaniac commented 1 year ago

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.