Skip to content

Commit

Permalink
Merge pull request #2780 from kyoshino/bug-1137061-releases-index
Browse files Browse the repository at this point in the history
Fix Bug 1137061 - Firefox Release Notes list shows unsorted sub-versions
  • Loading branch information
pmac committed Feb 27, 2015
2 parents 1ab2276 + f6a6fad commit f32d63a
Show file tree
Hide file tree
Showing 4 changed files with 243 additions and 27 deletions.
@@ -1 +1,42 @@
{"1.0":"2004-11-09","1.5":"2005-11-29","2.0":"2006-10-24","3.0":"2008-06-17","3.5":"2009-06-30","3.6":"2010-01-21","4.0":"2011-03-22","5.0":"2011-06-21","6.0":"2011-08-16","7.0":"2011-09-27","8.0":"2011-11-08","9.0":"2011-12-20","10.0":"2012-01-31","11.0":"2012-03-13","12.0":"2012-04-24","13.0":"2012-06-05","14.0.1":"2012-07-17","15.0":"2012-08-28","16.0":"2012-10-09","17.0":"2012-11-20","18.0":"2013-01-08","19.0":"2013-02-19","20.0":"2013-04-02","21.0":"2013-05-14","22.0":"2013-06-25","23.0":"2013-08-06","24.0":"2013-09-17","25.0":"2013-10-29"}
{
"1.0": "2004-11-09",
"1.5": "2005-11-29",
"2.0": "2006-10-24",
"3.0": "2008-06-17",
"3.5": "2009-06-30",
"3.6": "2010-01-21",
"4.0": "2011-03-22",
"5.0": "2011-06-21",
"6.0": "2011-08-16",
"7.0": "2011-09-27",
"8.0": "2011-11-08",
"9.0": "2011-12-20",
"10.0": "2012-01-31",
"11.0": "2012-03-13",
"12.0": "2012-04-24",
"13.0": "2012-06-05",
"14.0.1": "2012-07-17",
"15.0": "2012-08-28",
"16.0": "2012-10-09",
"17.0": "2012-11-20",
"18.0": "2013-01-08",
"19.0": "2013-02-19",
"20.0": "2013-04-02",
"21.0": "2013-05-14",
"22.0": "2013-06-25",
"23.0": "2013-08-06",
"24.0": "2013-09-17",
"25.0": "2013-10-29",
"26.0": "2013-12-10",
"27.0": "2014-02-04",
"28.0": "2014-03-18",
"29.0": "2014-04-29",
"30.0": "2014-06-10",
"31.0": "2014-07-22",
"32.0": "2014-09-02",
"33.0": "2014-10-14",
"33.1": "2014-11-10",
"34.0": "2014-12-01",
"35.0": "2015-01-13",
"36.0": "2015-02-24"
}
@@ -1 +1,174 @@
{"1.0.1":"2005-02-24","1.0.2":"2005-03-23","1.0.3":"2005-04-15","1.0.4":"2005-05-11","1.0.5":"2005-07-12","1.0.6":"2005-07-19","1.0.7":"2005-09-20","1.0.8":"2006-04-13","1.5.0.1":"2006-02-01","1.5.0.2":"2006-04-13","1.5.0.3":"2006-05-02","1.5.0.4":"2006-06-01","1.5.0.5":"2006-07-26","1.5.0.6":"2006-08-02","1.5.0.7":"2006-09-14","1.5.0.8":"2006-11-07","1.5.0.9":"2006-12-19","1.5.0.10":"2007-02-23","1.5.0.11":"2007-03-20","1.5.0.12":"2007-05-30","2.0.0.1":"2006-12-19","2.0.0.2":"2007-02-23","2.0.0.3":"2007-03-20","2.0.0.4":"2007-05-30","2.0.0.5":"2007-07-17","2.0.0.6":"2007-07-30","2.0.0.7":"2007-09-18","2.0.0.8":"2007-10-18","2.0.0.9":"2007-11-01","2.0.0.10":"2007-11-26","2.0.0.11":"2007-11-30","2.0.0.12":"2008-02-07","2.0.0.13":"2008-03-25","2.0.0.14":"2008-04-16","2.0.0.15":"2008-07-01","2.0.0.16":"2008-07-15","2.0.0.17":"2008-09-23","2.0.0.18":"2008-11-12","2.0.0.19":"2008-12-16","2.0.0.20":"2008-12-18","3.0.1":"2008-07-16","3.0.2":"2008-09-23","3.0.3":"2008-09-26","3.0.4":"2008-11-12","3.0.5":"2008-12-16","3.0.6":"2009-02-03","3.0.7":"2009-03-04","3.0.8":"2009-03-27","3.0.9":"2009-04-21","3.0.10":"2009-04-27","3.0.11":"2009-06-11","3.0.12":"2009-07-21","3.0.13":"2009-08-03","3.0.14":"2009-09-09","3.0.15":"2009-10-27","3.0.16":"2009-12-15","3.0.17":"2010-01-05","3.0.18":"2010-02-17","3.0.19":"2010-03-30","3.5.1":"2009-07-17","3.5.2":"2009-08-03","3.5.3":"2009-09-09","3.5.4":"2009-10-27","3.5.5":"2009-11-05","3.5.6":"2009-12-15","3.5.7":"2010-01-05","3.5.8":"2010-02-17","3.5.9":"2010-03-30","3.5.10":"2010-06-22","3.5.11":"2010-07-20","3.5.12":"2010-09-07","3.5.13":"2010-09-15","3.5.14":"2010-10-19","3.5.15":"2010-10-27","3.5.16":"2010-12-09","3.5.17":"2011-03-01","3.5.18":"2011-03-22","3.5.19":"2011-04-28","3.6.2":"2010-03-22","3.6.3":"2010-04-01","3.6.4":"2010-06-22","3.6.6":"2010-06-26","3.6.7":"2010-07-20","3.6.8":"2010-07-23","3.6.9":"2010-09-07","3.6.10":"2010-09-15","3.6.11":"2010-10-19","3.6.12":"2010-10-27","3.6.13":"2010-12-09","3.6.14":"2011-03-01","3.6.15":"2011-03-04","3.6.16":"2011-03-22","3.6.17":"2011-04-28","3.6.18":"2011-06-21","3.6.19":"2011-07-11","3.6.20":"2011-08-16","3.6.21":"2011-08-30","3.6.22":"2011-09-06","3.6.23":"2011-09-27","3.6.24":"2011-11-08","3.6.25":"2011-12-20","4.0.1":"2011-04-28","5.0.1":"2011-07-11","6.0.1":"2011-08-30","6.0.2":"2011-09-06","7.0.1":"2011-09-29","8.0.1":"2011-11-21","9.0.1":"2011-12-21","3.6.26":"2012-01-31","10.0.1":"2012-02-10","10.0.2":"2012-02-16","3.6.27":"2012-02-17","10.0.3":"2012-03-13","3.6.28":"2012-03-13","10.0.4":"2012-04-24","10.0.5":"2012-06-05","13.0.1":"2012-06-15","10.0.6":"2012-07-17","10.0.7":"2012-08-28","15.0.1":"2012-09-06","10.0.8":"2012-10-09","16.0.1":"2012-10-11","10.0.9":"2012-10-12","16.0.2":"2012-10-26","10.0.10":"2012-10-26","10.0.11":"2012-11-20","17.0.1":"2012-11-30","10.0.12":"2013-01-08","17.0.2":"2013-01-08","18.0.1":"2013-01-18","18.0.2":"2013-02-05","17.0.3":"2013-02-19","17.0.4":"2013-03-07","19.0.2":"2013-03-07","17.0.5":"2013-04-02","20.0.1":"2013-04-11","17.0.6":"2013-05-14","17.0.7":"2013-06-25","17.0.8":"2013-08-06","23.0.1":"2013-08-16","17.0.9":"2013-09-17","17.0.10":"2013-10-29","24.1.0":"2013-10-29","25.0.1":"2013-11-15","24.1.1":"2013-11-15","17.0.11":"2013-11-15"}
{
"1.0.1": "2005-02-24",
"1.0.2": "2005-03-23",
"1.0.3": "2005-04-15",
"1.0.4": "2005-05-11",
"1.0.5": "2005-07-12",
"1.0.6": "2005-07-19",
"1.0.7": "2005-09-20",
"1.0.8": "2006-04-13",
"1.5.0.1": "2006-02-01",
"1.5.0.2": "2006-04-13",
"1.5.0.3": "2006-05-02",
"1.5.0.4": "2006-06-01",
"1.5.0.5": "2006-07-26",
"1.5.0.6": "2006-08-02",
"1.5.0.7": "2006-09-14",
"1.5.0.8": "2006-11-07",
"1.5.0.9": "2006-12-19",
"1.5.0.10": "2007-02-23",
"1.5.0.11": "2007-03-20",
"1.5.0.12": "2007-05-30",
"2.0.0.1": "2006-12-19",
"2.0.0.2": "2007-02-23",
"2.0.0.3": "2007-03-20",
"2.0.0.4": "2007-05-30",
"2.0.0.5": "2007-07-17",
"2.0.0.6": "2007-07-30",
"2.0.0.7": "2007-09-18",
"2.0.0.8": "2007-10-18",
"2.0.0.9": "2007-11-01",
"2.0.0.10": "2007-11-26",
"2.0.0.11": "2007-11-30",
"2.0.0.12": "2008-02-07",
"2.0.0.13": "2008-03-25",
"2.0.0.14": "2008-04-16",
"2.0.0.15": "2008-07-01",
"2.0.0.16": "2008-07-15",
"2.0.0.17": "2008-09-23",
"2.0.0.18": "2008-11-12",
"2.0.0.19": "2008-12-16",
"2.0.0.20": "2008-12-18",
"3.0.1": "2008-07-16",
"3.0.2": "2008-09-23",
"3.0.3": "2008-09-26",
"3.0.4": "2008-11-12",
"3.0.5": "2008-12-16",
"3.0.6": "2009-02-03",
"3.0.7": "2009-03-04",
"3.0.8": "2009-03-27",
"3.0.9": "2009-04-21",
"3.0.10": "2009-04-27",
"3.0.11": "2009-06-11",
"3.0.12": "2009-07-21",
"3.0.13": "2009-08-03",
"3.0.14": "2009-09-09",
"3.0.15": "2009-10-27",
"3.0.16": "2009-12-15",
"3.0.17": "2010-01-05",
"3.0.18": "2010-02-17",
"3.0.19": "2010-03-30",
"3.5.1": "2009-07-17",
"3.5.2": "2009-08-03",
"3.5.3": "2009-09-09",
"3.5.4": "2009-10-27",
"3.5.5": "2009-11-05",
"3.5.6": "2009-12-15",
"3.5.7": "2010-01-05",
"3.5.8": "2010-02-17",
"3.5.9": "2010-03-30",
"3.5.10": "2010-06-22",
"3.5.11": "2010-07-20",
"3.5.12": "2010-09-07",
"3.5.13": "2010-09-15",
"3.5.14": "2010-10-19",
"3.5.15": "2010-10-27",
"3.5.16": "2010-12-09",
"3.5.17": "2011-03-01",
"3.5.18": "2011-03-22",
"3.5.19": "2011-04-28",
"3.6.2": "2010-03-22",
"3.6.3": "2010-04-01",
"3.6.4": "2010-06-22",
"3.6.6": "2010-06-26",
"3.6.7": "2010-07-20",
"3.6.8": "2010-07-23",
"3.6.9": "2010-09-07",
"3.6.10": "2010-09-15",
"3.6.11": "2010-10-19",
"3.6.12": "2010-10-27",
"3.6.13": "2010-12-09",
"3.6.14": "2011-03-01",
"3.6.15": "2011-03-04",
"3.6.16": "2011-03-22",
"3.6.17": "2011-04-28",
"3.6.18": "2011-06-21",
"3.6.19": "2011-07-11",
"3.6.20": "2011-08-16",
"3.6.21": "2011-08-30",
"3.6.22": "2011-09-06",
"3.6.23": "2011-09-27",
"3.6.24": "2011-11-08",
"3.6.25": "2011-12-20",
"4.0.1": "2011-04-28",
"5.0.1": "2011-07-11",
"6.0.1": "2011-08-30",
"6.0.2": "2011-09-06",
"7.0.1": "2011-09-29",
"8.0.1": "2011-11-21",
"9.0.1": "2011-12-21",
"3.6.26": "2012-01-31",
"10.0.1": "2012-02-10",
"10.0.2": "2012-02-16",
"3.6.27": "2012-02-17",
"10.0.3": "2012-03-13",
"3.6.28": "2012-03-13",
"10.0.4": "2012-04-24",
"10.0.5": "2012-06-05",
"13.0.1": "2012-06-15",
"10.0.6": "2012-07-17",
"10.0.7": "2012-08-28",
"15.0.1": "2012-09-06",
"10.0.8": "2012-10-09",
"16.0.1": "2012-10-11",
"10.0.9": "2012-10-12",
"16.0.2": "2012-10-26",
"10.0.10": "2012-10-26",
"10.0.11": "2012-11-20",
"17.0.1": "2012-11-30",
"10.0.12": "2013-01-08",
"17.0.2": "2013-01-08",
"18.0.1": "2013-01-18",
"18.0.2": "2013-02-05",
"17.0.3": "2013-02-19",
"19.0.1": "2013-02-27",
"17.0.4": "2013-03-07",
"19.0.2": "2013-03-07",
"17.0.5": "2013-04-02",
"20.0.1": "2013-04-11",
"17.0.6": "2013-05-14",
"17.0.7": "2013-06-25",
"17.0.8": "2013-08-06",
"23.0.1": "2013-08-16",
"17.0.9": "2013-09-17",
"17.0.10": "2013-10-29",
"24.1.0": "2013-10-29",
"25.0.1": "2013-11-15",
"24.1.1": "2013-11-15",
"17.0.11": "2013-11-15",
"24.2.0": "2013-12-10",
"24.3.0": "2014-02-04",
"27.0.1": "2014-02-14",
"24.4.0": "2014-03-18",
"24.5.0": "2014-04-29",
"29.0.1": "2014-05-09",
"24.6.0": "2014-06-10",
"24.7.0": "2014-07-22",
"24.8.0": "2014-09-02",
"31.1.0": "2014-09-02",
"32.0.1": "2014-09-12",
"32.0.2": "2014-09-18",
"32.0.3": "2014-09-24",
"31.1.1": "2014-09-24",
"24.8.1": "2014-09-24",
"31.2.0": "2014-10-14",
"33.0.1": "2014-10-24",
"33.0.2": "2014-10-28",
"33.0.3": "2014-11-06",
"33.1.1": "2014-11-14",
"34.0.5": "2014-12-01",
"31.3.0": "2014-12-01",
"31.4.0": "2015-01-13",
"35.0.1": "2015-01-26",
"31.5.0": "2015-02-24"
}
40 changes: 20 additions & 20 deletions bedrock/releasenotes/tests/test_base.py
Expand Up @@ -213,27 +213,27 @@ def test_get_download_url_thunderbird(self):


class TestReleaseNotesIndex(TestCase):
def test_relnotes_index_firefox(self):
@patch('bedrock.releasenotes.views.l10n_utils.render')
@patch.dict(product_details.firefox_versions,
LATEST_FIREFOX_VERSION='36.0')
def test_relnotes_index_firefox(self, render_mock):
with self.activate('en-US'):
response = self.client.get(reverse('firefox.releases.index'))
doc = pq(response.content)
eq_(len(doc('a[href="0.1.html"]')), 1)
eq_(len(doc('a[href="0.10.html"]')), 1)
eq_(len(doc('a[href="1.0.html"]')), 1)
eq_(len(doc('a[href="1.0.8.html"]')), 1)
eq_(len(doc('a[href="1.5.html"]')), 1)
eq_(len(doc('a[href="1.5.0.12.html"]')), 1)
eq_(len(doc('a[href="../2.0/releasenotes/"]')), 1)
eq_(len(doc('a[href="../2.0.0.20/releasenotes/"]')), 1)
eq_(len(doc('a[href="../3.6/releasenotes/"]')), 1)
eq_(len(doc('a[href="../3.6.28/releasenotes/"]')), 1)
eq_(len(doc('a[href="../17.0/releasenotes/"]')), 1)
eq_(len(doc('a[href="../17.0.11/releasenotes/"]')), 1)
eq_(len(doc('a[href="../24.0/releasenotes/"]')), 1)
eq_(len(doc('a[href="../24.1.0/releasenotes/"]')), 1)
eq_(len(doc('a[href="../24.1.1/releasenotes/"]')), 1)
eq_(len(doc('a[href="../25.0/releasenotes/"]')), 1)
eq_(len(doc('a[href="../25.0.1/releasenotes/"]')), 1)
self.client.get(reverse('firefox.releases.index'))
releases = render_mock.call_args[0][2]['releases']
eq_(len(releases), len(product_details.firefox_history_major_releases))
eq_(releases[0][0], 36.0)
eq_(releases[0][1]['major'], '36.0')
eq_(releases[0][1]['minor'], [])
eq_(releases[3][0], 33.1)
eq_(releases[3][1]['major'], '33.1')
eq_(releases[3][1]['minor'], ['33.1.1'])
eq_(releases[4][0], 33.0)
eq_(releases[4][1]['major'], '33.0')
eq_(releases[4][1]['minor'], ['33.0.1', '33.0.2', '33.0.3'])
eq_(releases[6][0], 31.0)
eq_(releases[6][1]['major'], '31.0')
eq_(releases[6][1]['minor'],
['31.1.0', '31.1.1', '31.2.0', '31.3.0', '31.4.0', '31.5.0'])

def test_relnotes_index_thunderbird(self):
with self.activate('en-US'):
Expand Down
12 changes: 7 additions & 5 deletions bedrock/releasenotes/views.py
Expand Up @@ -161,6 +161,9 @@ def latest_sysreq(request, channel, product):

def releases_index(request, product):
releases = {}
esr_major_versions = range(
10, int(firefox_get_latest_version(product).split('.')[0]), 7)

if product == 'Firefox':
major_releases = firefox_details.firefox_history_major_releases
minor_releases = firefox_details.firefox_history_stability_releases
Expand All @@ -173,15 +176,14 @@ def releases_index(request, product):
# The version numbering scheme of Firefox changes sometimes. The second
# number has not been used since Firefox 4, then reintroduced with
# Firefox ESR 24 (Bug 870540). On this index page, 24.1.x should be
# fallen under 24.0. This patter is a tricky part.
major_pattern = r'^' + \
re.escape(
('%s' if major_version < 4 else '%g') % round(major_version, 1))
# fallen under 24.0. This pattern is a tricky part.
converter = '%g' if int(major_version) in esr_major_versions else '%s'
major_pattern = r'^' + re.escape(converter % round(major_version, 1))
releases[major_version] = {
'major': release,
'minor': sorted(filter(lambda x: re.findall(major_pattern, x),
minor_releases),
key=lambda x: int(re.findall(r'\d+$', x)[0]))
key=lambda x: map(lambda y: int(y), x.split('.')))
}

return l10n_utils.render(
Expand Down

0 comments on commit f32d63a

Please sign in to comment.