Create a unique, guaranteed discusion thread for each app



I have set up a super basic prototype for having a discussion thread for each app in F-Droid. I have set up the “Package Thread” category, and created a thread for F-Droid:

This idea is sketched out and tracked here:


Because we already had people creating package threads although the whole thing isn’t ready yet I have disabled the category for now until we implement it correctly in the ecosystem.


We can’t access the topic :smile:

Having made an update to a meta-data (fdroiddata), I think that 100 MB of storage/download is a lot (and even each fork on gitlab) for just updating a text file.
Can’t we split the project in several part?
Ex: a meta-data project for each letter (A, B, C…).
This will also reduce the number of rows in the html page of Gitlab.
Can we break Gitlab when we exceed the limits? :smile:


I’m happy to implement this change any time as long as no one is opposed to it. It will be easy to implement. The hard part will be getting people to use it :slight_smile:


I guess the open question is: should each app page be automatically generated, or should a moderator have to create it?


As I’m the original creator of the issue, I’m absolutely fine with this. Thanks for taking it on!

I think, if we have it on the website and in the app, people will quickly start using it.

Because we have limited work power and likely want to have this scale easily, I vote for automatic creation.

Only point I have is that we should take care that the title of the topic is the app’s name, not its package ID, and that we don’t annoy other parts of the forum with it, i.e. not showing up in the main feed, notifications about new posts etc. Or, only if people want that, but not by default.


are discussion threads really the right tool?

  • By spirit threads are linear in time (with the exception of citing).
  • People joining later cannot apply/read changes locally (a persevering topic might be spread over pages).
  • Moderator intervention (which due to varying skill level/intentions of users (think of games)) will always feel invasive (authoritarian (moderator decisions can be hard to follow as history usually is lost)).
  • as threads get longer only the last pages can reasonably be read (questions/answers tend to be repeated, bloating the thread)
  • just two people wanting to have the last word on something can easily drain the fun

Did I write linear in the above section? Let’s all shout: it does not scale!

F-Droid has a wiki entry for each application (currently pretty much dedicated to the build system) e.g.
For each application there’s a discussion page, there’s a history, sections can be used (both in the app’s main and in its discussion page, so a topic stays local), history is there, diff is available, there is a Recent Changes page for all applications (including/excluding bots), consensus can be more easily found (because the most frequent/last poster does not get undue weight)


maybe just that part needs to to be resolved?)


We already have static pages for each app (package and wiki pages). What’s missing is a discussion thread. That’s the idea here. Sure, discussion threads have their issues, but a wiki will not replace them.


Seems we need a Forum Bot to do this, like the RFP Bot I just created. Anyone want to take on creating that?


We could do that but I don’t think we need it. From the Discourse topic:

You have the choice to have Discourse create the topics automatically when a new embedding is found, or you can create the topics yourself in advance.

Later in “Configuring Discourse for Embedding” it says that we only need to configure the forum to allow topics automatically being created from and then have to embed this little code block on every page:

<div id='discourse-comments'></div>

<script type="text/javascript">
  DiscourseEmbed = { discourseUrl: '',
                     discourseEmbedUrl: '' };

  (function() {
    var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);

With this, we need no bot, but Discourse will automatically create topics for us if it finds this embedded code on our page.


This is not an url: Discourse topic


That sounds very promising! The website doesn’t allow inline Javascript for security/privacy reasons. Could you put that into a merge request where the Javascript is in a .js file? I guess we don’t have a staging site for discourse. Maybe we could have a temporary thing to tag auto-created topics so they can be easily deleted while we are testing this.


You’re right, thanks! I fixed it.


I think it is possible to do the integration with external JavaScript files with the help of data divs Peter already used to implement the search.

As far as I understood this, you or I or another admin could add their personal GitLab page as “trusted domain” in this forum instance and then create topics in the category already created by you. If we have everything working, we can switch the trusted domain, delete all topics and start.

If I find the time, I’ll try to do it, but at the moment it does not look like I can do it soon. What I can do is assist with the configuration of our forum so someone else can work on this.