MakisChristou / verifit

Minimalist fitness tracker inspired by FitNotes.
GNU General Public License v3.0
63 stars 10 forks source link

Add to F-Droid #1

Open Yky opened 3 years ago

Yky commented 3 years ago

Hi, I noticed that this app is licensed by a free license and it would be great to see this app in the F-Droid catalogue, a store of free and open-source android apps. We can help getting verifit into the catalogue if you support its inclusion. More information can be found here.

Are you interested in getting verifit added to F-Droid?

MakisChristou commented 3 years ago

I am interested in adding Verifit to F-Droid! The only reason that I didn't do it just yet is because it seems like an involved process and Verifit is incomplete as of now (although usable with bare bones functionality). Also, what exactly do you mean by "We can help getting verifit into the catalogue if you support its inclusion" ? :sunglasses:

Yky commented 3 years ago

That's great news to have your support for its inclusion! Thanks for the quick response!

There is an issue tracker for "requests for packaging" here. A request can be added for verifit there. Then F-Droid contributors can help getting verifit into the store.

There are a few requirements to get it into the store:

The first two points are sorted, the third may need to be double-checked.

IzzySoft commented 2 years ago

@MakisChristou Currently, Verifit is available via my repo (so you might wish to pick a badge to link there from your Readme). But can you please check the latest release of yours? Seems like the APK attached there shares the same versionCode as some previous one – and further use a different versionName than the tag indicates, which confuses the heck out of my updater :see_no_evil:

Binary files /web/ftp/repo/fdroid/repo/com.whatever.verifit_10.apk and /web/ftp/repo/fdroid/repo/com.whatever.verifit_1.0.10.apk differ
/web/ftp/repo/fdroid/repo/com.whatever.verifit_10.apk already exists, quarantining before replacing it with update '/web/ftp/repo/fdroid/repo/com.whatever.verifit_1.0.10.apk'

package: name='com.whatever.verifit' versionCode='10' versionName='1.0.1' compileSdkVersion='30' compileSdkVersionCodename='11'

As the second file name in the first line suggests, my updater expected to get v1.0.10 – but received v1.0.1 (so tomorrow it will try again as it sees the 1.0.10 tag and thinks it's a newer release). v1.0.1 was released in April, so I guess you simply forgot to adjust versionName. Though I wonder why the binaries differ then, as I don't see any tag in between…


That said, go ahead and open an RFP at F-Droid – there might be some minor culprits only showing up when a build is tried, but by what my library scanner (which is used by F-Droid as well) spits out, it looks eligible. To get rid of that single anti-feature listed, you'd just need to attach a release build instead of the debug build (a problem which does not affect F-Droid.org). I can help you setting up the Fastlane structures F-Droid will ask for by sending you an initial package via PR if you wish.

MakisChristou commented 2 years ago

First of all thanks for listing Verifit on your repo. I will add the badge in my Readme so people know they can download it from there as well. As for the error, I have updated the latest Release APK with a new one that has

versionCode 10
versionName "1.0.10"

Hopefully this will resolve the issue. If it doesn't or I have misunderstood the issue let me know.

IzzySoft commented 2 years ago

Thanks for adding the badge and adjusting versionName!

And yes, that replaced APK should solve the issue. As versionCode remained unchanged, it will replace the current APK with the same versionCode (10), as <packageName>_<versionCode> is kind of a "unique key" identifying a specific version of a specific app (Android uses this to tell whether something is an update or not – so users only get update notifications when versionCode was increased).

As for versionName: that's mostly intended as the "user readable" version. In most cases, though, tag names are using the same (sometimes with a prefix like v<versionName>), in which cases my updater uses that to see if updates are available without downloading the APK file each time, so the two should be "in sync" then :wink:

IzzySoft commented 2 years ago

Confirm solution: now that the updater once again pulled the APK, versions are in sync. I tried to run another update, and it rightfully refused saying "already up-to-date":

com.whatever.verifit: looking for 'https://api.github.com/repos/MakisChristou/verifit/releases'
com.whatever.verifit: checking tag '1.0.10'
com.whatever.verifit: lastRelNo set to '1.0.10', checking for files
com.whatever.verifit: returning ['1.0.10','https://github.com/MakisChristou/verifit/releases/download/1.0.10/verifit-debug.apk']
com.whatever.verifit: 1.0.10 up-to-date.

Thanks again!