Skip to content

Extend manifesttool to fetch targeting context files alongside feature manifests #14922

@data-sync-user

Description

@data-sync-user

Extend the manifesttool fetch process to also download targeting context source files for each app and version.

  1. Add a targeting_files field to the AppConfig model in appconfig.py — a list of repo-relative file paths to fetch.

  2. Configure in apps.yaml:

  • firefox-desktop: toolkit/components/nimbus/lib/TargetingContextRecorder.sys.mjs
  • fenix: mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/RecordedNimbusContext.kt
  • ios: firefox-ios/Client/Experiments/RecordedNimbusContext.swift
  1. In fetch.py, after fetching manifests for each app/version, also download the configured targeting files via github_api.fetch_file() and store them in the app's version directory (e.g., firefox-desktop/v136.0.0/TargetingContextRecorder.sys.mjs).

  2. Same for the unversioned (latest) copy in the app root directory.

Since the manifesttool already resolves refs, handles caching, and iterates over versions, this piggybacks on all of that. The existing hourly update_external_configs CI job picks up changes automatically.

Acceptance Criteria:

  • apps.yaml has a targeting_files list per app
  • make feature_manifests (which runs the manifesttool) also fetches targeting context files
  • Files are stored versioned (e.g., firefox-desktop/v136.0.0/TargetingContextRecorder.sys.mjs) and unversioned (latest)
  • The existing hourly update_external_configs CI job picks up changes automatically (no separate job needed)

┆Issue is synchronized with this Jira Task

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions