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

RESOLVED FIXED

Status

Release Engineering
Releases
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: nthomas, Assigned: nthomas)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Assignee)

Description

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

en-US only.
(Assignee)

Comment 1

3 years ago
Created attachment 8532174 [details]
Firefox-35.0b01-build1-en-US blob

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()
(Assignee)

Comment 2

3 years ago
Created attachment 8532182 [details]
Firefox-35.0b01-build1-en-US blob, v2

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
(Assignee)

Comment 3

3 years ago
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()
Attachment #8532182 - Attachment is obsolete: true
(Assignee)

Comment 4

3 years ago
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)
(Assignee)

Comment 5

3 years ago
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.
(Assignee)

Comment 8

3 years ago
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

Comment 10

3 years ago
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
(Assignee)

Comment 12

3 years ago
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
Last Resolved: 3 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....
(Assignee)

Comment 15

3 years ago
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 ?
(Assignee)

Comment 16

3 years ago
If there turn out to be no objections, we should revert https://wiki.mozilla.org/index.php?title=Releases%2FRelEngChecklist&diff=1040502&oldid=1038523
(Assignee)

Comment 17

3 years ago
I've reverted that now. Setting a ni? on myself to check ADI in the new year.
Flags: needinfo?(nthomas)
(Assignee)

Comment 18

3 years ago
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)
(Assignee)

Comment 20

3 years ago
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.