1{ 2 "pw": { 3 "pw_presubmit": { 4 "format": { 5 "python_formatter": "black", 6 "black_config_file": "$pw_env{PW_ROOT}/.black.toml", 7 "exclude": [ 8 "\\bthird_party/fuchsia/repo", 9 "\\bthird_party/perfetto/repo", 10 "\\bthird_party/.*\\.json$", 11 "\\bpackage\\.lock$", 12 "\\bpw_presubmit/py/pw_presubmit/format/test_data/.*", 13 "\\bpw_web/log-viewer/package(-lock)?\\.json", 14 "\\bpw_web/log-viewer/src/assets/material_symbols_rounded_subset\\.woff2", 15 "^patches\\.json$" 16 ] 17 } 18 }, 19 "pw_cli": { 20 "plugins": { 21 "build": { 22 "module": "pw_build.pigweed_upstream_build", 23 "function": "pigweed_upstream_main" 24 }, 25 "console": { 26 "module": "pw_system.console", 27 "function": "main" 28 }, 29 "emu": { 30 "module": "pw_emu.__main__", 31 "function": "main" 32 }, 33 "clang-tidy-fix": { 34 "module": "pw_toolchain.clang_apply_replacements", 35 "function": "main" 36 }, 37 "ffx": { 38 "module": "pw_cli.pigweed_aliases", 39 "function": "ffx" 40 }, 41 "format": { 42 "module": "pw_presubmit.format_code", 43 "function": "main" 44 }, 45 "heap-viewer": { 46 "module": "pw_allocator.heap_viewer", 47 "function": "main" 48 }, 49 "ide": { 50 "module": "pw_ide.__main__", 51 "function": "main" 52 }, 53 "package": { 54 "module": "pw_package.pigweed_packages", 55 "function": "main" 56 }, 57 "presubmit": { 58 "module": "pw_presubmit.pigweed_presubmit", 59 "function": "main" 60 }, 61 "requires": { 62 "module": "pw_cli.requires", 63 "function": "main" 64 }, 65 "rpc": { 66 "module": "pw_hdlc.rpc_console", 67 "function": "main" 68 }, 69 "seed": { 70 "module": "pw_module.seed", 71 "function": "main" 72 }, 73 "update": { 74 "module": "pw_software_update.cli", 75 "function": "main" 76 }, 77 "west": { 78 "module": "pw_env_setup_zephyr.zephyr", 79 "function": "main" 80 }, 81 "sensor-desc": { 82 "module": "pw_sensor.sensor_desc", 83 "function": "main" 84 } 85 } 86 }, 87 "pw_env_setup": { 88 "root_variable": "PW_ROOT", 89 "relative_pigweed_root": ".", 90 "rosetta": "never", 91 "project_actions": [ 92 { 93 "import_path": "pw_env_setup", 94 "module_name": "npm_action" 95 } 96 ], 97 "gni_file": "build_overrides/pigweed_environment.gni", 98 "cipd_package_files": [ 99 "pw_env_setup/py/pw_env_setup/cipd_setup/upstream.json" 100 ], 101 "virtualenv": { 102 "gn_targets": [ 103 "python.install" 104 ], 105 "gn_root": ".", 106 "requirements": [ 107 "pw_env_setup/py/pw_env_setup/virtualenv_setup/pigweed_upstream_requirements.txt" 108 ], 109 "constraints": [ 110 "pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list" 111 ], 112 "pip_install_find_links": [ 113 "${PW_MSRV_PYTHON_CIPD_INSTALL_DIR}/pip_cache" 114 ] 115 } 116 }, 117 "pw_package": { 118 "allow_middleware_only_packages": true 119 }, 120 "pw_doctor": { 121 "new_bug_url": "https://issues.pigweed.dev/new" 122 }, 123 "pw_emu": { 124 "target_files": [ 125 "pw_emu/qemu-lm3s6965evb.json", 126 "pw_emu/qemu-stm32vldiscovery.json", 127 "pw_emu/qemu-netduinoplus2.json", 128 "pw_emu/renode-stm32f4_discovery.json" 129 ] 130 }, 131 "bazel_presubmit": { 132 "remote_cache": true, 133 "upload_local_results": true, 134 "programs": { 135 "default": [ 136 [ 137 "mod", 138 "deps", 139 "--lockfile_mode=error" 140 ], 141 [ 142 "build", 143 "//..." 144 ], 145 [ 146 "test", 147 "//..." 148 ], 149 [ 150 "build", 151 "--@rules_rust//rust/toolchain/channel=nightly", 152 "//..." 153 ], 154 [ 155 "test", 156 "--@rules_rust//rust/toolchain/channel=nightly", 157 "//..." 158 ], 159 [ 160 "test", 161 "--config=googletest", 162 "//..." 163 ], 164 [ 165 "build", 166 "--aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect", 167 "--output_groups=clippy_checks", 168 "//..." 169 ], 170 [ 171 "build", 172 "--@rules_rust//rust/toolchain/channel=nightly", 173 "--aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect", 174 "--output_groups=clippy_checks", 175 "//..." 176 ], 177 [ 178 "build", 179 "--config=asan", 180 "--config=fuzztest", 181 "//..." 182 ] 183 ], 184 "docs": [ 185 [ 186 "build", 187 "//docs" 188 ] 189 ], 190 "integration": [ 191 [ 192 "test", 193 "--build_tag_filters=integration", 194 "--test_tag_filters=integration", 195 "//..." 196 ] 197 ], 198 "kernel": [ 199 [ 200 "build", 201 "--config=k_host", 202 "//pw_kernel/..." 203 ], 204 [ 205 "build", 206 "--config=k_lint", 207 "//pw_kernel/..." 208 ], 209 [ 210 "test", 211 "--config=k_host", 212 "//pw_kernel/..." 213 ], 214 [ 215 "build", 216 "--config=k_qemu_mps2_an505", 217 "//pw_kernel/..." 218 ], 219 [ 220 "test", 221 "--config=k_qemu_mps2_an505", 222 "//pw_kernel/..." 223 ], 224 [ 225 "build", 226 "--config=k_rp2350", 227 "//pw_kernel/..." 228 ] 229 ], 230 "clang-tidy": [ 231 [ 232 "build", 233 "--config=clang-tidy", 234 "//..." 235 ] 236 ], 237 "asan": [ 238 [ 239 "test", 240 "--config=asan", 241 "//..." 242 ], 243 [ 244 "test", 245 "--config=asan", 246 "--config=googletest", 247 "//..." 248 ] 249 ], 250 "tsan": [ 251 [ 252 "test", 253 "--config=tsan", 254 "//..." 255 ], 256 [ 257 "test", 258 "--config=tsan", 259 "--config=googletest", 260 "//..." 261 ] 262 ], 263 "ubsan": [ 264 [ 265 "test", 266 "--config=ubsan", 267 "//..." 268 ], 269 [ 270 "test", 271 "--config=ubsan", 272 "--config=googletest", 273 "//..." 274 ] 275 ] 276 } 277 }, 278 "pw_cli_analytics": { 279 "report_command_line": true, 280 "report_project_name": true, 281 "report_remote_url": true, 282 "report_subcommand_name": "always" 283 } 284 } 285} 286