# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# These are the size limits for core products.
#
# NOTE: The absolute limits are generously set since we do not have absolute
# constraints on the size of core. We instead lean on the creep limits to make
# our size growth over time more intentional.
#
# The creep limits are chosen based on historical size increases in the 90th
# percentile of CLs. Exceeding the creep limits does not yet block submission:
# see https://fxbug.dev/42159247.

size_checker_input = {
  components = [
    {
      component = "Config Data"
      pkgs = [ "config_data" ]
      limit = 98304  # 0.094 MiB
      creep_limit = 24576  # 24.0 KiB
    },
    {
      component = "Cobalt"
      pkgs = [
        "cobalt",
        "cobalt_system_metrics",
      ]
      limit = 3145728  # 3 MiB
      creep_limit = 40960  # 40.0 KiB
    },

    # [START session_manager_size_limit]
    {
      component = "Component Framework"
      pkgs = [
        # [START_EXCLUDE]
        "component_index",
        "stash",

        # [END_EXCLUDE]

        "session_manager",
      ]

      # [START_EXCLUDE]
      limit = 2046836  # 1.952 MiB
      creep_limit = 204800  # 200.0 KiB

      # [END_EXCLUDE]
    },

    # [END session_manager_size_limit]
    {
      component = "Connectivity/Bluetooth"
      pkgs = [
        "bt-gap",
        "bt-host",
        "bt-init",
        "bt-rfcomm",
        "bt-snoop",
      ]
      limit = 4928592  # 4.7 MiB
      creep_limit = 81920  # 80.0 KiB
    },
    {
      component = "Connectivity/Location"
      pkgs = [ "regulatory_region" ]
      limit = 1835008  # 1.75 MiB
      creep_limit = 24576  # 24.0 KiB
    },
    {
      component = "Connectivity/Management"
      pkgs = []
      limit = 476053  # 0.454 MiB
      creep_limit = 24576  # 24.0 KiB
    },
    {
      component = "Connectivity/Network"
      pkgs = [
        "dhcpv4-server",
        "dhcpv6-client",
        "dns-resolver",
        "http-client",
        "mdns",
        "netcfg-advanced",
        "netcfg-basic",
        "netstack",
        "netstack3",
        "netstack-migration",
        "network",
        "reachability",
      ]
      limit = 8965179  # 8.550 MiB
      creep_limit = 81920  # 80.0 KiB
    },
    {
      component = "Connectivity/Wlan"
      pkgs = [
        "wlancfg",
        "wlandevicemonitor",
        "wlanstack",
        "wlanif",
        "wlanphy",
        "wlan",
      ]
      limit = 4194304  # 4 MiB
      creep_limit = 81920  # 80.0 KiB
    },
    {
      component = "Diagnostics"
      pkgs = [
        "diagnostics",
        "diagnostics-persistence",
        "log_listener",
        "log_listener_shell",
        "sampler",
        "triage-detect",
      ]
      limit = 2936012  # 2.80 MiB
      creep_limit = 49152  # 48.0 KiB
    },
    {
      component = "Fonts"
      pkgs = [
        "fonts",
        "font-server",
        "open-fonts-collection.asset-provider.package",
        "small-open-fonts-collection.asset-provider.package",
      ]
      limit = 10485760  # 10.000 MiB
      creep_limit = 2097152  # 200.000 KiB
    },
    {
      component = "Graphics"
      pkgs = [
        "vulkan_loader",
        "libvulkan_intel_gen",
        "libvulkan_gfxstream",
        "libvulkan_goldfish",
        "vulkan_loader",
      ]
      limit = 5284823  # 5.04 MiB
      creep_limit = 49152  # 48.0 KiB
    },
    {
      component = "I18N"
      pkgs = [
        "intl-services-small",
        "tzdata-provider",
      ]
      limit = 8650752  # 8.25 MiB
      creep_limit = 32768  # 32.0 KiB
    },
    {
      component = "Media"
      pkgs = [
        "audio_core",
        "audio_device_registry",
        "codec_factory",
        "mediasession",
        "soundplayer",
      ]
      limit = 17825792  # 17 MiB
      creep_limit = 428032  # 418.0 KiB
    },
    {
      component = "Memory"
      pkgs = [
        "memory_monitor",
        "memory_sampler",
      ]
      limit = 2359296  # 2.25 MiB
      creep_limit = 102400  # 100 KiB
    },
    {
      component = "SetUI"
      pkgs = [ "setui_service" ]
      limit = 8912896  # 8.5 MiB
      creep_limit = 65536  # 64.0 KiB
    },
    {
      component = "Software Delivery"
      pkgs = [
        "pkg-resolver",
        "pkgctl",
        "pkgfs",
        "system-update-checker",
        "system-update-committer",
        "system-updater",
        "update-bin",
        "base",
      ]
      limit = 8552106  # 8.155 MiB
      creep_limit = 81920  # 80.0 KiB
    },
    {
      component = "Testing Support"
      pkgs = [
        "trace_manager",
        "test_manager",
        "elf-test-runner",
        "elf-test-ambient-exec-runner",
        "elf-test-create-raw-processes-runner",
        "elf-test-create-raw-processes-ambient-exec-runner",
        "fuzz-test-runner",
        "go-test-runner",
        "gtest-runner",
        "gunit-runner",
        "inspect-test-runner",
        "legacy-test-runner",
        "lib_loader_runner_cache",
        "profiler",
        "rust-test-create-raw-processes-runner",
        "rust-test-next-vdso-runner",
        "rust-test-runner",
        "starnix-test-runners",
        "stress-test-runner",
        "netemul-test-runner",
        "testing",
        "fuchsia-component-test",
        "fuzz-manager",
        "fuzz-registry",
        "fuzzctl",
        "run_test_suite",
      ]
      limit = 12582912  # 12 MiB
      creep_limit = 122880  # 120.0 KiB
    },
    {
      component = "Time"
      pkgs = [
        "httpsdate-time-source",
        "httpsdate-time-source-pull",
        "timekeeper",
        "timekeeper",
      ]
      limit = 2883584  # 2.75 MiB
      creep_limit = 24576  # 24.0 KiB
    },
    {
      component = "Development Support"
      pkgs = [ "driver_playground" ]
      limit = 1310720  # 1.25 MiB
      creep_limit = 81920  # 80.0 KiB
    },
    {
      component = "Development Support - Audio"
      pkgs = [
        "audio-capture-timestamp-validator",
        "audio_ffx_daemon",
        "virtual_audio",
        "audio-codec-ctl",
        "audio-effects-ctl",
        "audio_listener",
        "dsputil",
        "signal_generator",
        "virtual_audio_util",
        "vol",
        "wav_player",
        "wav_recorder",
      ]
      limit = 3670016  # 3.5 MiB
      creep_limit = 24576  # 24.0 KiB
    },
    {
      component = "Connectivity/Wlan-Drivers"
      pkgs = [ "iwlwifi" ]
      limit = 5578880  # 5.32 MiB
      creep_limit = 81920  # 80.0 KiB
    },

    # This component corresponds to the blobfs storage that is not used.
    {
      component = "Unallocated"
      pkgs = []
      limit = 5096254741
      creep_limit = 0
    },
  ]
}
