Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

product-details: don't ask hg.mozilla.org for data we already have (bug 1936479) #1594

Merged
merged 2 commits into from
Dec 17, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions api/src/shipit_api/admin/product_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,13 @@ async def fetch_l10n_data(
Product(release.product) is Product.THUNDERBIRD
and release.branch == "releases/comm-beta"
and release.revision in ["3e01e0dc6943", "481fea2011e6", "85cb8f907b18", "92950b2fd2dc", "c614b6e7cf58", "e277e3f0ab13", "efd290b55a35", "f87ba53e04ff"]
) or Product(release.product) in (Product.FENIX, Product.ANDROID_COMPONENTS, Product.FOCUS_ANDROID, Product.FIREFOX_ANDROID, Product.APP_SERVICES):
) or Product(release.product) in (
Product.FENIX,
Product.ANDROID_COMPONENTS,
Product.FOCUS_ANDROID,
Product.FIREFOX_ANDROID,
Product.APP_SERVICES,
):
return (release, None)

url_file = {
Expand Down Expand Up @@ -604,7 +610,12 @@ async def get_primary_builds(
if Product(release.product) not in products or release.version not in versions:
continue
# Make sure to add en-US, it's not listed in the l10n changesets file
for l10n in list(releases_l10n.get(release, {}).keys()) + ["en-US"]:
locales = ["en-US"]
if release in releases_l10n:
locales += releases_l10n[release].keys()
elif f"1.0/l10n/{release.name}.json" in old_product_details:
locales += old_product_details[f"1.0/l10n/{release.name}.json"]["locales"]
for l10n in locales:
# for compatibility with shipit v1, skip ja-JP-mac
if l10n == "ja-JP-mac":
continue
Expand Down Expand Up @@ -834,9 +845,6 @@ def get_l10n(
data: ProductDetails = {file_.replace("1.0/", ""): content for file_, content in old_product_details.items() if file_.startswith("1.0/l10n/")}

for release, locales in releases_l10n.items():
# XXX: for some reason we didn't generate l10n for devedition in old_product_details
if Product(release.product) is Product.DEVEDITION:
continue
data[f"l10n/{release.name}.json"] = {
"locales": {locale: dict(changeset=content["revision"]) for locale, content in locales.items()},
"submittedAt": with_default(release.created, to_isoformat, default=""),
Expand Down Expand Up @@ -1177,8 +1185,12 @@ async def rebuild(
logger.info("Getting locales from hg.mozilla.org for each release from database")
# use limit_per_host=50 since hg.mozilla.org doesn't like too many connections
async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(limit_per_host=50), timeout=aiohttp.ClientTimeout(total=30)) as session:
# XXX: for some reason we didn't generate l10n for devedition in old_product_details
# However, we do need to include devedition releases if there's no corresponding firefox
# release, to populate firefox_primary_builds.json
missing_releases = [release for release in releases if f"1.0/l10n/{release.name}.json".replace("Devedition", "Firefox") not in old_product_details]
raise_on_failure = git_branch in ["production", "staging"]
releases_l10n = await asyncio.gather(*[fetch_l10n_data(session, release, raise_on_failure) for release in releases])
releases_l10n = await asyncio.gather(*[fetch_l10n_data(session, release, raise_on_failure) for release in missing_releases])
nightly_l10n = await asyncio.gather(*[fetch_l10n_data(session, release, raise_on_failure) for release in nightly_builds])

releases_l10n = {release: changeset for (release, changeset) in releases_l10n if changeset is not None}
Expand Down