Why is my app missing from "Latest" listing in F-Droid's Android client

Somehow it would be really helpful if there was some sort of linter which a developer could execute to check that . Or maybe even better some build Output which one can check on the build’s wiki page?

Btw. Is it enough to have a English changelog, or is it required for every locale or is it also part of “at least one more locale”? :thinking:

@hpoul It’s not F-Droid specific but I wrote this one last year to validate Fastlane Supply’s metadata.

1 Like

Thanks a lot for mentioning (and of course for writing) that! I’ve linked it now from my Fastlane Cheat Sheet which is usually recommended to our developers for establishing those structures.

AFAIK the Wiki is entirely “deprecated” (so it’s mostly a matter of time until it disappears entirely). Huge parts of it are already massively outdated. But yes, I agree such thing would be quite handy. And I even had an idea where it would fit best: Maybe open an issue with our IssueBot to have that integrated into its Fastlane module – so it doesn’t only check whether summary & description are OK, but also gives a pointer if the checked Fastlane structure qualifies for “Latest”? That would then signal on each RFP and MR, and thus also make the devs aware of it.

AFAIK that should suffice, yes.

Btw, I just searched and found the merge request with the “Latest” overhaul. The sorting logic can be found here – it might well be that your app simply gets “pushed out” at the end of the list (Latest is limited to 200 entries). Don’t let yourself be misled by the name “Latest” – it’s not really meant as “Newest”, but rather like “latest fashion”; though some of us argued last_updated should have a much higher weight, it in fact has not. The sorting algorithm, put in easy words, is rather:

  • pick all apps which are localized to what the user has set as their device locale
  • order that by name (nulls last; i.e. “make sure it has a name”)
  • then by icon (i.e. “has an icon”)
  • then by summary, description (i.e. has summary, has description)
  • then by “has any graphic” (screenshot, featureGraphic etc – one of them suffices)
  • then by “was just added now or updated in the last 7 days” (ahem, this should rather compare to the index date but does not)
  • then by whether it has a “whatsNew” (i.e. per-release changelogs in Fastlane)
  • only then by when it was last updated (descending, so newest first)
  • then by when it was added (oldest first – meaning, “this app already is with us for a long time and still well maintained”)

As this seems a question raised frequently, I’ve just added it to our FAQ (What are the criteria for an app to show up in the “Latest” tab?) and also linked to that from my Fastlane Cheat Sheet to make it easier to find.

2 Likes

Thanks for adding a link back. I saw that you mentioned that the project needs to be hosted on GitHub, but it isn’t necessary. The action just runs a docker image with the compiled binary that one can run pretty much anywhere.

As for the original issue at hand, Noice seems to be meeting all the criteria listed so far and yet it is missing from the Latest section. I just cloned to the F-Droid client’s source to confirm if it’s actually a bug or Noice just isn’t making the cut for the top 200.

Edit: I can confirm that it’s a bug: Application is missing from "Latest" and "Categories" after index updates (#2245) · Issues · F-Droid / Client · GitLab

1 Like

Thanks! Added that detail to the cheat-sheet. And thanks for checking & updating the client issue!

The keyboard keeps popping up problem bothers me too, but apparently I’ve figured out how to fix it: you have to press enter/search button on the keyboard to stop it from popping up. I think it’s due to the fact that if you remove the keyboard with the back button the cursor in the search bar remains active so when you look at an app and then go back it reactivates the search bar and the keyboard reappears, instead pressing enter/search button makes the cursor disappear from the search bar avoiding the problem.

Sorry for the OT

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.

Similar story to <https://forum.f-droid.org/t/why-is-my-app-missing-from-latest-listing-in-f-droids-android-client/14487>.

I have gone through <https://gitlab.com/fdroid/wiki/-/wikis/FAQ#what-are-the-criteria-for-an-app-to-show-up-in-the-latest-tab>, and I am pretty sure I have everything required:



What am I missing?

I was hoping to get it listed in time to have the [New] badge on the Latest tab, but it looks like this might not be possible now. (How long after being included does an app stop being labelled as New?)

Maybe it doesn’t like zh but wants zh-CN ? eg. https://github.com/k9mail/k-9/tree/5.807/fastlane/metadata/android

Is there a pipeline where I can test the detection of the sorting fields, without having to make a release and wait several days?


Edit: here’s the current entry in the F-Droid repo index:

{
  "authorEmail": "yawnocdev@pm.me",
  "authorName": "Conway",
  "categories": [
    "Writing"
  ],
  "changelog": "https://github.com/stroke-input/stroke-input-android/blob/HEAD/CHANGELOG.md",
  "suggestedVersionName": "0.9.4",
  "suggestedVersionCode": "26",
  "issueTracker": "https://github.com/stroke-input/stroke-input-android/issues",
  "license": "GPL-3.0-only",
  "sourceCode": "https://github.com/stroke-input/stroke-input-android",
  "added": 1643387104000,
  "packageName": "io.github.yawnoc.strokeinput",
  "lastUpdated": 1643847600000,
  "localized": {
    "en-US": {
      "description": "This keyboard app lets you input Chinese characters by typing stroke sequences (e.g. 天 is ㇐㇐㇒㇔).\n\nIt is a minimalist implementation with the following features:\n\n* Good character support (over 28k characters) including vernacular Cantonese\n* User preference for traditional or simplified characters\n* No ads\n* No permissions\n* No tracking or telemetry\n* Deterministic candidate generation which doesn't learn user input\n\nAfter installing the app, launch and follow the prompts to enable Stroke Input Method in your system settings. There will be a default warning shown — this is normal.\n\nThis app is free and open-source software, licensed under the GNU General Public License v3.0 (GPL-3.0-only).\n\nYou are welcome and encouraged to inspect the source code: https://github.com/stroke-input/stroke-input-android\n",
      "featureGraphic": "featureGraphic_e9dqIyFDQFjM5cvnOCuyOVZ8SxOMwaCuSn-p9ujwPqk=.png",
      "icon": "icon_T8xaL1H49A6M40HR34XjkK060sc-PY_MwpEt7HoqrOo=.png",
      "name": "Stroke Input Method (筆畫輸入法)",
      "phoneScreenshots": [
        "phone-1-traditional.png",
        "phone-2-strokes.png",
        "phone-3-phrases.png",
        "phone-4-punctuation.png",
        "phone-5-simplified.png",
        "phone-6-meh.png"
      ],
      "summary": "A minimalist Chinese keyboard.",
      "whatsNew": "* Added phrases 功架, 安裝\n* Added fastlane partial translation to (hopefully) make app appear in Latest\n* Made fastlane description plain text, see https://gitlab.com/fdroid/fdroid-website/-/issues/247#note_825610220\n"
    },
    "zh": {
      "description": "此鍵盤則以筆順而輸入中文(如天字即㇐㇐㇒㇔)。\n\n簡樸而製,勝在:\n\n* 字多(凡二萬八千有餘),附廣府白話\n* 有繁簡體選項\n* 無廣告\n* 無權限\n* 無追蹤遙測者\n* 字選已定,不學用戶習慣\n\n安裝後,開之,按步驟在系統設定啟動筆畫輸入法。將出現系統警告,屬正常。\n\n此鍵盤為自由開源軟件,以 GPL-3.0-only 授權。\n\n歡迎並鼓勵考察原碼: https://github.com/stroke-input/stroke-input-android\n",
      "name": "筆畫輸入法 (Stroke Input Method)",
      "summary": "簡樸中文鍵盤者。"
    }
  }
},

@yawnoc since you look in the index, is any of the others apps that have "zh" (and not zh_XX) on the Latest screen?

jq . index-v1.json|grep \"zh\" yields 7 more apps

Easer (beta) (ID ryey.easer.beta) is listed in Latest, and also has zh without country suffixes.

Comparison (attributes present in one but not the other):

  • Stroke Input Method: authorEmail, localized.en-US.featureGraphic, localized.en-US.icon
  • Easer (beta): authorWebSite, donate, liberapayID, translation, webSite, icon

So my app has localised icon (fastlane) but not the top-level icon in the json.

So it turns out I am stupid, and the reason for the missing listings is because Ashutosh Gangwar’s fix was merged after v1.13.

So if you update the F-Droid client to v1.14, Stroke Input Method and other apps will appear properly.

@Licaon_Kter Feel free to close this thread. Sorry for the noise!