Closed Bug 654355 Opened 14 years ago Closed 14 years ago

[Snippet Service] Create client match rule that easily scales through release versions

Categories

(Snippets Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: lforrest, Assigned: osmose)

References

Details

The purpose of this bug is to: 1. Establish a client match rule that will scale 2. Implement those changes in bulk As discussed offline we're looking to establish a Client Match Rule that does not "break" (show default content) or need to be updated manually upon each dot release. Things to consider: -We may want to target certain versions with "upgrade" messaging at some point -Switching from updating "Version" regex's to "Distribution Channels" -Using the "exclusion" field -The current regex will break with 5.0 -Essentially we'll want "fairly current" and "everything older than that" buckets -Should still enable custom targeting for Beta and Channel releases Proposals: a) Work off of one long version regex. Add 5.X, 6.X, 7.X, etc. to it now in order to prevent breaking. Incorporate exclusions into that regex string when we need to. b) If possible set "Distribution Channel" and then a regex that excludes specific versions at the "version" level c) Other ideas? My technical knowledge of how the snippet service works only goes so far. Thanks.
Assignee: lorchard → nobody
Component: Other → Snippets
Product: Websites → Mozilla Services
QA Contact: other → snippets
Assignee: nobody → lorchard
Sounds like the easiest is to switch to targeting the "release" channel, but I'm not sure what the criteria is for excluding versions. Currently, that would need to be done with an exclusion rule that has a regex matching all undesirable versions. So, for a snippet to appear for all release versions except a certain set, there'll need to be two rules. If we want greater/less than version comparison, that will require some service code changes. I think we have some python/django code to help with that: https://github.com/fwenzel/django-mozilla-product-details Not sure I've got the bandwidth to own those server changes, though
Assignee: lorchard → nobody
Depends on: 659773
An idea I discussed with lforrest: Client Match Rules change to send snippets in the following way: - Inclusion rules must all match. If you have two inclusion rules on a snippet, the snippet will only be sent if both inclusion rules match the client. - Exclusion rules don't change: If they are on a snippet and match, the snippet is not sent. What this allows us to do is have a single "recent" client match rule that only matches on version number. It's added to every snippet that we want to display to up-to-date browsers, while the "update browser" snippets don't have it added. That way, you only have to update the recent rule when a version number changes. More generally, it lets you compose rules rather than making single instances of their combinations. For example, each locale can become a single rule, and you just apply the rules to the relevant snippets. You can then change snippet rules without having to deal with locale issues. I've got a branch with the feature working, just need to test it out more. Thoughts?
Assignee: nobody → mkelly
Status: NEW → ASSIGNED
Component: Snippets → General
Product: Mozilla Services → Snippets
Merged pull request that adds the new client match rule style: https://github.com/lmorchard/home-snippets-server/pull/3 Specific commit with the main fix: https://github.com/Osmose/home-snippets-server/commit/feb90685d545b8a34053e782676664c0a40c3f17 Should appear on stage in about 15 minutes.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Snippets → Snippets Graveyard
You need to log in before you can comment on or make changes to this bug.