-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
re-evaluate how syntax/software support is modeled #496
Comments
Related to #492 |
I'm in favour of options №2 (Boolean) and №3 (Granularity), whichever one you two decide upon. №1 (Most Precise) would in my eyes be a disaster in the making, since not only would I (and other pull makers) have to keep track on dozens of software tools for each list, leading to the time it takes me to put together a mass-addition pull being roughly doubled (if not tripled due to concentration exhaustion), but it also wouldn't properly account for new software tools that are occasionally discovered (Recent examples of which are FireHOL and Samsung Knox). |
Thanks, @DandelionSprout . I tend to agree with you. I also just added another option, Keep on Keeping on, but Stricter, to the OP. |
I'm not in favour of №0 (Keeping on but stricter), as it underestimates the syntax crossover potential that stems from uBO, Nano and AdGuard occasionally co-operating with each other to create industry standards. Sure, each of them have their own quirks, which can on rare occasions cause problems, but there's several discussion threads on record out there where they set out to agree on common standards (a notable instance of this being AdguardTeam/AdguardBrowserExtension#917). It's better than №1, but my money remains on either №2 or №3. |
Option 3 could be partially automated away at some point, which would be cool. In the same vein as #202 , we could have FilterLists' SnapshotService analyze rules in lists, create a collection of sub/granular-Syntaxes that the list currently represents based on string patterns, and then update the Software support automatically. It wouldn't be easy to implement, and there may be corners (a certain pattern meaning different things in two different The biggest change Option 3 would entail now would be updating the model so that each list can support many |
I think that option 3 is probably the best, but I also think that |
I also think that options 2 and 3 are better than the other two. Option 3, however, requires quite a bit of work and cannot be done in a short time. At the same time, it will be really handy to filters maintainers and us developers, but it might be overly complicated and confusing for regular users. Anyway, if you decide to proceed with option 3, please let me know, I'll find some time to help. |
I am in the process of making some data model changes to allow support for option 3 as well as a few other additional bits of data. @DandelionSprout , please hold off for a few days at least before making any data PRs as I'm manipulating the json. I'll ping you back here when the json has stabilized. I'm also really pushing hard to get a solution for #372 going "soon". |
new data model is fairly well fleshed out here. each list can now have many syntaxes so we can be a bit more granular. I still need to document the changes. I hope to deploy in the next week or so. I don't plan any major UI changes just yet other than to make sure nothing existing breaks with the new db/api launch. it will also resolve:
once this new data model is deployed, I plan to shift some real effort towards #372 . it's long overdue. I hate that people (mostly @DandelionSprout ) want to help maintain this project but they have to fiddle with json files. it's very sub-optimal. |
@DandelionSprout PRs welcome again. the refactor is complete. more notes here |
Closing as each FilterList can now be associated with multiple Syntaxes. |
This issue is to continue discussion from #493 with @hawkeye116477 , @DandelionSprout , and whoever else.
FilterLists is currently designed so that each
FilterList
is linked to a singleSyntax
. EachSyntax
is supported by multipleSoftware
.However, we might need to expand the complexity of that model a bit more. Some ideas summarized below:
0. Keep on Keeping on, but Stricter:
Continue using the current model, but be very strict about saying that a
Software
supports aSyntax
. The example that came up is that we thinkAdGuard
supports nearly all ofuBlock Origin Static
, however it does not support Scriptlet Injection. In this case, we would say that AdGuard does not supportuBlock Origin Static
. OnlySoftware
that can support any kind of rule defined in aSyntax
should be linked to thatSyntax
.1. Most Precise:
The most precise solution would be to drop the
Syntax
model altogether in favor of eachFilterList
having its own set ofSoftware
that is known to support it. That incurs a lot of data maintenance overhead, and I am really hoping to keepSyntax
around in some form to lighten the load of having to maintain all those individual incompatibilities.2. Boolean Partial Syntax Support:
I proposed adding a boolean flag to each
SoftwareSyntax
that represents if theSyntax
is fully supported by theSoftware
(all rules except comments/metadata should be applied by theSoftware
) or only partially supported (some of the rules are ignored by theSoftware
, while some are applied). We could then indicate in the UI somehow whether theSoftware
fully or partially supports theFilterList
.3. More Granular Syntaxes:
Another option could be to chop a
Syntax
likeuBlock Origin Static
into multipleSyntax
es. So, instead of havinguBlock Origin Static
, we would instead have:uBlock Origin Static Network Filtering
,uBlock Origin Static Extended Filtering
,uBlock Origin Scriptlet Injection
, ... This solution would also require changing the relationship from aFilterList
to aSyntax
from one-to-many to many-to-many so that eachFilterList
can implement multipleSyntax
es.Surfacing software support is one of the primary pieces of value that FilterLists provides, in my view, so getting this right is pretty key. Please provide your further thoughts/suggestions.
The text was updated successfully, but these errors were encountered: