Closed Bug 1107621 Opened 9 years ago Closed 9 years ago

Add whatsnew page for en-US updates to 35.0 betas, when updating from 34.0b11 or older

Categories

(Release Engineering :: Release Requests, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: nthomas, Assigned: nthomas)

Details

Attachments

(1 file, 2 obsolete files)

For the Yahoo default search change. We should use 
  https://www.mozilla.org/%locale%/firefox/35.0/whatsnew/?oldversion=%OLD_VERSION%

en-US only.
Attached file Firefox-35.0b01-build1-en-US blob (obsolete) —
import json
d = json.load(open('Firefox-35.0b01-build1'))
for p, pdata in d['platforms'].items():
  if 'locales' not in pdata:
    continue
  d['platforms'][p]['locales'] = {"en-US": pdata['locales']['en-US']}

d['actions'] = "showURL"
d['openURL'] = "https://www.mozilla.org/%locale%/firefox/35.0/whatsnew/?oldversion=%OLD_VERSION"

f = open('Firefox-35.0b01-build1-en-US', 'w')
json.dump(d, f, indent=4, sort_keys=True)
f.close()
Attached file Firefox-35.0b01-build1-en-US blob, v2 (obsolete) —
bhearsum spotted a missing % at the end of the whatsnew url.

import json
d = json.load(open('Firefox-35.0b01-build1'))
for p, pdata in d['platforms'].items():
  if 'locales' not in pdata:
    continue
  d['platforms'][p]['locales'] = {"en-US": pdata['locales']['en-US']}

d['actions'] = "showURL"
d['openURL'] = "https://www.mozilla.org/%locale%/firefox/35.0/whatsnew/?oldversion=%OLD_VERSION%"

f = open('Firefox-35.0b01-build1-en-US', 'w')
json.dump(d, f, indent=4, sort_keys=True)
f.close()
Attachment #8532174 - Attachment is obsolete: true
Balrog interpolates %LOCALE% not %locale%

import json
d = json.load(open('Firefox-35.0b01-build1'))
for p, pdata in d['platforms'].items():
  if 'locales' not in pdata:
    continue
  d['platforms'][p]['locales'] = {"en-US": pdata['locales']['en-US']}

d['actions'] = "showURL"
d['openURL'] = "https://www.mozilla.org/%LOCALE%/firefox/35.0/whatsnew/?oldversion=%OLD_VERSION%"

f = open('Firefox-35.0b01-build1-en-US', 'w')
json.dump(d, f, indent=4, sort_keys=True)
f.close()
Attachment #8532182 - Attachment is obsolete: true
For testing, I've set up the beta-cdntest channel to send en-US builds to the blob above. (ie not in production on beta yet.)

After installing 34.0b8 (windows en-US), and changing defaults/pref/channel-prefs.js to use beta-cdntest, I get an update to 35.0b1. After the restart this url opens
 https://www.mozilla.org/en-US/firefox/35.0/whatsnew/?oldversion=34.0
but the search content is missing. The default search has changed to yahoo at this point.

If I swap it back to Google and reload the whatsnew, then I do get the search content and the default swaps back to yahoo. ni gavin for what might be going wrong here.
Flags: needinfo?(gavin.sharp)
FWIW, I was testing on a Windows XP VM, clocks on both the host and VM were in PST. Used a new profile, and confirmed that google was the default search before the update.
Sounds like the whatsnew pages weren't yet properly configured for 35 beta. I think Alex and Benjamin are working on it.
Flags: needinfo?(gavin.sharp)
This rule caused the following error in the final verification (Firefox 35.0b2):

Patch type 'complete' not present in the downloaded update.xml file.
Update xml file downloaded from: https://aus3.mozilla.org/update/3/Firefox/35.0/20141201162954/WINNT_x86-msvc/en-US/beta-cdntest/default/default/default/update.xml?force=1

So I have deleted it from Balrog.
I should have added a buildID cutoff, 34.0b11 was 20141120192249. That would have avoided the final verification error, but instead we'll hit errors in update verify when it doesn't match the beta just built. Not really sure how we handle that, other than dropping en-US out of 34.0 and older betas in the patcher config, which is yuck.

Anyway, set this up again per the request
* created Firefox-35.0b2-build1-en-US blob using code in comment 3, with s/35.0b01/35.0b2/
* rule with priority=92, channel=beta-cdntest, locale=en-US, buildID <= 20141120192249, mapped to Firefox-35.0b2-build1-en-US

To test this, take a 34.0 beta build and install it, edit <install dir>/defaults/pref/channel-prefs.js to use the beta-cdntest channel. Then start it up and Help > About to install the update.

It still has the problem that the the tour isn't shown on restart, which smells like an ordering issue in the app startup. eg the default search engine may have already switched to Yahoo by the time the whatsnew page has loaded. [1]

Swapping back to Google then reloading https://www.mozilla.org/en-US/firefox/35.0/whatsnew/?oldversion=34.0 doesn't yield the search UI either, but did in comment #4. So mozilla.org may be configured differently.

I'm loath to push this out when it appears to be broken, or at least my undestanding is. Please advise.
Summary: Add whatsnew page for en-US updates to 35.0 betas → Add whatsnew page for en-US updates to 35.0 betas, when updating from 34.0b11 or older
(In reply to Nick Thomas [:nthomas] from comment #8)
> Swapping back to Google then reloading
> https://www.mozilla.org/en-US/firefox/35.0/whatsnew/?oldversion=34.0 doesn't
> yield the search UI either, but did in comment #4. So mozilla.org may be
> configured differently.

I just checked the mozorg logic and it looks like it's looking for the wrong oldversion number for 35.x. Hitting https://www.mozilla.org/en-US/firefox/35.0/whatsnew/?oldversion=33.0 shows the tour, but not for oldversion=34.x

I'll get this updated asap so it shows when updating from 34
Commits pushed to master at https://github.com/mozilla/bedrock

https://github.com/mozilla/bedrock/commit/75e61378e937d2f95a9e601c81228386c5ee6865
[bug 1107621] Show whatsnew for updates to 35.0 betas, when updating from 34

https://github.com/mozilla/bedrock/commit/d29fc13ab688db8ed04a4f00df70a7a66d48512a
Merge pull request #2578 from alexgibson/bug-1107621-show-whatsnew-35-beta

[bug 1107621] Show whatsnew for updates to 35.0 betas, when updating from 34
OK the new /whatsnew page is now being shown correctly on prod for updates from 34:

https://www.mozilla.org/en-US/firefox/35.0/whatsnew/?oldversion=34.0

Sorry for the delay
Looks good in my testing too, so I've modified ....

(In reply to Nick Thomas [:nthomas] from comment #8)
> * rule with priority=92, channel=beta-cdntest, locale=en-US, buildID <=
> 20141120192249, mapped to Firefox-35.0b2-build1-en-US

to be the beta channel.

FYI tracy/ashughes/lizzard - the en-US builds for 34.0b11 and older will go to 35.0b2 first (with the whatsnew page), then up to the latest beta. I don't want to keep this around forever because it makes things difficult for both of us. Bug 1109416 is for unblocking getting ADI to know when we can stop. This is just for beta, no test channels are set up.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
We should document this procedure while we still need it - we got bitten by this when 34.0b3 shipped today.
(In reply to Nick Thomas [:nthomas] from comment #3)
> Created attachment 8532200 [details]
> Firefox-35.0b01-build1-en-US blob, v3
> 
> Balrog interpolates %LOCALE% not %locale%
> 
> import json
> d = json.load(open('Firefox-35.0b01-build1'))
> for p, pdata in d['platforms'].items():
>   if 'locales' not in pdata:
>     continue
>   d['platforms'][p]['locales'] = {"en-US": pdata['locales']['en-US']}
> 
> d['actions'] = "showURL"
> d['openURL'] =
> "https://www.mozilla.org/%LOCALE%/firefox/35.0/whatsnew/
> ?oldversion=%OLD_VERSION%"
> 
> f = open('Firefox-35.0b01-build1-en-US', 'w')
> json.dump(d, f, indent=4, sort_keys=True)
> f.close()

I followed these instructions to fix up 35.0b3, replacing the version + build number where necessary and then pointing the en-US specific rule at the new blob. I'm pretty sure I did the right thing, based on my read of this bug....
I don't think we need to update this on every beta, QE just needs to know and not test en-US for 34.0 beta or older (hence comment #12).

Why ? Assuming the ADI count is low (ie most people already updated from to 34.0 RC or later) it's minimal bad UX to have a stepping stone/watershed update for en-US. I can't actually check the ADI because that seems to be busted (bug 1109416) but experience says most of the active users will be on 35.0 by now.

Any objections ?
I've reverted that now. Setting a ni? on myself to check ADI in the new year.
Flags: needinfo?(nthomas)
I think most of the people who are updating have already done so, but in absolute terms there are still several hundred thousand users on 34.0 or older. There are a few options here
* remove the whatsnew page for en-US users
* point en-US users at 35.0b8 instead of 35.0b3, to avoid the crashiness issues with 35.0b3
* do some work on Balrog to allow us to have a long-standing special case for en-US & <= 34.0 beta. Realistically this is some way off

lsblakk, gavin - any preference ?
Flags: needinfo?(nthomas) → needinfo?(lsblakk)
We no longer offer the What's New on 34->35 update so I see no reason to show the WN page for 35 betas, therefore I prefer the "remove the whatsnew page for en-US users" option.
Flags: needinfo?(lsblakk)
OK, I've removed the rule in the update server. All beta updates will point to the latest beta (regardless of locale, if version >= 29.0).
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: