I think it would be very necessary to add the opportunity to rate and comment the apps in f-droid. If one would recognize that a app was a manipulated fork of an other app with malicious code, he can't tell this the others. And many other user would download this app and won't recognize it.
This has been discussed before, but the amount of work that optional logins require (including the server side) is not trivial. For the time being, nobody has started to work on it yet.
Must it involve logins? Or could it be trusting and allow the app to generate a random guid on install and submit reviews/ratings based on that? Yes, it would be succeptible to manipulation, but that would strike me as less likely on our market as there's less profit motive...
I like the idea of device specific generated guid's. Of course someone malicious could create many virtual machines with android running install the app and rate but thats quite some efford. Maybe staring (+1) instead of rating (0-6) would be better.
Since the discussion came up on https://gitlab.com/fdroid/fdroiddata/issues/221 and the IRC: While comments/ratings might be tricky, we definitely need the option to do better client side filtering of apps (the repo is growing, some prefer only apps without anti-features or even without specific AF..). I proposed having per-build tags in the metadata, but maybe this can even be outsourced, e.g. having external "rating"-files of reviewers that the user trusts...
I have been using f-droid for several months now to install apps and this is a feature that I have wanted the whole time. I like Patrick's guid idea and think it's preferable to having logins. Is this a solution that would be accepted? It sounds like there's a substantial amount of work to enable this even without logins. Is that correct? (I made an account here to post this comment and haven't looked at any code or basic architecture yet.) I want to help out so I'll start reading documentation and download the source.
Right now fdroidserver only generates files, and then an http server (e.g. nginx) is the actual server. It's all static content.
Basically, you would have to make fdroidserver also an actual http server. We need it to be able to interact with users, e.g. take in and serve comments and ratings.
I do think that randomly generated uids are not good enough. They would be somewhat better if you added some kind of captcha per session before making any comment/rating, but IMHO that would be more annoying than logging in once.
Reddit works like this, for example. You can read all the content anonymously. But if you want to add content, you have to register and login. Why is that too much to ask?
I'm not opposed to having logins required for leaving ratings and comments. I wanted to get a sense for what the minimum amount of work for this feature is. Unfortunately my knowledge of python is very basic. Java is the language I know best and I'm familiar with Spring. I could write a RESTful application server that handles the needed operations. Does the desired solution need to be written in python? Also, please let me know if this is the appropriate place for discussing this or if I should create a topic on the forum.
The problem with ratings is that after you have to check why an application got 1 star instead of 4, 5! I got 1 star in my application because the guy was not able to search a bit in the application, the option he wanted was in the menu! The second problem is that some applications will be on top and others not. Why they are on top? because they have more friends, more social...? Not always because the application is "perfect".
I would suggest to only count the number of installations. Info really useful for the developers. And maybe other stuffs like "FDroid rating" :) In others tools like IMDB, some sites have their own rating.