[Galaxy Note II Original Android Development] rovo89:
I had posted something about this a week or so ago... but I can't even seem to find this post myself. :( Was already wondering why I didn't get any reply at all, maybe it wasn't submitted.

So let's see if I remember my points. The background was this post by dyehya.

As I mentioned before, I would love to see an equivalent of the Play Store for Xposed modules. Sure, you could upload an Xposed module to the Play Store as well, but that's connected to lots of things we don't need and want. As we discussed via PM, the current repository doesn't have an API to fetch data about the available mods. As far as I can judge, it also lacks some flexibility in terms of adding new fields etc. A colleague introduced me to Drupal and its CCK module and it's really fantastic how flexible that is, even without writing any code. So as much as I appreciate the repository you built up, I'd like to suggest building a new one. I have installed a copy of Drupal with some modules on my webhosting account (much free space which I wouldn't use anyway) and started configuring it, just for fun. If you have no objections, I would proceed with that and see how far I come. You and I, we both have already other time-consuming projects, so I could also imagine to ask others to help, especially with the design.

Again, as you have already invested much time into the repository, I would like to hear your thoughts about this first.

------------------

Regarding your actual question (as it's very complicated):

Compatibility is indeed a point that comes up quite often. Unfortunately, it depends on different factors. If a module targets apps, usually the app version will be the only factor. But for system modifications, it might be just the base version (e.g. 4.1.2) of the ROM, sometimes the version of additional frameworks (e.g. TouchWiz) and sometimes the exact ROM variant/version (stock? CM? which custom ROM?).

I could imagine a functionality where users can just say "works for me" or "doesn't work". This should then transmit a set of information about the phone with exactly those version numbers etc. I mentioned above. Some of this can be determined automatically, but probably some information has to be entered manually. This would at least provide the data for a human-readable compatibility list. It could also show the user's own configuration for comparison so they can judge whether a module will "probably" work for them.

What's nearly impossible is to clearly say whether a module will work or even just to display (and sort by) the probability. A naive approach: The module author could say best which factors are the most important ones for their modules (e.g. TouchWiz is irrelevant for any app modifications or if something in the base framework is the target). Now if you have a 4.1.2 ROM and 6 users with a 4.1.2 ROM have reported it works and 4 reported it doesn't work, the probability is 60%. If the author selected that the TouchWiz version is important as well, the probability is calculated the same way. The total probability is the product of the individual probabilities. If no reports were made for the exact version you have, the factor wouldn't be considered at all.

To be honest: This approach has massive flaws and I don't think it is a good one. I just want to point out that an automatic matching algorithm is very hard to invent. I do think that the +1 and -1 reports can be helpful if they include the relevant information. And for filters, a better approach is probably tagging the modules manually, provided that tags are used by multiple authors in the same, consistent way. E.g. a filter could be "only show modules without tag TouchWiz" in case you have a CM ROM or a different vendor.