in bedrock/releasenotes/views.py [0:0]
def releases_index(request, product):
releases = {}
major_releases = []
if product == "Firefox":
major_releases = firefox_desktop.firefox_history_major_releases
minor_releases = firefox_desktop.firefox_history_stability_releases
for release in major_releases:
major_version = float(re.findall(r"^\d+\.\d+", release)[0])
# 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 pattern is a tricky part.
# The outlier is 33.1 which is in major_releases for some reason.
major_pattern = r"^" + re.escape(
f"{major_version:.0f}." if major_version > 4 and release not in ["33.0", "33.1"] else f"{major_version:.1f}."
)
releases[major_version] = {
"major": release,
"minor": sorted(
[x for x in minor_releases if re.findall(major_pattern, x) if x not in major_releases], key=lambda x: [int(y) for y in x.split(".")]
),
}
return l10n_utils.render(request, f"{product.lower()}/releases/index.html", {"releases": sorted(releases.items(), reverse=True)})