1:tocdepth: 2 2 3.. _docs-changelog: 4 5===================== 6What's New In Pigweed 7===================== 8 9-------------------------------- 10Talk to the team at Pigweed Live 11-------------------------------- 12.. pigweed-live:: 13 14.. _docs-changelog-latest: 15 16------------ 17May 30, 2024 18------------ 19.. changelog_highlights_start 20 21Highlights (May 17, 2024 to May 30, 2024): 22 23* **Clock management**: The new :ref:`module-pw_clock_tree` module manages 24 generic clock tree elements such as clocks, clock selectors, and clock 25 dividers. 26* **GitHub Actions**: The new :ref:`docs-github` guide shows you 27 how to set up GitHub Actions to build and test a Bazel-based Pigweed 28 project when a pull request is received. 29* **pw_system and Bazel**:ref:`module-pw_system` usage in Bazel has been 30 simplified by gathering all required ``pw_system`` components into one 31 target and providing label flags that can set platform-dependent 32 dependencies. 33* **Channels and Linux Epoll**: The new :cpp:class:`pw::channel::EpollChannel` 34 class sends and receives data through a file descriptor, with read and write 35 notifications backed by Linux's epoll system. 36 37.. changelog_highlights_end 38 39Active SEEDs 40============ 41Help shape the future of Pigweed! Please visit :ref:`seed-0000` 42and leave feedback on the RFCs (i.e. SEEDs) marked 43``Open for Comments``. 44 45Modules 46======= 47 48pw_allocator 49------------ 50* `Add BlockAllocator::MeasureFragmentation 51 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209933>`__ 52* `Fix Android build 53 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211871>`__ 54* `Refactor optional Allocator methods 55 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210402>`__ 56* `Make Init methods infallible 57 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209044>`__ 58 (issue `#338389412 <https://issues.pigweed.dev/issues/338389412>`__) 59* `Reduce Block fragmentation 60 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209538>`__ 61 (issue `#328831791 <https://issues.pigweed.dev/issues/328831791>`__) 62* `Fix #if PW_HAVE_FEATURE(__cpp_rtti) 63 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210816>`__ 64 (issue `#341975367 <https://issues.pigweed.dev/issues/341975367>`__) 65* `Track requested sizes in blocks 66 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210395>`__ 67* `Fix Android build 68 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210571>`__ 69 (issue `#A <https://issues.pigweed.dev/issues/N/A>`__) 70* `Move large values to test fixtures 71 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210398>`__ 72* `Add AsPmrAllocator 73 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207170>`__ 74 75pw_assert 76--------- 77* `Add missing dep in Android.bp 78 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211271>`__ 79 80pw_build 81-------- 82The new ``PW_MUST_PLACE`` macro ensures that linker script inputs are 83non-zero sized. 84 85* `Introduce PW_MUST_PLACE linker script macro 86 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211924>`__ 87* `Add deps support to pw_linker_script 88 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211194>`__ 89 (issue `#331927492 <https://issues.pigweed.dev/issues/331927492>`__) 90 91pw_channel 92---------- 93The new :cpp:class:`pw::channel::EpollChannel` class sends and receives 94data through a file descriptor, with read and write notifications backed 95by Linux's epoll system. 96 97* `Only open read/write if channel is readable/writable 98 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212212>`__ 99* `Add EpollChannel 100 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210813>`__ 101* `Consistent datagram/byte channel aliases 102 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210796>`__ 103 104pw_chre 105------- 106* `Update CHRE revision 107 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210011>`__ 108 (issue `#341137451 <https://issues.pigweed.dev/issues/341137451>`__) 109 110pw_clock_tree 111------------- 112The new :ref:`module-pw_clock_tree` module manages generic clock tree 113elements such as clocks, clock selectors, and clock dividers. 114 115* `Introduce new ClockDivider class 116 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211292>`__ 117 (issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__) 118* `ClockTree support Element ops 119 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211149>`__ 120 (issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__) 121* `Introduce Element may_block() 122 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211148>`__ 123 (issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__) 124* `Generic clock tree management 125 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204310>`__ 126 (issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__) 127 128pw_clock_tree_mcuxpresso 129------------------------ 130The new :ref:`module-pw_clock_tree_mcuxpresso` module is an NXP 131MCUXPresso backend for :ref:`module-pw_clock_tree`. 132 133* `Mcuxpresso module 134 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204245>`__ 135 (issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__) 136 137pw_config_loader 138---------------- 139* `Remove unnecessary dep 140 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210286>`__ 141 142pw_cpu_exception_cortex_m 143------------------------- 144The new crash analysis API provides data about CPU state during exceptions. 145See :ref:`module-pw_cpu_exception_cortex_m-crash-facade-setup`. 146 147* `Add crash analysis API 148 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204248>`__ 149* `Fix incorrect inputs to util_test 150 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211551>`__ 151* `Fix checks for ARMv8 152 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210272>`__ 153 154pw_emu 155------ 156* `Exclude tests module from the Pigweed Python package 157 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211977>`__ 158 159pw_env_setup 160------------ 161* `PyPI version bump to 0.0.16 162 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211136>`__ 163* `Build an extra example pypi distribution 164 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211134>`__ 165* `Remove f-strings from github_visitor 166 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210274>`__ 167 168pw_grpc 169------- 170* `Fix warnings in format strings 171 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211391>`__ 172 173pw_hex_dump 174----------- 175* `Add Android.bp 176 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212231>`__ 177 178pw_libcxx 179--------- 180* `Only enable in clang builds 181 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211941>`__ 182 183pw_log_basic 184------------ 185* `Fixing sign conversion error for logging 186 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210331>`__ 187 188pw_multisink 189------------ 190* `Fix compiler warnings for tests 191 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212051>`__ 192 (issue `#343480404 <https://issues.pigweed.dev/issues/343480404>`__) 193 194pw_preprocessor 195--------------- 196* `Remove PW_HAVE_FEATURE 197 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211016>`__ 198 (issue `#341975367 <https://issues.pigweed.dev/issues/341975367>`__) 199 200pw_rpc 201------ 202* `Include FakeChannelOutput in soong target 203 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209991>`__ 204 (issue `#340350973 <https://issues.pigweed.dev/issues/340350973>`__) 205 206pw_spi_mcuxpresso 207----------------- 208* `Remove unnecessary debug messages 209 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210711>`__ 210 211pw_stream_uart_mcuxpresso 212------------------------- 213* `Fix unused parameter warnings 214 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211571>`__ 215 216pw_system 217--------- 218:ref:`module-pw_system` usage in Bazel has been simplified by gathering 219all required ``pw_system`` components into one target and providing label 220flags that can set platform-dependent dependencies. 221 222* `Simplify pw_system usage in Bazel 223 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210116>`__ 224 (issue `#341144405 <https://issues.pigweed.dev/issues/341144405>`__) 225 226pw_thread 227--------- 228* `Fix thread snapshot service test 229 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212111>`__ 230 231pw_toolchain 232------------ 233* `Add manual tag to Rust toolchains 234 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211934>`__ 235 (issue `#342695883 <https://issues.pigweed.dev/issues/342695883>`__) 236* `Add clang-apply-replacements plugin 237 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210405>`__ 238 (issue `#339294894 <https://issues.pigweed.dev/issues/339294894>`__) 239 240pw_transfer 241----------- 242* `Fix transfer_thread_test initialization order 243 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210352>`__ 244* `End active transfers when RPC stream changes 245 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209876>`__ 246 247pw_uart 248------- 249* `Add pw_uart to CMakeLists 250 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210731>`__ 251 252pw_unit_test 253------------ 254* `Don't execute multiple test suites at the same time 255 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210531>`__ 256* `Ensure alignment of test fixtures 257 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210278>`__ 258 259pw_web 260------ 261* `Move shoelace split panel import 262 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211940>`__ 263* `Add split/resize view guide in docs 264 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211471>`__ 265* `Implement split log views with resize 266 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209471>`__ 267 (issue `#333891204 <https://issues.pigweed.dev/issues/333891204>`__) 268 269Build 270===== 271 272Bazel 273----- 274Clang's ``AddressSanitizer`` is now supported. See 275:ref:`docs-automated-analysis-clang-sanitizers`. 276 277* `Support asan in Bazel 278 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211369>`__ 279 (issue `#301487567 <https://issues.pigweed.dev/issues/301487567>`__) 280* `Update rules_rust to 0.45.1 281 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211939>`__ 282 (issue `#342673389 <https://issues.pigweed.dev/issues/https://pwbug.dev/342673389>`__) 283* `Explicitly load rules_python in BUILD.bazel files 284 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211361>`__ 285 286Targets 287======= 288 289rp2040 290------ 291* `Additional bazel build file coverage 292 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211351>`__ 293 (issue `#303255049, 305746219 <https://issues.pigweed.dev/issues/303255049, 305746219>`__) 294* `Enable thread high water accounting 295 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210831>`__ 296* `Update docs to add missing picotool dependency 297 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210811>`__ 298* `Save test run log files 299 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210814>`__ 300* `Increase RPC thread stack size to 16K 301 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210832>`__ 302* `Allow using rp2040 devices in bootloader mode 303 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210525>`__ 304* `Refresh target docs 305 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210404>`__ 306* `Update openocd flashing instructions 307 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210400>`__ 308* `Increase device_detector verbosity 309 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210411>`__ 310* `Add upstream Bazel platform definition 311 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211592>`__ 312* `Renable tests that pass with larger stack frames 313 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211147>`__ 314* `Raise minimal stack size to 1KB 315 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210517>`__ 316* `Replace exceptions with logging 317 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210396>`__ 318 319OS support 320========== 321 322freertos 323-------- 324* `Clarify Bazel documentation 325 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211052>`__ 326 327Docs 328==== 329The new :ref:`docs-github` guide shows you how to set up GitHub Actions 330to build and test a Pigweed project when a pull request is received. 331 332* `Add notes about GitHub Actions 333 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211135>`__ 334 (issue `#338083578 <https://issues.pigweed.dev/issues/338083578>`__) 335* `Instructions for freertos.BUILD.bazel 336 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211193>`__ 337* `Create files in current directory 338 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206196>`__ 339* `Update changelog 340 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210285>`__ 341 342Miscellaneous 343============= 344.. common_typos_disable 345 346* `Fix typo succesfully->successfully 347 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210671>`__ 348* `Update Android.bp after GetAlignedSubspan move 349 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210518>`__ 350* `Add link to format 351 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211011>`__ 352 353.. common_typos_enable 354 355------------ 356May 16, 2024 357------------ 358Highlights (May 2, 2024 to May 16, 2024): 359 360* **Coroutines**: You can now create asynchronous tasks using C++20 361 :ref:`coroutines <module-pw_async2-coroutines>`. 362* **Rust with Bazel**: The Rust toolchain can now be used by downstream projects 363 using Bazel. 364* **More MCUXpresso support**: Several modules have additional support for 365 projects built using the NXP MCUXpresso SDK, including multiple core support 366 in :ref:`module-pw_build_mcuxpresso`, a new initiator in 367 :ref:`module-pw_i2c_mcuxpresso`, a new responder in 368 :ref:`module-pw_spi_mcuxpresso`, and a new :ref:`module-pw_dma_mcuxpresso` 369 module. 370 371Active SEEDs 372============ 373Help shape the future of Pigweed! Please visit :ref:`seed-0000` 374and leave feedback on the RFCs (i.e. SEEDs) marked 375``Open for Comments``. 376 377.. Note: There is space between the following section headings 378.. and commit lists to remind you to write a summary for each 379.. section. If a summary is not needed, delete the extra 380.. space. 381 382Modules 383======= 384 385pw_allocator 386------------ 387* `Fix data race 388 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208412>`__ 389 (issue `#333386065 <https://issues.pigweed.dev/issues/333386065>`__) 390* `Add BucketBlockAllocator 391 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198155>`__ 392* `Improve namespacing 393 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206153>`__ 394* `Use singletons for stateless allocators 395 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207337>`__ 396 397pw_assert 398--------- 399* `Ensure condition does not contain stray % 400 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208140>`__ 401 (issue `#337268540 <https://issues.pigweed.dev/issues/337268540>`__) 402 403pw_async2 404--------- 405C++20 users can now define asynchronous tasks using 406:ref:`module-pw_async2-coroutines`. 407 408* `Move PW_CO_TRY functions 409 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209911>`__ 410* `Add Coro<T> coroutine API 411 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207690>`__ 412 413pw_bloat 414-------- 415Padding is now included as part of utilization in code size reports. This allows 416developers to monitor changes in application size that smaller than the used 417space alignment defined in the linker script. 418 419* `Add padding to utilization 420 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209972>`__ 421 (issue `#276370736 <https://issues.pigweed.dev/issues/276370736>`__) 422 423pw_bluetooth 424------------ 425* `Add a constant for max controller delay 426 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209271>`__ 427* `Put cmake tests in modules group 428 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208897>`__ 429* `Disable emboss enum traits 430 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208591>`__ 431 (issue `#339029458 <https://issues.pigweed.dev/issues/339029458>`__) 432* `Remove hci_vendor 433 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208313>`__ 434 (issue `#338269786 <https://issues.pigweed.dev/issues/338269786>`__) 435 436pw_bluetooth_proxy 437------------------ 438* `Also support V2 of LE read buffer event 439 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209879>`__ 440 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 441* `Use LE read buffer event 442 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209878>`__ 443 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 444* `Removing trailing comma in PW_LOG call 445 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209231>`__ 446 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 447* `Allow setting the # of credits to reserve 448 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208895>`__ 449 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 450* `Add cmake build rules 451 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208653>`__ 452 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 453* `Update tests to remove RVNO assumptions 454 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208652>`__ 455 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 456* `Reserve ACL LE slots from host 457 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207671>`__ 458 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 459 460pw_boot_cortex_m 461---------------- 462* `Emit pw_boot_Entry without prologue 463 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208931>`__ 464 (issue `#339107121 <https://issues.pigweed.dev/issues/339107121>`__) 465 466pw_build 467-------- 468* `pw_cc_test.lib fixup 469 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210231>`__ 470 (issue `#307825072, 341109859 <https://issues.pigweed.dev/issues/307825072, 341109859>`__) 471* `Fix type hint 472 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208137>`__ 473 (issue `#338462905 <https://issues.pigweed.dev/issues/338462905>`__) 474 475pw_build_mcuxpresso 476------------------- 477:ref:`module-pw_build_mcuxpresso` now can support multiple device cores. 478 479* `Support multiple cores 480 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208654>`__ 481 482pw_config_loader 483---------------- 484* `Add missing types dep 485 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210236>`__ 486 487pw_cpu_exception_cortex_m 488------------------------- 489* `Add error flag masks 490 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210072>`__ 491* `Fix PSP unit test 492 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210071>`__ 493 494pw_digital_io_linux 495------------------- 496* `Add test_utils.h for ASSERT_OK and friends 497 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209592>`__ 498* `Minor updates to OwnedFd 499 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209591>`__ 500* `Refactor test 501 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196051>`__ 502 503pw_dma_mcuxpresso 504----------------- 505:ref:`module-pw_dma_mcuxpresso` is a new module for working with an MCUXpresso 506DMA controller. 507 508* `Module for working with NXP DMA controller 509 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208655>`__ 510 511pw_docs 512------- 513* `Add inline search to sidebar 514 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207674>`__ 515 516pw_env_setup 517------------ 518* `Remove f-strings from github_visitor 519 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210274>`__ 520* `Change Bazel library name 521 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210198>`__ 522 (issue `#340328100 <https://issues.pigweed.dev/issues/340328100>`__) 523* `Add GitHub environment visitor 524 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210045>`__ 525 (issue `#340900493 <https://issues.pigweed.dev/issues/340900493>`__) 526* `Bazel support for config_file 527 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209913>`__ 528 (issue `#340328100 <https://issues.pigweed.dev/issues/340328100>`__) 529 530pw_format 531--------- 532* `Add Rust support for field width and zero padding 533 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208898>`__ 534* `Add Rust support for formatting integers in hex 535 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208415>`__ 536* `Add test for escaped curly brackets 537 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208291>`__ 538* `Refactor format string parsing for better core::fmt support 539 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208656>`__ 540 541pw_i2c 542------ 543* `Update OWNERS 544 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208413>`__ 545 546pw_i2c_mcuxpresso 547----------------- 548The new ``I3cMcuxpressoInitiator`` implements the ``pw_i2c`` initiator interface 549using the MCUXpresso I3C driver, allowing normal I2C API's to work after setup. 550 551* `Fix Clang compilation 552 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209191>`__ 553* `Add i3c initiator 554 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208136>`__ 555* `Remove swatiwagh from OWNERS 556 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208671>`__ 557 558pw_ide 559------ 560* `Add .pw_ide.user.yaml to .gitignore 561 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208894>`__ 562* `Raise specific error on bad settings file 563 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208132>`__ 564 (issue `#336799314 <https://issues.pigweed.dev/issues/336799314>`__) 565 566pw_libcxx 567--------- 568Added initial support for using LLVM's `libcxx <https://libcxx.llvm.org/>`__ as 569a standard C++ library implementation. 570 571* `Minimal implementation 572 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201918>`__ 573 574pw_log 575------ 576Logging messages with untyped string arguments is now supported in the Rust 577implementation. 578 579.. todo-check: disable 580 581* `Make TODO actionable 582 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209571>`__ 583* `Add core::fmt style format string support to Rust API 584 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207331>`__ 585* `Rename Rust logging API to be less verbose 586 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207330>`__ 587* `Add Rust support for untyped strings 588 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206673>`__ 589 590.. todo-check: enable 591 592pw_multibuf 593----------- 594* `Remove deprecated Chunk::DiscardFront 595 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206676>`__ 596 597pw_package 598---------- 599* `Suppress package progress messages 600 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208331>`__ 601 602pw_presubmit 603------------ 604* `Auto fix unsorted-dict-items 605 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209881>`__ 606 (issue `#340637744 <https://issues.pigweed.dev/issues/340637744>`__) 607* `Fix missing pico-sdk for docs_build 608 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209931>`__ 609* `Add repo tool API 610 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179230>`__ 611* `Exclude all OWNERS from copyright 612 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209031>`__ 613 614pw_proto 615-------- 616* `Create genrule for raw rpc with prefix 617 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209992>`__ 618 (issue `#340749161 <https://issues.pigweed.dev/issues/340749161>`__) 619 620pw_protobuf 621----------- 622* `Build common.proto with Nanopb+Soong 623 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209851>`__ 624 (issue `#340350973 <https://issues.pigweed.dev/issues/340350973>`__) 625 626pw_protobuf_compiler 627-------------------- 628* `Disable layering check less 629 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209111>`__ 630 (issue `#323749176 <https://issues.pigweed.dev/issues/323749176>`__) 631* `Fix name collisions 632 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208658>`__ 633* `Disable layering_check 634 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208932>`__ 635 (issue `#339280821 <https://issues.pigweed.dev/issues/339280821>`__) 636* `Fix bazel failure if proto dir is empty 637 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208135>`__ 638 (issue `#328311416 <https://issues.pigweed.dev/issues/328311416>`__) 639* `Add a no_prefix test 640 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208138>`__ 641 (issue `#328311416 <https://issues.pigweed.dev/issues/328311416>`__) 642* `Tests fail to build under cmake 643 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208271>`__ 644 (issue `#338622044 <https://issues.pigweed.dev/issues/338622044>`__) 645 646pw_result 647--------- 648* `Fix typo in template member 649 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209667>`__ 650 (issue `#339794389 <https://issues.pigweed.dev/issues/339794389>`__) 651 652pw_rpc 653------ 654* `Include FakeChannelOutput in soong target 655 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209991>`__ 656 (issue `#340350973 <https://issues.pigweed.dev/issues/340350973>`__) 657* `Update docs for channel ID remapping 658 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209431>`__ 659* `Build compatibility fixes 660 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208893>`__ 661* `Fix macro name in docs and comments 662 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208311>`__ 663 664pw_spi_mcuxpresso 665----------------- 666The :ref:`module-pw_spi_mcuxpresso` module now includes an 667``McuxpressoResponder`` useing the SPI and DMA drivers from the NXP MCUXpresso 668SDK. 669 670* `Add responder implementation 671 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208657>`__ 672 673pw_stm32cube_build 674------------------ 675* `Fix a label flag name in documentation 676 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208231>`__ 677 678pw_sys_io_rp2040 679---------------- 680* `Bazel build file update 681 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209877>`__ 682 (issue `#261603269, 300318025 <https://issues.pigweed.dev/issues/261603269, 300318025>`__) 683 684pw_sys_io_stdio 685--------------- 686* `Expand allowed uses beyond host 687 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208511>`__ 688 689pw_sys_io_stm32cube 690------------------- 691* `Fix build for f1xx family 692 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208471>`__ 693 694pw_tokenizer 695------------ 696* `Clean up rust docs 697 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208416>`__ 698 699pw_toolchain 700------------ 701Pigweed's Rust toolchain can now be used by downstream projects. 702 703* `Fix typos in newlib_os_interface_stubs.cc 704 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209952>`__ 705* `Add clang-apply-replacements plugin 706 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209539>`__ 707 (issue `#339294894 <https://issues.pigweed.dev/issues/339294894>`__) 708* `Support Rust toolchains in downstream projects 709 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209871>`__ 710* `Add clang-apply-replacements plugin 711 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208896>`__ 712 (issue `#339294894 <https://issues.pigweed.dev/issues/339294894>`__) 713* `Fix CMake build on macOS 714 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208139>`__ 715* `Add no-canonical-system-headers 716 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208156>`__ 717 (issue `#319665090 <https://issues.pigweed.dev/issues/319665090>`__) 718 719pw_trace_tokenized 720------------------ 721* `Build compatibility fixes 722 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208893>`__ 723 724pw_transfer 725----------- 726The transfer service now ends active transfers when the underlying stream 727changes, avoiding a case where a transfer could become stuck. 728 729* `End active transfers when RPC stream changes 730 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209876>`__ 731* `Add tests for GetResourceStatus 732 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209753>`__ 733* `Add py_proto_library target for update_bundle_proto 734 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209731>`__ 735* `GetResoureStatus fix missing return 736 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208491>`__ 737* `Lock resource_responder_ access 738 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208251>`__ 739 740pw_unit_test 741------------ 742* `Add missing :config dependency for gtest backend 743 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208472>`__ 744 745Build 746===== 747 748bazel 749----- 750* `Ignore reformatting change in git blame 751 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210111>`__ 752 (issue `#340637744 <https://issues.pigweed.dev/issues/340637744>`__) 753* `Fix unsorted-dict-items instances 754 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209880>`__ 755 (issue `#340637744 <https://issues.pigweed.dev/issues/340637744>`__) 756* `Remove unnecessary .bazelrc flag 757 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208659>`__ 758 (issue `#319665090 <https://issues.pigweed.dev/issues/319665090>`__) 759* `Re-enable sandbox_hermetic_tmp 760 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208312>`__ 761 (issue `#319665090 <https://issues.pigweed.dev/issues/319665090>`__) 762 763Targets 764======= 765 766targets/rp2040 767-------------- 768* `pre_init and freertos config 769 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209554>`__ 770 (issue `#261603269, 300318025 <https://issues.pigweed.dev/issues/261603269, 300318025>`__) 771 772Docs 773==== 774* `Update changelog 775 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208171>`__ 776 777SEEDs 778===== 779 780SEED-0116 781--------- 782* `Set status to On Hold 783 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208831>`__ 784 785Third party 786=========== 787 788third_party/emboss 789------------------ 790* `Use absolute paths in source dependencies 791 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209131>`__ 792 (issue `#339467547 <https://issues.pigweed.dev/issues/339467547>`__) 793* `Update emboss repo to tag v2024.0501.215421 794 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208314>`__ 795 (issue `#338675057 <https://issues.pigweed.dev/issues/338675057>`__) 796* `Add additional owners for emboss 797 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208631>`__ 798 799third_party/freertos 800-------------------- 801* `Add CM3 support to Bazel build 802 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210211>`__ 803 804third_party/perfetto 805-------------------- 806* `Rename proto targets 807 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210040>`__ 808* `Add third party perfetto repo 809 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203618>`__ 810* `Copybara import 811 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207490>`__ 812 813Miscellaneous 814============= 815* `Run clang-format 816 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208911>`__ 817* `Add roller as WORKSPACE owner 818 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208900>`__ 819 (issue `#245397913 <https://issues.pigweed.dev/issues/245397913>`__) 820 821----------- 822May 1, 2024 823----------- 824 825Highlights (Apr 19, 2024 to May 1, 2024): 826 827* **Thread kickoff via pw::Function:** Revamped the Thread API to use 828 pw::Function. The original Thread API was created before pw::Function was 829 stable; this change modernizes and increases usability of the Thread API. 830* **Thread creation SEED:** Creating threads in Pigweed is difficult due to our 831 strict adherence to portability. We're considering creating an additional API 832 that is more usable but less portable than the current approach. 833* **Transfer:** Adaptive windowing got a Java implementation, and improvements 834 to adaptive windowing in C++. 835* **Bluetooth:** Initial CLs towards a Bluetooth proxy. 836 837Active SEEDs 838============ 839Help shape the future of Pigweed! Please visit :ref:`seed-0000` 840and leave feedback on the RFCs (i.e. SEEDs) marked 841``Open for Comments``. 842 843Modules 844======= 845 846pw_allocator 847------------ 848Added two new allocators: BuddyAlloctor and BumpAllocator (also known as an 849arena allocator). Various cleanups and fixes, including splitting the 850Block-based allocators to their own files. 851 852* `Add missing return statement 853 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207171>`__ 854 (issue `#337761967 <https://issues.pigweed.dev/issues/337761967>`__) 855* `Remove conflict marker 856 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206590>`__ 857* `Move FallbackAllocator implementation 858 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206174>`__ 859* `Clean up LibCAllocatorTest 860 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206173>`__ 861* `Move block allocators to separate files 862 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198154>`__ 863* `Add BuddyAllocator 864 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195952>`__ 865* `Make AllMetrics internal 866 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205737>`__ 867* `Fix SynchonizedAllocator data race 868 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205753>`__ 869 (issue `#333386065 <https://issues.pigweed.dev/issues/333386065>`__) 870* `Add BumpAllocator 871 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195953>`__ 872 873pw_assert 874--------- 875* `Fix support for print_and_abort in Bazel 876 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206853>`__ 877 (issue `#337271435 <https://issues.pigweed.dev/issues/337271435>`__) 878 879pw_async 880-------- 881* `Add missing dispatcher facades to CMake 882 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204873>`__ 883 (issue `#335866562 <https://issues.pigweed.dev/issues/335866562>`__) 884 885pw_bluetooth 886------------ 887Continue filling out Bluetooth packet definitions; as well as some API 888extensions for e.g. RSSI control. 889 890* `Add header alias in command complete events 891 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207552>`__ 892 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 893* `Add Event Codes to emboss 894 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207510>`__ 895 (issue `#338068316 <https://issues.pigweed.dev/issues/338068316>`__) 896* `Add opcode_enum to command and response event 897 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207335>`__ 898 (issue `#338068316 <https://issues.pigweed.dev/issues/338068316>`__) 899* `Sync with recent APCF changes 900 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205921>`__ 901 (issue `#336608891 <https://issues.pigweed.dev/issues/336608891>`__) 902* `Define Common Data Types 903 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207470>`__ 904 (issue `#336608891 <https://issues.pigweed.dev/issues/336608891>`__) 905* `Add LoopbackCommandEvent 906 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205920>`__ 907 (issue `#336579564 <https://issues.pigweed.dev/issues/336579564>`__) 908* `Support Read RSSI command and event 909 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205919>`__ 910 (issue `#336566041 <https://issues.pigweed.dev/issues/336566041>`__) 911* `Comment why we include all emboss headers in emboss_test 912 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203637>`__ 913 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 914* `Correct emboss path in doc example 915 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204811>`__ 916 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 917 918pw_bluetooth_* 919-------------- 920* `Formatting fixes 921 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204750>`__ 922 923pw_bluetooth_proxy 924------------------ 925Start building the Bluetooth proxy subsystem. 926 927* `Rename ProcessH4 to HandleH4 928 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207651>`__ 929 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 930* `Rename passthrough_test.cc to proxy_host_test.cc 931 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207670>`__ 932 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 933* `Move ProxyHost methods to .cc 934 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207333>`__ 935 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 936* `Rename HciProxy to ProxyHost 937 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207450>`__ 938 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 939* `Delete policies functionality 940 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207332>`__ 941 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 942* `Add some emboss helper functions 943 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205741>`__ 944 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 945* `Template test emboss packet creation 946 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205740>`__ 947 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 948* `Fix ordering of TEST arguments 949 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205739>`__ 950 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 951 952pw_build 953-------- 954* `Add a `test_main` param to `pw_cc_test` 955 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206851>`__ 956 (issue `#337277617 <https://issues.pigweed.dev/issues/337277617>`__) 957* `Fix using pw_cc_blob_library target in external repos 958 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206552>`__ 959 960pw_build_info 961------------- 962* `Make the python module importable 963 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206030>`__ 964 965pw_cli 966------ 967New SEED creation tool reduces the burden to create SEEDs. This will open the 968door to more contributors creating SEEDs for Pigweed changes and enhancements. 969 970* `Add SEED creation to CLI tool 971 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186762>`__ 972* `Handle custom arguments in tools 973 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204192>`__ 974* `Add git_repo.py and test to Bazel build 975 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204871>`__ 976 977pw_containers 978------------- 979* `Omit size on FlatMap construction 980 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201030>`__ 981 982pw_cpu_exception_cortex_m 983------------------------- 984* `Add util_test to tests 985 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207791>`__ 986 987pw_digital_io_linux 988------------------- 989* `Move OwnedFd to its own header file 990 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207831>`__ 991 992pw_env_setup 993------------ 994* `Update default sysroot version 995 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204244>`__ 996 (issue `#335438711 <https://issues.pigweed.dev/issues/335438711>`__) 997 998pw_format 999--------- 1000* `Better explain core::fmt whitespace parsing in ccomments 1001 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206671>`__ 1002* `Add support for core::fmt style format strings 1003 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203830>`__ 1004 1005pw_grpc 1006------- 1007* `Support fragmented gRPC messages if an allocator is provided 1008 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204431>`__ 1009 (issue `#323924487 <https://issues.pigweed.dev/issues/323924487>`__) 1010 1011pw_module 1012--------- 1013* `Include :authors: in generated SEED file 1014 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206674>`__ 1015 1016pw_presubmit 1017------------ 1018* `Separate 'bazel info' stderr 1019 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206350>`__ 1020 (issue `#332357274 <https://issues.pigweed.dev/issues/332357274>`__) 1021* `Save 'bazel info output_base' 1022 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206270>`__ 1023* `Remove --verbose_explanations flag 1024 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205933>`__ 1025* `Use _LOG global for logging 1026 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205913>`__ 1027* `RST format updates 1028 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204241>`__ 1029* `Allow disabling hook creation 1030 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205912>`__ 1031* `Drop '.' from Bazel symlinks 1032 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204870>`__ 1033 (issue `#332357274 <https://issues.pigweed.dev/issues/332357274>`__) 1034 1035pw_protobuf 1036----------- 1037* `Fix support for import_prefix on protos with options 1038 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204671>`__ 1039 1040pw_rpc 1041------ 1042Enhancements in pw_rpc to better integrate with pw_grpc. 1043 1044* `Add private method for sending internal::Packet directly 1045 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185669>`__ 1046 (issue `#319162657 <https://issues.pigweed.dev/issues/319162657>`__) 1047 1048pw_rust 1049------- 1050* `Build examples in presubmit 1051 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207338>`__ 1052 (issue `#337951363 <https://issues.pigweed.dev/issues/337951363>`__) 1053* `Fix Rust tokenized logging example 1054 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206672>`__ 1055 1056pw_sensors 1057---------- 1058Sensors subsystem continues moving along; note that most of the discussion and 1059development is happening in the SEEDs. 1060 1061* `Add support for triggers 1062 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203860>`__ 1063 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1064 1065pw_snapshot 1066----------- 1067* `Add python processor tests 1068 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205761>`__ 1069* `Fix Bazel builds 1070 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205090>`__ 1071 1072pw_spi_mcuxpresso 1073----------------- 1074* `Rename flexspi to flexio_spi 1075 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205711>`__ 1076* `Fix Bazel build 1077 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205710>`__ 1078 1079pw_stream_uart_mcuxpresso 1080------------------------- 1081* `Add interrupt safe write-only UART stream 1082 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207414>`__ 1083 1084pw_string 1085--------- 1086* `Add ToString for iterables 1087 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206650>`__ 1088* `Add missing array include 1089 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204211>`__ 1090 1091pw_thread 1092--------- 1093API change to bring pw_thread up to date with pw::Function; see overview. 1094 1095* `Use pw::Function to start threads 1096 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205760>`__ 1097 (issue `#243018475 <https://issues.pigweed.dev/issues/243018475>`__) 1098* `Fix pw_thread_zephyr compilability 1099 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206970>`__ 1100 1101pw_thread_threadx 1102----------------- 1103* `Remove unused dependency 1104 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207191>`__ 1105 1106pw_tls_client 1107------------- 1108* `Add CMake facades 1109 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204874>`__ 1110 (issue `#335878898 <https://issues.pigweed.dev/issues/335878898>`__) 1111 1112pw_tokenizer 1113------------ 1114Enhance the C++ host-side decoder to better handle the full suite of 1115capabilities, in particulaur, recursive decoding; also some build fixes. 1116 1117* `Add DecodeOptionallyTokenizedData 1118 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206070>`__ 1119* `Switch detokenize.h docs to Doxygen 1120 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205751>`__ 1121* `Support arbitrary recursion in C++ detokenizer 1122 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205770>`__ 1123* `Add missing CMake dep 1124 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204316>`__ 1125 1126pw_toolchain 1127------------ 1128* `Add clang-tidy suggestion 1129 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206675>`__ 1130 1131pw_transfer 1132----------- 1133Adaptive windowing improvements, including C++ enhancementsn to better handle 1134small window sizes, as well as adding a Java implementation. 1135 1136* `Add resource_id to all GetResourceStatus responses 1137 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207350>`__ 1138 (issue `#336364832 <https://issues.pigweed.dev/issues/336364832>`__) 1139* `Assume a minimum window size when reserving space 1140 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206890>`__ 1141* `Attempt to recover when receiving invalid size 1142 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206632>`__ 1143* `Implement adaptive windowing in Java 1144 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/147511>`__ 1145 1146pw_unit_test 1147------------ 1148* `Add support for a test_main in CMake 1149 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204872>`__ 1150 (issue `#335865646 <https://issues.pigweed.dev/issues/335865646>`__) 1151* `Standardize ASSERT_OK_AND_ASSIGN 1152 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205946>`__ 1153* `Clarify status macros are gunit-only 1154 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206050>`__ 1155* `Add IWYU export/private pragmas 1156 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204151>`__ 1157 (issue `#335291547 <https://issues.pigweed.dev/issues/335291547>`__) 1158 1159pw_web 1160------ 1161* `Fix icons in packaged version 1162 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207551>`__ 1163* `Fix text download format 1164 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206551>`__ 1165* `NPM version bump to 0.0.19 1166 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206330>`__ 1167* `Add user guide page for features and filter syntax 1168 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203632>`__ 1169 (issue `#307560371 <https://issues.pigweed.dev/issues/307560371>`__) 1170 1171Docs 1172==== 1173 1174docs 1175---- 1176* `Mention @deprecated in the Doxygen style guide 1177 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205762>`__ 1178* `Update module docs contributor guidelines 1179 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205742>`__ 1180* `Add GitHub pull request template 1181 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205810>`__ 1182* `Require Bazel+GN+CMake for new contributions 1183 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204650>`__ 1184* `Update changelog 1185 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204203>`__ 1186 1187SEEDs 1188===== 1189* SEED-0124: `Getting Used Size from Multisink 1190 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188670>`__ 1191 (issue `#326854807 <https://issues.pigweed.dev/issues/326854807>`__) landed 1192* SEED-0128: `Easier thread creation 1193 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206631>`__ started 1194* SEED-0129: `Support PW_ASSERT with non-argument message 1195 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207150>`__ started 1196 1197Miscellaneous 1198============= 1199* `Run clang-format 1200 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207412>`__ 1201* `Remove remaining usages of legacy thread entry 1202 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206856>`__ 1203* `Replace `string_view&` with `string_view` 1204 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204591>`__ 1205 1206.bazelversion 1207------------- 1208* `Add file 1209 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205918>`__ 1210 (issue `#336617748 <https://issues.pigweed.dev/issues/336617748>`__) 1211 1212Third party 1213=========== 1214* boringssl: `Add CMake integration 1215 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204875>`__ 1216 (issue `#335880025 <https://issues.pigweed.dev/issues/335880025>`__) 1217* emboss: `Update emboss repo to tag v2024.0419.155605 1218 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204202>`__ 1219 (issue `#335724776 <https://issues.pigweed.dev/issues/335724776>`__) 1220* emboss: `Use COMPILE_LANGUAGE:CXX 1221 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/205670>`__ 1222 (issue `#336267050 <https://issues.pigweed.dev/issues/336267050>`__) 1223* fuchsia: `Add defer.h to Bazel build defs 1224 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/206854>`__ 1225 (issue `#337275846 <https://issues.pigweed.dev/issues/337275846>`__) 1226* npm: `Update package-lock.json 1227 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/207336>`__ 1228 1229------------ 1230Apr 18, 2024 1231------------ 1232 1233.. changelog_highlights_start 1234 1235Highlights (Apr 4, 2024 to Apr 18, 2024): 1236 1237* The Python and C++ interfaces of ``pw_transfer`` now support 1238 :ref:`adaptive windowing <module-pw_transfer-windowing>`. 1239* :ref:`SEED 0117: I3C <seed-0117>` was accepted. 1240* The new :ref:`docs-quickstart-zephyr` shows you how to set up a 1241 C++-based Zephyr project that's ready to use Pigweed. 1242 1243.. changelog_highlights_end 1244 1245Active SEEDs 1246============ 1247Help shape the future of Pigweed! Please visit :ref:`seed-0000` 1248and leave feedback on the RFCs (i.e. SEEDs) marked 1249``Open for Comments``. 1250 1251Modules 1252======= 1253 1254pw_allocator 1255------------ 1256The new :cpp:class:`pw::allocator::TypedPool` class is a slab allocator 1257that can allocate a specific object with very low overhead. 1258``pw::allocator::TypedPool`` is implemented using the new 1259:cpp:class:`pw::allocator::Pool` interface. 1260``pw::allocator::TrackingAllocatorImpl`` was renamed to 1261``pw::allocator::TrackingAllocator``. 1262 1263* `Add missing soong deps 1264 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203613>`__ 1265* `Add Pool 1266 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195540>`__ 1267* `Update OWNERS 1268 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203211>`__ 1269* `Rename TrackingAllocatorImpl 1270 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203150>`__ 1271 (issue `#326509341 <https://issues.pigweed.dev/issues/326509341>`__) 1272 1273pw_async2 1274--------- 1275The new :cpp:class:`pw::async2::PendableAsTask` class is a ``Task`` that 1276delegates to a type with a ``Pend`` method. 1277 1278* `Add PendableAsTask 1279 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201920>`__ 1280 1281pw_blob_store 1282------------- 1283The ``pw_add_library()`` call for the ``pw_blob_store`` target now compiles 1284as ``STATIC`` instead of ``INTERFACE`` to be more in line with the Bazel 1285build. 1286 1287* `Fix CMakeLists.txt pw_add_library() 1288 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203134>`__ 1289 1290pw_bluetooth 1291------------ 1292* `Formatting fixes 1293 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204315>`__ 1294* `LEGetVendorCapabilitiesCommandCompleteEvent v1.04 fields 1295 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204198>`__ 1296* `Add versions - LEGetVendorCapabilitiesCommandCompleteEvent 1297 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203795>`__ 1298 (issue `#332924521 <https://issues.pigweed.dev/issues/332924521>`__) 1299* `Add EventMask and temp field in SetEventMaskCommand 1300 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192256>`__ 1301 (issue `#42068631 <https://issues.pigweed.dev/issues/42068631>`__) 1302* `Store length max in virtual field 1303 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201794>`__ 1304* `Define LEReadMaximumAdvertisingDataLengthCommandComplete 1305 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201951>`__ 1306 (issue `#312898345 <https://issues.pigweed.dev/issues/312898345>`__) 1307 1308pw_bluetooth_sapphire 1309--------------------- 1310In CIPD ``bt-host`` artifacts are now uploaded to ``fuchsia/prebuilt/bt-host``. 1311 1312* `Iterators 1313 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203855>`__ 1314 (issue `#333448202 <https://issues.pigweed.dev/issues/333448202>`__) 1315* `Change CIPD upload path 1316 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202690>`__ 1317 (issue `#321267610 <https://issues.pigweed.dev/issues/321267610>`__) 1318* `Bump @fuchsia_sdk 1319 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202490>`__ 1320 (issue `#329933586, 321267476 <https://issues.pigweed.dev/issues/329933586, 321267476>`__) 1321 1322pw_build 1323-------- 1324* `Disable deprecated pragma warnings 1325 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203856>`__ 1326 (issue `#333448202 <https://issues.pigweed.dev/issues/335328444, b/333448202>`__) 1327* `Iterators 1328 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203330>`__ 1329 (issue `#335021928 <https://issues.pigweed.dev/issues/333448202, b/335024633, b/335021928>`__) 1330* `Collect wheel fix 1331 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202921>`__ 1332* `Disable C23 extension warnings 1333 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202830>`__ 1334 (issue `#333712899 <https://issues.pigweed.dev/issues/333712899>`__) 1335 1336pw_build_android 1337---------------- 1338* `Update module guidance 1339 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203910>`__ 1340* `Update cc_defaults guidance 1341 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203651>`__ 1342* `Make Common Backends static 1343 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202090>`__ 1344 (issue `#331458726 <https://issues.pigweed.dev/issues/331458726>`__) 1345 1346pw_build_info 1347------------- 1348* `Add missing header file for cmake 1349 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202210>`__ 1350 1351pw_cli 1352------ 1353The following interfaces were moved from ``pw_presubmit`` to ``pw_cli`` 1354to make them more widely available: :py:class:`pw_cli.file_filter.FileFilter`, 1355:py:mod:`pw_cli.git_repo`, and :py:class:`pw_cli.tool_runner.ToolRunner`. 1356The new :py:func:`pw_cli.decorators.deprecated` decorator emits a 1357deprecation warning when the annotated function is used. 1358 1359* `Fix argument handling for GitRepo.has_uncommitted_changes() 1360 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204232>`__ 1361* `Fix subprocess runner arg concatenation 1362 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202844>`__ 1363* `Move FileFilter 1364 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194617>`__ 1365* `Fix commit fallback handling for GitRepo.list_files() 1366 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203790>`__ 1367* `Move git_repo to pw_cli 1368 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201279>`__ 1369* `Add Python deprecation decorator 1370 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202929>`__ 1371* `Update ToolRunner type hints 1372 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202737>`__ 1373* `Move ToolRunner 1374 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201278>`__ 1375 1376pw_containers 1377------------- 1378* `Iterators 1379 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203330>`__ 1380 (issue `#335021928 <https://issues.pigweed.dev/issues/333448202, b/335024633, b/335021928>`__) 1381 1382pw_cpu_exception_risc_v 1383----------------------- 1384The new :ref:`module-pw_cpu_exception_risc_v` backend lays the foundation for 1385RISC-V CPU exception handling. 1386 1387* `Add initial backend structure 1388 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188230>`__ 1389 1390pw_env_setup 1391------------ 1392* `clang 1393 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202591>`__ 1394 (issue `#333448202 <https://issues.pigweed.dev/issues/333448202>`__) 1395 1396pw_hdlc 1397------- 1398* `Iterators 1399 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203330>`__ 1400 (issue `#335021928 <https://issues.pigweed.dev/issues/333448202, b/335024633, b/335021928>`__) 1401 1402pw_ide 1403------ 1404* `Fixes to support changing working_dir 1405 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204430>`__ 1406 (issue `#335628872 <https://issues.pigweed.dev/issues/335628872>`__) 1407* `Enable cmake.format.allowOptionalArgumentIndentation 1408 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203638>`__ 1409 1410pw_kvs 1411------ 1412* `Make Key an alias for string_view 1413 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204590>`__ 1414* `Depend on libraries for fake flash and store tests for Bazel 1415 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202212>`__ 1416* `Add libraries to reuse partition and store tests for Bazel 1417 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202211>`__ 1418 1419pw_log_zephyr 1420------------- 1421* `Tokenize Zephyr shell fprintf 1422 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202734>`__ 1423 1424pw_presubmit 1425------------ 1426The following interfaces were moved from ``pw_presubmit`` to ``pw_cli`` 1427to make them more widely available: :py:class:`pw_cli.file_filter.FileFilter`, 1428:py:mod:`pw_cli.git_repo`, and :py:class:`pw_cli.tool_runner.ToolRunner`. 1429 1430* `Move FileFilter 1431 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194617>`__ 1432* `Add bthost_package step 1433 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203797>`__ 1434 (issue `#332357274 <https://issues.pigweed.dev/issues/332357274>`__) 1435* `Don't overwrite Bazel stdout files 1436 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203796>`__ 1437 (issue `#332357274 <https://issues.pigweed.dev/issues/332357274>`__) 1438* `Remove cmake_clang from quick presubmit 1439 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198050>`__ 1440* `Move git_repo to pw_cli 1441 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201279>`__ 1442* `Fix copy/paste bug in _value() 1443 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202913>`__ 1444* `Move ToolRunner 1445 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201278>`__ 1446 1447pw_protobuf 1448----------- 1449 1450 1451* `Access raw proto values; change RPC packet channel ID 1452 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204152>`__ 1453 1454pw_rpc 1455------ 1456The new :cpp:func:`pw::rpc::ChangeEncodedChannelId` function lets you rewrite 1457an encoded packet's channel ID in place. See :ref:`module-pw_rpc-remap`. 1458 1459* `Access raw proto values; change RPC packet channel ID 1460 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204152>`__ 1461* `Iterators 1462 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203330>`__ 1463 (issue `#335021928 <https://issues.pigweed.dev/issues/333448202, b/335024633, b/335021928>`__) 1464 1465pw_rpc_transport 1466---------------- 1467* `Soong lib names now follow style 1468 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203650>`__ 1469 1470pw_sensor 1471--------- 1472The new :ref:`module-pw_sensor` module is the start of the implementation 1473of :ref:`SEED 0119: Sensors <seed-0119>`. 1474 1475* `Fix Python install 1476 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204130>`__ 1477* `Add attribute support to sensor-desc CLI 1478 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203791>`__ 1479 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1480* `Create a sensor-desc CLI 1481 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203670>`__ 1482 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1483* `Update validator schema to JSON schema 1484 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202925>`__ 1485 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1486* `Provide a validator 1487 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202912>`__ 1488 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1489* `Add module stub 1490 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202911>`__ 1491 (issue `#293466822 <https://issues.pigweed.dev/issues/293466822>`__) 1492 1493pw_snapshot 1494----------- 1495* `Process snapshots based on CPU architecture 1496 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188232>`__ 1497 1498pw_spi_linux 1499------------ 1500``pw_spi_linux`` now has a basic :ref:`module-pw_spi_linux-cli` that lets 1501you read from and write to devices. 1502 1503* `Add pw_spi_linux_cli 1504 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201391>`__ 1505 1506pw_thread_freertos 1507------------------ 1508* `Use TCB for running stack pointer 1509 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188231>`__ 1510 1511pw_tls_client 1512------------- 1513* `Only include <sys/time.h> if available 1514 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202555>`__ 1515 1516pw_transfer 1517----------- 1518The Python and C++ interfaces now support 1519:ref:`adaptive windowing <module-pw_transfer-windowing>`. 1520 1521* `Iterators 1522 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203330>`__ 1523 (issue `#335021928 <https://issues.pigweed.dev/issues/333448202, b/335024633, b/335021928>`__) 1524* `Implement adaptive windowing in Python 1525 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/147510>`__ 1526* `Implement adaptive windowing in C++ 1527 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/146392>`__ 1528* `Convert arguments to std::fstream constructors 1529 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203151>`__ 1530 (issue `#333957637 <https://issues.pigweed.dev/issues/333957637>`__) 1531 1532pw_web 1533------ 1534* `Support creating client without using proto descriptor 1535 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203654>`__ 1536* `NPM version bump to 0.0.18 1537 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203636>`__ 1538* `Fix string manipulation in download logs 1539 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/203612>`__ 1540 (issue `#331480903 <https://issues.pigweed.dev/issues/331480903>`__) 1541* `Use existing col data when adding new View 1542 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200290>`__ 1543 (issue `#331439176 <https://issues.pigweed.dev/issues/331439176>`__) 1544* `Enable column order on init 1545 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201530>`__ 1546 (issue `#329712468 <https://issues.pigweed.dev/issues/329712468>`__) 1547* `Fix test format of log-source.test 1548 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202392>`__ 1549 (issue `#333379333 <https://issues.pigweed.dev/issues/333379333>`__) 1550 1551Build 1552===== 1553 1554Bazel 1555----- 1556* `Use remote cache in infra 1557 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202754>`__ 1558 (issue `#312215590 <https://issues.pigweed.dev/issues/312215590>`__) 1559 1560Docs 1561==== 1562The new :ref:`docs-quickstart-zephyr` shows you how to set up a C++-based 1563Zephyr project that's ready to use Pigweed. The API references for all 1564functions or methods that return a set of ``pw_status`` codes have been 1565refactored for consistency. The :ref:`docs-style-doxygen` has been revamped. 1566 1567* `Add pw_status table for API references 1568 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202739>`__ 1569* `Revamp Doxygen style guide 1570 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202590>`__ 1571* `Add Zephyr quickstart 1572 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196671>`__ 1573* `Update changelog 1574 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202150>`__ 1575 1576SEEDs 1577===== 1578* (SEED-0117) `pw_i3c 1579 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178350>`__ 1580 1581Miscellaneous 1582============= 1583* (clang) `Fix \`std::array\` iterators 1584 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202834>`__ 1585 (issue `#333448202 <https://issues.pigweed.dev/issues/333448202>`__) 1586* (emboss) `Loosen Emboss cmake dependency tracking 1587 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202831>`__ 1588 (issue `#333735460 <https://issues.pigweed.dev/issues/333735460>`__) 1589* (many) `Move maxDiff to be a class attribute 1590 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/204150>`__ 1591 1592----------- 1593Apr 4, 2024 1594----------- 1595.. _epoll: https://man7.org/linux/man-pages/man7/epoll.7.html 1596 1597Highlights (Mar 21, 2024 to Apr 4, 2024): 1598 1599* **New modules**: :ref:`module-pw_i2c_rp2040` is a Pico SDK implementation of 1600 the ``pw_i2c`` interface, :ref:`module-pw_async2_epoll` is an 1601 `epoll`_-based backend for ``pw_async2``, :ref:`module-pw_spi_linux` 1602 is a Linux backend for ``pw_spi``, :ref:`module-pw_uart` provides 1603 core methods for UART communication, and :ref:`module-pw_bluetooth_proxy` 1604 provides a lightweight proxy host that can be placed between a Bluetooth 1605 host and a Bluetooth controller to add functionality or inspection. 1606* **Docs updates**: Pigweed's main docs builder now builds the 1607 :ref:`examples <seed-0122-examples>` repo; the examples will be available 1608 at ``https://pigweed.dev/examples``. An experimental complete Doxygen API 1609 reference is now being published to ``https://pigweed.dev/doxygen``. The 1610 :ref:`module-pw_i2c` docs, :ref:`docs-style-rest`, and 1611 :ref:`docs contributors homepage <docs-contrib-docs>` have been revamped. 1612* **Android platform updates**: Many modules were refactored to follow the 1613 guidance in :ref:`module-pw_build_android` to make it easier to build them in 1614 Soong. 1615 1616Active SEEDs 1617============ 1618Help shape the future of Pigweed! Please visit :ref:`seed-0000` 1619and leave feedback on the RFCs (i.e. SEEDs) marked 1620``Open for Comments``. 1621 1622Modules 1623======= 1624 1625pw_allocator 1626------------ 1627The new :ref:`module-pw_allocator-api-capabilities` API lets derived allocators 1628describe what optional features they support. ``pw::Allocator::GetLayout()`` 1629has begun to be deprecated and replaced by ``pw::Allocator::GetRequestedLayout``, 1630``pw::Allocator::GetUsableLayout()``, and ``pw::Allocator::GetAllocatedLayout()`` 1631to make it easier to distinguish between requested memory, usable memory, and 1632already used memory. Methods that took ``Layout`` arguments, such as 1633``pw::Allocator::GetRequestedLayout()``, have been deprecated. 1634 1635* `Restore DoDeallocate with Layout 1636 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201670>`__ 1637 (issue `#332510307 <https://issues.pigweed.dev/issues/332510307>`__) 1638* `Move Layout and UniquePtr to their own header files 1639 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199534>`__ 1640* `Remove Layout from Deallocate and Resize 1641 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198153>`__ 1642* `Add allocation detail storage to TrackingAllocator 1643 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198152>`__ 1644* `Distinguish between requested, usable, and allocated sizes 1645 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198150>`__ 1646* `Add Capabilities 1647 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197133>`__ 1648 1649pw_assert_log 1650------------- 1651* `Follow Soong guidelines 1652 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197536>`__ 1653 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1654 1655pw_async2 1656--------- 1657The new :cpp:class:`pw::async2::PendFuncTask` class delegates a task to a 1658provided function. 1659 1660* `Add Poll::Readiness helper 1661 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201910>`__ 1662* `Fix TSAN for dispatcher_thread_test 1663 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201850>`__ 1664* `Add PendFuncTask 1665 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199714>`__ 1666 1667pw_async2_epoll 1668--------------- 1669.. _epoll: https://man7.org/linux/man-pages/man7/epoll.7.html 1670 1671The new :ref:`module-pw_async2_epoll` module is an `epoll`_-based backend 1672for :ref:`module-pw_async2`. 1673 1674* `Epoll-backed async2 dispatcher 1675 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200233>`__ 1676 1677pw_bluetooth 1678------------ 1679The :ref:`module-pw_bluetooth-usage` section now shows CMake usage and 1680the new :ref:`module-pw_bluetooth-contributing` section shows how to 1681contribute Emboss code. 1682 1683* `Define LEReadMaximumAdvertisingDataLengthCommandComplete 1684 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201951>`__ 1685 (issue `#312898345 <https://issues.pigweed.dev/issues/312898345>`__) 1686* `Add more opcodes 1687 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201130>`__ 1688* `Add example of using to_underlying 1689 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200970>`__ 1690 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 1691* `Emboss formatting tweak 1692 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200230>`__ 1693 (issue `#331195584 <https://issues.pigweed.dev/issues/331195584>`__) 1694* `Add cmake to usage guide 1695 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200012>`__ 1696 (issue `#326499587 <https://issues.pigweed.dev/issues/326499587>`__) 1697* `Add opcode_full field to emboss HCI headers 1698 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199553>`__ 1699 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 1700* `Add enum for opcodes 1701 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199671>`__ 1702 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 1703* `Update cmake targets to be consistent 1704 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200011>`__ 1705 (issue `#326499587 <https://issues.pigweed.dev/issues/326499587>`__) 1706* `Update build files to be consistent 1707 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200010>`__ 1708 (issue `#326499587 <https://issues.pigweed.dev/issues/326499587>`__) 1709* `Add emboss ReadBufferSize v1 event 1710 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199070>`__ 1711 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 1712* `Add emboss contributing section to docs.rst 1713 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199531>`__ 1714 (issue `#331195584 <https://issues.pigweed.dev/issues/331195584>`__) 1715* `protocol.h comments tweak 1716 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199532>`__ 1717 (issue `#326499650 <https://issues.pigweed.dev/issues/326499650>`__) 1718 1719pw_bluetooth_proxy 1720------------------ 1721The new :ref:`module-pw_bluetooth_proxy` module provides a lightweight 1722proxy host that can be placed between a Bluetooth host and a Bluetooth 1723controller to add functionality or inspection. 1724 1725* `Move to cpp23::to_underlying 1726 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200971>`__ 1727 (issue `#331281133 <https://issues.pigweed.dev/issues/331281133>`__) 1728* `Use emboss OpCode enum 1729 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199554>`__ 1730 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 1731* `Bluetooth proxy module and initial classes 1732 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197290>`__ 1733 (issue `#326496952 <https://issues.pigweed.dev/issues/326496952>`__) 1734 1735pw_bluetooth_sapphire 1736--------------------- 1737``pw_bluetooth_sapphire`` now supports emulation, Fuchsia unit testing, and 1738ARM64 build targets. 1739 1740* `Add arm64 release variant 1741 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202050>`__ 1742 (issue `#332928957 <https://issues.pigweed.dev/issues/332928957>`__) 1743* `Stub bt-host CIPD manifest 1744 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201390>`__ 1745 (issue `#332357274, 321267610 <https://issues.pigweed.dev/issues/332357274, 321267610>`__) 1746* `Fuchsia testing support 1747 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198270>`__ 1748 (issue `#331692493, 42178254 <https://issues.pigweed.dev/issues/331692493, 42178254>`__) 1749* `Add emulator start workflow 1750 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200270>`__ 1751 (issue `#321267689 <https://issues.pigweed.dev/issues/321267689>`__) 1752 1753pw_build 1754-------- 1755Modules can now be nested in subdirectories, which paves the way for 1756refactoring how modules are organized in the upstream Pigweed repo. 1757:ref:`module-pw_build-project_builder` is a new lightweight build command 1758for projects that need to run multiple commands to perform a build. 1759 1760* `Allow nesting Pigweed modules in subdirectories 1761 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201114>`__ 1762* `Add alwayslink option to pw_cc_blob_library 1763 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201110>`__ 1764* `ProjectBuilder documentation 1765 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200791>`__ 1766* `BuildRecipe auto_create_build_dir option 1767 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200830>`__ 1768* `Defer build directory existence check 1769 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200771>`__ 1770 1771pw_build_android 1772---------------- 1773* `Define rule with static libs 1774 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200351>`__ 1775 (issue `#331458726 <https://issues.pigweed.dev/issues/331458726>`__) 1776 1777pw_build_info 1778------------- 1779The new ``pw::build_info::LogBuildId()`` function lets you print a GNU 1780build ID as hex. 1781 1782* `Add log function of GNU build ID 1783 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199471>`__ 1784* `Fix Bazel baremetal compatibility 1785 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199470>`__ 1786 1787pw_bytes 1788-------- 1789* `Add example to docs of using _b suffix 1790 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201350>`__ 1791 1792pw_channel 1793---------- 1794The new :cpp:type:`pw::channel::LoopbackDatagramChannel` and 1795:cpp:type:`pw::channel::LoopbackByteChannel` aliases provide channel 1796implementations that read their own writes. The new 1797:cpp:class:`pw::channel::ForwardingChannelPair` class lets you connect two 1798subsystems with datagram channels without implementing a custom channel. 1799 1800* `Return status from PollReadyToWrite 1801 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200995>`__ 1802* `Rename methods to Pend prefix 1803 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201090>`__ 1804* `Add loopback channel 1805 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199150>`__ 1806* `Split open bits for read and write 1807 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199712>`__ 1808* `Seek is not async 1809 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199713>`__ 1810* `Set closed bit on FAILED_PRECONDITION 1811 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199710>`__ 1812* `Respect sibling closure 1813 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199035>`__ 1814* `Introduce forwarding channels 1815 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197353>`__ 1816 1817pw_chrono 1818--------- 1819* `Update OWNERS 1820 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200714>`__ 1821* `Follow Soong guidelines 1822 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198290>`__ 1823 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1824 1825pw_cli 1826------ 1827The new ``pw_cli.alias`` Python module lets you create ``pw`` subcommands 1828that are effectively command line aliases. See :ref:`module-pw_cli-aliases`. 1829 1830* `Move plural() 1831 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201630>`__ 1832* `Move status_reporter to pw_cli 1833 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201113>`__ 1834* `Add pw ffx alias 1835 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200770>`__ 1836 (issue `#329933586 <https://issues.pigweed.dev/issues/329933586>`__) 1837 1838pw_digital_io 1839------------- 1840* `Update OWNERS 1841 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200752>`__ 1842 1843pw_emu 1844------ 1845* `Fix a TypeError in TemporaryEmulator 1846 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200832>`__ 1847 (issue `#316080297 <https://issues.pigweed.dev/issues/316080297>`__) 1848 1849pw_env_setup 1850------------ 1851* `Run npm log viewer setup script after install 1852 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200211>`__ 1853 1854pw_function 1855----------- 1856* `Define as cc_static_library 1857 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199092>`__ 1858 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1859 1860pw_hdlc 1861------- 1862The new :cpp:class:`pw::hdlc::Router` class is an experimental async HDLC 1863router that uses :ref:`module-pw_channel`. 1864 1865* `Document members of router 1866 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201115>`__ 1867* `Add async router 1868 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195538>`__ 1869* `Fix sitenav 1870 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196499>`__ 1871 1872pw_i2c 1873------ 1874The :ref:`module-pw_i2c` docs have been revamped. 1875 1876* `Revamp docs 1877 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196330>`__ 1878* `Update OWNERS 1879 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200752>`__ 1880* `Update OWNERS 1881 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200714>`__ 1882 1883pw_i2c_rp2040 1884------------- 1885The new :ref:`module-pw_i2c_rp2040` module implements the :ref:`module-pw_i2c` 1886interface using the Raspberry Pi Pico SDK. 1887 1888* `Initiator implementation 1889 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173552>`__ 1890 (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) 1891 1892pw_ide 1893------ 1894:py:func:`pw_ide.settings.PigweedIdeSettings.compdb_searchpaths` now accepts 1895globs. The new :py:func:`pw_ide.settings.PigweedIdeSettings.targets_exclude` 1896method lets you specify a list of GN targets that code analysis should ignore. 1897 1898* `Support comp DB search path globs 1899 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200908>`__ 1900* `Move status_reporter to pw_cli 1901 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201113>`__ 1902* `Support including and/or excluding targets 1903 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195975>`__ 1904 1905pw_libc 1906------- 1907* `Include strncpy 1908 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199110>`__ 1909 (issue `#316936782 <https://issues.pigweed.dev/issues/316936782>`__) 1910 1911pw_log 1912------ 1913* `Follow Soong guidelines 1914 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197536>`__ 1915 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1916 1917pw_log_basic 1918------------ 1919* `Fix Soong definitions 1920 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199034>`__ 1921 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1922 1923pw_log_null 1924----------- 1925* `Define as cc_static_library 1926 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199090>`__ 1927 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1928 1929pw_log_tokenized 1930---------------- 1931* `Define as cc_static_library 1932 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198735>`__ 1933 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1934 1935pw_minimal_cpp_stdlib 1936--------------------- 1937* `Clarify purpose 1938 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200792>`__ 1939 1940pw_module 1941--------- 1942* `Jinja template refactor 1943 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201751>`__ 1944* `Overwrite prompt with diff display 1945 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201851>`__ 1946* `Allow nesting Pigweed modules in subdirectories 1947 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201114>`__ 1948* `Add OWNERS file during module creation 1949 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200831>`__ 1950 1951pw_multibuf 1952----------- 1953* `Replace Mutex with ISL 1954 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200996>`__ 1955* `Define as cc_static_library 1956 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199091>`__ 1957 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1958 1959pw_polyfill 1960----------- 1961* `Define as cc_static_library 1962 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199094>`__ 1963 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1964* `Simplify backported features table 1965 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197891>`__ 1966 1967pw_preprocessor 1968--------------- 1969* `Define as cc_static_library 1970 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199031>`__ 1971 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 1972 1973pw_presubmit 1974------------ 1975Pigweed's main docs builder now builds the :ref:`examples <seed-0122-examples>` 1976repo; the examples will be available at ``https://pigweed.dev/examples``. 1977An experimental complete Doxygen API reference is now being published to 1978``https://pigweed.dev/doxygen``. 1979 1980* `Include examples repo docs in docs_builder 1981 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201990>`__ 1982 (issue `#300317433 <https://issues.pigweed.dev/issues/300317433>`__) 1983* `Move plural() 1984 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201630>`__ 1985* `Include doxygen html in docs_build 1986 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198553>`__ 1987* `Refactor Python Black formatter support 1988 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194417>`__ 1989* `Refactor Bazel formatter support 1990 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194416>`__ 1991* `Refactor GN formatting support 1992 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194415>`__ 1993 (issue `#326309165 <https://issues.pigweed.dev/issues/326309165>`__) 1994* `Make ToolRunner capture stdout/stderr by default 1995 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200972>`__ 1996* `Update buildifier invocation 1997 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200350>`__ 1998* `Switch format test data to importlib 1999 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200790>`__ 2000* `Skip gn_teensy_build on mac-arm64 2001 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199670>`__ 2002 2003pw_protobuf 2004----------- 2005* `Support full java protos 2006 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200530>`__ 2007 (issue `#329445249 <https://issues.pigweed.dev/issues/329445249>`__) 2008 2009pw_python 2010--------- 2011* `Update setup.sh requirements 2012 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200994>`__ 2013 2014pw_result 2015--------- 2016* `Avoid duplicate symbols with Soong 2017 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201277>`__ 2018 (issue `#331458726 <https://issues.pigweed.dev/issues/331458726>`__) 2019* `Define as cc_static_library 2020 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199033>`__ 2021 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2022 2023pw_router 2024--------- 2025* `Define as cc_static_library 2026 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199130>`__ 2027 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2028* `Add Android common backends as dep 2029 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198390>`__ 2030 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2031 2032pw_rpc 2033------ 2034* `List dependencies directly 2035 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199533>`__ 2036 (issue `#331226283 <https://issues.pigweed.dev/issues/331226283>`__) 2037 2038pw_rpc_transport 2039---------------- 2040* `Define as cc_static_library 2041 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199093>`__ 2042 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2043 2044pw_span 2045------- 2046* `Define as cc_static_library 2047 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199032>`__ 2048 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2049 2050pw_spi 2051------ 2052* `Update OWNERS 2053 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200752>`__ 2054* `Update OWNERS 2055 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200714>`__ 2056 2057pw_spi_linux 2058------------ 2059Linux functionality that was previously in :ref:`module-pw_spi` has been 2060moved to its own module, :ref:`module-pw_spi_linux`. 2061 2062* `Move linux_spi from pw_spi to its own module 2063 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201351>`__ 2064 2065pw_status 2066--------- 2067The new ``pw::StatusWithSize::size_or()`` convenience method lets you return 2068a default size in place of ``pw::StatusWithSize::size()`` when the status is 2069not OK. 2070 2071* `Add StatusWithSize::size_or 2072 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198151>`__ 2073 2074pw_stream_shmem_mcuxpresso 2075-------------------------- 2076* `Fix interrupt pending check 2077 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198070>`__ 2078 (issue `#330225861 <https://issues.pigweed.dev/issues/330225861>`__) 2079 2080pw_sync 2081------- 2082* `Follow Soong guidelines 2083 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197872>`__ 2084 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2085 2086pw_sys_io 2087--------- 2088* `Update OWNERS 2089 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200714>`__ 2090* `Fix Soong definitions 2091 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199034>`__ 2092 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2093 2094pw_thread 2095--------- 2096* `Follow Soong guidance 2097 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199030>`__ 2098 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2099 2100pw_toolchain 2101------------ 2102 2103 2104* `Fix Rust GN host build 2105 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201831>`__ 2106* `Define as cc_static_library 2107 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198734>`__ 2108 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2109* `Remove unusued source set 2110 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200190>`__ 2111 (issue `#331260098 <https://issues.pigweed.dev/issues/331260098>`__) 2112* `LLVM compiler-rt builtins 2113 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198593>`__ 2114 2115pw_trace_tokenized 2116------------------ 2117* `Fix static initialization 2118 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200232>`__ 2119 2120pw_transfer 2121----------- 2122New ``pw_transfer`` macros: 2123:c:macro:`PW_TRANSFER_LOG_DEFAULT_CHUNKS_BEFORE_RATE_LIMIT`, 2124:c:macro:`PW_TRANSFER_LOG_DEFAULT_RATE_PERIOD_MS`, 2125:c:macro:`PW_TRANSFER_CONFIG_LOG_LEVEL`, and 2126:c:macro:`PW_TRANSFER_CONFIG_DEBUG_DATA_CHUNKS`. 2127 2128* `Make numerous logging adjustments 2129 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194750>`__ 2130 2131pw_uart 2132------- 2133The new :ref:`module-pw_uart` module defines core methods for UART 2134communication. 2135 2136* `Create OWNERS 2137 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200750>`__ 2138* `Added UART interface 2139 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181710>`__ 2140 2141pw_unit_test 2142------------ 2143* `Add failing results test record 2144 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197852>`__ 2145 2146pw_web 2147------ 2148* `NPM version bump to 0.0.17 2149 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201091>`__ 2150* `Fix logs not appearing in pw_console server 2151 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200793>`__ 2152 (issue `#331483789 <https://issues.pigweed.dev/issues/331483789>`__) 2153 2154Build 2155===== 2156 2157Bazel 2158----- 2159* `Add missing Python deps 2160 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199850>`__ 2161 (issue `#331267896 <https://issues.pigweed.dev/issues/331267896>`__) 2162* `Localize remaining backend label flags 2163 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199036>`__ 2164 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2165 2166Docs 2167==== 2168* `Mention that Windows flow needs admin rights 2169 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/202030>`__ 2170* `Update reST style guide 2171 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201650>`__ 2172* `Organize the documentation style guides 2173 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201116>`__ 2174* `Update references to quickstart/bazel 2175 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200131>`__ 2176 (issue `#325472122 <https://issues.pigweed.dev/issues/325472122>`__) 2177* `Simplify module creation docs using script 2178 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200231>`__ 2179* `Generate doxygen html output locally 2180 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199711>`__ 2181* `Update changelog 2182 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198810>`__ 2183 2184SEEDs 2185===== 2186* (SEED-0117) `Update status to Last Call 2187 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200710>`__ 2188* (SEED-0126) `Claim SEED number 2189 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200911>`__ 2190* (SEED-0127) `Reading sensor data 2191 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198134>`__ 2192 2193Third party 2194=========== 2195* (Emboss) `Assume newer emboss version 2/2 2196 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197363>`__ 2197 (issue `#329872338 <https://issues.pigweed.dev/issues/329872338>`__) 2198* (FreeRTOS) `Fix typo in docs 2199 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/201330>`__ 2200* (Fuchsia) `Copybara import 2201 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200712>`__ 2202 (issue `#331281133 <https://issues.pigweed.dev/issues/331281133>`__) 2203 2204Miscellaneous 2205============= 2206* `Delete move constructors of buffer wrappers 2207 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200753>`__ 2208* (Soong) `Remove _headers from lib names 2209 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198330>`__ 2210 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2211* (mbedtls) `Avoid the use of unsupported libc functions 2212 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/199131>`__ 2213 (issue `#316936782 <https://issues.pigweed.dev/issues/316936782>`__) 2214* (nanopb) `Fix nanopb_pb2.py generation 2215 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/200772>`__ 2216 2217------------ 2218Mar 22, 2024 2219------------ 2220Highlights (Mar 7, 2024 to Mar 22, 2024): 2221 2222* Pigweed's minimum supported Python version was changed to 3.10. 2223* Setting the new ``pw_build_TEST_TRANSITIVE_PYTHON_DEPS`` flag to ``false`` 2224 in your project's ``.gn`` file turns off testing and linting of transitive 2225 dependencies in ``pw_python_package`` rules, which can speed up build 2226 times significantly. 2227* The new :ref:`module-pw_log_android` module is a ``pw_log`` backend for 2228 Android and the new :ref:`module-pw_build_android` module provides tools to 2229 help build Pigweed in Android platform applications. 2230* :ref:`seed-0120` introduces ``pw_sensor``, a module that will handle 2231 Pigweed's upcoming sensor framework. 2232* The new :c:macro:`PW_LOG_EVERY_N` and :c:macro:`PW_LOG_EVERY_N_DURATION` 2233 macros provide rate-limited logging. 2234 2235Active SEEDs 2236============ 2237Help shape the future of Pigweed! Please visit :ref:`seed-0000` 2238and leave feedback on the RFCs (i.e. SEEDs) marked 2239``Open for Comments``. 2240 2241Modules 2242======= 2243 2244pw_allocator 2245------------ 2246.. _//pw_allocator/examples: https://cs.opensource.google/pigweed/pigweed/+/main:pw_allocator/examples 2247 2248The :ref:`module-pw_allocator` docs have been revamped. Code examples from 2249the docs are now extracted from complete examples that are built and tested 2250alongside the rest of the main Pigweed repo; see `//pw_allocator/examples`_. 2251 2252* `Improve size report accuracy 2253 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196492>`__ 2254* `Add buffer utilities 2255 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195353>`__ 2256* `Improve UniquePtr ergonomics 2257 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196181>`__ 2258* `Various API modifications 2259 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195973>`__ 2260* `Add IsEqual 2261 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195954>`__ 2262* `Soft-deprecate heap_viewer.py 2263 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195253>`__ 2264 (issue `#328648868 <https://issues.pigweed.dev/issues/328648868>`__) 2265* `Move code snippets from docs to examples 2266 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195190>`__ 2267 (issue `#328076428 <https://issues.pigweed.dev/issues/328076428>`__) 2268* `Clean up sources files 2269 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194948>`__ 2270* `Remove erroneous quotes around tagline 2271 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195514>`__ 2272* `Refactor code size reports 2273 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194947>`__ 2274* `Remove metrics.cc 2275 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195450>`__ 2276 (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) 2277* `Fix move semantics for UniquePtr 2278 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195470>`__ 2279* `Refactor docs 2280 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194871>`__ 2281 (issue `#328076428 <https://issues.pigweed.dev/issues/328076428>`__) 2282* `Make metrics configurable 2283 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193621>`__ 2284 (issue `#326509341 <https://issues.pigweed.dev/issues/326509341>`__) 2285 2286pw_assert 2287--------- 2288* `Add keep_dep tags to backend_impl 2289 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197531>`__ 2290 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2291* `Introduce :backend, :backend_impl 2292 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196531>`__ 2293 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2294* `Apply formatting fixes 2295 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195951>`__ 2296 2297pw_assert_basic 2298--------------- 2299* `Fix BUILD.bazel file 2300 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196292>`__ 2301 (issue `#328679085 <https://issues.pigweed.dev/issues/328679085>`__) 2302 2303pw_bluetooth 2304------------ 2305* `Add command complete event 2306 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196030>`__ 2307 (issue `#311639690 <https://issues.pigweed.dev/issues/311639690>`__) 2308* `Add command complete event 2309 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195451>`__ 2310 (issue `#311639690 <https://issues.pigweed.dev/issues/311639690>`__) 2311* `Add H4 packet indicators in emboss 2312 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195535>`__ 2313 (issue `#326499682 <https://issues.pigweed.dev/issues/326499682>`__) 2314* `Reformat l2cap_frames.emb 2315 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194790>`__ 2316 2317pw_bluetooth_sapphire 2318--------------------- 2319* `Use amd64 SDK 2320 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197510>`__ 2321 (issue `#330214852 <https://issues.pigweed.dev/issues/330214852>`__) 2322* `Fuchsia SDK example 2323 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196450>`__ 2324 (issue `#42178254 <https://issues.pigweed.dev/issues/42178254>`__) 2325 2326pw_build 2327-------- 2328Setting the new ``pw_build_TEST_TRANSITIVE_PYTHON_DEPS`` flag to ``false`` 2329in your project's ``.gn`` file turns off testing and linting of transitive 2330dependencies in ``pw_python_package`` rules, which can speed up build 2331times significantly. 2332 2333* `Option to not transitively run py .tests and .lint deps 2334 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186195>`__ 2335 2336pw_build_android 2337---------------- 2338The new :ref:`module-pw_build_android` module provides tools to help build 2339Pigweed in Android platform applications. 2340 2341* `Add new utils module 2342 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195139>`__ 2343 (issue `#328503970 <https://issues.pigweed.dev/issues/328503970>`__) 2344 2345pw_bytes 2346-------- 2347The new :cpp:func:`pw::bytes::ExtractBits` helper extracts bits between 2348specified left bit and right bit positions. New Rust helpers were added; 2349see `Crate pw_bytes <./rustdoc/pw_bytes>`_. 2350 2351* `Add ExtractBits template 2352 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196310>`__ 2353 (issue `#329435173 <https://issues.pigweed.dev/issues/329435173>`__) 2354* `Add Rust helpers for contcatenating const slices and strs 2355 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187651>`__ 2356 2357pw_channel 2358---------- 2359Datagram-to-byte conversions must now be explicit. 2360 2361* `Enable GetWriteAllocator function 2362 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197534>`__ 2363* `Require explicit datagram-to-byte conversions 2364 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197650>`__ 2365* `Remove max_bytes argument from ReadPoll 2366 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197352>`__ 2367* `Support datagram-to-byte conversions 2368 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196210>`__ 2369* `Handle closed channels in base 2370 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194739>`__ 2371 2372pw_checksum 2373----------- 2374* `Add missing #include <array> 2375 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196530>`__ 2376 (issue `#329594026 <https://issues.pigweed.dev/issues/329594026>`__) 2377 2378pw_chre 2379------- 2380* `Remove unused files 2381 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170792>`__ 2382 2383pw_containers 2384------------- 2385* `ConstexprSort in FlatMap takes an iterator 2386 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197217>`__ 2387 (issue `#330072104 <https://issues.pigweed.dev/issues/330072104>`__) 2388* `Add move constructors to queues 2389 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197072>`__ 2390 2391pw_digital_io_linux 2392------------------- 2393The new ``pw_digital_io_linux`` CLI tool lets you configure a GPIO line as an 2394input and gets its value, or configure a line as an output and set its value. 2395 2396* `Add Android.bp 2397 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194432>`__ 2398* `Add test CLI 2399 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194431>`__ 2400 2401pw_docgen 2402--------- 2403* `Single-source the module metadata 2404 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193333>`__ 2405 (issue `#292582625 <https://issues.pigweed.dev/issues/292582625>`__) 2406 2407pw_env_setup 2408------------ 2409Pigweed's minimum supported Python version was changed to 3.10. 2410 2411* `Update min Python version to 3.10 2412 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197332>`__ 2413 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2414* `Update CIPD rust version 2415 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194620>`__ 2416* `Use amd64 SDK 2417 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197510>`__ 2418 (issue `#330214852 <https://issues.pigweed.dev/issues/330214852>`__) 2419* `Fuchsia SDK example 2420 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196450>`__ 2421 (issue `#42178254 <https://issues.pigweed.dev/issues/42178254>`__) 2422 2423pw_format 2424--------- 2425Initital support for untyped specifiers (``%v``) was added. 2426 2427* `Enhance Rust tests to check for arguments 2428 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196433>`__ 2429 (issue `#329507809 <https://issues.pigweed.dev/issues/https://pwbug.dev/329507809>`__) 2430* `Add initial support for untyped specifiers 2431 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187650>`__ 2432 2433pw_hdlc 2434------- 2435The newly public :cpp:class:`pw::hdlc::Encoder` class supports gradually 2436encoding frames without ever holding an entire frame in memory at once. 2437 2438* `Expose Encoder 2439 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197535>`__ 2440 2441pw_hex_dump 2442----------- 2443CMake support was added. 2444 2445* `Add CMake support 2446 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198170>`__ 2447 2448pw_json 2449------- 2450* `Move examples outside of the pw namespace 2451 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195890>`__ 2452 2453pw_libc 2454------- 2455* `Define LIBC_FAST_MATH for the faster integral fixed point sqrt 2456 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196350>`__ 2457 (issue `#323425639 <https://issues.pigweed.dev/issues/323425639>`__) 2458* `Add uksqrtui to stdfix 2459 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196230>`__ 2460 (issue `#323425639 <https://issues.pigweed.dev/issues/323425639>`__) 2461* `Include sqrtur and expk in stdfix 2462 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195256>`__ 2463 (issue `#323425639 <https://issues.pigweed.dev/issues/323425639>`__) 2464 2465pw_log 2466------ 2467The new :c:macro:`PW_LOG_EVERY_N` and :c:macro:`PW_LOG_EVERY_N_DURATION` 2468macros provide rate-limited logging. 2469 2470* `Add rate limit log statements 2471 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183870>`__ 2472* `Add keep_dep tags to backend_impl 2473 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197531>`__ 2474 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2475* `Introduce localized backend label flags 2476 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196498>`__ 2477 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2478* `Run bpfmt on all Android.bp 2479 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195490>`__ 2480 (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) 2481 2482pw_log_android 2483-------------- 2484The new :ref:`module-pw_log_android` module is a ``pw_log`` backend for 2485Android. 2486 2487* `Fix Soong build 2488 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197830>`__ 2489* `Add pw_log_android_stderr 2490 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195050>`__ 2491 (issue `#328281789 <https://issues.pigweed.dev/issues/328281789>`__) 2492* `Add module documentation 2493 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196410>`__ 2494 2495pw_malloc 2496--------- 2497* `Add backend label flags 2498 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196610>`__ 2499 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2500 2501pw_multibuf 2502----------- 2503:cpp:class:`pw::multibuf::Stream` is a new multibuf-backed ``pw_stream`` 2504implementation that can read from and write to a multibuf. 2505:cpp:class:`pw::multibuf::SimpleAllocator` is a simple, first-fit variant 2506of :cpp:class:`pw::multibuf::MultiBufAllocator`. 2507 2508* `Add stream implementation 2509 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196354>`__ 2510* `Add empty() function 2511 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197351>`__ 2512* `Pass reference instead of pointer 2513 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197132>`__ 2514* `Add SimpleAllocator 2515 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195129>`__ 2516 2517pw_package 2518---------- 2519* `Match Emboss version used by Bazel 2520 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197359>`__ 2521 (issue `#329872338 <https://issues.pigweed.dev/issues/329872338>`__) 2522 2523pw_polyfill 2524----------- 2525* `Update __cplusplus macro for C++23; support C 2526 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196113>`__ 2527* `Remove PW_INLINE_VARIABLE 2528 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196122>`__ 2529* `Detect C23 2530 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195266>`__ 2531 (issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__) 2532 2533pw_presubmit 2534------------ 2535* `Suppress stdout option for rst_format 2536 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197890>`__ 2537* `Begin formatter modularization 2538 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193714>`__ 2539 (issue `#326309165 <https://issues.pigweed.dev/issues/326309165>`__) 2540* `Switch default formatter to black 2541 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190453>`__ 2542 (issue `#261025545 <https://issues.pigweed.dev/issues/261025545>`__) 2543* `Fuchsia SDK example 2544 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196450>`__ 2545 (issue `#42178254 <https://issues.pigweed.dev/issues/42178254>`__) 2546 2547pw_rpc 2548------ 2549* `Support full java protos 2550 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196231>`__ 2551 (issue `#329445249 <https://issues.pigweed.dev/issues/329445249>`__) 2552* `Move some headers from srcs to hdrs 2553 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196850>`__ 2554 (issue `#323749176 <https://issues.pigweed.dev/issues/323749176>`__) 2555* `Add TryFinish API for pw_rpc stream 2556 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195126>`__ 2557 (issue `#328462705 <https://issues.pigweed.dev/issues/328462705>`__) 2558* `Remove deprecated functions from Java client 2559 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193503>`__ 2560 2561pw_rust 2562------- 2563* `Tweak docs for Rust tokenized logging example 2564 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195351>`__ 2565 2566pw_sensor 2567--------- 2568:ref:`seed-0120` introduces ``pw_sensor``, a module that will handle 2569Pigweed's upcoming sensor framework. 2570 2571* `Add configuration SEED 2572 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183150>`__ 2573 2574pw_spi 2575------ 2576* `Update Android.bp to conform with new style 2577 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197410>`__ 2578 2579pw_stream_shmem_mcuxpresso 2580-------------------------- 2581* `Fix interrupt pending check 2582 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198070>`__ 2583 (issue `#330225861 <https://issues.pigweed.dev/issues/330225861>`__) 2584 2585pw_sync_stl 2586----------- 2587* `Android.bp: Add missing dependency on pw_sync_headers 2588 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197030>`__ 2589 2590pw_sys_io 2591---------- 2592* `Add backend label flags 2593 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196610>`__ 2594 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2595 2596pw_sys_io_rp2040 2597---------------- 2598* `Use callbacks to block on input 2599 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191490>`__ 2600 (issue `#324633376 <https://issues.pigweed.dev/issues/324633376>`__) 2601 2602pw_sys_io_stm32cube 2603------------------- 2604* `Fix build for f0xx, f1xx and f3xx families 2605 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195871>`__ 2606 2607pw_thread_zephyr 2608----------------- 2609* `Apply formatting fixes 2610 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195951>`__ 2611 2612pw_tokenizer 2613------------ 2614The Rust library's hashing code was updated to support multi-input hashing. 2615 2616* `Refactor Rust hash code to allow multi-input hashing 2617 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186310>`__ 2618 2619pw_transfer 2620----------- 2621The TypeScript client now has an ``abort()`` method for ending a transfer 2622without a completion chunk and a ``terminate()`` method for ending a transfer 2623with a completion chunk. 2624 2625* `Inline TRANSFER_CLIENT_DEPS 2626 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198592>`__ 2627* `Support full java protos 2628 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196231>`__ 2629 (issue `#329445249 <https://issues.pigweed.dev/issues/329445249>`__) 2630* `Add abort() and terminate() apis 2631 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194910>`__ 2632* `Update the proxy to only consider transfer chunks 2633 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196170>`__ 2634* `Fix Java client timeouts in terminating state 2635 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195123>`__ 2636 2637pw_unit_test 2638------------ 2639The new :cpp:class:`pw::unit_test::TestRecordEventHandler` class is a 2640predefined event handler that outputs a test summary in Chromium JSON Test 2641Results format. 2642 2643* `Flag to disable cmake pw_add_test calls 2644 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197530>`__ 2645 (issue `#330205620 <https://issues.pigweed.dev/issues/330205620>`__) 2646* `Add duplicate test case 2647 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197170>`__ 2648* `Localize the label flags 2649 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196670>`__ 2650 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2651* `Add test record event handler 2652 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194050>`__ 2653* `Adding googletest_handler_adapter to cmake 2654 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195070>`__ 2655 2656pw_watch 2657-------- 2658Changes to Emboss files now trigger rebuilds. 2659 2660* `Add emboss files to default watch patterns 2661 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195387>`__ 2662 2663pw_web 2664------ 2665* `NPM version bump to 0.0.16 2666 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198291>`__ 2667* `Update createLogViewer to use union types 2668 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198210>`__ 2669 (issue `#330564978 <https://issues.pigweed.dev/issues/330564978>`__) 2670* `Include file information in browser logs 2671 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196510>`__ 2672 (issue `#329680229 <https://issues.pigweed.dev/issues/329680229>`__) 2673* `NPM version bump to 0.0.15 2674 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196120>`__ 2675 2676Build 2677===== 2678 2679Bazel 2680----- 2681The new :ref:`module-pw_build-bazel-pw_facade` Bazel macro makes it easier 2682to create a :ref:`facade <docs-facades>`. 2683 2684* `Remove the deprecated pw_cc_facade macro 2685 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196121>`__ 2686 (issue `#328679085 <https://issues.pigweed.dev/issues/328679085>`__) 2687* `Treat Rust warnings as errors 2688 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196436>`__ 2689 (issue `#329685244 <https://issues.pigweed.dev/issues/https://pwbug.dev/329685244>`__) 2690* `Localize backend label flags 2691 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196232>`__ 2692 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2693* `Use pw_facade 2694 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195383>`__ 2695 (issue `#328679085 <https://issues.pigweed.dev/issues/328679085>`__) 2696* `Introduce pw_facade 2697 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193648>`__ 2698 (issue `#328679085 <https://issues.pigweed.dev/issues/328679085>`__) 2699* `Fix bazel query 2700 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195138>`__ 2701 2702Language support 2703================ 2704 2705Python 2706------ 2707* `Use future annotations 2708 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198570>`__ 2709* `Use future annotations 2710 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198051>`__ 2711* `Remove PathOrStr variables 2712 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197538>`__ 2713* `Switch from typing.Optional[...] to "... | None" 2714 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197347>`__ 2715 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2716* `Switch from typing.Union to "|" 2717 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197346>`__ 2718 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2719* `Use argparse.BooleanOptionalAction 2720 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197345>`__ 2721 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2722* `Use pathlib.Path.is_relative_to() 2723 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197344>`__ 2724 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2725* `Switch from typing.Dict to dict 2726 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197343>`__ 2727 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2728* `Switch from typing.Tuple to tuple 2729 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197342>`__ 2730 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2731* `Switch from typing.List to list 2732 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197341>`__ 2733 (issue `#248257406 <https://issues.pigweed.dev/issues/248257406>`__) 2734 2735OS support 2736========== 2737 2738Zephyr 2739------ 2740* `Add action for installing Zephyr SDK 2741 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194629>`__ 2742 2743Docs 2744==== 2745The new :ref:`CLI style guide <docs-pw-style-cli>` outlines how CLI utilities 2746in upstream Pigweed should behave. 2747 2748.. todo-check: disable 2749 2750* `Add CLI style guide 2751 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197010>`__ 2752 (issue `#329532962 <https://issues.pigweed.dev/issues/329532962>`__) 2753* `Move TODO style guide 2754 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197730>`__ 2755* `Fix redirect paths 2756 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197368>`__ 2757 (issue `#324241028 <https://issues.pigweed.dev/issues/324241028>`__) 2758* `Fix code-block indentation 2759 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197533>`__ 2760* `Add redirects infrastructure and docs contributor section 2761 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197339>`__ 2762 (issue `#324241028 <https://issues.pigweed.dev/issues/324241028>`__) 2763* `Fix some incorrect target names 2764 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/196495>`__ 2765 (issue `#329441699 <https://issues.pigweed.dev/issues/329441699>`__) 2766* `Fix mentions of sample_project 2767 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195974>`__ 2768 (issue `#322859039 <https://issues.pigweed.dev/issues/322859039>`__) 2769* `TOC entry for API documentation from source 2770 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195970>`__ 2771* `Update changelog 2772 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195354>`__ 2773 2774.. todo-check: enable 2775 2776Third party 2777=========== 2778* `Minor build file formatting fixes 2779 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197369>`__ 2780* (Emboss) `Assume newer emboss version 1/2 2781 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/197362>`__ 2782 (issue `#329872338 <https://issues.pigweed.dev/issues/329872338>`__) 2783* (STM32Cube) `Fix bazel hal driver build 2784 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195870>`__ 2785 2786----------- 2787Mar 7, 2024 2788----------- 2789Highlights (Feb 22, 2024 to Mar 7, 2024): 2790 2791* The new :ref:`module-pw_digital_io_linux` module is a 2792 :ref:`module-pw_digital_io` backend for Linux userspace. 2793* :cpp:class:`pw::multibuf::MultiBufAllocator` class is a new interface 2794 for allocating ``pw::multibuf::MultiBuf`` objects. 2795* The ``pw_web`` log viewer now captures browser console logs. It also 2796 now supports creating log stores and downloading logs from stores. 2797 2798Active SEEDs 2799============ 2800Help shape the future of Pigweed! Please visit :ref:`seed-0000` 2801and leave feedback on the RFCs (i.e. SEEDs) marked 2802``Open for Comments``. 2803 2804Modules 2805======= 2806 2807pw_allocator 2808------------ 2809* `Remove split_free_list_allocator.cc from Android.bp 2810 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194551>`__ 2811* `Add missing dep 2812 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194231>`__ 2813* `Use BlockAllocator instead of alternatives 2814 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188354>`__ 2815* `Make TrackingAllocator correct by construction 2816 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193330>`__ 2817 2818pw_assert_log 2819------------- 2820* `Depend on pw_log_headers in Android.bp 2821 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194434>`__ 2822* `Fix PW_HANDLE_CRASH to handle 0 args 2823 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194450>`__ 2824 (issue `#327201811 <https://issues.pigweed.dev/issues/327201811>`__) 2825 2826pw_async2 2827--------- 2828* `Address post-submit comments 2829 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194693>`__ 2830* `Add converting constructors to Poll 2831 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193593>`__ 2832 2833pw_blob_store 2834------------- 2835* `Set module name to BLOB 2836 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195170>`__ 2837 2838pw_bluetooth 2839------------ 2840* `Add hci_data.emb 2841 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194631>`__ 2842 (issue `#311639690 <https://issues.pigweed.dev/issues/311639690>`__) 2843* `Add ISO feature bit to controllers 2844 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194550>`__ 2845* `Add ISO definitions to Controller 2846 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194470>`__ 2847 2848pw_build 2849-------- 2850* `Remove FUZZTEST_OPTS 2851 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189317>`__ 2852* `Fix ProjectBuilder recipe percentage 2853 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194392>`__ 2854 2855pw_config_loader 2856---------------- 2857* `Support custom overloading rules 2858 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190833>`__ 2859 2860pw_containers 2861------------- 2862* `Rename VariableLengthEntryQueue 2863 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187311>`__ 2864* `Rename VariableLengthEntryQueue files 2865 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187310>`__ 2866* `VariableLengthEntryQueue C++ API 2867 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169910>`__ 2868 2869pw_digital_io_linux 2870------------------- 2871The new :ref:`module-pw_digital_io_linux` module is a 2872:ref:`module-pw_digital_io` backend for Linux userspace. 2873 2874* `Introduce new module 2875 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194430>`__ 2876 2877pw_json 2878------- 2879* `Update example; fix typo and declaration order 2880 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194411>`__ 2881 2882pw_libc 2883------- 2884* `Add stdfix target 2885 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194628>`__ 2886 (issue `#323425639 <https://issues.pigweed.dev/issues/323425639>`__) 2887* `Facilitate next llvm-libc roll 2888 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194603>`__ 2889 2890pw_log 2891------ 2892* `Fix stdout race in println_backend_test_test 2893 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195122>`__ 2894 (issue `#328498798 <https://issues.pigweed.dev/issues/328498798>`__) 2895* `Add tests for Rust printf and println backends 2896 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194952>`__ 2897* `Show child docs in site nav 2898 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193830>`__ 2899* `Fix the Pigweed Soong build 2900 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193690>`__ 2901 (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) 2902 2903pw_module 2904--------- 2905* `Remove README.md check 2906 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194934>`__ 2907 (issue `#328265397 <https://issues.pigweed.dev/issues/328265397>`__) 2908 2909pw_multibuf 2910----------- 2911The new :cpp:class:`pw::multibuf::MultiBufAllocator` class is an interface 2912for allocating ``pw::multibuf::MultiBuf`` objects. 2913 2914* `Add MultiBufAllocator interface 2915 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180840>`__ 2916* `Deduplicate const+non_const iterators 2917 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194405>`__ 2918* `Clean up API 2919 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194600>`__ 2920 (issue `#327673957 <https://issues.pigweed.dev/issues/327673957>`__) 2921* `Add +=N and +n operators to iterator 2922 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194310>`__ 2923* `Add slicing operations to MultiBuf 2924 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192895>`__ 2925 2926pw_presubmit 2927------------ 2928* `Remove unused presubmit step 2929 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194940>`__ 2930 2931pw_proto_compiler 2932----------------- 2933* `strip_import_prefix + options 2934 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194949>`__ 2935 (issue `#328311416 <https://issues.pigweed.dev/issues/328311416>`__) 2936 2937pw_result 2938--------- 2939* `Add constructor deduction guide 2940 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194612>`__ 2941 2942pw_rpc 2943------ 2944The newly public :cpp:class:`pw::rpc::CloseAndWaitForCallbacks` function 2945abandons an RPC and blocks on the completion of any running callbacks. 2946 2947* `Expose CloseAndWaitForCallbacks in client call API 2948 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194697>`__ 2949 2950pw_rpc_transport 2951---------------- 2952* `Add log for no packet available 2953 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194592>`__ 2954 2955pw_rust 2956------- 2957* `Add Rust tokenized logging example 2958 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181268>`__ 2959 2960pw_stream_uart_mcuxpresso 2961------------------------- 2962``pw_stream_uart_mcuxpresso`` now supports direct memory access reads and 2963writes. 2964 2965* `Fix code examples in docs 2966 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194630>`__ 2967* `Implement DoRead DMA 2968 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192893>`__ 2969 (issue `#325514698 <https://issues.pigweed.dev/issues/325514698>`__) 2970* `Implement DoWrite DMA 2971 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192892>`__ 2972 (issue `#325514698 <https://issues.pigweed.dev/issues/325514698>`__) 2973* `Implement init / deinit 2974 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192891>`__ 2975 (issue `#325514698 <https://issues.pigweed.dev/issues/325514698>`__) 2976* `USART DMA scaffolding 2977 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192890>`__ 2978 (issue `#325514698 <https://issues.pigweed.dev/issues/325514698>`__) 2979 2980pw_string 2981--------- 2982``pw::InlineByteString`` is a new alias of ``pw::InlineBasicString<std::byte>`` 2983that can be used as a simple and efficient byte container. 2984 2985* `Add ToString for Result and Poll 2986 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194621>`__ 2987* `Support InlineBasicString<std::byte>; InlineByteString alias 2988 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194710>`__ 2989 (issue `#327497061 <https://issues.pigweed.dev/issues/327497061>`__) 2990 2991pw_sync 2992------- 2993* `Allow implict conversion when moving BorrowedPointer 2994 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194394>`__ 2995 2996pw_tokenizer 2997------------ 2998* `Fix missing bazel filegroup 2999 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194399>`__ 3000* `Add Detokenizer constructor with elf binary section 3001 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190650>`__ 3002* `Add code size optimization to Rust implementation 3003 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193504>`__ 3004 3005pw_toolchain_bazel 3006------------------ 3007* `Apply more common attrs to cc_toolchain targets 3008 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194890>`__ 3009* `Support Windows in toolchain template build files 3010 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194591>`__ 3011 3012pw_transfer 3013----------- 3014* `Respect user-specified resource size 3015 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194935>`__ 3016* `Temporarily disable broken integration test 3017 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194850>`__ 3018* `Only request a single chunk in test 3019 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194151>`__ 3020 (issue `#323386167 <https://issues.pigweed.dev/issues/323386167>`__) 3021* `Fix WindowPacketDropper proxy filter 3022 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194030>`__ 3023 (issue `#322497823 <https://issues.pigweed.dev/issues/322497823>`__) 3024 3025pw_unit_test 3026------------ 3027The :ref:`module-pw_unit_test` docs have been revamped. Using the full upstream 3028GoogleTest backend with ``simple_printing_main`` in Bazel has been fixed. 3029 3030* `Update docs 3031 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193671>`__ 3032* `Fix googletest backend 3033 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190593>`__ 3034 (issue `#324116813 <https://issues.pigweed.dev/issues/324116813>`__) 3035 3036pw_watch 3037-------- 3038``pw_watch`` now rebuilds when Bazel files are changed. 3039 3040* `Add bazel files to default watch patterns 3041 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/195310>`__ 3042 (issue `#328619290 <https://issues.pigweed.dev/issues/328619290>`__) 3043 3044pw_web 3045------ 3046The ``pw_web`` log viewer now captures browser console logs. It also 3047now supports creating log stores and downloading logs from stores. 3048 3049* `Capture browser logs in the log viewer 3050 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194451>`__ 3051 (issue `#325096768 <https://issues.pigweed.dev/issues/325096768>`__) 3052* `Create log store and enable download logs from it 3053 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186874>`__ 3054 (issue `#316966729 <https://issues.pigweed.dev/issues/316966729>`__) 3055 3056Bazel 3057----- 3058* `Update rust_crates in Bazel WORKSPACE 3059 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194938>`__ 3060* `Mark more targets testonly 3061 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193626>`__ 3062 (issue `#324116813 <https://issues.pigweed.dev/issues/324116813>`__) 3063 3064Docs 3065==== 3066The new :ref:`protobuf style guide <docs-pw-style-protobuf>` describes how 3067protobufs should be styled throughout Pigweed. 3068 3069* `Add protobuf style guide 3070 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190723>`__ 3071 (issue `#232867615 <https://issues.pigweed.dev/issues/232867615>`__) 3072* `Clarify that Pigweed doesn't support msan 3073 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194877>`__ 3074 (issue `#234876100 <https://issues.pigweed.dev/issues/234876100>`__) 3075* `Clarify rvalue docs 3076 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194696>`__ 3077* `Reorder tocdepth and title 3078 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193970>`__ 3079* `Prefer rvalue references 3080 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193647>`__ 3081* `Update changelog 3082 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193620>`__ 3083 3084Third party 3085=========== 3086* `Android.bp: Export fuchsia_sdk_lib_stdcompat headers 3087 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194370>`__ 3088* (Emboss) `Support latest version of Emboss in GN 3089 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194876>`__ 3090* (Emboss) `Add CMake support for emboss 3091 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194400>`__ 3092 (issue `#326500136 <https://issues.pigweed.dev/issues/326500136>`__) 3093* (FreeRTOS) `Tidy up Bazel build 3094 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193633>`__ 3095 (issue `#326625641 <https://issues.pigweed.dev/issues/326625641>`__) 3096* (FreeRTOS) `Create Bazel build template 3097 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193645>`__ 3098 (issue `#326625641 <https://issues.pigweed.dev/issues/326625641>`__) 3099* (STM32Cube) `Build template formatting fixes 3100 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194723>`__ 3101 3102Miscellaneous 3103============= 3104* `Unrecommendify 3105 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/194852>`__ 3106* `Clean up Python proto imports 3107 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193641>`__ 3108 (issue `#241456982 <https://issues.pigweed.dev/issues/241456982>`__) 3109 3110------------ 3111Feb 23, 2024 3112------------ 3113Highlights (Feb 9, 2024 to Feb 23, 2024): 3114 3115* The new :ref:`module-pw_json` module provides classes for serializing JSON. 3116* Raspberry Pi RP2040 support was expanded, including a new 3117 ``pw::digital_io::Rp2040Config`` struct enables you to configure polarity for 3118 RP2040 GPIO pins, and a new ``pw::spi::Rp2040Initiator`` class which is a 3119 Pico SDK userspace implementation of Pigweed's SPI ``Initiator`` class. 3120* The new ``pw::spi::DigitalOutChipSelector`` class sets the state of a 3121 :ref:`module-pw_digital_io` output when activated. 3122* The :ref:`module-pw_kvs` docs were overhauled. 3123 3124Active SEEDs 3125============ 3126Help shape the future of Pigweed! Please visit :ref:`seed-0000` 3127and leave feedback on the RFCs (i.e. SEEDs) marked 3128``Open for Comments``. 3129 3130Modules 3131======= 3132 3133pw_allocator 3134------------ 3135* `Remove total_bytes metric 3136 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193251>`__ 3137* `Expose TrackingAllocator's initialization state 3138 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192570>`__ 3139 3140pw_assert 3141--------- 3142* `Apply formatting changes 3143 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193496>`__ 3144 3145pw_assert_log 3146------------- 3147* `Fix Soong rules 3148 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190602>`__ 3149 (issue `#324266698 <https://issues.pigweed.dev/issues/324266698>`__) 3150* `Fix missing lib in soong rule 3151 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192259>`__ 3152 3153pw_bluetooth 3154------------ 3155* `Add Emboss rules to BUILD.bazel 3156 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192513>`__ 3157* `Update emboss imports to match Bazel rule 3158 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192392>`__ 3159 3160pw_build 3161-------- 3162* `Silence warnings from linker script test 3163 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191850>`__ 3164 3165pw_bytes 3166-------- 3167* `Add missing export in soong rule 3168 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192257>`__ 3169 3170pw_chrono_rp2040 3171---------------- 3172* `Minor tweaks to documentation and test 3173 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183730>`__ 3174 (issue `#303297807 <https://issues.pigweed.dev/issues/303297807>`__) 3175 3176pw_cli 3177------ 3178* `Add exit codes 3179 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192897>`__ 3180 3181pw_config_loader 3182---------------- 3183The new ``skip_files__without_sections`` option enables you to just move on 3184to the next file rather than raise an exception if a relevant section doesn't 3185exist in a config file. 3186 3187* `Allow skipping files 3188 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191970>`__ 3189 3190pw_containers 3191------------- 3192* `Add default move operator for FilteredView 3193 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192830>`__ 3194* `Add move constructor to FiltertedView 3195 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191832>`__ 3196 3197pw_digital_io_rp2040 3198-------------------- 3199The new ``pw::digital_io::Rp2040Config`` struct enables you to configure 3200polarity for RP2040 GPIO pins. 3201 3202* `Config with polarity 3203 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176290>`__ 3204 (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) 3205 3206pw_env_setup 3207------------ 3208* `Use amd64 host tools on arm64 3209 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192763>`__ 3210 (issue `#325498131 <https://issues.pigweed.dev/issues/325498131>`__) 3211 3212pw_function 3213----------- 3214The new ``//third_party/fuchsia:fit`` label flag enables Bazel-based projects 3215to provide an alternate implementation for ``fit()`` when needed. 3216 3217* `//third_party/fuchsia:fit label_flag 3218 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192391>`__ 3219 3220pw_fuzzer 3221--------- 3222* `Fix Bazel example, add presubmit test 3223 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191310>`__ 3224 (issue `#324617297 <https://issues.pigweed.dev/issues/324617297>`__) 3225 3226pw_grpc 3227------- 3228* `Fix some minor bugs 3229 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191831>`__ 3230 3231pw_hdlc 3232------- 3233* `Add android_library targets 3234 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190930>`__ 3235 (issue `#321155919 <https://issues.pigweed.dev/issues/321155919>`__) 3236 3237pw_i2c 3238------ 3239The API reference for :cpp:class:`pw::i2c::RegisterDevice` is now published on 3240``pigweed.dev``. 3241 3242* `Doxygenify RegisterDevice 3243 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191833>`__ 3244 3245pw_ide 3246------ 3247* `Fix environment inference 3248 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191371>`__ 3249 3250pw_json 3251------- 3252The new :ref:`module-pw_json` module provides classes for serializing JSON. 3253 3254* `Classes for serializing JSON 3255 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190458>`__ 3256 3257pw_kvs 3258------ 3259The :ref:`module-pw_kvs` docs were overhauled. 3260 3261* `Follow new module docs guidelines 3262 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189430>`__ 3263 3264pw_log 3265------ 3266* `Add android_library targets 3267 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190930>`__ 3268 (issue `#321155919 <https://issues.pigweed.dev/issues/321155919>`__) 3269 3270pw_log_android 3271-------------- 3272* `Fix missing libs in soong rule 3273 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192258>`__ 3274 3275pw_metric 3276--------- 3277* `Fix Bazel build 3278 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190971>`__ 3279 (issue `#258078909 <https://issues.pigweed.dev/issues/258078909>`__) 3280 3281pw_module 3282--------- 3283* `Add exit codes 3284 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192897>`__ 3285 3286pw_multibuf 3287----------- 3288* `Fix soong support 3289 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192894>`__ 3290 (issue `#325320103 <https://issues.pigweed.dev/issues/325320103>`__) 3291 3292pw_package 3293---------- 3294* `Update GoogleTest 3295 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193250>`__ 3296* `Remove capture_output=True 3297 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192530>`__ 3298 3299pw_preprocessor 3300--------------- 3301The :ref:`module-pw_preprocessor` reference is now being generated via Doxygen. 3302 3303* `Do not check for __VA_OPT__ on older compilers 3304 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193434>`__ 3305 (issue `#326135018 <https://issues.pigweed.dev/issues/326135018>`__) 3306* `Switch to Doxygen 3307 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192730>`__ 3308* `Use __VA_OPT__ when available 3309 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187099>`__ 3310 3311pw_presubmit 3312------------ 3313.. todo-check: disable 3314 3315* `Allow markdown style TODOs and adjust rustdocs 3316 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192253>`__ 3317 (issue `#315389119 <https://issues.pigweed.dev/issues/315389119>`__) 3318* `Log format --fix output 3319 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192394>`__ 3320* `Fix formatting of typescript code 3321 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192393>`__ 3322* `Disallow FIXME and recommend TODO 3323 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188367>`__ 3324* `Allow pwbug.dev in TODOs 3325 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191795>`__ 3326* `Allow Bazel issues in TODOs 3327 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190970>`__ 3328 3329.. todo-check: disable 3330 3331.. _docs-changelog-20240226-pw_rpc: 3332 3333pw_rpc 3334------ 3335``pw_rpc`` clients will once again accept unsolicited responses from ``pw_rpc`` 3336servers that were built prior to September 2022. Unsolicited responses, also 3337known as "open" requests, let a server send a message to a client prior to the 3338client sending a request. This change fixed an incompatibility in which 3339``pw_rpc`` clients built after September 2022 would not accept unsolicited 3340responses from servers built before September 2022 (specifically, 3341change `#109077 <https://pwrev.dev/109077>`_). 3342 3343* `Remove use of deprecated Python API 3344 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187491>`__ 3345 (issue `#306195999 <https://issues.pigweed.dev/issues/306195999>`__) 3346* `Add android_library targets 3347 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190930>`__ 3348 (issue `#321155919 <https://issues.pigweed.dev/issues/321155919>`__) 3349* `Support legacy unsolicited responses 3350 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192311>`__ 3351 3352pw_software_update 3353------------------ 3354* `Add java build objects 3355 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193410>`__ 3356 3357pw_spi 3358------ 3359The new ``pw::spi::DigitalOutChipSelector`` class is an implementation of 3360``pw::spi::ChipSelector`` that sets the state of a :ref:`module-pw_digital_io` 3361output when activated. 3362 3363* `Add Android.bp 3364 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192590>`__ 3365 (issue `#316067629 <https://issues.pigweed.dev/issues/316067629>`__) 3366* `DigitalOutChipSelector 3367 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192790>`__ 3368 (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) 3369* `Correct full-duplex behavior of linux_spi 3370 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192591>`__ 3371 (issue `#316067628 <https://issues.pigweed.dev/issues/316067628>`__) 3372 3373pw_spi_rp2040 3374------------- 3375The new ``pw::spi::Rp2040Initiator`` class is a Pico SDK userspace 3376implementation of Pigweed's SPI ``Initiator`` class. 3377 3378* `Initiator implementation 3379 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192791>`__ 3380 (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) 3381 3382pw_stream 3383--------- 3384* `Fix Pigweed build after sync 3385 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191250>`__ 3386 (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) 3387 3388pw_string 3389--------- 3390Debug error messages for assertions containing ``std::optional`` types have 3391been improved. 3392 3393* `Add ToString for std::optional 3394 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192514>`__ 3395 3396pw_sync 3397------- 3398* `Add missing lib in soong rule 3399 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192260>`__ 3400 3401pw_tokenizer 3402------------ 3403The :ref:`module-pw_tokenizer` and :ref:`module-pw_snapshot` Python 3404libraries can now be used from Bazel as a result of the proto 3405migration. See issue `#322850978 <https://issues.pigweed.dev/issues/322850978>`__). 3406 3407* `Fix link breakage on linux 3408 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192511>`__ 3409 (issue `#321306079 <https://issues.pigweed.dev/issues/321306079>`__) 3410* `Proto migration stage 5/5 3411 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191270>`__ 3412 (issue `#322850978 <https://issues.pigweed.dev/issues/322850978>`__) 3413* `Proto migration stage 3/5 3414 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189696>`__ 3415 (issue `#322850978 <https://issues.pigweed.dev/issues/322850978>`__) 3416* `Proto migration stage 1.5/5 3417 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191834>`__ 3418 (issue `#322850978 <https://issues.pigweed.dev/issues/322850978>`__) 3419* `Proto migration stage 1/5 3420 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191135>`__ 3421 (issue `#322850978 <https://issues.pigweed.dev/issues/322850978>`__) 3422 3423pw_toolchain 3424------------ 3425* `Add missing #include 3426 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193430>`__ 3427* `Rename `action_config_flag_sets` to `flag_sets` 3428 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192911>`__ 3429* `Simplify macOS -nostdlib++ usage 3430 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192898>`__ 3431* `Remove unnecessary toolchain arguments 3432 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192896>`__ 3433* `Add missing macOS cxx_builtin_include_directories 3434 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192270>`__ 3435 (issue `#324652164 <https://issues.pigweed.dev/issues/324652164>`__) 3436 3437pw_toolchain_bazel 3438------------------ 3439* `Use llvm-libtool-darwin on macOS 3440 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190896>`__ 3441 (issue `#297413805 <https://issues.pigweed.dev/issues/297413805>`__) 3442* `Explicitly depend on rules_cc 3443 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191430>`__ 3444 3445pw_transfer 3446----------- 3447* `Add an android_library for the Java client 3448 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193534>`__ 3449* `Change class to parser 3450 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193550>`__ 3451* `Fix integration test START packet issue 3452 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192755>`__ 3453 (issue `#322497491 <https://issues.pigweed.dev/issues/322497491>`__) 3454* `Add GetResourceStatus method 3455 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192810>`__ 3456* `Limit test to sending a single chunk 3457 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192510>`__ 3458* `Remove/hide deprecated handle interfaces 3459 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190972>`__ 3460 3461pw_watch 3462-------- 3463* `Add exit codes 3464 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192897>`__ 3465 3466pw_web 3467------ 3468The log viewer now supports multiple log sources. 3469 3470* `NPM version bump to 0.0.14 3471 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193510>`__ 3472* `Enable multiple log sources 3473 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192370>`__ 3474 (issue `#325096310 <https://issues.pigweed.dev/issues/325096310>`__) 3475 3476Build 3477===== 3478* `Fix docs build on mac-arm64 3479 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192910>`__ 3480* `Use correct host_cpu when disabling docs on Arm Macs 3481 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192757>`__ 3482* `Remove docs from default build on Arm Macs 3483 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192754>`__ 3484 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 3485* `Build for Java 11 3486 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191830>`__ 3487 3488Bazel 3489----- 3490* `Remove shallow_since attributes 3491 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193473>`__ 3492* `Upgrade protobuf to 4.24.4 3493 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187431>`__ 3494 (issue `#319717451 <https://issues.pigweed.dev/issues/319717451>`__) 3495 3496Targets 3497======= 3498* (rp2040) `Replace rp2040 target with rp2040_pw_system 3499 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192516>`__ 3500* (rp2040) `Custom libusb backend 3501 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192630>`__ 3502 3503OS support 3504========== 3505* (Zephyr) `Change the pinned Zephyr commit 3506 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192690>`__ 3507* (Zephyr) `Add zephyr's west CLI 3508 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190547>`__ 3509 3510Docs 3511==== 3512`Breadcrumbs <https://en.wikipedia.org/wiki/Breadcrumb_navigation>`_ are now 3513shown at the top of all docs pages except the homepage. 3514 3515* `Add breadcrumbs 3516 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193508>`__ 3517* `Fix incorrect module name in changelog 3518 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193331>`__ 3519* `Fix canonical URLs for all */docs.html pages 3520 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/193431>`__ 3521* `Fix typo in facades documentation 3522 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192710>`__ 3523* `Fix 404s 3524 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192251>`__ 3525 (issue `#325086274 <https://issues.pigweed.dev/issues/325086274>`__) 3526 3527SEEDs 3528===== 3529* (SEED-0125) `Claim SEED number 3530 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192110>`__ 3531* `Mark legacy Sensor SEED as Rejected 3532 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192250>`__ 3533 3534Third party 3535=========== 3536* `Roll FuzzTest and Abseil 3537 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189419>`__ 3538 3539Miscellaneous 3540============= 3541* `Disable tests incompatible with rp2040 3542 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192764>`__ 3543 (issue `#260624583 <https://issues.pigweed.dev/issues/260624583>`__) 3544* `Fix uses of std::chrono literals 3545 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192515>`__ 3546* (pigweed.json) `Disallow Rosetta 3547 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188251>`__ 3548 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 3549* (renode) `Update renode to latest daily build 3550 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/192254>`__ 3551 3552----------- 3553Feb 9, 2024 3554----------- 3555Highlights (Jan 26, 2024 to Feb 9, 2024): 3556 3557* The new :ref:`module-pw_grpc` module provides classes that map between 3558 ``pw_rpc`` packets and HTTP/2 gRPC frames, allowing ``pw_rpc`` services to 3559 be exposed as gRPC services. 3560* A lot of the remaining ``pw_toolchain_bazel`` feature work from 3561 :ref:`seed-0113` was finished and rough edges were polished up. 3562* The new generic ``pw::allocator::BlockAllocator`` interface supported several 3563 derived types that enable fine-grained control over how a block satisfies an 3564 allocation request. 3565 3566* ``pw_transfer`` now supports :ref:`resumable transfers 3567 <pw_transfer-nonzero-transfers>`. 3568 3569Active SEEDs 3570============ 3571Help shape the future of Pigweed! Please visit :ref:`seed-0000` 3572and leave feedback on the RFCs (i.e. SEEDs) marked 3573``Open for Comments``. 3574 3575Modules 3576======= 3577 3578pw_alignment 3579------------ 3580* `Add CMake & Soong support 3581 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189360>`__ 3582 3583pw_allocator 3584------------ 3585The new generic :cpp:class:`pw::allocator::BlockAllocator` interface supports 3586several derived types that enable fine-grained control over how a block 3587satisfies an allocation request. The new :cpp:func:`pw::allocator::GetLayout()` 3588method retrieves the layout that was used to allocate a given pointer. The new 3589:cpp:class:`pw::allocator::AllocatorSyncProxy` interface synchronizes access to 3590another allocator, allowing it to be used by multiple threads. 3591 3592* `Refactor metric collection for tests 3593 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190105>`__ 3594* `Add Allocator::GetLayout 3595 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187764>`__ 3596* `Add BlockAllocator 3597 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187657>`__ 3598* `Fix SynchronizedAllocator typo 3599 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190721>`__ 3600* `Streamline Block and improve testing 3601 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187656>`__ 3602* `Separate metrics from Fallback-, MultiplexAllocator 3603 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190253>`__ 3604* `Make TrackingAllocator::Init optional 3605 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190454>`__ 3606* `Check for integer overflow in Layout 3607 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187654>`__ 3608* `Add additional metrics 3609 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190250>`__ 3610* `Rename AllocatorMetricProxy to TrackingAllocator 3611 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190230>`__ 3612* `Add SynchronizedAllocator 3613 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189690>`__ 3614* `Fix typo 3615 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189717>`__ 3616* `Fix Allocator::Reallocate 3617 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189691>`__ 3618 3619pw_assert 3620--------- 3621* `Break out compatibility backend target 3622 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189106>`__ 3623 (issue `#322057191 <https://issues.pigweed.dev/issues/322057191>`__) 3624 3625pw_async_basic 3626-------------- 3627* `Remove unneeded locks from test 3628 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190238>`__ 3629* `Test flake fix 3630 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189938>`__ 3631 (issue `#323251704 <https://issues.pigweed.dev/issues/323251704>`__) 3632* `Fix data race in newly added test 3633 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189879>`__ 3634* `Fix ordering of tasks posted at same time 3635 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189784>`__ 3636 3637pw_bloat 3638-------- 3639The new boolean argument ``ignore_unused_labels`` for ``pw_size_report()`` 3640enables you to remove labels from the JSON size report that have a size of 0. 3641 3642* `Allow removal of zero sized labels 3643 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190599>`__ 3644 (issue `#282057969 <https://issues.pigweed.dev/issues/282057969>`__) 3645 3646pw_bluetooth 3647------------ 3648* `Add l2cap_frames.emb 3649 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185751>`__ 3650* `Fix typo in SbcAllocationMethod 3651 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190130>`__ 3652 3653pw_boot 3654------- 3655* `Update status and general doc cleanup 3656 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189298>`__ 3657 3658pw_build 3659-------- 3660The new ``PW_USE_COLOR``, ``NO_COLOR``, and ``CLICOLOR_FORCE`` OS environment 3661variables enable you to control whether output in CI/CQ is color formatted. 3662 3663* `Add Fuchsia to TARGET_COMPATIBLE_WITH_HOST_SELECT 3664 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190714>`__ 3665* `Enable fixed point types for clang builds 3666 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190097>`__ 3667 (issue `#323425639 <https://issues.pigweed.dev/issues/323425639>`__) 3668* `Support disabling colors 3669 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189611>`__ 3670 (issue `#323056074 <https://issues.pigweed.dev/issues/323056074>`__) 3671 3672pw_bytes 3673-------- 3674* `Check for integer overflow 3675 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187655>`__ 3676 3677pw_channel 3678---------- 3679The initial ``pw::channel::Channel`` class from :ref:`seed-0114` has been 3680introduced but it is experimental and should not be used yet. 3681 3682* `Docs fix 3683 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190624>`__ 3684* `Module for async data exchange with minimal copying 3685 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189284>`__ 3686 3687pw_cli 3688------ 3689* `Add json_config_loader_mixin 3690 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190540>`__ 3691 3692pw_compilation_testing 3693---------------------- 3694* `Do not expand regexes 3695 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/191030>`__ 3696* `Minor improvements 3697 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189788>`__ 3698 3699pw_config_loader 3700---------------- 3701The code from ``pw_cli`` related to looking up user-specific configuration 3702files has been moved to this separate module. 3703 3704* `Add support for nested keys 3705 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190673>`__ 3706* `Add tests 3707 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190672>`__ 3708* `Initial commit 3709 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190671>`__ 3710 3711pw_cpu_exception_cortex_m 3712------------------------- 3713* `Handle ARM v8.1 case 3714 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189828>`__ 3715 (issue `#311766664 <https://issues.pigweed.dev/issues/311766664>`__) 3716 3717pw_digital_io 3718------------- 3719* `[[nodiscard]] on as() conversion functions 3720 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189815>`__ 3721* `Use pw::internal::SiblingCast 3722 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189015>`__ 3723 3724pw_env_setup 3725------------ 3726* `Roll cipd 3727 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190737>`__ 3728 (issue `#315378787 <https://issues.pigweed.dev/issues/315378787>`__) 3729* `Make npm actions more robust 3730 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189358>`__ 3731 (issues `#323378974 <https://issues.pigweed.dev/issues/305042957>`__, 3732 `#322437881 <https://issues.pigweed.dev/issues/322437881>`__, 3733 `#323378974 <https://issues.pigweed.dev/issues/323378974>`__) 3734* `Only add mingw to PATH once 3735 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190030>`__ 3736 (issue `#322437881 <https://issues.pigweed.dev/issues/322437881>`__) 3737 3738pw_format 3739--------- 3740* `Fix safe buildifier warnings 3741 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189716>`__ 3742 (issue `#242181811 <https://issues.pigweed.dev/issues/242181811>`__) 3743 3744pw_function 3745----------- 3746* `Follow new docs guidelines 3747 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188362>`__ 3748 3749pw_fuzzer 3750--------- 3751* `Fix Bazel run target instructions 3752 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188363>`__ 3753 3754pw_grpc 3755------- 3756The new :ref:`module-pw_grpc` module is an implementation of the gRPC HTTP/2 3757protocol. It provides classes that map between :ref:`module-pw_rpc` packets 3758and ``pw_grpc`` HTTP/2 frames, allowing ``pw_rpc`` services to be exposed as 3759gRPC services. 3760 3761* `Fix off-by-one error when handling DATA frames 3762 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190470>`__ 3763 (issue `#323924487 <https://issues.pigweed.dev/issues/323924487>`__) 3764* `Add new module 3765 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186796>`__ 3766 3767pw_ide 3768------ 3769* `Disable Python terminal activation in VSC 3770 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190592>`__ 3771* `Remove terminal env vars from VSC settings 3772 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188470>`__ 3773* `VSC extension 0.1.4 release 3774 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188742>`__ 3775 3776pw_presubmit 3777------------ 3778Color formatting in CI/CQ has been improved for readability. 3779 3780* `Simplify 'gn gen' color logic 3781 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190239>`__ 3782* `Use color logic in gn gen call 3783 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189827>`__ 3784* `Apply color logic in more cases 3785 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189829>`__ 3786* `Support disabling colors 3787 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189611>`__ 3788 (issue `#323056074 <https://issues.pigweed.dev/issues/323056074>`__) 3789 3790pw_protobuf 3791----------- 3792* `Use pw::internal::SiblingCast 3793 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189015>`__ 3794 3795pw_random 3796--------- 3797* `Clean up build files 3798 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189779>`__ 3799 3800pw_result 3801--------- 3802* `Add missing libs in Soong blueprint 3803 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190950>`__ 3804 3805pw_rpc 3806------ 3807* `Avoid undefined behavior when casting to rpc::Writer 3808 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189648>`__ 3809 3810pw_stream 3811--------- 3812* `Use pw::internal::SiblingCast 3813 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189015>`__ 3814 3815pw_target_runner 3816---------------- 3817* `Remove .dev from path name 3818 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190450>`__ 3819 3820pw_thread 3821--------- 3822* `Incease the sleep duration in tests 3823 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190270>`__ 3824 (issue `#321832803 <https://issues.pigweed.dev/issues/321832803>`__) 3825 3826pw_tokenizer 3827------------ 3828:ref:`Troubleshooting docs <module-pw_tokenizer-gcc-template-bug>` were added 3829that explain how to workaround GCC's template function tokenization bug in GCC 3830releases prior to 14. 3831 3832* `Mention GCC template bug in the docs 3833 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189820>`__ 3834 3835pw_toolchain 3836------------ 3837* `Disable unstable features in rust toolchains 3838 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189948>`__ 3839* `Fix divergent configuration in arm_clang M0+ toolchain 3840 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190196>`__ 3841* `Use less generic names for B1-B5 3842 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189732>`__ 3843* `Use LLVM compiler-rt builtins 3844 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186232>`__ 3845* `Internal wrapper for casting between siblings 3846 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189014>`__ 3847 (issue `#319144706 <https://issues.pigweed.dev/issues/319144706>`__) 3848* `Small docs update 3849 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189278>`__ 3850 (issue `#300471936 <https://issues.pigweed.dev/issues/300471936>`__) 3851 3852pw_toolchain_bazel 3853------------------ 3854A lot of the remaining ``pw_toolchain_bazel`` feature work from 3855:ref:`seed-0113` was finished and rough edges were polished up. 3856 3857* `Remove support for *_files 3858 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190810>`__ 3859 (issue `#323448214 <https://issues.pigweed.dev/issues/323448214>`__) 3860* `Add support for setting environment variables 3861 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190154>`__ 3862 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3863* `Implement per-action files 3864 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190152>`__ 3865 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3866* `Migrate to PwToolInfo 3867 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190150>`__ 3868 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3869* `Pull file collection into config rule 3870 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189971>`__ 3871 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3872* `Implement pw_cc_provides 3873 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189112>`__ 3874 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 3875* `Implement PwActionConfigInfo 3876 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189990>`__ 3877 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3878* `Create temporary variable 3879 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189970>`__ 3880 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3881* `Add a concept of well-known features 3882 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189050>`__ 3883 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 3884* `Implement requires_any_of for flag sets 3885 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189111>`__ 3886 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 3887* `Migrate to custom PwFeatureInfo 3888 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189030>`__ 3889 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 3890* `Add custom PwFlagSetInfo 3891 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188990>`__ 3892 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3893* `Replace bazel_tools providers with PW providers 3894 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189110>`__ 3895 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3896* `Support regular binaries as tools 3897 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190151>`__ 3898 (issue `#322872628 <https://issues.pigweed.dev/issues/322872628>`__) 3899 3900pw_transfer 3901----------- 3902``pw_transfer`` now supports :ref:`resumable transfers 3903<pw_transfer-nonzero-transfers>`. 3904 3905* `Account for remaining_bytes in payload buffer 3906 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190572>`__ 3907* `Rename TransferHandle -> Handle 3908 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189097>`__ 3909* `Add resumeable transfers 3910 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182830>`__ 3911* `Make cancellation a method on handles 3912 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189096>`__ 3913* `Allow setting a transfer resource size in C++ 3914 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189095>`__ 3915 (issue `#319731837 <https://issues.pigweed.dev/issues/319731837>`__) 3916 3917pw_unit_test 3918------------ 3919* `Remove obsolete label flag 3920 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190557>`__ 3921 3922Build 3923===== 3924* (Bazel) `Update clang version 3925 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190256>`__ 3926 3927OS support 3928========== 3929* (Zephyr) `Fix default logging in chromium CQ 3930 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190696>`__ 3931 3932Docs 3933==== 3934* `Nest backends under respective facades in sitenav 3935 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190245>`__ 3936* `Add doxygengroup to the style guide 3937 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190625>`__ 3938* `Update homepage 3939 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190018>`__ 3940* `Update README links 3941 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189731>`__ 3942* `Fix module homepage canonical URLs 3943 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189773>`__ 3944 (issue `#323077749 <https://issues.pigweed.dev/issues/323077749>`__) 3945* `Update Bazel quickstart output sample 3946 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189412>`__ 3947 (issue `#300471936 <https://issues.pigweed.dev/issues/300471936>`__) 3948 3949SEEDs 3950===== 3951* (SEED-0122) `Update status, add bug reference 3952 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189612>`__ 3953* `Fix pw_seed_index template deps 3954 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190675>`__ 3955* `Add authors to SEED document headers 3956 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189870>`__ 3957* (SEED-0119) `Add sensors SEED 3958 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182653>`__ 3959 3960Miscellaneous 3961============= 3962* `Update the bootstrap script to have start/end guards 3963 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190451>`__ 3964* `Migrate bug numbers 3965 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189353>`__ 3966 (issue `#298074672 <https://issues.pigweed.dev/issues/298074672>`__) 3967* `Upgrade mbedtls to 3.5.0 3968 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189273>`__ 3969 (issue `#319289775 <https://issues.pigweed.dev/issues/319289775>`__) 3970* `Fix clang-format findings 3971 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/190090>`__ 3972 3973------------ 3974Jan 26, 2024 3975------------ 3976Highlights (Jan 12, 2024 to Jan 26, 2024): 3977 3978* The new :ref:`docs-bazel-integration` guide shows you how to integrate a 3979 single Pigweed module into an existing Bazel project. 3980* Initial support for :py:class:`pw_cc_feature` has been added, which completes 3981 the initial set of rules required for building toolchains with 3982 :ref:`module-pw_toolchain_bazel`. 3983* A longstanding GCC bug that caused tokenized logging within a function 3984 template to not work has been fixed. 3985 3986Active SEEDs 3987============ 3988Help shape the future of Pigweed! Please visit :ref:`seed-0000` 3989and leave feedback on the RFCs (i.e. SEEDs) marked 3990``Open for Comments``. 3991 3992Modules 3993======= 3994 3995pw_allocator 3996------------ 3997* `Add SplifFreeListAllocator fuzzer 3998 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178216>`__ 3999 4000pw_bluetooth 4001------------ 4002* `Add advertising packet content filter emboss definitions 4003 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188314>`__ 4004* `Add android multiple advertising emboss structures 4005 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188313>`__ 4006* `Add a2dp remaining offload emboss structures 4007 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188311>`__ 4008* `Move emboss structures from hci_commands to hci_common 4009 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188312>`__ 4010* `Reorganize hci_vendor.emb 4011 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188310>`__ 4012* `Add new event definitions 4013 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188150>`__ 4014 (issue `#311639432 <https://issues.pigweed.dev/issues/311639432>`__) 4015 4016pw_build 4017-------- 4018The new :ref:`module-pw_build-bazel-pw_cc_binary_with_map` Bazel rule enables 4019you to generate a ``.map`` file when building a binary. 4020 4021* `Add pw_cc_binary variant to generate .map files 4022 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187710>`__ 4023 (issue `#319746242 <https://issues.pigweed.dev/issues/319746242>`__) 4024 4025pw_bytes 4026-------- 4027The :cpp:class:`pw::ByteBuilder` API reference is now being auto-generated 4028via Doxygen. The new :cpp:func:`pw::bytes::SignExtend` template enables 4029expanding the nth bit to the left up to the size of the destination type. 4030 4031* `Fix compilation error occured with Werror=all 4032 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188890>`__ 4033* `Update documentation 4034 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188462>`__ 4035* `SignExtend template 4036 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188456>`__ 4037 (issue `#321114167 <https://issues.pigweed.dev/issues/321114167>`__) 4038* `Make _b literals error on values >255 4039 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188208>`__ 4040 4041pw_compilation_testing 4042---------------------- 4043* `Skip tests excluded by the preprocessor 4044 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188650>`__ 4045 (issue `#321088147 <https://issues.pigweed.dev/issues/321088147>`__) 4046 4047pw_console 4048---------- 4049* `Upgrade to ptpython 3.0.25 4050 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188146>`__ 4051 (issue `#320509105 <https://issues.pigweed.dev/issues/320509105>`__) 4052 4053pw_containers 4054------------- 4055The destructors for ``pw::InlineQueue``, ``pw::InlineDeque``, and 4056``pw::Vector`` are now protected to prevent use with ``delete`` or 4057``std::unique_ptr`` and to prevent unusable declarations. 4058 4059* `Protected InlineQueue/Deque<T> destructor 4060 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187802>`__ 4061* `Make Vector<T> destructor protected 4062 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187801>`__ 4063 4064pw_digital_io 4065------------- 4066The private virtual API requirements for 4067:cpp:class:`pw::digital_io::DigitalIoOptional` are now documented because 4068they are needed when implementing concrete backends for ``pw_digital_io``. 4069 4070* `Document the private virtual API requirements 4071 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187669>`__ 4072* `Remove conditional interrupt disabling requirements 4073 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187668>`__ 4074 4075pw_doctor 4076--------- 4077* `Update expected tools on POSIX 4078 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188102>`__ 4079 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4080 4081pw_env_setup 4082------------ 4083* `Retrieve qemu on ARM Macs 4084 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187806>`__ 4085 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4086 4087pw_hdlc 4088------- 4089* `Remove unused targets 4090 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188226>`__ 4091* `Remove unused rpc packet processor target 4092 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188233>`__ 4093 4094pw_ide 4095------ 4096* `Fix typo 4097 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188423>`__ 4098* `Launch activated terminals in VSC 4099 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187195>`__ 4100 (issue `#318583596 <https://issues.pigweed.dev/issues/318583596>`__) 4101* `VSC extension 0.1.3 release 4102 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186726>`__ 4103 4104pw_kvs 4105------ 4106The new ``pw::kvs::FlashMemory::EndOfWrittenData()`` method returns the first 4107byte of erased flash that has no more written bytes. 4108 4109* `Add EndOfWrittenData() 4110 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188872>`__ 4111 4112pw_persistent_ram 4113----------------- 4114* `Add more tests to PersistentBuffer 4115 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188106>`__ 4116 (issue `#320538351 <https://issues.pigweed.dev/issues/320538351>`__) 4117 4118pw_polyfill 4119----------- 4120``pw_polyfill/static_assert.h`` now provides a C23-style ``static_assert()``. 4121See :ref:`module-pw_polyfill-static_assert`. 4122 4123* `Remove _Static_assert workaround 4124 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188277>`__ 4125* `Provide static_assert polyfill for C 4126 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188137>`__ 4127 4128pw_preprocessor 4129--------------- 4130The new ``PW_ADD_OVERFLOW``, ``PW_SUB_OVERFLOW``, and ``PW_MUL_OVERFLOW`` 4131macros can be used to :ref:`check for integer overflows 4132<module-pw_preprocessor-integer-overflow>`. 4133 4134* `Add integer-overflow macros 4135 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187653>`__ 4136 4137pw_presubmit 4138------------ 4139* `Add more info to todo summary 4140 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188750>`__ 4141* `Trim paths in ninja summary 4142 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188070>`__ 4143* `No copyright for MODULE.bazel.lock 4144 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188170>`__ 4145* `Exclude docs on Mac ARM hosts 4146 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187784>`__ 4147 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4148 4149pw_protobuf 4150----------- 4151* `Fix another &*nullptr in test 4152 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188717>`__ 4153* `Fix undefined pointer deref in fuzz test 4154 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188281>`__ 4155* `Fix out-of-range read 4156 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188095>`__ 4157 (issue `#314803709 <https://issues.pigweed.dev/issues/314803709>`__) 4158 4159pw_thread 4160--------- 4161* `Add missing include 4162 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/189212>`__ 4163 4164pw_tokenizer 4165------------ 4166A longstanding GCC bug that caused tokenized logging within a function template 4167to not work has been fixed. 4168 4169* `Compensate for GCC template bug 4170 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188424>`__ 4171 (issue `#321306079 <https://issues.pigweed.dev/issues/321306079>`__) 4172* `Allow use of static_assert in C99 test 4173 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188357>`__ 4174* `Adjust rustdocs deps to only be in std environments 4175 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188138>`__ 4176 4177pw_tool 4178------- 4179This incomplete module has been deleted. 4180 4181* `Delete module 4182 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188919>`__ 4183 4184pw_toolchain_bazel 4185------------------ 4186The ``//pw_toolchain_bazel`` directory is now configured to be compiled as a 4187standalone Bazel module. Initial support for :py:class:`pw_cc_feature` has been 4188added, which completes the initial set of rules required for building 4189toolchains with :ref:`module-pw_toolchain_bazel`. 4190 4191* `Remove deprecated action names 4192 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188991>`__ 4193 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4194* `Migrate to type-safe action names 4195 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187896>`__ 4196 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4197* `Require action labels in providers 4198 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188810>`__ 4199 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4200* `Define actions names as labels 4201 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187895>`__ 4202 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4203* `Make the pw_toolchain repository into a bazel module 4204 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187932>`__ 4205 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4206* `Add pw_cc_feature 4207 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181755>`__ 4208 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 4209* `Set exec_transition_for_inputs to False 4210 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188361>`__ 4211 (issue `#321268080 <https://issues.pigweed.dev/issues/321268080>`__) 4212* `Remove check_deps_provide 4213 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187894>`__ 4214 (issue `#320177248 <https://issues.pigweed.dev/issues/320177248>`__) 4215 4216pw_transfer 4217----------- 4218The C++ client for :ref:`module-pw_transfer` now uses handles for 4219cancellation. 4220 4221* `Remove duplicated Builder call 4222 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188855>`__ 4223* `Use handles for cancellation in C++ client 4224 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/134290>`__ 4225 (issue `#272840682 <https://issues.pigweed.dev/issues/272840682>`__) 4226 4227pw_web 4228------ 4229* `Init. improvements to resize performance 4230 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188050>`__ 4231 (issue `#320475138 <https://issues.pigweed.dev/issues/320475138>`__) 4232 4233Build 4234===== 4235* `Use Python 3.11 4236 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182191>`__ 4237 (issue `#310293060 <https://issues.pigweed.dev/issues/310293060>`__) 4238* `Use pre-release of rules_python 4239 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188852>`__ 4240 (issue `#310293060 <https://issues.pigweed.dev/issues/310293060>`__) 4241* `Use rules_python in Bazel build files 4242 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188690>`__ 4243 4244Targets 4245======= 4246 4247host_device_simulator 4248--------------------- 4249* `Update docs 4250 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187430>`__ 4251 4252Docs 4253==== 4254* `How to use a single Pigweed module in Bazel 4255 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188922>`__ 4256* `Add pre-reqs for non-Debian Linux distros 4257 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188770>`__ 4258 (issue `#320519800 <https://issues.pigweed.dev/issues/320519800>`__) 4259* `Auto-generate module source code and issues URLs 4260 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187312>`__ 4261* `Minor updates to the FAQ 4262 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188252>`__ 4263* `Update changelog 4264 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187614>`__ 4265 4266SEEDs 4267===== 4268* (SEED-0123) `Claim SEED number 4269 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188140>`__ 4270* (SEED-0124) `Claim SEED number 4271 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188671>`__ 4272 4273Miscellaneous 4274============= 4275* `Remove module-level README.md files 4276 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188374>`__ 4277* `Fix how we ignore bazel- directories 4278 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/188940>`__ 4279 4280------------ 4281Jan 12, 2024 4282------------ 4283Highlights (Dec 29, 2023 to Jan 12, 2024): 4284 4285* :ref:`docs-changelog-20240112-pw_allocator` added parameter to make it easier 4286 to work with allocation metadata in a block's header and made it easier to 4287 omit flag-related code for blocks. 4288* ``pw_cc_library`` has been replaced with the Bazel-native ``cc_library``. 4289* :ref:`docs-changelog-20240112-pw_thread_stl` disallowed 4290 ``std::thread::detach()`` on Windows because it's known to randomly hang 4291 indefinitely. 4292 4293Active SEEDs 4294============ 4295Help shape the future of Pigweed! Please visit :ref:`seed-0000` 4296and leave feedback on the RFCs (i.e. SEEDs) marked 4297``Open for Comments``. 4298 4299Modules 4300======= 4301 4302.. _docs-changelog-20240112-pw_allocator: 4303 4304pw_allocator 4305------------ 4306A new template parameter, ``kNumExtraBytes``, was added to ``Block``. This 4307parameter reserves space in the block's header for storing and fetching 4308allocation metadata. 4309 4310The ``kMaxSize`` parameter was removed from ``Block`` 4311and replaced by ``kNumFlags`` to make it easier to omit flag-related code when 4312not needed and define fewer block types rather than one for each allocation 4313pool size. 4314 4315* `Fix source file list in soong rule 4316 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187127>`__ 4317* `Fix MulitplexAllocator's deps 4318 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186873>`__ 4319* `Add extra bytes to Block 4320 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185954>`__ 4321* `Add initializing constructors 4322 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185953>`__ 4323* `Add note to AllocatorMetricProxy tests 4324 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185952>`__ 4325 4326pw_bluetooth_sapphire 4327--------------------- 4328* `Advertise FCS Option 4329 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186850>`__ 4330 (issue `#318002648 <https://issues.pigweed.dev/issues/318002648>`__) 4331* `Refactor method and variable names 4332 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182899>`__ 4333 (issue `#312645622 <https://issues.pigweed.dev/issues/312645622>`__) 4334* `Revert commits to get to a known working state 4335 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183087>`__ 4336 4337pw_containers 4338------------- 4339* `Remove DestructorHelper from vector 4340 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185521>`__ 4341 (issue `#301329862 <https://issues.pigweed.dev/issues/301329862>`__) 4342 4343pw_doctor 4344--------- 4345* `Fix overridden package check 4346 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187110>`__ 4347 4348pw_emu 4349------ 4350* `Remove psutil dependency 4351 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186830>`__ 4352 (issue `#316080297 <https://issues.pigweed.dev/issues/316080297>`__) 4353 4354pw_env_setup 4355------------ 4356* `Update ref to bazel version file 4357 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187118>`__ 4358* `Drop reference to rust version file 4359 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187113>`__ 4360* `Use correct arch for cipd in Bazel 4361 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184903>`__ 4362 (issue `#234879770 <https://issues.pigweed.dev/issues/234879770>`__) 4363* `Switch to Fuchsia ninja CIPD package 4364 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184078>`__ 4365 (issue `#311711323 <https://issues.pigweed.dev/issues/311711323>`__) 4366* `Prevent NPM output from interrupting bootstrap 4367 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186510>`__ 4368 4369pw_ide 4370------ 4371The new ``pigweed.enforceExtensionRecommendations`` configuration option for 4372VS Code makes extension recommendation enforcement optional. When you set this 4373flag to ``true`` in your project's ``extension.json``, recommended extensions 4374will need to be installed and non-recommended extensions will need to be 4375disabled. 4376 4377You can now submit Pigweed issues through VS Code. Open the Command Palette 4378and type ``Pigweed: File Bug``. 4379 4380* `Add Jest testing to VSC extension 4381 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187126>`__ 4382* `Make VSC extension enforcement an option 4383 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187170>`__ 4384* `Support alternate \`clangd\` paths 4385 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186730>`__ 4386 (issue `#318413766 <https://issues.pigweed.dev/issues/318413766>`__) 4387* `VSC extension 0.1.2 release 4388 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184907>`__ 4389* `Fix CLI command docs 4390 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184955>`__ 4391* `Allow submitting bugs from VSC 4392 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184908>`__ 4393* `Document \`compdb_gen_cmd\` 4394 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184899>`__ 4395* `Improve VSC extension UX 4396 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184990>`__ 4397 4398.. _docs-changelog-20240112-pw_log: 4399 4400pw_log 4401------ 4402The Python API of the log decoder now accepts a ``logging.Logger`` or 4403``logging.LoggerAdapter`` instance as the default device logger. Previously 4404it only accepted ``logging.Logger``. 4405 4406* `Let Device accept logger adapter 4407 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187119>`__ 4408 4409pw_log_zephyr 4410------------- 4411* `Add missing include for tokenized logging 4412 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186810>`__ 4413 4414pw_multibuf 4415----------- 4416* `Add soong support 4417 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186815>`__ 4418 4419pw_protobuf 4420----------- 4421* `Fix bool overflow 4422 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186801>`__ 4423 (issue `#318732334 <https://issues.pigweed.dev/issues/318732334>`__) 4424* `Fix nullptr dereference in fuzz test 4425 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186800>`__ 4426 (issue `#314829525 <https://issues.pigweed.dev/issues/314829525>`__) 4427* `Don't crash on invalid field number 4428 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186724>`__ 4429 (issue `#314803709 <https://issues.pigweed.dev/issues/314803709>`__) 4430* `Fix conflict in messages with fields named 'other' 4431 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186951>`__ 4432* `Properly fuzz nested encoders/decoders 4433 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186723>`__ 4434 (issue `#314803709 <https://issues.pigweed.dev/issues/314803709>`__) 4435* `Fully qualify message namespace 4436 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186822>`__ 4437 4438pw_rpc 4439------ 4440The new ``PW_RPC_METHOD_STORES_TYPE`` config option provides a way at runtime 4441to determine a method's type. This is useful when implementing a translation 4442layer from another RPC system. Most Pigweed projects won't need this feature so 4443it's disabled by default. 4444 4445* `Have Method optionally store it's MethodType 4446 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185773>`__ 4447* `Run tests with completion callback config enabled 4448 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187172>`__ 4449* `Add some missing deps in Bazel targets 4450 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186934>`__ 4451 (issue `#318850523 <https://issues.pigweed.dev/issues/318850523>`__) 4452 4453pw_stream 4454--------- 4455* `Make stream adapters use reinterpret_cast 4456 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186766>`__ 4457 (issue `#314829006 <https://issues.pigweed.dev/issues/314829006>`__) 4458 4459pw_system 4460--------- 4461See :ref:`docs-changelog-20240112-pw_log`. 4462 4463* `Let Device accept logger adapter 4464 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187119>`__ 4465 4466.. _docs-changelog-20240112-pw_thread_stl: 4467 4468pw_thread_stl 4469------------- 4470Using ``std::thread::detach()`` on Windows has been disallowed. When compiling 4471with MinGW on Windows, ``std::thread::detach()`` is known to randomly hang 4472indefinitely. 4473 4474* `Don't allow std::thread::detach() on Windows 4475 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186570>`__ 4476 (issue `#317922402 <https://issues.pigweed.dev/issues/317922402>`__) 4477 4478pw_tokenizer 4479------------ 4480* `Fix undefined dereference in fuzz test 4481 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186821>`__ 4482 (issue `#314829057 <https://issues.pigweed.dev/issues/314829057>`__) 4483* `Make Rust hashing function const 4484 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186273>`__ 4485 4486pw_toolchain 4487------------ 4488``pw_toolchain`` now adds ``-fno-ms-compatibility`` to ``cflags`` on Windows. 4489When building with ``clang`` on Windows targeting ``msvc``, ``clang`` 4490previously enabled a ``ms-compatibility`` mode that broke Pigweed's macro 4491magic. 4492 4493* `Remove duplicate config from Cortex-A32 toolchain 4494 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187270>`__ 4495* `Add -fno-ms-compatibility to cflags on Windows 4496 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187173>`__ 4497 (issue `#297542996 <https://issues.pigweed.dev/issues/297542996>`__) 4498 4499pw_unit_test 4500------------ 4501* `Fix sanitize(r) directive 4502 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186650>`__ 4503 4504pw_web 4505------ 4506* `Fix autoscroll when window is resized 4507 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187193>`__ 4508 (issue `#305022742 <https://issues.pigweed.dev/issues/305022742>`__) 4509 4510Build 4511===== 4512 4513Bazel 4514----- 4515All modules now support the injection of module configuration via 4516``label_flags``. 4517 4518``pw_cc_library`` has been replaced with the Bazel-native ``cc_library``. 4519 4520* `Update to Bazel 7.0.0 release version 4521 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186935>`__ 4522* `Add module configuration support 4523 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186725>`__ 4524 (issue `#234872811 <https://issues.pigweed.dev/issues/234872811>`__) 4525* `Remove pw_cc_library 4526 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186770>`__ 4527 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 4528* `Remove references to pw_cc_library 4529 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186765>`__ 4530 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 4531* `Replace pw_cc_library with cc_library 4532 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186763>`__ 4533 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 4534 4535OS support 4536========== 4537 4538Zephyr 4539------ 4540You can now enable the ``pw_thread/sleep.h`` library in your Zephyr project by 4541setting ``CONFIG_PIGWEED_THREAD_SLEEP=Y`` in your Kconfig. 4542 4543* `Link pw_thread.sleep with appropriate kConfig 4544 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186825>`__ 4545 4546Docs 4547==== 4548* `Add example of conditionally enabling code based on module config 4549 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187171>`__ 4550* `Mention pw format tool 4551 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186851>`__ 4552* `Update changelog 4553 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186470>`__ 4554* `Rework first-time setup 4555 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185730>`__ 4556* `Add troubleshooting section to Bazel quickstart 4557 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186237>`__ 4558 4559SEEDs 4560===== 4561* (SEED-0001) `Fix typo and formatting 4562 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187273>`__ 4563* (SEED-0114) `Fix Compiler Explorer link 4564 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187330>`__ 4565* (SEED-0122) `Claim SEED number 4566 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/187120>`__ 4567 4568------------ 4569Dec 29, 2023 4570------------ 4571Highlights (Dec 15, 2023 to Dec 29, 2023): 4572 4573* The new ``pw::allocator::MultiplexAllocator`` abstract class makes it easier 4574 to dispatch between allocators depending on an app-specific request type ID. 4575* ``pw_base64`` now has initial Rust support. 4576* ``pw_malloc_freertos``, a new FreeRTOS backend for :ref:`module-pw_malloc`, 4577 was added. 4578* The new ``pw::digital_io::Polarity`` helper enum makes it easier for backends 4579 to map logical levels to physical levels. 4580* The Rust macro ``tokenize_to_buffer!`` in the ``pw_tokenizer`` Rust crate now 4581 supports concatenation of format strings via the ``PW_FMT_CONCAT`` operator. 4582* The :ref:`module-pw_hdlc` and :ref:`module-pw_result` docs were updated to 4583 follow our latest :ref:`docs-contrib-docs-modules`. 4584 4585Active SEEDs 4586============ 4587Help shape the future of Pigweed! Please visit :ref:`seed-0000` 4588and leave feedback on the RFCs (i.e. SEEDs) marked 4589``Open for Comments``. 4590 4591Modules 4592======= 4593 4594pw_allocator 4595------------ 4596The new ``pw::allocator::MultiplexAllocator`` abstract class makes it easier to 4597dispatch between allocators depending on an app-specific request type ID. 4598 4599* `Add MultiplexAllocator 4600 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185027>`__ 4601* `Add WithMetrics interface 4602 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185296>`__ 4603* `Split up test utilities 4604 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185295>`__ 4605 4606pw_base64 4607--------- 4608``pw_base64`` now has initial Rust support. See `Crate pw_base64 4609</rustdoc/pw_base64/>`_. 4610 4611* `Add initial Rust support 4612 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185210>`__ 4613 4614pw_containers 4615------------- 4616* `Remove DestructorHelper from queues 4617 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185030>`__ 4618 (issue `#301329862 <https://issues.pigweed.dev/issues/301329862>`__) 4619 4620pw_digital_io 4621------------- 4622`pw::digital_io::Polarity <https://cs.opensource.google/pigweed/pigweed/+/main:pw_digital_io/public/pw_digital_io/polarity.h>`_ 4623was added to make it easier for backends to map logical levels to physical levels. 4624 4625* `Add helper Polarity enum 4626 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185435>`__ 4627 4628pw_emu 4629------ 4630* `Use code-block instead of code 4631 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186170>`__ 4632 4633pw_hdlc 4634------- 4635* `Follow new module docs guidelines 4636 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184799>`__ 4637 4638pw_malloc 4639--------- 4640``pw_malloc_freertos``, a FreeRTOS backend for ``pw_malloc`` was added. 4641 4642* `Require specifying a backend in bazel build 4643 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185441>`__ 4644* `Add freertos backend 4645 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185452>`__ 4646 4647pw_presubmit 4648------------ 4649* `Use local prettier + eslint versions 4650 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185144>`__ 4651 4652pw_result 4653--------- 4654* `Rework docs to new standard 4655 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185147>`__ 4656 4657pw_rpc 4658------ 4659* `Adjust alarm_timer_test 4660 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186274>`__ 4661 (issue `#317990451 <https://issues.pigweed.dev/issues/317990451>`__) 4662 4663pw_snapshot 4664----------- 4665* `Clean up RISCV CpuArchitecture 4666 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185690>`__ 4667* `Add RISCV CpuArchitecture to metadata 4668 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185630>`__ 4669 4670pw_thread_stl 4671------------- 4672* `Disable Bazel tests failing on Windows 4673 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186242>`__ 4674 (issue `#317922402 <https://issues.pigweed.dev/issues/317922402>`__) 4675* `Disable tests failing on Windows 4676 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186253>`__ 4677 (issue `#317922402 <https://issues.pigweed.dev/issues/317922402>`__) 4678 4679pw_tokenizer 4680------------ 4681The Rust macro ``tokenize_to_buffer!`` now supports concatenation of format 4682strings via the ``PW_FMT_CONCAT`` operator. 4683 4684* `Support \`PW_FMT_CONCAT\` in \`tokenize_to_buffer!\` 4685 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185211>`__ 4686 4687pw_toolchain 4688------------ 4689The need to provide an ``unknown`` value for various ``pw_cc_toolchain`` fields 4690has been removed. 4691 4692* `Remove "unknown" from various fields 4693 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185170>`__ 4694 (issue `#315206506 <https://issues.pigweed.dev/issues/315206506>`__) 4695 4696pw_transfer 4697----------- 4698* `Improve Python stream reopening and closing 4699 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184931>`__ 4700 4701pw_unit_test 4702------------ 4703* `Silence ASAN error in TestInfo 4704 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185654>`__ 4705 4706pw_watch 4707-------- 4708* `Build directory exclude list handling 4709 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185772>`__ 4710 (issue `#317241320 <https://issues.pigweed.dev/issues/317241320>`__) 4711 4712pw_web 4713------ 4714* `Add state UI unit tests 4715 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184909>`__ 4716 (issue `#316218222 <https://issues.pigweed.dev/issues/316218222>`__) 4717 4718SEEDs 4719===== 4720* `Add facilitators to metadata and generated table 4721 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185932>`__ 4722* (SEED-0105) `Use code-block instead of code 4723 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/186171>`__ 4724 4725------------ 4726Dec 15, 2023 4727------------ 4728Highlights (Dec 1, 2023 to Dec 15, 2023): 4729 4730* We started implementing our new async API, :ref:`module-pw_async2`. 4731* We deprecated the use of ``gtest/gtest.h`` header paths for tests intended 4732 to build against ``pw_unit_test``. See 4733 :ref:`docs-changelog-20231215-pw_unit_test` for details. 4734 4735 .. note:: 4736 4737 All the commits titled ``Use unit test framework`` in the ``Dec 15, 2023`` 4738 update are related to this change. 4739 4740* The :ref:`module-pw_alignment` and :ref:`module-pw_emu` docs have been updated 4741 to follow our latest :ref:`docs-contrib-docs-modules`. 4742* ``pw_system`` now supports an :ref:`extra logging channel 4743 <module-pw_system-logchannel>`. 4744* ``pw_toolchain_bazel`` has a new :ref:`get started guide 4745 <module-pw_toolchain_bazel-get-started>`. 4746 4747Active SEEDs 4748============ 4749Help shape the future of Pigweed! Please visit :ref:`seed-0000` 4750and leave feedback on the RFCs (i.e. SEEDs) marked 4751``Open for Comments``. 4752 4753Modules 4754======= 4755 4756pw_alignment 4757------------ 4758* `Follow the new docs guidelines 4759 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181432>`__ 4760 4761pw_allocator 4762------------ 4763* `Fix metric disabling 4764 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185026>`__ 4765* `Add support for fuzzing Allocator implementations 4766 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178215>`__ 4767* `Use unit test framework 4768 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183270>`__ 4769 4770pw_analog 4771--------- 4772* `Use unit test framework 4773 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183270>`__ 4774 4775pw_async2 4776--------- 4777We started implementing our new async API, :ref:`module-pw_async2`. 4778 4779* `Implement initial async API 4780 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182727>`__ 4781 4782pw_base64 4783--------- 4784* `Use unit test framework 4785 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183299>`__ 4786 4787pw_blob_store 4788------------- 4789* `Use unit test framework 4790 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183299>`__ 4791 4792pw_bluetooth 4793------------ 4794* `Add LE Read Buffer Size [v2] command complete event 4795 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185070>`__ 4796 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 4797* `Use unit test framework 4798 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184312>`__ 4799* `Fix LEExtendedCreateConnectionCommandV1 data interleaving 4800 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183950>`__ 4801 (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) 4802* `Fix ExtendedCreateConnectionV1 4803 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183930>`__ 4804 (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) 4805* `Add new HCI definition 4806 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183771>`__ 4807 (issue `#311639690 <https://issues.pigweed.dev/issues/311639690>`__) 4808* `Re-format emboss files 4809 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183770>`__ 4810 4811pw_bluetooth_sapphire 4812--------------------- 4813* `Read ISO data buffer info on startup 4814 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184052>`__ 4815 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 4816* `LE Read Buffer Size [v2] 4817 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183772>`__ 4818 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 4819* `Add LE Set Host Feature 4820 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184050>`__ 4821 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 4822* `Update name of ISO host support bit 4823 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184051>`__ 4824 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 4825* `Fix BrEdrConnectionManager.Inspect test 4826 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183304>`__ 4827 (issue `#42086629 <https://issues.fuchsia.dev/issues/42086629>`__) 4828 4829pw_build 4830-------- 4831* `Fix use of TARGET_COMPATIBLE_WITH_HOST_SELECT in external repo 4832 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184095>`__ 4833 4834pw_bytes 4835-------- 4836* `Use unit test framework 4837 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183354>`__ 4838 4839pw_checksum 4840----------- 4841* `Use unit test framework 4842 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183300>`__ 4843 4844pw_chrono 4845--------- 4846* `Use unit test framework 4847 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183300>`__ 4848 4849pw_cli 4850------ 4851You can now disable the printing of the banner by setting ``PW_ENVSETUP_QUIET`` 4852or ``PW_ENVSETUP_NO_BANNER``. 4853 4854* `Allow banner to be suppressed 4855 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184970>`__ 4856 4857pw_console 4858---------- 4859* `Disable private attr auto-completion 4860 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184644>`__ 4861 4862pw_containers 4863------------- 4864* `Fix missing include 4865 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184961>`__ 4866* `Fix IntrusiveList::Item move assignment test 4867 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182951>`__ 4868 (issue `#303634979 <https://issues.pigweed.dev/issues/303634979>`__) 4869* `Add missing dep for IntrusiveList test 4870 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184245>`__ 4871 4872pw_digital_io 4873------------- 4874* `Use unit test framework 4875 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183301>`__ 4876 4877pw_docgen 4878--------- 4879We updated the docs server to use native hot reloading. 4880 4881* `Update Pigweed Live schedule 4882 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184960>`__ 4883* `Add new docs server 4884 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181011>`__ 4885 4886pw_emu 4887------ 4888We're handling QEMU startup errors more gracefully now. 4889 4890* `Better handling for startup errors 4891 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184859>`__ 4892 (issue `#315868463 <https://issues.pigweed.dev/issues/315868463>`__) 4893* `qemu: Improve the QMP handshake handling 4894 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184858>`__ 4895 (issue `#315516286 <https://issues.pigweed.dev/issues/315516286>`__) 4896* `Link all the docs to each other 4897 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184310>`__ 4898* `Update docs to follow new guidelines 4899 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183223>`__ 4900 4901pw_env_setup 4902------------ 4903The upstream Pigweed bootstrap script now runs ``npm install``. We worked 4904on native macOS support that doesn't rely on Rosetta. Use the 4905``--disable-rosetta`` flag to try it out. Note that the work isn't complete 4906yet. 4907 4908* `Run npm install on bootstrap 4909 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184639>`__ 4910* `Remove "untested" warning 4911 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182813>`__ 4912* `Use ARM protoc version on ARM Macs 4913 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184930>`__ 4914 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4915* `Fix typo in error message 4916 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184910>`__ 4917* `Add flag to disable Rosetta 4918 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184804>`__ 4919 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4920* `Retrieve armgcc for ARM Macs 4921 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184785>`__ 4922 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4923* `Change case of armgcc version 4924 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184798>`__ 4925 (issue `#315998985 <https://issues.pigweed.dev/issues/315998985>`__) 4926* `Roll cipd client 4927 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184277>`__ 4928* `Bump executing Python package 4929 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183838>`__ 4930 4931pw_file 4932------- 4933* `Use unit test framework 4934 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183301>`__ 4935 4936pw_format 4937--------- 4938Format strings can now be built by macros at compile-time by specifying the 4939format string as a set of string literals separated by the custom 4940``PW_FMT_CONCAT`` keyword. 4941 4942* `Allow format strings to be composed at compile time 4943 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184200>`__ 4944 4945pw_fuzzer 4946--------- 4947* `Fix ambiguous reference to ContainerOf 4948 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184284>`__ 4949 4950pw_hdlc 4951------- 4952* `Use unit test framework 4953 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183302>`__ 4954 4955pw_hex_dump 4956----------- 4957* `Use unit test framework 4958 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183302>`__ 4959 4960pw_i2c 4961------ 4962* `Use unit test framework 4963 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183302>`__ 4964 4965pw_ide 4966------ 4967``pw_ide`` now handles additional clang toolchains if your project specifies one 4968that's different from the one provided by Pigweed. We also shipped several UX 4969improvements to the Visual Studio Code extension. 4970 4971* `Add command to build VSC extension 4972 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184992>`__ 4973* `Remove VSIX installation stuff 4974 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184991>`__ 4975* `Don't warn on missing extensions.json 4976 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184895>`__ 4977* `Alpha-sort the list of targets in VSC 4978 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184864>`__ 4979* `Auto-run build system command 4980 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184809>`__ 4981* `Update VSC Python config 4982 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184820>`__ 4983* `Fix condition for Windows platform 4984 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184730>`__ 4985* `Fix for clang installed to project dir 4986 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184010>`__ 4987 (issue `#314693384 <https://issues.pigweed.dev/issues/314693384>`__) 4988 4989pw_kvs 4990------ 4991* `Use unit test framework 4992 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183307>`__ 4993 4994pw_libc 4995------- 4996* `Use unit test framework 4997 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183307>`__ 4998 4999pw_log 5000------ 5001* `Use unit test framework 5002 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183307>`__ 5003 5004pw_malloc 5005--------- 5006* `Use unit test framework 5007 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183308>`__ 5008 5009pw_metric 5010--------- 5011* `Use unit test framework 5012 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183308>`__ 5013 5014pw_perf_test 5015------------ 5016* `Refactor event handler types 5017 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179611>`__ 5018* `Use unit test framework 5019 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183309>`__ 5020 5021pw_presubmit 5022------------ 5023* `Add LUCI_CONTEXT to ctx 5024 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184793>`__ 5025* `Merge some of the "misc" checks 5026 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184778>`__ 5027* `Better support downstream GnGenNinja use 5028 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183837>`__ 5029 (issue `#314818274 <https://issues.pigweed.dev/issues/314818274>`__) 5030* `Automatically compute trim_prefix 5031 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183100>`__ 5032 (issue `#282164634 <https://issues.pigweed.dev/issues/282164634>`__) 5033 5034pw_random 5035--------- 5036* `Use unit test framework 5037 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183350>`__ 5038 5039pw_result 5040--------- 5041* `Use unit test framework 5042 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183350>`__ 5043 5044pw_rust 5045------- 5046* `Remove excess newline in doc command line 5047 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182451>`__ 5048 5049pw_snapshot 5050----------- 5051* `Use unit test framework 5052 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183351>`__ 5053 5054pw_status 5055--------- 5056* `Docs tweak 5057 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185146>`__ 5058 5059pw_string 5060--------- 5061* `Fix string_test build error under new clang revision 5062 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184219>`__ 5063 (issue `#315190328 <https://issues.pigweed.dev/issues/315190328>`__) 5064* `Add missing include 5065 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183233>`__ 5066 (issue `#314130408 <https://issues.pigweed.dev/issues/314130408>`__) 5067 5068pw_symbolizer 5069------------- 5070* `Fix symbolizer_test 5071 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184226>`__ 5072 (issue `#315190328 <https://issues.pigweed.dev/issues/315190328>`__) 5073 5074pw_system 5075--------- 5076We added an :ref:`extra logging channel <module-pw_system-logchannel>`. 5077 5078* `Support extra logging channel 5079 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184410>`__ 5080 (issue `#315540660 <https://issues.pigweed.dev/issues/315540660>`__) 5081 5082pw_thread 5083--------- 5084* `Use unit test framework 5085 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183352>`__ 5086 5087pw_tls_client 5088------------- 5089* `Use unit test framework 5090 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183352>`__ 5091 5092pw_tokenizer 5093------------ 5094* `Mark \`pw_tokenizer_core\` as \`no_std\` 5095 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183197>`__ 5096 5097pw_toolchain 5098------------ 5099The Arm GCC toolchain now uses :ref:`module-pw_toolchain_bazel`. 5100 5101* `Move ARM toolchain to new API 5102 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183160>`__ 5103 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5104* `Use action configs from LLVM tool repo 5105 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183010>`__ 5106 (issue `#311257445 <https://issues.pigweed.dev/issues/311257445>`__) 5107 5108pw_toolchain_bazel 5109------------------ 5110Support for :py:attr:`additional_files` was added to reduce ``*_files`` 5111boilerplate. We added a new :ref:`get started guide 5112<module-pw_toolchain_bazel-get-started>`. 5113 5114* `Fix naming in docs 5115 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184753>`__ 5116* `Add misc_files group 5117 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184698>`__ 5118 (issue `#305737273 <https://issues.pigweed.dev/issues/305737273>`__) 5119* `Add automagic toolchain file collection 5120 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184299>`__ 5121 (issue `#305737273 <https://issues.pigweed.dev/issues/305737273>`__) 5122* `Add getting started guide 5123 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184281>`__ 5124 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5125* `Remove legacy tool API 5126 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184280>`__ 5127* `Remove deprecated API 5128 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183235>`__ 5129 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5130* `Rename build file templates part 2/2 5131 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183187>`__ 5132 5133pw_trace 5134-------- 5135* `Use unit test framework 5136 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183355>`__ 5137 5138pw_transfer 5139----------- 5140We added support for setting different timeouts for clients and servers. 5141See ``PW_TRANSFER_DEFAULT_MAX_CLIENT_RETRIES`` and 5142``PW_TRANSFER_DEFAULT_MAX_SERVER_RETRIES`` in :ref:`module-pw_transfer-config`. 5143 5144* `Remove small hardcoded timeout in proxy_test 5145 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184638>`__ 5146 (issue `#315459788 <https://issues.pigweed.dev/issues/315459788>`__) 5147* `Allow setting different timeouts for client and server 5148 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184210>`__ 5149* `Update integration test documentation 5150 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183163>`__ 5151 (issue `#250947749 <https://issues.pigweed.dev/issues/250947749>`__) 5152 5153.. _docs-changelog-20231215-pw_unit_test: 5154 5155pw_unit_test 5156------------ 5157We deprecated use of ``gtest/gtest.h`` header paths for tests intended to build 5158against ``pw_unit_test``. Historically, we supported using the ``gtest/gtest.h`` 5159include path to support compiling a test as either a ``pw_unit_test`` or with 5160the full GoogleTest on larger targets like desktop. However, this created a 5161problem since ``pw_unit_test`` only implements a subset of the GoogleTest API. 5162With the new approach, we require tests that are intended to compile on devices 5163to directly include ``pw_unit_test/framework.h``. In cases where GoogleTest is 5164available, that header will redirect to GoogleTest. 5165 5166* `Add compatibility in bazel 5167 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184911>`__ 5168 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5169* `Use googletest backend as a dep 5170 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184656>`__ 5171 (issue `#315351886 <https://issues.pigweed.dev/issues/315351886>`__) 5172* `Fix building fuzztests with cmake 5173 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184268>`__ 5174* `Use unit test framework 5175 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183353>`__ 5176* `Create facade's header 5177 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183194>`__ 5178 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5179 5180pw_varint 5181--------- 5182* `Use unit test framework 5183 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183354>`__ 5184 5185pw_web 5186------ 5187* `Handle unrequested responses after call_id changes 5188 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184320>`__ 5189* `Add support for call_id in RPC calls 5190 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160792>`__ 5191* `Add Mocha and Jest global vars to ESLint 5192 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183931>`__ 5193* `Switch to pre-made subset of icon fonts 5194 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156852>`__ 5195 (issue `#287270736 <https://issues.pigweed.dev/issues/287270736>`__) 5196 5197Build 5198===== 5199* `Set Zephyr toolchain to llvm in presubmit 5200 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179170>`__ 5201 5202Targets 5203======= 5204* `Point deprecated flag to new backend 5205 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184262>`__ 5206* (stm32f429i_disc1) `Fix test runner 5207 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184378>`__ 5208 5209Language support 5210================ 5211* (Python) `Remove references to non-existing setup.py 5212 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182770>`__ 5213 5214OS support 5215========== 5216* (Zephyr) `Remove unecessary toolchain downloads & filter invalid targets 5217 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184072>`__ 5218 5219Docs 5220==== 5221.. todo-check: disable 5222 5223* `Remove inaccurate #include statements 5224 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/185190>`__ 5225 (issue `#295023422 <https://issues.pigweed.dev/issues/295023422>`__) 5226* `Add Bazel code coverage TODO 5227 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182812>`__ 5228 (issue `#304833225 <https://issues.pigweed.dev/issues/304833225>`__) 5229* `Add sort by alignment to size optimizations 5230 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184150>`__ 5231* `Fix build command typo 5232 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184170>`__ 5233* `Update changelog 5234 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183310>`__ 5235 5236.. todo-check: disable 5237 5238SEEDs 5239===== 5240* `Always use build metadata titles in index table 5241 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183750>`__ 5242* (SEED-0001) `Add section about SEEDs & code changes 5243 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177084>`__ 5244* (SEED-0001) `Update number selection guidance 5245 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184223>`__ 5246* SEED-0117) `Open for comments 5247 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184795>`__ 5248* (SEED-0121) `Claim SEED number 5249 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184225>`__ 5250 5251Miscellaneous 5252============= 5253* `Fix formatting after clang roll 5254 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/184752>`__ 5255 5256----------- 5257Dec 1, 2023 5258----------- 5259Highlights (Nov 17, 2023 to Dec 1, 2023): 5260 5261* We now have an auto-generated :ref:`seed-0000` that shows you the current 5262 status of all SEEDs. 5263* We've started implementing a :ref:`Rust API for pw_log 5264 <docs-changelog-20231201-pw_log>`. 5265* The :ref:`module-pw_alignment`, :ref:`module-pw_perf_test`, and 5266 :ref:`module-pw_status` docs were refactored to follow our latest 5267 :ref:`docs-contrib-docs-modules`. 5268 5269Active SEEDs 5270============ 5271Help shape the future of Pigweed! Please visit :ref:`seed-0000` 5272and leave feedback on the RFCs (i.e. SEEDs) marked 5273``Open for Comments``. 5274 5275Modules 5276======= 5277 5278pw_alignment 5279------------ 5280The :ref:`docs <module-pw_alignment>` were updated to follow our new 5281:ref:`docs-contrib-docs-modules`. 5282 5283* `Follow the new docs guidelines 5284 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181432>`__ 5285 5286pw_allocator 5287------------ 5288Utilities were added that make it easier to write tests for custom allocator 5289implementations. The metric collection API was refactored. CMake support for 5290heap poisoning was added. 5291 5292* `Fix use-after-free in ~AllocatorForTest 5293 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182950>`__ 5294* `Add AllocationTestHarness 5295 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183032>`__ 5296* `Add AllocationTestHarness 5297 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180532>`__ 5298* `Refactor metric collection 5299 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180456>`__ 5300* `Improve heap poisoning configuration 5301 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180372>`__ 5302 5303pw_bluetooth 5304------------ 5305* `Add LE Set Host Feature command 5306 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181770>`__ 5307 (issue `#311639040 <https://issues.pigweed.dev/issues/311639040>`__) 5308* `LE Request Peer SCA Complete event 5309 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182430>`__ 5310 (issue `#311639272 <https://issues.pigweed.dev/issues/311639272>`__) 5311* `Fix LEExtendedAdvertisingReportData tx_power to be an Int 5312 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181756>`__ 5313 5314pw_bluetooth_sapphire 5315--------------------- 5316Migration of :ref:`module-pw_bluetooth_sapphire` into Pigweed has begun. 5317 5318* `Use pw_test_group for fuzzers target 5319 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183195>`__ 5320 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5321* `Use pw_fuzzer_group 5322 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183168>`__ 5323 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5324* `Add sales pitch & roadmap docs 5325 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181834>`__ 5326 (issue `#312287470 <https://issues.pigweed.dev/issues/312287470>`__) 5327* `Add testonly to testing targets 5328 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182890>`__ 5329 (issue `#136961 <https://issues.fuchsia.dev/issues/136961>`__) 5330* `Revert commits to get to a known working state 5331 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183014>`__ 5332* `Use Write instead of UncheckedWrite 5333 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182734>`__ 5334* `Remove now unnecessary use of std::optional 5335 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182490>`__ 5336 (issue `#311256496 <https://issues.pigweed.dev/issues/311256496>`__) 5337* `Move LegacyLowEnergyScanner impl to base class 5338 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182017>`__ 5339 (issue `#305975969 <https://issues.pigweed.dev/issues/305975969>`__) 5340* `Create new LowEnergyScanner polymorphic methods 5341 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182016>`__ 5342 (issue `#305975969 <https://issues.pigweed.dev/issues/305975969>`__) 5343* `Extended scanning support, Fake(Controller|Peer) 5344 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182015>`__ 5345 (issue `#305975969 <https://issues.pigweed.dev/issues/305975969>`__) 5346* `Remove fidl fuzzer from build 5347 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182714>`__ 5348 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5349* `Use explicit constructor for SmartTask 5350 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182013>`__ 5351* `Follow pigweed style for test files 5352 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182012>`__ 5353* `Add OWNERS file 5354 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181759>`__ 5355* `Delete unused build file 5356 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181830>`__ 5357 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5358* `Fix pragma_once lint 5359 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181394>`__ 5360 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5361* `Fix linter errors 5362 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181305>`__ 5363 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5364* `Fix bazel formatting 5365 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181303>`__ 5366 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5367* `Remove ICU from bazel build 5368 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181391>`__ 5369 (issue `#311449154 <https://issues.pigweed.dev/issues/311449154>`__) 5370* `Refactor pw_bluetooth_sapphire & fix errors 5371 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173484>`__ 5372 (issue `#42051324 <https://issues.fuchsia.dev/issues/42051324>`__) 5373* `Update copyright headers 5374 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177800>`__ 5375 5376pw_build_info 5377------------- 5378* `Fix relative paths in Python tests 5379 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182681>`__ 5380 5381pw_containers 5382------------- 5383A warning was added about ``pw::Vector`` being unsafe with 5384non-trivially-destructible, self-referencing types. See 5385`b/313899658 <https://issues.pigweed.dev/issues/313899658>`_. 5386 5387* `Warn about unsafe Vector usage 5388 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182970>`__ 5389 (issue `#313899658 <https://issues.pigweed.dev/issues/313899658>`__) 5390 5391pw_format 5392--------- 5393A ``core::fmt`` macro helper was added. 5394 5395* `Add core::fmt macro helper 5396 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178537>`__ 5397 5398.. _docs-changelog-20231201-pw_log: 5399 5400pw_log 5401------ 5402An initial Rust API has been added. 5403 5404* `Add initial Rust API 5405 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178538>`__ 5406 5407pw_multibuf 5408----------- 5409* `Remove unused GN dep 5410 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183165>`__ 5411* `Remove dep on external gtest 5412 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183158>`__ 5413* `Make HeaderChunkRegionTracket public 5414 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183041>`__ 5415* `Fix cmake build file 5416 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182898>`__ 5417 5418pw_package 5419---------- 5420* `Add ICU package 5421 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181269>`__ 5422 (issue `#311449154 <https://issues.pigweed.dev/issues/311449154>`__) 5423 5424pw_perf_test 5425------------ 5426The :ref:`docs <module-pw_perf_test>` have been refactored. 5427 5428* `Rename logging event handler files 5429 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178915>`__ 5430* `Rework docs 5431 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179610>`__ 5432 5433pw_presubmit 5434------------ 5435.. todo-check: disable 5436 5437* `Automatically compute trim_prefix 5438 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183100>`__ 5439 (issue `#282164634 <https://issues.pigweed.dev/issues/282164634>`__) 5440* `Allow full issues.pigweed.dev urls in TODO links 5441 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183095>`__ 5442* `Fix TestTodoCheck.test_one_bug_legacy() 5443 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183094>`__ 5444* `No coverage upload for shadow builds 5445 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183093>`__ 5446 (issue `#282164634 <https://issues.pigweed.dev/issues/282164634>`__) 5447* `Remove some unused constants 5448 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183092>`__ 5449* `Add is_shadow/is_prod members to context 5450 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183077>`__ 5451* `Refactor the coverage options 5452 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182873>`__ 5453 (issue `#282164634 <https://issues.pigweed.dev/issues/282164634>`__) 5454* `Show diffs when parser tests fail 5455 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182971>`__ 5456* `Trim paths in Bazel summaries 5457 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182952>`__ 5458* `Correct the codesearch_host 5459 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182850>`__ 5460 (issue `#261779031 <https://issues.pigweed.dev/issues/261779031>`__) 5461* `Correct host in coverage presubmit 5462 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182702>`__ 5463 (issue `#261779031 <https://issues.pigweed.dev/issues/261779031>`__) 5464* `Fix coverage options 5465 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182666>`__ 5466 (issue `#261779031 <https://issues.pigweed.dev/issues/261779031>`__) 5467* `Add Fuchsia style to todo_check_with_exceptions 5468 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181433>`__ 5469 (issue `#307951383 <https://issues.pigweed.dev/issues/307951383>`__) 5470* `Create Sapphire presubmit step 5471 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177453>`__ 5472 (issue `#42051324 <https://issues.fuchsia.dev/issues/42051324>`__) 5473 5474.. todo-check: enable 5475 5476pw_protobuf 5477----------- 5478* `Add common_py_pb2 target 5479 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182650>`__ 5480 (issue `#309351244 <https://issues.pigweed.dev/issues/309351244>`__) 5481 5482pw_rpc 5483------ 5484* `Initialize serde_ members to nullptr 5485 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182851>`__ 5486 5487pw_rpc_transport 5488---------------- 5489* `Unblock sockets when stopping 5490 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181308>`__ 5491 (issue `#309680612 <https://issues.pigweed.dev/issues/309680612>`__) 5492 5493pw_sensor 5494--------- 5495* `Reserve SEED for configuring sensors 5496 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182805>`__ 5497* `Claim SEED number for high level view 5498 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182673>`__ 5499 5500pw_status 5501--------- 5502The :ref:`docs <module-pw_status>` have been refactored to follow 5503our latest :ref:`docs-contrib-docs-modules`. 5504 5505* `Adopt latest docs standard 5506 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181181>`__ 5507 5508pw_string 5509--------- 5510* `Add missing include 5511 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183233>`__ 5512 5513pw_system 5514--------- 5515* `Load all domain tokens 5516 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181231>`__ 5517* `Style fixes to Python scripts 5518 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182661>`__ 5519* `Add missing dependency on pw_trace 5520 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181350>`__ 5521 5522pw_tokenizer 5523------------ 5524* `Move entry header to a separate struct 5525 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183193>`__ 5526* `Catch accidental use of test macro 5527 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183192>`__ 5528* `Fix NULL dereference in fuzz harness 5529 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182710>`__ 5530* `Move ReadUint32 5531 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169714>`__ 5532 5533pw_toolchain 5534------------ 5535The Arm toolchain has been updated to use the new toolchain specified 5536in :ref:`seed-0113`. A helper for registering C/C++ toolchains in Bazel 5537was added to enable upstream Pigweed to make changes without needing to 5538manually update downstream projects. See 5539:ref:`module-pw_toolchain-bazel-upstream-pigweed-toolchains`. 5540 5541* `Move ARM toolchain to new API 5542 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183160>`__ 5543 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5544* `Use action configs from LLVM tool repo 5545 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183010>`__ 5546 (issue `#311257445 <https://issues.pigweed.dev/issues/311257445>`__) 5547* `Add Bazel toolchain registration helper 5548 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183157>`__ 5549 (issue `#301336229 <https://issues.pigweed.dev/issues/301336229>`__) 5550* `Merge host toolchains 5551 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181760>`__ 5552* `Expose non-hermetic toolchain 5553 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181330>`__ 5554 (issue `#299151946 <https://issues.pigweed.dev/issues/299151946>`__) 5555* `Only fetch compatible Rust toolchains 5556 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181306>`__ 5557 5558pw_toolchain/arm_clang 5559---------------------- 5560* `Reduce binary size 5561 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169576>`__ 5562 (issue `#254541584 <https://issues.pigweed.dev/issues/254541584>`__) 5563 5564pw_toolchain_bazel 5565------------------ 5566Support for binding tools to toolchains was added. See :py:class:`pw_cc_tool` 5567and :py:class:`pw_cc_action_config`. Support for featureless sysroots was 5568added. See :py:attr:`pw_cc_toolchain.builtin_sysroot` and 5569:py:attr:`pw_cc_toolchain.cxx_builtin_include_directories`. 5570 5571* `Remove deprecated API 5572 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183235>`__ 5573 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5574* `Rename build file templates part 2/2 5575 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183187>`__ 5576* `Rename build file templates part 1/2 5577 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183186>`__ 5578* `Add LLVM clang tool template 5579 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182969>`__ 5580 (issue `#311257445 <https://issues.pigweed.dev/issues/311257445>`__) 5581* `Add ARM GCC toolchain template 5582 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182968>`__ 5583 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5584* `Support featureless sysroots 5585 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181833>`__ 5586 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5587* `Mirror features to be flag sets 5588 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181832>`__ 5589 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5590* `Add initial pw_cc_action_config support 5591 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180842>`__ 5592 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5593 5594pw_transfer 5595----------- 5596Commands in the :ref:`integration test docs 5597<module-pw_transfer-integration-tests>` were updated and docs were 5598added that explain how to :ref:`run more than one instance of tests 5599in parallel <module-pw_transfer-parallel-tests>`. 5600 5601* `Update integration test documentation 5602 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183163>`__ 5603* `Set clients to transfer_v2 5604 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183050>`__ 5605 (issue `#309686987 <https://issues.pigweed.dev/issues/309686987>`__) 5606* `Limit to sending a single chunk in tests 5607 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182665>`__ 5608 (issue `#295037376 <https://issues.pigweed.dev/issues/295037376>`__) 5609* `Don't "block-network" by default 5610 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182010>`__ 5611 (issue `#311297881 <https://issues.pigweed.dev/issues/311297881>`__) 5612* `Use StatusCode in integration tests 5613 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180828>`__ 5614* `Make integration_test_server testonly, fix fx roller 5615 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182019>`__ 5616 (issue `#312493408 <https://issues.pigweed.dev/issues/312493408>`__) 5617* `Tag integration tests block-network 5618 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181297>`__ 5619 (issue `#311297881 <https://issues.pigweed.dev/issues/311297881>`__) 5620 5621pw_unit_test 5622------------ 5623* `Skip googletest tests if not set 5624 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/183089>`__ 5625 5626pw_web 5627------ 5628* `Install Web Test Runner and dependencies 5629 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181870>`__ 5630 5631Build 5632===== 5633 5634Bazel 5635----- 5636More Bazel information has been added to :ref:`docs-module-structure`. 5637 5638* `Add simple module configuration mechanism 5639 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181032>`__ 5640 (issue `#234872811 <https://issues.pigweed.dev/issues/234872811>`__) 5641* `Tidy up WORKSPACE 5642 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181292>`__ 5643* `Rename Python toolchains 5644 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181762>`__ 5645 (issue `#310293060 <https://issues.pigweed.dev/issues/310293060>`__) 5646* `Remove py_proto_library wrapper 5647 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180825>`__ 5648 (issue `#266950138 <https://issues.pigweed.dev/issues/266950138>`__) 5649* `Use py_proto_library from rules_python 5650 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180537>`__ 5651* `Partial pw_system_console fix 5652 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181304>`__ 5653 (issue `#310307709 <https://issues.pigweed.dev/issues/310307709>`__) 5654 5655Docs 5656==== 5657The tool that we use to semi-automate these changelog updates has been 5658added to the main Pigweed repository. Try out the tool on 5659:ref:`docs-contrib-docs-changelog` and see ``//docs/_static/js/changelog.js`` 5660to view its implementation. 5661 5662* `Gerrit code coverage documentation 5663 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182799>`__ 5664 (issue `#282164634 <https://issues.pigweed.dev/issues/282164634>`__) 5665* `Move copyright header info to style guide 5666 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182795>`__ 5667* `Document the Test footer 5668 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181752>`__ 5669* `Add changelog update instructions and tool 5670 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181765>`__ 5671* `Update changelog 5672 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181393>`__ 5673 5674SEEDs 5675===== 5676We now have an auto-generated :ref:`seed-0000` that shows you the current 5677status of all SEEDs. 5678 5679* `Generate the SEED index table 5680 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181267>`__ 5681* (SEED-0114) `Update status; format header in table 5682 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182872>`__ 5683* (SEED-0114) `Channels 5684 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ 5685* (SEED-0118) `Claim SEED number 5686 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/182654>`__ 5687* (SEED-0118) `Claim SEED number 5688 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181837>`__ 5689 5690Third party 5691=========== 5692* `Add GN rules for ICU 5693 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181311>`__ 5694 (issue `#311449154 <https://issues.pigweed.dev/issues/311449154>`__) 5695 5696------------ 5697Nov 15, 2023 5698------------ 5699Highlights (Nov 02, 2023 to Nov 15, 2023): 5700 5701* The API for writing proc macros with pw_format was simplified. 5702* ``pw_emu`` added a command for resuming the execution of paused emulators 5703 and now has limited support for inserting environment variables into 5704 configuration entries. 5705* ``pw_ide`` can now output logs to files. 5706* ``pw_unit_test`` added support for GoogleTest's 5707 ``ASSERT_OK_AND_ASSIGN``, ``StatusIs``, and ``IsOkAndHolds``. 5708* Pigweed's :ref:`docs-mission` are now documented. 5709 5710Active SEEDs 5711============ 5712Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 5713 5714* `SEED-0114: Channels 5715 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ 5716* `SEED-0115: Sensors 5717 <http://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176760>`__ 5718* `SEED-0116: Sockets 5719 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177696>`__ 5720 5721Modules 5722======= 5723 5724pw_allocator 5725------------ 5726The ``...Unchecked`` methods have been removed from the 5727``pw::allocator::Allocator`` interface and the NVI-style ``Do...`` methods 5728have been modified to take ``Layout`` parameters. 5729 5730* `Update interface based on final SEED-0110 design 5731 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176754>`__ 5732* `Refactor test support and example allocator 5733 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177653>`__ 5734 (issue `#306686936 <https://issues.pigweed.dev/issues/306686936>`__) 5735 5736pw_analog 5737--------- 5738* `Mark libs as test only in bazel 5739 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179612>`__ 5740 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5741 5742pw_console 5743---------- 5744``SocketClient`` has been updated to support both IPv4 and IPv6 addresses 5745in addition to Unix sockets. 5746 5747* `Add docs banner 5748 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180824>`__ 5749* `Improve SocketClient addressing 5750 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178921>`__ 5751 5752pw_emu 5753------ 5754There is now limited supported for inserting environment variable values 5755into configuration entries. A command for resuming the execution 5756of a paused emulator was added. 5757 5758* `Add support for substitutions in config entries 5759 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179150>`__ 5760 (issue `#308793747 <https://issues.pigweed.dev/issues/308793747>`__) 5761* `Add resume command to CLI 5762 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179030>`__ 5763 (issue `#308793747 <https://issues.pigweed.dev/issues/308793747>`__) 5764* `Fix CLI gdb and load commands 5765 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178922>`__ 5766 (issue `#308793747 <https://issues.pigweed.dev/issues/308793747>`__) 5767 5768pw_env_setup 5769------------ 5770* `Make pigweed_environment.gni content gni-relative 5771 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180991>`__ 5772* `Update Bazel to 7.0.0 pre-release 5773 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178950>`__ 5774 5775pw_format 5776--------- 5777The API for writing `proc macros </rustdoc/pw_format/#proc-macros>`__ that take 5778format strings and arguments was simplified. 5779 5780* `Add tests for macro helpers 5781 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181030>`__ 5782* `Generalize format macro handling 5783 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178132>`__ 5784 5785pw_fuzzer 5786--------- 5787* `Move \`Domain\` from fuzztest::internal to fuzztest 5788 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178213>`__ 5789* `Switch oss-fuzz build to Bazel 5790 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175618>`__ 5791 5792pw_i2c 5793------ 5794* `Mark libs as test only in bazel 5795 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179836>`__ 5796 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5797 5798pw_ide 5799------ 5800Logs can now be output to files. 5801 5802* `Set 3-space tabs in VS Code 5803 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179671>`__ 5804* `Support output to logs 5805 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163573>`__ 5806* `Remove redundant licence 5807 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179613>`__ 5808* `Remove clangd auto-restart 5809 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171691>`__ 5810* `Make Sphinx extensions upstream-only 5811 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171690>`__ 5812* `VSC extension 0.1.1 release 5813 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171070>`__ 5814 5815pw_perf_test 5816------------ 5817* `Reogranize source files 5818 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178914>`__ 5819 5820pw_presubmit 5821------------ 5822* `Create new fuzz program 5823 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181134>`__ 5824 (issue `#311215681 <https://issues.pigweed.dev/issues/311215681>`__) 5825* `Add examples showing how to create formatters 5826 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180310>`__ 5827* `Correct coverage ref 5828 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179452>`__ 5829 (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) 5830 5831pw_stream 5832--------- 5833* `Fix use of shutdown on Windows 5834 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180401>`__ 5835 (issue `#309680612 <https://issues.pigweed.dev/issues/309680612>`__) 5836 5837pw_system 5838--------- 5839* `Add tracing to the demo system 5840 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168834>`__ 5841 5842pw_system_demo 5843-------------- 5844* `Add clang to default stm32f4 build 5845 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178930>`__ 5846 (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) 5847 5848pw_tokenizer 5849------------ 5850* `Add Java to supported languages list 5851 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179251>`__ 5852 5853pw_toolchain 5854------------ 5855* `Set alwayslink = 1 when using --wrap 5856 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180930>`__ 5857* `Add objdump 5858 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175810>`__ 5859 5860pw_toolchain_bazel 5861------------------ 5862Core building blocks from the :ref:`seed-0113` plan were implemented: 5863:py:class:`pw_cc_flag_set` and :py:class:`pw_cc_flag_group`. 5864 5865* `Introduce pw_cc_flag_set and pw_cc_flag_group 5866 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179932>`__ 5867 (issue `#309533028 <https://issues.pigweed.dev/issues/309533028>`__) 5868 5869pw_trace_tokenized 5870------------------ 5871* `Add a transfer based trace service 5872 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168833>`__ 5873 5874pw_transfer 5875----------- 5876There's been a concerted effort to reduce ``pw_transfer`` test flakiness. 5877 5878* `Limit data sent in handler clear test 5879 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180951>`__ 5880 (issue `#297355578 <https://issues.pigweed.dev/issues/297355578>`__) 5881* `Limit data sent in manual cancel test 5882 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180826>`__ 5883* `Use project-absolute imports for test fixture 5884 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180390>`__ 5885 (issue `#310038737 <https://issues.pigweed.dev/issues/310038737>`__) 5886* `Prevent accidental timeouts in unit tests 5887 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180274>`__ 5888 5889pw_unit_test 5890------------ 5891The :ref:`module-pw_unit_test-api-expect` and 5892:ref:`module-pw_unit_test-api-assert` APIs were documented. Support for 5893GoogleTest's ``ASSERT_OK_AND_ASSIGN``, ``StatusIs``, and ``IsOkAndHolds`` was 5894added. 5895 5896* `Document ASSERT_ and EXPECT_ macros 5897 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179873>`__ 5898* `Include the right gmock header 5899 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180030>`__ 5900 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5901* `Mark libs as test only in bazel 5902 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179874>`__ 5903 (issue `#309665550 <https://issues.pigweed.dev/issues/309665550>`__) 5904* `Support *_NEAR, *_FLOAT_EQ, *_DOUBLE_EQ 5905 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179770>`__ 5906* `Allow googletest_test_matchers_test to run 5907 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179450>`__ 5908* `Add more googletest test matchers 5909 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179151>`__ 5910* `Add googletest test matchers 5911 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177878>`__ 5912 5913pw_watch 5914-------- 5915Support for ``httpwatcher`` was removed because it's not supported on modern 5916versions of Python. 5917 5918* `Remove httpwatcher support 5919 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179250>`__ 5920 (issue `#304603192 <https://issues.pigweed.dev/issues/304603192>`__) 5921 5922pw_web 5923------ 5924The log viewer has been polished and testing has been enhanced. 5925 5926* `Fix LogViewControls responsive behavior 5927 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179470>`__ 5928 (issue `#308993282 <https://issues.pigweed.dev/issues/308993282>`__) 5929* `Resume autoscroll with clear logs event 5930 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179252>`__ 5931* `Fix clear logs due to error thrown handling input text 5932 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176867>`__ 5933* `Add manual testing page in docs 5934 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178923>`__ 5935 (issue `#288587657 <https://issues.pigweed.dev/issues/288587657>`__) 5936 5937Build 5938===== 5939* `Update the default C++ standard 5940 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178913>`__ 5941 5942Bazel 5943----- 5944* `Upgrade nanopb version 5945 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180871>`__ 5946* `Update comment 5947 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180815>`__ 5948* `Set --incompatible_default_to_explicit_init_py 5949 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/180454>`__ 5950 (issue `#266950138 <https://issues.pigweed.dev/issues/266950138>`__) 5951* `Make pw_cc_library an alias for cc_library 5952 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178924>`__ 5953 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 5954* `Don't disable use_header_modules 5955 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178565>`__ 5956 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 5957 5958Targets 5959======= 5960.. todo-check: disable 5961 5962* (``stm32f429i_disc1_stm32cube``) 5963 `Update TODO 5964 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179172>`__ 5965 5966.. todo-check: enable 5967 5968Language support 5969================ 5970* (Python) `Update constraint.list 5971 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179614>`__ 5972* (Python) `Upgrade parameterized package 5973 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179451>`__ 5974 5975Docs 5976==== 5977A document about Pigweed's :ref:`docs-mission` was added. The 5978:ref:`style guide <docs-pw-style>` was split into multiple pages. 5979 5980* `Update Pigweed Live dates 5981 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/181031>`__ 5982* `Add mission & philosophies 5983 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178910>`__ 5984* `Add Contribution Standards section 5985 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179171>`__ 5986* `Add details to codependent docs 5987 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179879>`__ 5988* `Update changelog 5989 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178911>`__ 5990 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 5991* `Split the style guide: Doxygen & Sphinx 5992 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178912>`__ 5993* `Split the style guide: C++ 5994 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178952>`__ 5995* `Split the style guide: commit style 5996 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178490>`__ 5997 5998SEEDs 5999===== 6000* (SEED-0110) `Correct status 6001 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/179436>`__ 6002* (SEED-0110) `Memory Allocation Interfaces 6003 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ 6004* (SEED-0113) `Add modular Bazel C/C++ toolchain API 6005 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173453>`__ 6006 6007----------- 6008Nov 3, 2023 6009----------- 6010Highlights (Oct 19, 2023 to Nov 3, 2023): 6011 6012* A lot more of the :cpp:class:`pw::multibuf::Chunk` API was implemented. 6013* :ref:`module-pw_format` is a new module dedicated to Rust format string parsing. 6014* The tokenizer prefix is now configurable via 6015 ``PW_TOKENIZER_NESTED_PREFIX_STR``. 6016* References to C++14 have been removed throughout the codebase. Pigweed no 6017 longer supports C++14; C++17 or newer is required. 6018* The upstream Pigweed GN build is now 6019 :ref:`more isolated <docs-changelog-20231103-pw_build>` so that downstream 6020 projects have less conflicts when importing Pigweed into their existing GN 6021 build. 6022* Build configuration is moving away from Bazel macros like ``pw_cc_library`` 6023 and towards the toolchain configuration so that downstream projects can have 6024 :ref:`full control <docs-changelog-20231103-bazel>` over how Pigweed libraries 6025 are built. 6026* New guidelines for authoring module docs have been published at 6027 :ref:`docs-contrib-docs-modules`. :ref:`module-pw_string` is now an example 6028 of a "golden" module docs set that follows the new guidelines. Please leave 6029 feedback on the new guidelines (and module docs updated to follow the 6030 guidelines) in `issue #309123039 <https://issues.pigweed.dev/issues/309123039>`__. 6031 6032 6033Active SEEDs 6034============ 6035Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 6036 6037* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 6038* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 6039* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ 6040* `SEED-0113: Modular Bazel C/C++ Toolchain API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173453>`__ 6041* `SEED-0114: Channels <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ 6042* `SEED-0115: Sensors <http://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176760>`__ 6043* `SEED-0116: Sockets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177696>`__ 6044 6045Modules 6046======= 6047 6048pw_allocator 6049------------ 6050The docs now have an auto-generated size report. 6051``pw::allocator::SplitFreeListAllocator`` has a new ``blocks()`` method for getting the 6052range of blocks being tracked. The class was also refactored to 6053use the existing ``Block`` API. The ``Block`` API itself was refactored to 6054encode offsets and flags into fields. 6055 6056* `Add size reporting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178370>`__ 6057* `Return Range from SplitFreeListAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177807>`__ 6058* `Refactor SplitFreeListAllocator to use Block <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176579>`__ 6059* `Refactor Block to use encoded offsets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176578>`__ 6060 6061pw_arduino_build 6062---------------- 6063* `STM32 Core fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177750>`__ 6064 6065pw_assert 6066--------- 6067* `Update print_and_abort backend formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177845>`__ 6068 6069pw_bluetooth 6070------------ 6071More :ref:`Emboss <module-pw_third_party_emboss>` definitions were added. 6072 6073.. todo-check: disable 6074 6075* `Add TODO for issue 308794058 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151070>`__ 6076 (issue `#308794058 <https://issues.pigweed.dev/issues/308794058>`__) 6077* `Remove anonymous entry in LEPeerAddressTypeNoAnon <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177881>`__ 6078* `Separate LEAddressType and LEExtendedAddressType <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178010>`__ 6079* `Define LEExtendedCreateConnectionV1 Emboss structure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176574>`__ 6080 (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) 6081* `Define LEEnhancedConnectionCompleteSubeventV1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176576>`__ 6082 (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) 6083* `Remove padding from Emboss command definitions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176772>`__ 6084 6085.. todo-check: enable 6086 6087.. _docs-changelog-20231103-pw_build: 6088 6089pw_build 6090-------- 6091Pigweed used to inject a selection of recommended configs into every ``pw_*`` 6092C/C++ target in the GN build. These were previously only possible to remove 6093with the ``remove_configs`` argument. These configs are now bundled with 6094toolchains instead, and if you don't use a Pigweed-style toolchain you'll 6095no longer need to find ways to strip the default configs from Pigweed build rules. 6096More importantly, this changes makes Pigweed's recommended configs behave 6097identically to other toolchain configs, and they're now more clearly part of 6098GN toolchain definitions. This change is transparent to most projects, but some 6099Pigweed customers have been asking for this for a while. 6100 6101The :ref:`module-pw_build-bazel-empty_cc_library` Bazel utility was added. 6102 6103* `Add empty_cc_library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178555>`__ 6104* `Remove pw_build_default_configs_in_toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177894>`__ 6105* `Apply pigweed_default_configs in toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120610>`__ 6106 (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) 6107* `Fix blob attribute ordering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177458>`__ 6108* `Only use -Wextra-semi on C++ files with GCC <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177171>`__ 6109 (issues `#301262374 <https://issues.pigweed.dev/issues/306734552>`__, 6110 `#301262374 <https://issues.pigweed.dev/issues/301262374>`__) 6111* `Silence Windows-specific warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177172>`__ 6112 6113pw_bytes 6114-------- 6115A new ``_b`` literal was added to make it easier to create bytes for tests 6116and constants. 6117 6118* `Add _b suffix for byte literals <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178134>`__ 6119 6120pw_containers 6121------------- 6122The reference docs for the variable length entry queue API in C and Python 6123were updated. 6124 6125* `Update VariableLengthEntryQueue size functions; cleanup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173454>`__ 6126 6127pw_digital_io_mcuxpresso 6128------------------------ 6129* `Remove RT595 size def <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178353>`__ 6130 6131pw_doctor 6132--------- 6133* `Trivial linter fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176939>`__ 6134 6135pw_emu 6136------ 6137* `renode: Show more details when failing to connect <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178563>`__ 6138 (issue `#307736513 <https://issues.pigweed.dev/issues/307736513>`__) 6139 6140pw_env_setup 6141------------ 6142``pip`` has been pinned to ``23.2.1`` and ``pip-tools`` to ``7.3.0`` to 6143prevent dependency resolution problems. 6144 6145* `Pin pip and pip-tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177834>`__ 6146* `Update protoc to 2@24.4 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177050>`__ 6147 (issue `#306461552 <https://issues.pigweed.dev/issues/306461552>`__) 6148 6149pw_format 6150--------- 6151:ref:`module-pw_format` is a new module dedicated to Rust format string parsing. 6152 6153* `Correct crate name in docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178078>`__ 6154* `Move Rust format string parsing into its own module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168362>`__ 6155 6156pw_fuzzer 6157--------- 6158* `Inline NonOkStatus() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178212>`__ 6159* `Fix instrumentation config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178214>`__ 6160 6161.. _docs-changelog-20231103-pw_hdlc: 6162 6163pw_hdlc 6164------- 6165Using read callbacks in ``RpcClient`` is no longer accepted and the use of 6166``CancellableReader`` is now enforced because it provides a safe and clean 6167shutdown process. 6168 6169* `Enforce use of CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173618>`__ 6170 (issue `#301496598 <https://issues.pigweed.dev/issues/301496598>`__) 6171 6172pw_libcxx 6173--------- 6174:ref:`module-pw_libcxx` is a new module that provides ``libcxx`` symbols and 6175will eventually facilitate pulling in headers as well. 6176 6177* `Add pw_libcxx library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144970>`__ 6178 6179pw_log 6180------ 6181A :ref:`module-pw_log-bazel-backend_impl` label flag was added to Bazel to 6182avoid circular dependencies. 6183 6184* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ 6185 (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) 6186* `Introduce backend_impl label flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177842>`__ 6187 (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) 6188 6189pw_multibuf 6190----------- 6191A lot more of the :cpp:class:`pw::multibuf::Chunk` API was implemented. 6192 6193* `Add basic MultiBuf operations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178036>`__ 6194* `Add Chunk::Merge <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177636>`__ 6195* `Fix TrackingAllocatorWithMemory UAF <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177694>`__ 6196* `Add module and Chunk implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173951>`__ 6197 6198pw_package 6199---------- 6200* `Use mirror for stm32cube <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/142510>`__ 6201 (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) 6202* `Fix Zephyr URL <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177456>`__ 6203 6204pw_presubmit 6205------------ 6206A CSS formatter was added. 6207 6208* `Add basic CSS formatter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178810>`__ 6209 (issue `#308948504 <https://issues.pigweed.dev/issues/308948504>`__) 6210* `Kalypsi-based coverage upload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175070>`__ 6211 (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) 6212* `Handle missing upstream better <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177038>`__ 6213 (issue `#282808936 <https://issues.pigweed.dev/issues/282808936>`__) 6214* `Trivial linter fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176939>`__ 6215 6216pw_protobuf 6217----------- 6218* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ 6219 (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) 6220 6221pw_rpc 6222------ 6223:ref:`pw::rpc::SynchronousCallFor() <module-pw_rpc-client-sync-call-wrappers>` 6224now supports :ref:`DynamicClient <module-pw_rpc_pw_protobuf-client>`. 6225 6226* `Update Java service error with tip <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178812>`__ 6227 (issue `#293361955 <https://issues.pigweed.dev/issues/293361955>`__) 6228* `Support DynamicClient with SynchronousCallFor API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177637>`__ 6229 6230pw_string 6231--------- 6232The docs were updated to match the new :ref:`docs-contrib-docs-modules`. 6233 6234* `Docs tweaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177883>`__ 6235 6236pw_sys_io 6237--------- 6238Backends that depend on ``default_putget_bytes`` were updated to express the 6239dependency. 6240 6241* `Fix Bazel backends <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177656>`__ 6242 6243pw_system 6244--------- 6245See :ref:`docs-changelog-20231103-pw_hdlc` for an explanation of the 6246``CancellableReader`` change. 6247 6248* `Enforce use of CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173618>`__ 6249 (issue `#301496598 <https://issues.pigweed.dev/issues/301496598>`__) 6250 6251pw_tls_client 6252------------- 6253* `Update to new boringssl API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178150>`__ 6254 6255pw_tokenizer 6256------------ 6257The tokenizer prefix is now configurable via ``PW_TOKENIZER_NESTED_PREFIX_STR``. 6258 6259* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ 6260 (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) 6261* `Let tokenizer prefix be configurable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177575>`__ 6262 6263pw_toolchain 6264------------ 6265You can now set the ``dir_pw_third_party_builtins`` GN var to your 6266``compiler-rt/builtins`` checkout to enable buildings LLVM ``builtins`` from 6267source instead of relying on a shipped ``libgcc``. 6268 6269* `Apply pigweed_default_configs in toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120610>`__ 6270 (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) 6271* `Build compiler-rt builtins to replace libgcc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144050>`__ 6272 6273pw_unit_test 6274------------ 6275* `Pass verbose flag to TestRunner <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177470>`__ 6276 6277pw_web 6278------ 6279* `Limit component rerendering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177810>`__ 6280 (issue `#307559191 <https://issues.pigweed.dev/issues/307559191>`__) 6281 6282Build 6283===== 6284References to C++14 have been removed throughout the codebase. Pigweed no 6285longer supports C++14; C++17 or newer is required. 6286 6287* `Drop C++14 compatibility from the build and docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177610>`__ 6288 6289.. _docs-changelog-20231103-bazel: 6290 6291Bazel 6292----- 6293Build configuration is moving away from Bazel macros like ``pw_cc_library`` 6294and towards the toolchain configuration so that downstream projects can have 6295full control over how Pigweed libraries are built. 6296 6297* `Move Kythe copts to toolchain configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178592>`__ 6298 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 6299* `Move warnings to toolchain configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178557>`__ 6300 (issue `#240466562 <https://issues.pigweed.dev/issues/240466562>`__) 6301* `Silence warnings from external code <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178436>`__ 6302 (issue `#300330623 <https://issues.pigweed.dev/issues/300330623>`__) 6303* `stm32cube support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177134>`__ 6304* `Remove most copts from pw_cc_library macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170824>`__ 6305 (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) 6306 6307Targets 6308======= 6309``pw_assert_BACKEND`` for :ref:`target-host` was set to 6310``print_and_abort_check_backend`` to enable compatibility with GoogleTest death 6311tests. 6312 6313* (``host``) `Change pw_assert_BACKEND <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177835>`__ 6314 6315OS support 6316========== 6317* (``zephyr``) `Update checkout to v3.5 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177669>`__ 6318 6319Docs 6320==== 6321New guidelines for authoring module docs have been published at 6322:ref:`docs-contrib-docs-modules`. :ref:`module-pw_string` is now an example 6323of a "golden" module docs set that follows the new guidelines. Please leave 6324feedback on the new guidelines (and module docs updated to follow the 6325guidelines) in `issue #309123039 <https://issues.pigweed.dev/issues/309123039>`__. 6326 6327There's now a definition for :ref:`docs-glossary-facade` in the glossary. 6328 6329* `Update module docs authoring guidelines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177465>`__ 6330* `Fix nav and main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178591>`__ 6331 (issue `#303261476 <https://issues.pigweed.dev/issues/303261476>`__) 6332* `Add udev instructions to Bazel Get Started <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178435>`__ 6333* `Add information on the experimental repo to contributing.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178272>`__ 6334* `Mention command for updating Py dep hashes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177799>`__ 6335* `Define facade in glossary <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177632>`__ 6336* `Remove symlinks to files that were removed <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177530>`__ 6337* `Mention upstream development guide in contributor guidelines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177459>`__ 6338* `Move all images out of the repo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176751>`__ 6339* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177085>`__ 6340 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 6341* `Move CoC to Contributors section of sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177071>`__ 6342 6343SEEDs 6344===== 6345* (SEED-0107) `Update SEED references; fix typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177698>`__ 6346* (SEED-0112) `Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ 6347* (SEED-0115) `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177093>`__ 6348* (SEED-0116) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177697>`__ 6349 6350Third party 6351=========== 6352* (nanopb) `Detect protoc updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177650>`__ 6353 6354------------ 6355Oct 20, 2023 6356------------ 6357Highlights (Oct 5, 2023 to Oct 20, 2023): 6358 6359* ``pw_emu`` has launched! Check out :ref:`module-pw_emu` to get started. 6360 See :ref:`seed-0108` for background. 6361* :ref:`module-pw_log-tokenized-args` are now supported. See :ref:`seed-0105` 6362 for background. 6363* The new :cpp:class:`pw::allocator::UniquePtr` class offers a safer, simpler 6364 RAII API for allocating individual values within an allocator. 6365* A few SEEDs were accepted: :ref:`seed-0105`, :ref:`seed-0109`, and 6366 :ref:`seed-0111`. 6367* Lots of new docs, including a guide for 6368 :ref:`getting started with Bazel <docs-get-started-bazel>`, a 6369 conceptual explanation of :ref:`facades and backends <docs-facades>`, 6370 and an eng blog post detailing :ref:`Kudzu <docs-blog-01-kudzu>`, an 6371 electronic badge that the Pigweed team made for Maker Faire 2023. 6372 6373Active SEEDs 6374============ 6375Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 6376 6377* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 6378* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 6379* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ 6380* `SEED-0113: Modular Bazel C/C++ Toolchain API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173453>`__ 6381* `SEED-0114: Channels <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ 6382* `SEED-0115: Sensors <http://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176760>`__ 6383 6384Modules 6385======= 6386 6387pw_allocator 6388------------ 6389The new :cpp:class:`pw::allocator::UniquePtr` class offers a safer, simpler 6390RAII API for allocating individual values within an allocator. 6391 6392* `Fix SplitFreeListAllocator region alignment <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175232>`__ 6393* `Add UniquePtr\<T\> <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176781>`__ 6394 6395pw_async 6396-------- 6397* `Add CMake support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175475>`__ 6398 6399pw_async_basic 6400-------------- 6401* `Add missing include <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175476>`__ 6402* `Fix build error when using pw_async:heap_dispatcher <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173480>`__ 6403 6404pw_bluetooth 6405------------ 6406* `Define LEChannelSelectionAlgorithmSubevent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176577>`__ 6407* `Define LEScanTimeoutSubevent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176575>`__ 6408 (issue `#265052417 <https://issues.pigweed.dev/issues/265052417>`__) 6409* `Use $size_in_bits instead of hardcoding size <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176573>`__ 6410* `Switch from parameterized value to determining at run time <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176572>`__ 6411 (issue `#305975969 <https://issues.pigweed.dev/issues/305975969>`__) 6412* `Fix size reports <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173620>`__ 6413 6414pw_build 6415-------- 6416:ref:`module-pw_build-bazel-pw_linker_script` now describes how to work 6417with linker scripts. 6418 6419* `Update pw_linker_script docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174848>`__ 6420* `Move pw_linker_script rule definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174872>`__ 6421 6422pw_chre 6423------- 6424* `Remove TODOs for CHRE MacOS support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175490>`__ 6425 6426pw_cli 6427------ 6428* `Honor NO_COLOR and CLICOLOR_FORCE <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176860>`__ 6429* `Use typing.Literal <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176778>`__ 6430 6431pw_digital_io 6432------------- 6433* `Add Android.bp for proto/rpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176270>`__ 6434 6435pw_emu 6436------ 6437The module has launched! Check out :ref:`module-pw_emu` to get started. 6438 6439* `renode: Increase start timeout to 120s <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176865>`__ 6440* `Fix pid file race condition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176782>`__ 6441* `mock_emu: start listening before making the port available <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176856>`__ 6442 (issue `#306155313 <https://issues.pigweed.dev/issues/306155313>`__) 6443* `qemu: Force using IPv4 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176430>`__ 6444 (issue `#305810466 <https://issues.pigweed.dev/issues/305810466>`__) 6445* `Add renode support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173613>`__ 6446* `Add QEMU support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173612>`__ 6447* `core: Let the OS terminate foreground emulator processes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175638>`__ 6448* `Add user APIs and the command line interface <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173611>`__ 6449* `Add core components <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173610>`__ 6450* `Add Emulators Frontend module boilerplate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162096>`__ 6451 6452pw_env_setup 6453------------ 6454* `Allow disabling CIPD cache <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176650>`__ 6455* `Add prpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175236>`__ 6456 6457pw_function 6458----------- 6459* `Move pw_function_CONFIG to .gni <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173652>`__ 6460 6461pw_hdlc 6462------- 6463:ref:`module-pw_hdlc-api-rpc` now has much more information on how to use 6464``pw_hdlc`` for RPC in Python. 6465 6466* `Update Python RPC documents <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174825>`__ 6467 6468pw_i2c 6469------ 6470* `Fix accidental c++2a <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176511>`__ 6471* `Add Android.bp for i2c proto/rpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176070>`__ 6472 6473pw_kvs 6474------ 6475The new ``FlashPartitionWithLogicalSectors`` variant of ``FlashPartition`` 6476supports combining multiple physical ``FlashMemory`` sectors into a single 6477logical ``FlashPartition`` sector. 6478 6479* `Add FlashPartitionWithLogicalSectors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/106917>`__ 6480 6481pw_log_tokenized 6482---------------- 6483:ref:`module-pw_log-tokenized-args` are now supported. See :ref:`seed-0105` for background. 6484 6485* `Add tokenized string args support to log backend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164514>`__ 6486 6487pw_log_zephyr 6488------------- 6489* `Clean-up unused dependencies from TOKENIZED_LIB <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174813>`__ 6490 6491pw_minimal_cpp_stdlib 6492--------------------- 6493* `Support additional libraries <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173814>`__ 6494* `Add Zephyr Kconfig to enable include path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173653>`__ 6495 6496pw_package 6497---------- 6498* `Update boringssl commit & skip clang-tidy <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175016>`__ 6499* `Update Emboss commit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173619>`__ 6500 6501pw_presubmit 6502------------ 6503:ref:`module-pw_presubmit-presubmit-checks` has more guidance on when to use 6504``--base`` and ``--full``. 6505 6506* `Add note about --full and --base <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175633>`__ 6507 6508pw_snapshot 6509----------- 6510* `More detokenization tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176759>`__ 6511 6512pw_spi 6513------ 6514* `Fix cmake integration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175190>`__ 6515 6516pw_sync_zephyr 6517-------------- 6518* `Add TimedThreadNotification::try_acquire_until <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175478>`__ 6519 6520pw_system 6521--------- 6522The ``Device`` class's constructor now accepts a ``logger`` argument 6523that enables you to specify which logger should be used. 6524 6525* `Add option to pass logger to Device <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175075>`__ 6526 6527pw_third_party_freertos 6528----------------------- 6529* `Add arm_cm7_not_r0p1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172382>`__ 6530 6531pw_thread 6532--------- 6533* `More detokenization tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176759>`__ 6534 6535pw_thread_freertos 6536------------------ 6537* `Fix extra wakeups when detaching threads <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175310>`__ 6538 (issue `#303885539 <https://issues.pigweed.dev/issues/303885539>`__) 6539 6540pw_tokenizer 6541------------ 6542:ref:`module-pw_tokenizer-get-started-integration` has new guidance around 6543configuring linker scripts in Bazel. 6544 6545* `Expose linker_script in BUILD.bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175590>`__ 6546 6547pw_toolchain 6548------------ 6549* `Exclude googletest from static analysis <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173482>`__ 6550 6551pw_transfer 6552----------- 6553* `Start the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170011>`__ 6554 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 6555 6556pw_web 6557------ 6558* `Reduce table cell padding <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176690>`__ 6559 (issue `#305022558 <https://issues.pigweed.dev/issues/305022558>`__) 6560* `Fix invisible jump button <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175330>`__ 6561* `Enable manual color scheme setting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173630>`__ 6562 (issue `#301498553 <https://issues.pigweed.dev/issues/301498553>`__) 6563 6564Build 6565===== 6566* `Fix pw_BUILD_BROKEN_GROUPS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176114>`__ 6567* `Update Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175631>`__ 6568 (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) 6569 6570Bazel 6571----- 6572* `Don't autodetect C++ toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175613>`__ 6573 (issue `#304880653 <https://issues.pigweed.dev/issues/304880653>`__) 6574* `Add O2 to arm_gcc toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175536>`__ 6575 (issue `#299994234 <https://issues.pigweed.dev/issues/299994234>`__) 6576 6577Targets 6578======= 6579* (rp2040_pw_system) `Enable time slicing <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175074>`__ 6580 6581OS support 6582========== 6583* (zephyr) `Allow direct CMake inclusions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175477>`__ 6584 6585Docs 6586==== 6587* `Move CoC to Contributors section of sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177071>`__ 6588* `Create concepts section in sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177037>`__ 6589* `Add facades and backends page <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170602>`__ 6590* `Add Bazel getting started tutorial <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176319>`__ 6591* `Remove css class on Kudzu image captions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176770>`__ 6592* `Kudzu photos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176710>`__ 6593* `Refactor the getting started section <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176331>`__ 6594* `Add sitemap <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176492>`__ 6595* `Add hat tip for pixel doubling technique <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175639>`__ 6596* `Start eng blog and add Kudzu page <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175619>`__ 6597* `Add Pigweed Live directive <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174892>`__ 6598* `Add builder viz to CI/CQ intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175414>`__ 6599 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6600* `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175415>`__ 6601 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6602* `Add changelog highlight <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175231>`__ 6603* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174818>`__ 6604 6605SEEDs 6606===== 6607A few SEEDs were accepted and a few more started. 6608 6609* (SEED-0105) `Add nested tokens to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 6610* (SEED-0109) `Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ 6611* (SEED-0111) `Update status, add link to SEED-0113 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176254>`__ 6612* (SEED-0111) `Make Bazel Pigweed's Primary Build System <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ 6613* (SEED-0113) `Claim SEED number (Modular Bazel C/C++ Toolchain API) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175510>`__ 6614* (SEED-0114) `Claim SEED number (Channels) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175412>`__ 6615* (SEED-0115) `Clain SEED number (Sensors) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176763>`__ 6616 6617Third party 6618=========== 6619* (boringssl) `Remove crypto_sysrand.cc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175017>`__ 6620* (fuchsia) `Copybara import <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173651>`__ 6621* (fuchsia) `Update copybara with fit/defer.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173481>`__ 6622 6623Miscellaneous 6624============= 6625* `Update formatting for new clang version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175311>`__ 6626* `Use C++20 everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174630>`__ 6627 (issue `#303371098 <https://issues.pigweed.dev/issues/303371098>`__) 6628* (revert) `Use .test convention" <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171793>`__ 6629* `Add generated Emboss code <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176571>`__ 6630 6631----------- 6632Oct 6, 2023 6633----------- 6634Highlights (Sep 21, 2023 to Oct 6, 2023): 6635 6636* We expanded our RP2040 support. See the new :ref:`module-pw_chrono_rp2040` 6637 and :ref:`module-pw_digital_io_rp2040` modules. 6638* The :ref:`new CancellableReader class in pw_hdlc <docs-changelog-20231009-pw_hdlc>` 6639 is an interface for receiving RPC packets that guarantees its read process can be 6640 stopped. 6641* ``pw_rpc`` now :ref:`automatically generates a new DynamicClient interface 6642 <docs-changelog-20231009-pw_rpc>` when dynamic allocation is enabled. 6643* The Python backend for ``pw_tokenizer`` now supports :ref:`tokenizing strings as 6644 arguments <docs-changelog-20231009-pw_tokenizer>`. 6645* The ``pigweed_config`` mechanism in Bazel is now officially retired. 6646 6647Active SEEDs 6648============ 6649Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 6650 6651* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 6652* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 6653* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 6654* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ 6655* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ 6656* `SEED-0111: Make Bazel Pigweed's Primary Build System <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ 6657* `SEED-0112: Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ 6658 6659Modules 6660======= 6661 6662.. _docs-changelog-20231009-pw_allocator: 6663 6664pw_allocator 6665------------ 6666We added a bunch of new allocator APIs! ``AllocatorMetricProxy`` is a wrapper for 6667``Allocator`` that tracks the number and total of current memory allocations as well 6668as peak memory usage. ``LibCAllocator`` is an allocator that uses ``malloc()`` and 6669``free()``. ``NullAllocator`` is an allocator that always fails which is useful for 6670disallowing memory allocations under certain circumstances. ``SplitFreeListAllocator`` 6671uses a free list to reduce fragmentation. ``FallbackAllocator`` enables you to 6672specify primary and secondary allocators. 6673 6674* `Add Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173851>`__ 6675* `Add pool accessors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173615>`__ 6676* `Move Resize assertion <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173614>`__ 6677* `Add AllocatorMetricProxy <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172380>`__ 6678* `Add LibCAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172232>`__ 6679* `Add NullAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172233>`__ 6680* `Add SplitFreeListAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172231>`__ 6681* `Add FallbackAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171837>`__ 6682* `Generic interface for allocators <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171709>`__ 6683 6684pw_analog 6685--------- 6686* `Migrate MicrovoltInput to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170593>`__ 6687 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 6688 6689pw_async 6690-------- 6691* `Add OWNERS file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173690>`__ 6692 6693pw_bloat 6694-------- 6695``pw_size_report()`` has a new ``json_key_prefix`` argument which is an 6696optional prefix for key names in JSON size reports and a new 6697``full_json_summary`` argument which provides more control over how 6698much detail is provided in a JSON size report. 6699 6700* `Update API to allow verbose json content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168718>`__ 6701 (issue `#282057969 <https://issues.pigweed.dev/issues/282057969>`__) 6702 6703pw_bluetooth 6704------------ 6705* `Format Emboss files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174832>`__ 6706* `Update comments in HCI event defs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174070>`__ 6707 (issue `#265052417 <https://issues.pigweed.dev/issues/265052417>`__) 6708 6709pw_build 6710-------- 6711 6712 6713* `Fix path in Bazel pw_linker_script <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174591>`__ 6714* `Expose pw_linker_script in Bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174590>`__ 6715 (issue `#303482154 <https://issues.pigweed.dev/issues/303482154>`__) 6716* `Define empty configs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174490>`__ 6717* `Add bazel implementation of pw_cc_blob_library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173452>`__ 6718 (issue `#238339027 <https://issues.pigweed.dev/issues/238339027>`__) 6719* `Clean up build_target.gni <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120215>`__ 6720 (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) 6721* `Allow add_global_link_deps to be overriden <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150050>`__ 6722* `Expose pigweed_default_configs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173372>`__ 6723 (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) 6724* `Apply -Wextra-semi to C code as well as C++ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172372>`__ 6725 6726pw_chre 6727------- 6728* `Update bug numbers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172330>`__ 6729 6730pw_chrono 6731--------- 6732* `Add clarification to is_nmi_safe <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174573>`__ 6733 6734pw_chrono_rp2040 6735---------------- 6736This module is a new ``pw::chrono::SystemClock`` backend for RP2040. 6737 6738* `System clock backend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174651>`__ 6739 6740pw_cli 6741------ 6742* `Update requires script <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126101>`__ 6743* `Narrow logic around colors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173232>`__ 6744 6745pw_containers 6746------------- 6747There's a new C implementation for ``VariableLengthEntryDeque`` which is a 6748double-ended queue buffer that stores variable-length entries inline in a 6749circular (ring) buffer. The old ``VariableLengthEntryDeque`` was renamed 6750to ``VariableLengthEntryQueue``. 6751 6752* `Add missing <utility> include for std::move <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173879>`__ 6753* `Rename to VariableLengthEntryQueue <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173451>`__ 6754* `Rename files to variable_length_entry_queue <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173450>`__ 6755* `VariableLengthEntryDeque Entry struct <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173130>`__ 6756* `VariableLengthEntryDeque C implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169731>`__ 6757 6758pw_digital_io_rp2040 6759-------------------- 6760This module is a new RP2040 backend for ``pw_digital_io``. 6761 6762* `Implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173550>`__ 6763 (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) 6764 6765pw_env_setup 6766------------ 6767We made the Pigweed bootstrap process on Windows more robust. 6768 6769* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172416>`__ 6770 (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) 6771* `Better highlight bootstrap failure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172415>`__ 6772* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ 6773 (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) 6774 6775.. _docs-changelog-20231009-pw_hdlc: 6776 6777pw_hdlc 6778------- 6779The new ``CancellableReader`` class is a new interface for receiving RPC 6780packets that guarantees its read process can be stopped. 6781 6782* `Add CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172051>`__ 6783 (issue `#294858483 <https://issues.pigweed.dev/issues/294858483>`__) 6784 6785pw_i2c 6786------ 6787* `Fix docs to use MakeExpectedTransactionArray <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173570>`__ 6788* `Add cmake integration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172210>`__ 6789 6790pw_kvs 6791------ 6792The new ``FlashPartitionWithLogicalSectors`` C++ class supports combining 6793multiple physical ``FlashMemory`` sectors into a single logical 6794``FlashPartition`` sector. 6795 6796* `Add FlashPartitionWithLogicalSectors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/106917>`__ 6797 6798pw_libc 6799------- 6800* `Don't implicitly link against global link_deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150051>`__ 6801 6802pw_metric 6803--------- 6804* `Make constructors constexpr <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172379>`__ 6805 6806pw_minimal_cpp_stdlib 6807--------------------- 6808* `Update to compile with stdcompat <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173350>`__ 6809* `Namespace public/internal to module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173692>`__ 6810 6811pw_perf_test 6812------------ 6813* `Gate on pw_chrono_SYSTEM_TIMER_BACKEND <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174650>`__ 6814 6815pw_presubmit 6816------------ 6817* `Allow dots in module part of commit message <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174232>`__ 6818* `Use autodoc for context classes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169119>`__ 6819* `Allow passing kwargs to build.bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173853>`__ 6820 (issue `#302045722 <https://issues.pigweed.dev/issues/302045722>`__) 6821* `No env_with_clang_vars with bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173656>`__ 6822 6823pw_ring_buffer 6824-------------- 6825* `Minor build and docs updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173030>`__ 6826 6827.. _docs-changelog-20231009-pw_rpc: 6828 6829pw_rpc 6830------ 6831If dynamic allocation is enabled via ``PW_RPC_DYNAMIC_ALLOCATION`` a new 6832``DynamicClient`` is now generated which dynamically allocates the call 6833object with ``PW_RPC_MAKE_UNIQUE_PTR``. 6834 6835* `Generate DynamicClient that dynamically allocates call objects <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168534>`__ 6836* `Add CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172051>`__ 6837 (issue `#294858483 <https://issues.pigweed.dev/issues/294858483>`__) 6838 6839pw_rpc_transport 6840---------------- 6841* `Add a test loopback service registry <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171114>`__ 6842 (issue `#300663813 <https://issues.pigweed.dev/issues/300663813>`__) 6843 6844pw_stream 6845--------- 6846``pw_stream`` now has initial support for ``winsock2``. 6847 6848* `Add Windows socket support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172413>`__ 6849 6850pw_sys_io_rp2040 6851---------------- 6852* `Renamed from pw_sys_io_pico <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174910>`__ 6853 6854.. _docs-changelog-20231009-pw_tokenizer: 6855 6856pw_tokenizer 6857------------ 6858The Python backend now supports nested hashing tokenization. See 6859:ref:`module-pw_tokenizer-nested-arguments`. 6860 6861* `Support nested hashing tokenization (python backend) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/145339>`__ 6862 (issue `#278890205 <https://issues.pigweed.dev/issues/278890205>`__) 6863* `Test for C99 support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170150>`__ 6864 6865pw_toolchain 6866------------ 6867* `Add libc stub for gettimeofday, update visibility rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173850>`__ 6868* `Link against pw_libc for host clang toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151439>`__ 6869 6870pw_transfer 6871----------- 6872* `Start the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170011>`__ 6873 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 6874* `Remove old test server <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172951>`__ 6875 (issue `#234875234 <https://issues.pigweed.dev/issues/234875234>`__) 6876 6877pw_unit_test 6878------------ 6879* `Do not print contents of unknown objects <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174911>`__ 6880* `Add more pw_unit_test_TESTONLY args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173670>`__ 6881 (issue `#234873207 <https://issues.pigweed.dev/issues/234873207>`__) 6882* `Add pw_unit_test_TESTONLY build arg <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171970>`__ 6883 (issue `#234873207 <https://issues.pigweed.dev/issues/234873207>`__) 6884 6885pw_watch 6886-------- 6887* `Add link to served docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173456>`__ 6888 6889pw_web 6890------ 6891* `Make ongoing transfers accessible downstream <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174231>`__ 6892* `TypeScript workarounds for disambiguation errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173590>`__ 6893* `Throw error as an Error type <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173051>`__ 6894* `Remove need for Buffer package in pw_hdlc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172377>`__ 6895* `Remove date-fns <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172371>`__ 6896 6897Build 6898===== 6899* `Fix extended default group <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174574>`__ 6900 (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) 6901* `Fix \`all\` target in GN build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173050>`__ 6902* `Add an extended default group <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/110391>`__ 6903 6904Bazel 6905----- 6906* `Retire pigweed_config (part 3) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172411>`__ 6907* `Retire pigweed_config (part 2) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170058>`__ 6908 (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) 6909 6910Docs 6911==== 6912We started a :ref:`glossary <docs-glossary>` and added new docs about 6913:ref:`rollers <docs-rollers>` and :ref:`CI/CQ <docs-ci-cq-intro>`. 6914 6915* `Add docs on rollers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174770>`__ 6916 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6917* `Remove redundant auto-submit section <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174890>`__ 6918 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6919* `Reformat CI/CQ Intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174870>`__ 6920 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6921* `Move CI/CQ Intro to infra/ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174776>`__ 6922 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6923* `Address comments on CI/CQ intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173932>`__ 6924 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6925* `Tidy up build system docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173658>`__ 6926* `Fix typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173872>`__ 6927* `Add CI/CQ Intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173455>`__ 6928 (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) 6929* `Add policy on incomplete docs changes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173617>`__ 6930* `Start the glossary <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172952>`__ 6931* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172810>`__ 6932 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 6933* `Add Doxygen @endcode guidance <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172470>`__ 6934 6935SEEDs 6936===== 6937* (SEED-0112) `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174771>`__ 6938 6939Miscellaneous 6940============= 6941 6942pigweed.json 6943------------ 6944* `Exclude patches.json from formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174230>`__ 6945 (issue `#232234662 <https://issues.pigweed.dev/issues/232234662>`__) 6946 6947------------ 6948Sep 22, 2023 6949------------ 6950Highlights (Sep 07, 2023 to Sep 22, 2023): 6951 6952* ``pw_tokenizer`` has :ref:`new C++ methods for detokenizing 6953 Base64-encoded strings and new C functions for manually encoding tokenized 6954 messages that contain integers <docs-changelog-pw_tokenizer-20230922>`. 6955* ``pw::rpc::SynchronousCall`` now supports the use of :ref:`custom response message 6956 classes <docs-changelog-pw_rpc-20230922>`. 6957* The C API for ``pw_varint`` got :ref:`lots of ergonomic improvements 6958 <docs-changelog-pw_varint-20230922>`. 6959* The new :ref:`docs-code_reviews` document outlines the upstream Pigweed code 6960 review process. 6961 6962Active SEEDs 6963============ 6964Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 6965 6966* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 6967* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 6968* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 6969* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ 6970* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ 6971* `SEED-0111: Future of Pigweed build systems <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ 6972* `SEED-0112: Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ 6973 6974Modules 6975======= 6976 6977pw function 6978----------- 6979* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ 6980 (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) 6981 6982pw perf_test 6983------------ 6984* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ 6985 (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) 6986 6987pw_analog 6988--------- 6989* `Migrate AnalogInput to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170511>`__ 6990 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 6991 6992pw_async 6993-------- 6994The ``Run*()`` methods of ``FakeDispatcher`` now return a boolean that indicates 6995whether any tasks were invoked. 6996 6997* `Return bool from FakeDispatcher Run*() methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170599>`__ 6998 6999pw_async_basic 7000-------------- 7001``release()`` is now only called outside of locked contexts to prevent an 7002issue where the thread wakes up and then immediately goes back to sleep. 7003An unnecessary 5-second wakeup has been removed from ``BasicDispatcher``. 7004 7005* `release outside of lock context <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171103>`__ 7006* `Remove unnecessary 5-second wakeup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171102>`__ 7007 7008pw_base64 7009--------- 7010The new ``pw::base64::IsValidChar()`` method can help you determine if a 7011character is valid Base64. 7012 7013* `Add base64 detokenizer handler <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165010>`__ 7014 7015pw_bluetooth 7016------------ 7017More :ref:`Emboss <module-pw_third_party_emboss>` definitions were added. 7018 7019* `Add ReadLocalSupportedCommandsCommandCompleteEvent Emboss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169877>`__ 7020* `Add LEReadLocalSupportedFeaturesCommandCompleteEvent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169931>`__ 7021* `Add ReadBufferSizeCommandComplete Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169869>`__ 7022* `Add ReadBdAddrCommandCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170052>`__ 7023* `Add ReadLocalVersionInfoCommandCompleteEvent Emboss def <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169951>`__ 7024* `Add LELongTermKeyRequestSubevent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169950>`__ 7025* `Add UserPasskeyNotificationEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169917>`__ 7026 7027pw_build 7028-------- 7029* `Apply -Wextra-semi to C code as well as C++ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172372>`__ 7030 7031pw_bytes 7032-------- 7033The ``AlignDown()``, ``AlignUp()``, and ``Padding()`` methods of ``pw_kvs`` 7034have moved to ``pw_bytes`` to enable ``pw_allocator`` to use them without 7035taking a dependency on ``pw_kvs``. 7036 7037* `Move Align functions from pw_kvs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171831>`__ 7038 7039pw_checksum 7040----------- 7041* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ 7042 (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) 7043 7044pw_chre 7045------- 7046The implementation of a module that will enable to work more seamlessly with 7047Android's `Context Hub Runtime Environment <https://source.android.com/docs/core/interaction/contexthub>`__ 7048has begun. 7049 7050* `Update bug numbers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172330>`__ 7051* `Minor fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171851>`__ 7052 (issue `#301079509 <https://issues.pigweed.dev/issues/301079509>`__) 7053* `Fix build rules to use paramertized paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171850>`__ 7054 (issue `#298474212 <https://issues.pigweed.dev/issues/298474212>`__) 7055* `Split out shared_platform <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170791>`__ 7056* `Write our own version.cc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170790>`__ 7057 (issue `#300633363 <https://issues.pigweed.dev/issues/300633363>`__) 7058* `Add barebones CHRE <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162510>`__ 7059 (issue `#294106526 <https://issues.pigweed.dev/issues/294106526>`__) 7060 7061pw_console 7062---------- 7063When invoking ``pw_console`` directly from Python, you can now provide arguments 7064through an ``argparse.Namespace`` instead of messing with ``sys.argv`` or forking 7065another process. 7066 7067* `Allow injecting args via Python call <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172414>`__ 7068 7069pw_containers 7070------------- 7071`MemorySanitizer <https://github.com/google/sanitizers/wiki/MemorySanitizer>`__ has 7072been disabled in some of the ``InlineDeque`` implementation to prevent some false 7073positive detections of uninitialized memory reads. 7074 7075* `Silence MSAN false positives <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171990>`__ 7076 7077pw_env_setup 7078------------ 7079Work continues on making the Windows bootstrap process more robust. 7080 7081* `Better highlight bootstrap failure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172415>`__ 7082* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ 7083 (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) 7084* `Enable overriding Clang CIPD version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171838>`__ 7085* `PyPI version bump to 0.0.15 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171836>`__ 7086* `Add relative_pigweed_root to pigweed.json <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171218>`__ 7087 (issue `#300632028 <https://issues.pigweed.dev/issues/300632028>`__) 7088* `Roll cipd to 0f08b927516 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170452>`__ 7089 7090pw_function 7091----------- 7092The documentation has been updated for accuracy. 7093 7094* `Update config.h comments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171250>`__ 7095* `Add configurable Allocator default <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171130>`__ 7096* `Update example to match guidelines for parameters <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170651>`__ 7097* `Add Allocator injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170190>`__ 7098 7099pw_fuzzer 7100--------- 7101Conditional logic around fuzzing support has been refactored to allow for 7102dedicated targets based on specific conditions and to make it clearer 7103exactly what configurations and dependencies are being used. 7104 7105* `Refactor conditional GN targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169712>`__ 7106 7107pw_ide 7108------ 7109* `Reformat json files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172310>`__ 7110* `Fix clangd path on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171099>`__ 7111* `Move VSC extension into npm package dir <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170995>`__ 7112 7113pw_libc 7114------- 7115The initial implementation work continues. 7116 7117* `Pull in 'abort' <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/138518>`__ 7118* `Use .test convention <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171793>`__ 7119* `Use underscore prefixed variables <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171792>`__ 7120* `Add documentation for pw_libc_source_set <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171693>`__ 7121* `Pull in 'gmtime' <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137699>`__ 7122* `Fix printf for newer llvm-libc commits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170831>`__ 7123* `Fix llvm-libc after internal assert changes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168830>`__ 7124 7125pw_log 7126------ 7127The implementation work continues to enable an Android component to read logs 7128from a component running the ``pw_log_rpc`` service. 7129 7130* `Update Android.bp to generate RPC header files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169530>`__ 7131 (issue `#298693458 <https://issues.pigweed.dev/issues/298693458>`__) 7132 7133pw_log_string 7134------------- 7135* `Fix the default impl to handle zero length va args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169975>`__ 7136 7137pw_package 7138---------- 7139Mirrors are now being used for various third-party dependencies. 7140 7141* `Use mirror for zephyrproject-rtos/zephyr <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170355>`__ 7142 (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) 7143* `Use Pigweed mirror for google/emboss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170356>`__ 7144 (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) 7145* `Use mirror for raspberrypi/picotool <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170040>`__ 7146 (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) 7147 7148pw_polyfill 7149----------- 7150* `Increase __GNUC__ for __constinit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171150>`__ 7151 (issue `#300478321 <https://issues.pigweed.dev/issues/300478321>`__) 7152 7153pw_presubmit 7154------------ 7155A new JSON formatting check has been added. The missing newline check has been 7156made more robust. 7157 7158* `Add JSON formatter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171991>`__ 7159* `Better handling of missing newlines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172230>`__ 7160 (issue `#301315329 <https://issues.pigweed.dev/issues/301315329>`__) 7161* `Expand Bazel parser to tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171890>`__ 7162* `Remove now-unnecessary flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171670>`__ 7163 (issue `#271299438 <https://issues.pigweed.dev/issues/271299438>`__) 7164* `Additional functions for handling gn args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170594>`__ 7165* `Include bazel_build in full program <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170056>`__ 7166 7167pw_protobuf 7168----------- 7169* `Fix "Casting..." heading level <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171030>`__ 7170 7171.. _docs-changelog-pw_rpc-20230922: 7172 7173pw_rpc 7174------ 7175``pw::rpc::SynchronousCall`` now supports the use of custom response message 7176classes that set field callbacks in their constructor. See 7177:ref:`module-pw_rpc-client-sync-call-wrappers`. 7178 7179.. todo-check: disable 7180 7181* `Refer to bug in TODO and fix format <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172453>`__ 7182* `Support custom response messages in SynchronousCall <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170041>`__ 7183 (issue `#299920227 <https://issues.pigweed.dev/issues/299920227>`__) 7184* `Add fuzz tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/143474>`__ 7185 7186.. todo-check: enable 7187 7188pw_stream 7189--------- 7190* `Add Windows socket support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172413>`__ 7191 7192pw_string 7193--------- 7194* `Fix signed integer overflow <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171839>`__ 7195 7196pw_system 7197--------- 7198* `Add arm_none_eabi_gcc_support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158730>`__ 7199 7200pw_thread 7201--------- 7202* `Fix small typo in docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171750>`__ 7203 7204.. _docs-changelog-pw_tokenizer-20230922: 7205 7206pw_tokenizer 7207------------ 7208``pw::tokenizer::Detokenizer`` has new ``DetokenizeBase64Message()`` and 7209``DetokenizeBase64()`` methods for detokenizing Base64-encoded strings. 7210The new ``pw_tokenizer_EncodeInt()`` and ``pw_tokenizer_EncodeInt64()`` 7211functions in the C API make it easier to manually encode tokenized messages 7212with integers from C. 7213 7214* `C++ Base64 detokenization improvements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171675>`__ 7215* `Add base64 detokenizer handler <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165010>`__ 7216* `C functions for encoding arguments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169976>`__ 7217 7218pw_toolchain 7219------------ 7220``arm_gcc`` now supports Cortex-M33. 7221 7222* `Add missing objcopy tool to bazel toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171697>`__ 7223 (issue `#301004620 <https://issues.pigweed.dev/issues/301004620>`__) 7224* `Add cpu flags to asmopts as well <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171671>`__ 7225* `Add cortex-m33 support to arm_gcc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171237>`__ 7226 7227pw_toolchain_bazel 7228------------------ 7229* `Support ar opts in pw_toolchain_features <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171673>`__ 7230* `Add cortex-m7 constraint_value <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171071>`__ 7231 (issue `#300467616 <https://issues.pigweed.dev/issues/300467616>`__) 7232 7233.. _docs-changelog-pw_varint-20230922: 7234 7235pw_varint 7236--------- 7237The C encoding functions now have an output size argument, making them much 7238easier to use. There's a new macro for calculating the encoded size of an 7239integer in a C constant expression. Incremental versions of the encode and 7240decode functions have been exposed to support in-place encoding and decoding 7241with non-contiguous buffers. 7242 7243* `C API updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170050>`__ 7244 7245pw_web 7246------ 7247The ``ProgressStats`` and ``ProgressCallback`` types are now exported. 7248Styling and scrolling behavior in the log viewer has been improved. 7249 7250* `Remove need for Buffer package in pw_hdlc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172377>`__ 7251* `Remove date-fns <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172371>`__ 7252* `Export ProgressStats, ProgressCallback types <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171707>`__ 7253* `Add back 'buffer' dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171891>`__ 7254* `NPM version bump to 0.0.13 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171110>`__ 7255* `Improve scrolling behavior <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171290>`__ 7256 (issue `#298097109 <https://issues.pigweed.dev/issues/298097109>`__) 7257* `Fix leading white spaces, scrollbar size, and filters in quotes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170811>`__ 7258* `NPM version bump to 0.0.12 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170597>`__ 7259* `Fix column sizing & toggling, update UI <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169591>`__ 7260* `Replace Map() with object in proto collection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170493>`__ 7261 7262pw_work_queue 7263------------- 7264* `Don't lock around work_notification_ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170450>`__ 7265* `Migrate API reference to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169830>`__ 7266 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 7267 7268Build 7269===== 7270* `Update Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171510>`__ 7271 7272Bazel 7273----- 7274* `Add platform-printing aspect <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/122974>`__ 7275* `Retire pigweed_config (part 2) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170058>`__ 7276 (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) 7277* `Retire pigweed_config (part 1) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168721>`__ 7278 (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) 7279* `Remove -Wno-private-header from copts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170951>`__ 7280 (issue `#240466562 <https://issues.pigweed.dev/issues/240466562>`__) 7281* `Remove bazelembedded dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170650>`__ 7282 (issue `#297239780 <https://issues.pigweed.dev/issues/297239780>`__) 7283* `Move cxxopts out of bazelrc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170639>`__ 7284 (issue `#269195628 <https://issues.pigweed.dev/issues/269195628>`__) 7285* `Use the same clang version as in GN <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170638>`__ 7286* `Arm gcc configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168192>`__ 7287 (issue `#297239780 <https://issues.pigweed.dev/issues/297239780>`__) 7288 7289Targets 7290======= 7291* `Fix pico_sdk elf2uf2 on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170770>`__ 7292* `Add pw_strict_host_clang_debug_dynamic_allocation tc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171674>`__ 7293 7294Docs 7295==== 7296The new :ref:`docs-code_reviews` document outlines the upstream Pigweed code 7297review process. 7298 7299* `Add Doxygen @endcode guidance <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172470>`__ 7300* `Clean up remaining instances of code:: <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172050>`__ 7301 (issue `#300317685 <https://issues.pigweed.dev/issues/300317685>`__) 7302* `Document code review process <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171774>`__ 7303* `Add link to in-progress hardware targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171239>`__ 7304* `Fix link title for pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170670>`__ 7305* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170055>`__ 7306 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 7307 7308SEEDs 7309===== 7310* `Update process document <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170390>`__ 7311* (SEED-0104) `Display Support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ 7312* (SEED-0109) `Make link externally accessible <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170043>`__ 7313* (SEED-0110) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170038>`__ 7314* (SEED-0111) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171672>`__ 7315* (SEED-0112) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168359>`__ 7316 7317Third party 7318=========== 7319* `Add public configs for FuzzTest deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169711>`__ 7320 7321third_party/fuchsia 7322------------------- 7323* `Copybara import <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171010>`__ 7324* `Update patch script and patch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170890>`__ 7325* `Update patch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170794>`__ 7326* `Support specifying the Fuchsia repo to use <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170170>`__ 7327 7328third_party/pico_sdk 7329-------------------- 7330* `Selectively disable elf2uf2 warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171072>`__ 7331 (issue `#300474559 <https://issues.pigweed.dev/issues/300474559>`__) 7332* `Fix multicore source filename <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170330>`__ 7333 7334Miscellaneous 7335============= 7336.. todo-check: disable 7337 7338* `Use new TODO style <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170730>`__ 7339* `Add toolchain team members <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172170>`__ 7340* `Fix double bootstrap.bat failures on Windows" <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ 7341 (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) 7342 7343.. todo-check: enable 7344 7345----------- 7346Sep 8, 2023 7347----------- 7348Highlights (Aug 25, 2023 to Sep 8, 2023): 7349 7350* SEED :ref:`seed-0107` has been approved! Pigweed will adopt a new sockets API as 7351 its primary networking abstraction. The sockets API will be backed by a new, 7352 lightweight embedded-focused network protocol stack inspired by TCP/IP. 7353* SEED :ref:`seed-0108` has also been approved! Coming soon, the new ``pw_emu`` 7354 module will make it easier to work with emulators. 7355 7356Active SEEDs 7357============ 7358Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 7359 7360* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 7361* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ 7362* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 7363* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 7364* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ 7365 7366Modules 7367======= 7368 7369pw_assert 7370--------- 7371We fixed circular dependencies in Bazel. 7372 7373* `Remove placeholder target <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168844>`__ 7374* `Fix Bazel circular deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160794>`__ 7375 (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) 7376* `Introduce pw_assert_backend_impl <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168774>`__ 7377 (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) 7378 7379pw_bluetooth 7380------------ 7381We added :ref:`Emboss <module-pw_third_party_emboss>` definitions. 7382 7383* `Add SimplePairingCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169916>`__ 7384* `Add UserPasskeyRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169912>`__ 7385* `Add UserConfirmationRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169871>`__ 7386* `Use hci.LinkKey in LinkKeyNotificationEvent.link_key <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168858>`__ 7387* `Add IoCapabilityResponseEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168354>`__ 7388* `Add IoCapabilityRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168353>`__ 7389* `Add EncryptionKeyRefreshCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168331>`__ 7390* `Add ExtendedInquiryResultEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168330>`__ 7391 7392pw_build 7393-------- 7394* `Force watch and default recipe names <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169911>`__ 7395 7396pw_build_mcuxpresso 7397------------------- 7398* `Output formatted bazel target <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169740>`__ 7399 7400pw_cpu_exception 7401---------------- 7402We added Bazel support. 7403 7404* `bazel build support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169733>`__ 7405 (issue `#242183021 <https://issues.pigweed.dev/issues/242183021>`__) 7406 7407pw_crypto 7408--------- 7409The complete ``pw_crypto`` API reference is now documented on :ref:`module-pw_crypto`. 7410 7411* `Add API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169572>`__ 7412 (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) 7413 7414pw_env_setup 7415------------ 7416Banners should not print correctly on Windows. 7417 7418* `Add i2c protos to python deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169231>`__ 7419* `Fix banner printing on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169172>`__ 7420 (issue `#289008307 <https://issues.pigweed.dev/issues/289008307>`__) 7421 7422pw_file 7423------- 7424* `Add pw_file python package <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168831>`__ 7425 7426pw_function 7427----------- 7428The :cpp:func:`pw::bind_member()` template is now exposed in the public API. 7429``bind_member()`` is useful for binding the ``this`` argument of a callable. 7430We added a section to the docs explaining :ref:`why pw::Function is not a 7431literal <module-pw_function-non-literal>`. 7432 7433* `Explain non-literal design rationale <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168777>`__ 7434* `Expose \`bind_member\` <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169123>`__ 7435 7436pw_fuzzer 7437--------- 7438We refactored ``pw_fuzzer`` logic to be more robust and expanded the 7439:ref:`module-pw_fuzzer-guides-reproducing_oss_fuzz_bugs` doc. 7440 7441* `Refactor OSS-Fuzz support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167348>`__ 7442 (issue `#56955 <https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56955>`__) 7443 7444pw_i2c 7445------ 7446* `Use new k{FieldName}MaxSize constants to get buffer size <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168913>`__ 7447 7448pw_kvs 7449------ 7450We are discouraging the use of the shorter macros because they collide with 7451Abseil's logging API. 7452 7453* `Remove usage of pw_log/shorter.h API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169920>`__ 7454 (issue `#299520256 <https://issues.pigweed.dev/issues/299520256>`__) 7455 7456pw_libc 7457------- 7458``snprintf()`` support was added. 7459 7460* `Import LLVM libc's snprintf <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137735>`__ 7461 7462pw_log_string 7463------------- 7464We added more detail to :ref:`module-pw_log_string`. 7465 7466* `Fix the default impl to handle zero length va args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169975>`__ 7467* `Provide more detail in the getting started docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168934>`__ 7468 (issue `#298124226 <https://issues.pigweed.dev/issues/298124226>`__) 7469 7470pw_log_zephyr 7471------------- 7472It's now possible to define ``pw_log_tokenized_HandleLog()`` outside of Pigweed 7473so that Zephyr projects have more flexibility around how they capture tokenized 7474logs. 7475 7476* `Split tokenize handler into its own config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168612>`__ 7477 7478pw_package 7479---------- 7480* `Handle failed cipd acl checks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168530>`__ 7481 7482pw_persistent_ram 7483----------------- 7484* `Add persistent_buffer flat_file_system_entry <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168832>`__ 7485 7486pw_presubmit 7487------------ 7488We added a reStructuredText formatter. 7489 7490* `Make builds_from_previous_iteration ints <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169721>`__ 7491 (issue `#299336222 <https://issues.pigweed.dev/issues/299336222>`__) 7492* `Move colorize_diff to tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168839>`__ 7493* `RST formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168541>`__ 7494 7495pw_protobuf 7496----------- 7497``max_size`` and ``max_count`` are now exposed in generated headers. 7498The new ``proto_message_field_props()`` helper function makes it easier to 7499iterate through a messages fields and properties. 7500 7501* `Expose max_size, max_count in generated header file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168973>`__ 7502 (issue `#297364973 <https://issues.pigweed.dev/issues/297364973>`__) 7503* `Introduce proto_message_field_props() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168972>`__ 7504* `Change PROTO_FIELD_PROPERTIES to a dict of classes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168971>`__ 7505* `Rename 'node' to 'message' in forward_declare() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168970>`__ 7506* `Simplify unnecessary Tuple return type <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168910>`__ 7507 7508pw_random 7509--------- 7510We're now auto-generating the ``XorShiftStarRng64`` API reference via Doxygen. 7511 7512* `Doxygenify xor_shift.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164510>`__ 7513 7514pw_rpc 7515------ 7516The new ``request_completion()`` method in Python enables you to send a 7517completion packet for server streaming calls. 7518 7519* `Add request_completion to ServerStreamingCall python API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168439>`__ 7520 7521pw_spi 7522------ 7523* `Fix Responder.SetCompletionHandler() signature <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169130>`__ 7524 7525pw_symbolizer 7526------------- 7527The ``LlvmSymbolizer`` Python class has a new ``close()`` method to 7528deterministically close the background process. 7529 7530* `LlvmSymbolizer tool improvement <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168863>`__ 7531 7532pw_sync 7533------- 7534We added :ref:`module-pw_sync-genericbasiclockable`. 7535 7536* `Add GenericBasicLockable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165930>`__ 7537 7538pw_system 7539--------- 7540``pw_system`` now supports different channels for primary and logging RPC. 7541 7542* `Multi-channel configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167158>`__ 7543 (issue `#297076185 <https://issues.pigweed.dev/issues/297076185>`__) 7544 7545pw_thread_freertos 7546------------------ 7547* `Add missing dep to library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169239>`__ 7548 7549pw_tokenizer 7550------------ 7551We added :c:macro:`PW_TOKENIZE_FORMAT_STRING_ANY_ARG_COUNT` and 7552:c:macro:`PW_TOKENIZER_REPLACE_FORMAT_STRING`. We refactored the docs 7553so that you don't have to jump around the docs as much when learning about 7554key topics like tokenization and token databases. Database loads now happen 7555in a separate thread to avoid blocking the main thread. Change detection for 7556directory databases now works more as expected. The config API is now exposed 7557in the API reference. 7558 7559* `Remove some unused deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169573>`__ 7560* `Simplify implementing a custom tokenization macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169121>`__ 7561* `Refactor the docs to be task-focused <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169124>`__ 7562* `Reload database in dedicated thread <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168866>`__ 7563* `Combine duplicated docs sections <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168865>`__ 7564* `Support change detection for directory dbs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168630>`__ 7565* `Move config value check to .cc file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168615>`__ 7566 7567pw_unit_test 7568------------ 7569We added ``testing::Test::HasFailure()``, ``FRIEND_TEST``, and ``<<`` messages 7570to improve gTest compatibility. 7571 7572* `Add testing::Test::HasFailure() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168810>`__ 7573* `Add FRIEND_TEST <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169270>`__ 7574* `Allow <<-style messages in test expectations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168860>`__ 7575 7576pw_varint 7577--------- 7578``pw_varint`` now has a :ref:`C-only API <module-pw_varint-api-c>`. 7579 7580* `Add C-only implementation; cleanup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169122>`__ 7581 7582pw_web 7583------ 7584Logs can now be downloaded as plaintext. 7585 7586* `Fix TypeScript errors in Device files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169930>`__ 7587* `Json Log Source example <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169176>`__ 7588* `Enable downloading logs as plain text <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168130>`__ 7589* `Fix UI/state bugs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167911>`__ 7590* `NPM version bump to 0.0.11 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168591>`__ 7591* `Add basic bundling tests for log viewer bundle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168539>`__ 7592 7593Build 7594===== 7595 7596Bazel 7597----- 7598* `Fix alwayslink support in MacOS host_clang <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168614>`__ 7599 (issue `#297413805 <https://issues.pigweed.dev/issues/297413805>`__) 7600* `Fix lint issues after roll <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169611>`__ 7601 7602Docs 7603==== 7604* `Fix broken links <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169579>`__ 7605 (issue `#299181944 <https://issues.pigweed.dev/issues/299181944>`__) 7606* `Recommend enabling long file paths on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169578>`__ 7607* `Update Windows command for git hook <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168592>`__ 7608* `Fix main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168555>`__ 7609 (issue `#297384789 <https://issues.pigweed.dev/issues/297384789>`__) 7610* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168540>`__ 7611 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 7612* `Use code-block:: instead of code:: everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168617>`__ 7613* `Add function signature line breaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168554>`__ 7614* `Cleanup indentation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168537>`__ 7615 7616SEEDs 7617===== 7618* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ 7619 7620Third party 7621=========== 7622* `Add public configs for FuzzTest deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169711>`__ 7623* `Reconfigure deps & add cflags to config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152691>`__ 7624 7625Miscellaneous 7626============= 7627* `Fix formatting with new clang version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169078>`__ 7628 7629mimxrt595_evk_freertos 7630---------------------- 7631* `Use config_assert helper <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160378>`__ 7632 7633------------ 7634Aug 25, 2023 7635------------ 7636Highlights (Aug 11, 2023 to Aug 25, 2023): 7637 7638* ``pw_tokenizer`` now has Rust support. 7639* The ``pw_web`` log viewer now has advanced filtering and a jump-to-bottom 7640 button. 7641* The ``run_tests()`` method of ``pw_unit_test`` now returns a new 7642 ``TestRecord`` dataclass which provides more detailed information 7643 about the test run. 7644* A new Ambiq Apollo4 target that uses the Ambiq Suite SDK and FreeRTOS 7645 has been added. 7646 7647Active SEEDs 7648============ 7649Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 7650 7651* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 7652* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ 7653* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 7654* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 7655* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ 7656 7657Modules 7658======= 7659 7660pw_bloat 7661-------- 7662* `Fix typo in method name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166832>`__ 7663 7664pw_bluetooth 7665------------ 7666The :ref:`module-pw_third_party_emboss` files were refactored. 7667 7668* `Add SynchronousConnectionCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167862>`__ 7669* `Add all Emboss headers/deps to emboss_test & fix errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168355>`__ 7670* `Add InquiryResultWithRssiEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167859>`__ 7671* `Add DataBufferOverflowEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167858>`__ 7672* `Add LinkKeyNotificationEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167855>`__ 7673* `Add LinkKeyRequestEvent emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167349>`__ 7674* `Remove unused hci emboss files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167090>`__ 7675* `Add RoleChangeEvent emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167230>`__ 7676* `Add missing test dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167130>`__ 7677* `Add new hci subset files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166730>`__ 7678 7679pw_build 7680-------- 7681The ``pw_build`` docs were split up so that each build system has its own page 7682now. The new ``output_logs`` flag enables you to not output logs for ``pw_python_venv``. 7683 7684* `Handle read-only files when deleting venvs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167863>`__ 7685* `Split build system docs into separate pages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165071>`__ 7686* `Use pw_toolchain_clang_tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167671>`__ 7687* `Add missing pw_linker_script flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167632>`__ 7688 (issue `#296928739 <https://issues.pigweed.dev/issues/296928739>`__) 7689* `Fix output_logs_ unused warning <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166991>`__ 7690 (issue `#295524695 <https://issues.pigweed.dev/issues/295524695>`__) 7691* `Don't include compile cmds when preprocessing ldscripts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166490>`__ 7692* `Add pw_python_venv.output_logs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165330>`__ 7693 (issue `#295524695 <https://issues.pigweed.dev/issues/295524695>`__) 7694* `Increase size of test linker script memory region <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164823>`__ 7695* `Add integration test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154553>`__ 7696 7697pw_cli 7698------ 7699* `Default change pw_protobuf default <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126806>`__ 7700 (issue `#266298474 <https://issues.pigweed.dev/issues/266298474>`__) 7701 7702pw_console 7703---------- 7704* `Update web viewer to use pigweedjs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162995>`__ 7705 7706pw_containers 7707------------- 7708* `Silence MSAN false positive in pw::Vector <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167111>`__ 7709 7710pw_docgen 7711--------- 7712Docs builds should be faster now because Sphinx has been configured to use 7713all available cores. 7714 7715* `Remove top nav bar <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168446>`__ 7716* `Parallelize Sphinx <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164738>`__ 7717 7718pw_env_setup 7719------------ 7720Sphinx was updated from v5.3.0 to v7.1.2. We switched back to the upstream Furo 7721theme and updated to v2023.8.19. The content of ``pigweed_environment.gni`` now 7722gets logged. There was an update to ensure that ``arm-none-eabi-gdb`` errors 7723propagate correctly. There is now a way to override Bazel build files for CIPD 7724repos. 7725 7726* `Upgrade sphinx and dependencies for docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168431>`__ 7727* `Upgrade sphinx-design <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168339>`__ 7728* `Copy pigweed_environment.gni to logs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167850>`__ 7729* `arm-gdb: propagate errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165411>`__ 7730* `arm-gdb: exclude %VIRTUAL_ENV%\Scripts from search paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164370>`__ 7731* `Add ability to override bazel BUILD file for CIPD repos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165530>`__ 7732 7733pw_function 7734----------- 7735* `Rename template parameter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168334>`__ 7736 7737pw_fuzzer 7738--------- 7739* `Add test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154555>`__ 7740 7741pw_hdlc 7742------- 7743A new ``close()`` method was added to ``HdlcRpcClient`` to signal to the thread 7744to stop. 7745 7746* `Use explicit logger name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166591>`__ 7747* `Mitigate errors on Python background thread <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162712>`__ 7748 (issue `#293595266 <https://issues.pigweed.dev/issues/293595266>`__) 7749 7750pw_ide 7751------ 7752A new ``--install-editable`` flag was added to install Pigweed Python modules 7753in editable mode so that code changes are instantly realized. 7754 7755* `Add cmd to install Py packages as editable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163572>`__ 7756* `Make VSC extension run on older versions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167054>`__ 7757 7758pw_perf_test 7759------------ 7760* `Add test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154554>`__ 7761 7762pw_presubmit 7763------------ 7764``pw_presubmit`` now has an ESLint check for linting and a Prettier check for 7765formatting JavaScript and TypeScript files. 7766 7767* `Add msan to OTHER_CHECKS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168325>`__ 7768 (issue `#234876100 <https://issues.pigweed.dev/issues/234876100>`__) 7769* `Upstream constraint file output fix <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166270>`__ 7770* `JavaScript and TypeScript lint check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165410>`__ 7771* `Apply TypeScript formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164825>`__ 7772* `Use prettier for JS and TS files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165390>`__ 7773 7774pw_rpc 7775------ 7776A ``request_completion()`` method was added to the ``ServerStreamingCall`` 7777Python API. A bug was fixed related to encoding failures when dynamic buffers 7778are enabled. 7779 7780* `Add request_completion to ServerStreamingCall python API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168439>`__ 7781* `Various small enhancements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167162>`__ 7782* `Remove deprecated method from Service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165510>`__ 7783* `Prevent encoding failure when dynamic buffer enabled <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166833>`__ 7784 (issue `#269633514 <https://issues.pigweed.dev/issues/269633514>`__) 7785 7786pw_rpc_transport 7787---------------- 7788* `Add simple_framing Soong rule <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165350>`__ 7789 7790pw_rust 7791------- 7792* `Update rules_rust to 0.26.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166831>`__ 7793 7794pw_stm32cube_build 7795------------------ 7796* `Windows path fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167865>`__ 7797 7798pw_stream 7799--------- 7800Error codes were updated to be more accurate and descriptive. 7801 7802* `Use more appropriate error codes for Cursor <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164592>`__ 7803 7804pw_stream_uart_linux 7805-------------------- 7806Common baud rates such as ``9600``, ``19200``, and so on are now supported. 7807 7808* `Add support for baud rates other than 115200 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165070>`__ 7809 7810pw_sync 7811------- 7812Tests were added to make sure that ``pw::sync::Borrowable`` works with lock 7813annotations. 7814 7815* `Test Borrowable with Mutex, TimedMutex, and InterruptSpinLock <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153575>`__ 7816 (issue `#261078330 <https://issues.pigweed.dev/issues/261078330>`__) 7817 7818pw_system 7819--------- 7820The ``pw_system.device.Device`` Python class can now be used as a 7821`context manager <https://realpython.com/python-with-statement/>`_. 7822 7823* `Make pw_system.device.Device a context manager <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163410>`__ 7824 7825pw_tokenizer 7826------------ 7827``pw_tokenizer`` now has Rust support. The ``pw_tokenizer`` C++ config API 7828is now documented at :ref:`module-pw_tokenizer-api-configuration` and 7829the C++ token database API is now documented at 7830:ref:`module-pw_tokenizer-api-token-databases`. When creating a token 7831database, parent directories are now automatically created if they don't 7832already exist. ``PrefixedMessageDecoder`` has been renamed to 7833``NestedMessageDecoder``. 7834 7835* `Move config value check to .cc file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168615>`__ 7836* `Create parent directory as needed <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168510>`__ 7837* `Rework pw_tokenizer.detokenize.PrefixedMessageDecoder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167150>`__ 7838* `Minor binary database improvements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167053>`__ 7839* `Update binary DB docs and convert to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163570>`__ 7840* `Deprecate tokenizer buffer size config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163257>`__ 7841* `Fix instance of -Wconstant-logical-operand <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166731>`__ 7842* `Add Rust support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/145389>`__ 7843 7844pw_toolchain 7845------------ 7846A new Linux host toolchain built using ``pw_toolchain_bazel`` has been 7847started. CIPD-provided Rust toolchains are now being used. 7848 7849* `Link against system libraries using libs not ldflags <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151050>`__ 7850* `Use %package% for cxx_builtin_include_directories <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168340>`__ 7851* `Extend documentation for tool prefixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167633>`__ 7852* `Add Linux host toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164824>`__ 7853 (issue `#269204725 <https://issues.pigweed.dev/issues/269204725>`__) 7854* `Use CIPD provided Rust toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166852>`__ 7855* `Switch macOS to use builtin_sysroot <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165414>`__ 7856* `Add cmake helpers for getting clang compile+link flags <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163811>`__ 7857 7858pw_unit_test 7859------------ 7860``run_tests()`` now returns the new ``TestRecord`` dataclass which provides 7861more detailed information about the test run. ``SetUpTestSuit()`` and 7862``TearDownTestSuite()`` were added to improve GoogleTest compatibility. 7863 7864* `Add TestRecord of Test Results <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166273>`__ 7865* `Reset static value before running tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166590>`__ 7866 (issue `#296157327 <https://issues.pigweed.dev/issues/296157327>`__) 7867* `Add per-fixture setup/teardown <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165210>`__ 7868 7869pw_web 7870------ 7871Log viewers are now drawn every 100 milliseconds at most to prevent crashes 7872when many logs arrive simultaneously. The log viewer now has a jump-to-bottom 7873button. Advanced filtering has been added. 7874 7875* `NPM version bump to 0.0.11 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168591>`__ 7876* `Add basic bundling tests for log viewer bundle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168539>`__ 7877* `Limit LogViewer redraws to 100ms <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167852>`__ 7878* `Add jump to bottom button, fix UI bugs and fix state bugs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164272>`__ 7879* `Implement advanced filtering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162070>`__ 7880* `Remove object-path dependency from Device API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165013>`__ 7881* `Log viewer toolbar button toggle style <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165412>`__ 7882* `Log-viewer line wrap toggle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164010>`__ 7883 7884Targets 7885======= 7886 7887targets 7888------- 7889A new Ambiq Apollo4 target that uses the Ambiq Suite SDK and FreeRTOS 7890has been added. 7891 7892* `Ambiq Apollo4 support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/129490>`__ 7893 7894Language support 7895================ 7896 7897Python 7898------ 7899* `Upgrade mypy to 1.5.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166272>`__ 7900* `Upgrade pylint to 2.17.5 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166271>`__ 7901 7902Docs 7903==== 7904Doxygen-generated function signatures now present each argument on a separate 7905line. Tabbed content looks visually different than before. 7906 7907* `Use code-block:: instead of code:: everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168617>`__ 7908* `Add function signature line breaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168554>`__ 7909* `Cleanup indentation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168537>`__ 7910* `Remove unused myst-parser <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168392>`__ 7911* `Use sphinx-design for tabbed content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168341>`__ 7912* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164810>`__ 7913 7914SEEDs 7915===== 7916:ref:`SEED-0107 (Pigweed Communications) <seed-0107>` was accepted and 7917SEED-0109 (Communication Buffers) was started. 7918 7919* `Update protobuf SEED title in index <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166470>`__ 7920* `Update status to Accepted <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167770>`__ 7921* `Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ 7922* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168358>`__ 7923 7924Miscellaneous 7925============= 7926 7927Build 7928----- 7929* `Make it possible to run MSAN in GN <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167112>`__ 7930 7931soong 7932----- 7933* `Remove host/vendor properties from defaults <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165270>`__ 7934 7935------------ 7936Aug 11, 2023 7937------------ 7938Highlights (Jul 27, 2023 to Aug 11, 2023): 7939 7940* We're prototyping a Pigweed extension for VS Code. Learn more at 7941 :ref:`docs-editors`. 7942* We added ``pw_toolchain_bazel``, a new LLVM toolchain for building with 7943 Bazel on macOS. 7944* We are working on many docs improvements in parallel: auto-generating ``rustdocs`` 7945 for modules that support Rust 7946 (`example <https://pigweed.dev/rustdoc/pw_varint/>`_), refactoring the 7947 :ref:`module-pw_tokenizer` docs, migrating API references to Doxygen, 7948 fixing `longstanding docs site UI issues <https://issues.pigweed.dev/issues/292273650>`_, 7949 and more. 7950 7951Active SEEDs 7952============ 7953Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): 7954 7955* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 7956* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ 7957* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 7958* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 7959* `SEED-0107: Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ 7960* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ 7961 7962Modules 7963======= 7964 7965pw_alignment 7966------------ 7967* `Fix typos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163250>`__ 7968 7969pw_analog 7970--------- 7971Long-term, all of our API references will be generated from header comments via 7972Doxygen. Short-term, we are starting to show header files directly within the 7973docs as a stopgap solution for helping Pigweed users get a sense of each 7974module's API. See :ref:`module-pw_analog` for an example. 7975 7976* `Include header files as stopgap API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161491>`__ 7977 (issue `#293895312 <https://issues.pigweed.dev/issues/293895312>`__) 7978 7979pw_base64 7980--------- 7981We finished migrating the ``pw_random`` API reference to Doxygen. 7982 7983* `Finish Doxygenifying the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162911>`__ 7984* `Doxygenify the Encode() functions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156532>`__ 7985 7986pw_boot_cortex_m 7987---------------- 7988* `Allow explict target name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159790>`__ 7989 7990pw_build 7991-------- 7992We added a ``log_build_steps`` option to ``ProjectBuilder`` that enables you 7993to log all build step lines to your screen and logfiles. 7994 7995* `Handle ProcessLookupError exceptions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163710>`__ 7996* `ProjectBuilder log build steps option <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162931>`__ 7997* `Fix progress bar clear <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160791>`__ 7998 7999pw_cli 8000------ 8001We polished tab completion support. 8002 8003* `Zsh shell completion autoload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160796>`__ 8004* `Make pw_cli tab completion reusable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160379>`__ 8005 8006pw_console 8007---------- 8008We made copy-to-clipboard functionality more robust when running ``pw_console`` 8009over SSH. 8010 8011* `Set clipboard fallback methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150238>`__ 8012 8013pw_containers 8014------------- 8015We updated :cpp:class:`filteredview` constructors and migrated the 8016``FilteredView`` API reference to Doxygen. 8017 8018* `Doxygenify pw::containers::FilteredView <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160373>`__ 8019* `Support copying the FilteredView predicate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160372>`__ 8020 8021pw_docgen 8022--------- 8023At the top of pages like :ref:`module-pw_tokenizer` there is a UI widget that 8024provides information about the module. Previously, this UI widget had links 8025to all the module's docs. This is no longer needed now that the site nav 8026automatically scrolls to the page you're on, which allows you to see the 8027module's other docs. 8028 8029* `Remove the navbar from the module docs header widget <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162991>`__ 8030 (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) 8031 8032pw_env_setup 8033------------ 8034We made Python setup more flexible. 8035 8036* `Add clang_next.json <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163810>`__ 8037 (issue `#295020927 <https://issues.pigweed.dev/issues/295020927>`__) 8038* `Pip installs from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162093>`__ 8039* `Include Python packages from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162073>`__ 8040* `Remove unused pep517 package <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162072>`__ 8041* `Use more available Python 3.9 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161492>`__ 8042 (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) 8043* `Update Bazel to 2@6.3.0.6 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161010>`__ 8044 8045pw_ide 8046------ 8047We are prototyping a ``pw_ide`` extension for VS Code. 8048 8049* `Restore stable clangd settings link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164011>`__ 8050* `Add command to install prototype extension <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162412>`__ 8051* `Prototype VS Code extension <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151653>`__ 8052 8053pw_interrupt 8054------------ 8055We added a backend for Xtensa processors. 8056 8057* `Add backend for xtensa processors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160031>`__ 8058* `Tidy up target compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160650>`__ 8059 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8060 8061pw_log_zephyr 8062------------- 8063We encoded tokenized messages to ``pw::InlineString`` so that the output is 8064always null-terminated. 8065 8066* `Fix null termination of Base64 messages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163650>`__ 8067 8068pw_presubmit 8069------------ 8070We increased 8071`LUCI <https://chromium.googlesource.com/infra/infra/+/main/doc/users/services/about_luci.md>`_ 8072support and updated the ``#pragma once`` check to look for matching ``#ifndef`` 8073and ``#define`` lines. 8074 8075* `Fix overeager format_code matches <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162611>`__ 8076* `Exclude vsix files from copyright <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163011>`__ 8077* `Clarify unicode errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162993>`__ 8078* `Upload coverage json to zoss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162090>`__ 8079 (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) 8080* `Add to context tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162311>`__ 8081* `Add patchset to LuciTrigger <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162310>`__ 8082* `Add helpers to LuciContext <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162091>`__ 8083* `Update Python vendor wheel dir <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161514>`__ 8084* `Add summaries to guard checks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161391>`__ 8085 (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) 8086* `Copy Python packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161490>`__ 8087* `Add ifndef/define check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152173>`__ 8088 (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) 8089 8090pw_protobuf_compiler 8091-------------------- 8092We continued work to ensure that the Python environment in Bazel is hermetic. 8093 8094* `Use hermetic protoc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162913>`__ 8095 (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) 8096* `Move reference to python interpreter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162932>`__ 8097 (issue `#294414535 <https://issues.pigweed.dev/issues/294414535>`__) 8098* `Make nanopb hermetic <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162313>`__ 8099 (issue `#293792686 <https://issues.pigweed.dev/issues/293792686>`__) 8100 8101pw_python 8102--------- 8103We fixed bugs related to ``requirements.txt`` files not getting found. 8104 8105* `setup.sh requirements arg fix path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164430>`__ 8106* `setup.sh arg spaces bug <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163510>`__ 8107 8108pw_random 8109--------- 8110We continued migrating the ``pw_random`` API reference to Doxygen. 8111 8112* `Doxygenify random.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163730>`__ 8113 8114pw_rpc 8115------ 8116We made the Java client more robust. 8117 8118* `Java client backwards compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164515>`__ 8119* `Avoid reflection in Java client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162930>`__ 8120 (issue `#293361955 <https://issues.pigweed.dev/issues/293361955>`__) 8121* `Use hermetic protoc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162913>`__ 8122 (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) 8123* `Improve Java client error message for missing parser() method <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159471>`__ 8124 8125pw_spi 8126------ 8127We continued work on implementing a SPI responder interface. 8128 8129* `Responder interface definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159230>`__ 8130 8131pw_status 8132--------- 8133We fixed the nesting on a documentation section. 8134 8135* `Promote Zephyr heading to h2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160730>`__ 8136 8137pw_stream 8138--------- 8139We added ``remaining()``, ``len()``, and ``position()`` methods to the 8140``Cursor`` wrapping in Rust. 8141 8142* `Add infalible methods to Rust Cursor <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164271>`__ 8143 8144pw_stream_shmem_mcuxpresso 8145-------------------------- 8146We added the :ref:`module-pw_stream_shmem_mcuxpresso` backend for ``pw_stream``. 8147 8148* `Add shared memory stream for NXP MCU cores <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160831>`__ 8149 (issue `#294406620 <https://issues.pigweed.dev/issues/294406620>`__) 8150 8151pw_sync_freertos 8152---------------- 8153* `Fix ODR violation in tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160795>`__ 8154 8155pw_thread 8156--------- 8157* `Fix test_thread_context typo and presubmit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162770>`__ 8158 8159pw_tokenizer 8160------------ 8161We added support for unaligned token databases and continued the 8162:ref:`seed-0102` update of the ``pw_tokenizer`` docs. 8163 8164* `Separate API reference and how-to guide content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163256>`__ 8165* `Polish the sales pitch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163571>`__ 8166* `Support unaligned databases <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163333>`__ 8167* `Move the basic overview into getting started <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163253>`__ 8168* `Move the case study to guides.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163255>`__ 8169* `Restore info that get lost during the SEED-0102 migration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163330>`__ 8170* `Use the same tagline on every doc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163332>`__ 8171* `Replace savings table with flowchart <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158893>`__ 8172* `Ignore string nonliteral warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162092>`__ 8173 8174pw_toolchain 8175------------ 8176We fixed a regression that made it harder to use Pigweed in an environment where 8177``pw_env_setup`` has not been run and fixed a bug related to incorrect Clang linking. 8178 8179* `Optionally depend on pw_env_setup_CIPD_PIGWEED <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163790>`__ 8180 (issue `#294886611 <https://issues.pigweed.dev/issues/294886611>`__) 8181* `Prefer start-group over whole-archive <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150610>`__ 8182 (issue `#285357895 <https://issues.pigweed.dev/issues/285357895>`__) 8183 8184pw_toolchain_bazel 8185------------------ 8186We added a an LLVM toolchain for building with Bazel on macOS. 8187 8188* `LLVM toolchain for macOS Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157634>`__ 8189 (issue `#291795899 <https://issues.pigweed.dev/issues/291795899>`__) 8190 8191pw_trace_tokenized 8192------------------ 8193We made tracing more robust. 8194 8195* `Replace trace callback singletons with dep injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156912>`__ 8196 8197pw_transfer 8198----------- 8199We made integration tests more robust. 8200 8201* `Fix use-after-destroy in integration test client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163252>`__ 8202 (issue `#294101325 <https://issues.pigweed.dev/issues/294101325>`__) 8203* `Fix legacy binary path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162914>`__ 8204 (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) 8205* `Mark linux-only Bazel tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162094>`__ 8206 (issue `#294101325 <https://issues.pigweed.dev/issues/294101325>`__) 8207 8208pw_web 8209------ 8210We added support for storing user preferences in ``localStorage``. 8211 8212* `Fix TypeScript warnings in web_serial_transport.ts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164591>`__ 8213* `Add state for view number, search string, and columns visible <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161390>`__ 8214* `Fix TypeScript warnings in transfer.ts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162411>`__ 8215* `Fix TypeScript warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162095>`__ 8216* `Remove dependency on 'crc' and 'buffer' NPM packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160830>`__ 8217 8218Build 8219===== 8220We made the Bazel system more hermetic and fixed an error related to not 8221finding the Java runtime. 8222 8223* `Do not allow PATH leakage into Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162610>`__ 8224 (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) 8225* `Use remote Java runtime for Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160793>`__ 8226 (issue `#291791485 <https://issues.pigweed.dev/issues/291791485>`__) 8227 8228Docs 8229==== 8230We created a new doc (:ref:`docs-editors`) that explains how to improve Pigweed 8231support in various IDEs. We standardized how we present call-to-action buttons 8232on module homepages. See :ref:`module-pw_tokenizer` for an example. We fixed a 8233longstanding UI issue around the site nav not scrolling to the page that you're 8234currently on. 8235 8236* `Add call-to-action buttons <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163331>`__ 8237* `Update module items in site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163251>`__ 8238* `Add editor support doc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/110261>`__ 8239* `Delay nav scrolling to fix main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162990>`__ 8240 (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) 8241* `Suggest editor configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162710>`__ 8242* `Scroll to the current page in the site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162410>`__ 8243 (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) 8244* `Add changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160170>`__ 8245 (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) 8246 8247SEEDs 8248===== 8249We created a UI widget to standardize how we present SEED status information. 8250See the start of :ref:`seed-0102` for an example. 8251 8252* `Create Sphinx directive for metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161517>`__ 8253 8254Third party 8255=========== 8256 8257third_party/mbedtls 8258------------------- 8259* `3.3.0 compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160790>`__ 8260 (issue `#293612945 <https://issues.pigweed.dev/issues/293612945>`__) 8261 8262Miscellaneous 8263============= 8264 8265OWNERS 8266------ 8267* `Add kayce@ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163254>`__ 8268 8269------------ 8270Jul 28, 2023 8271------------ 8272Highlights (Jul 13, 2023 to Jul 28, 2023): 8273 8274* `SEED-0107: Pigweed Communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__, 8275 a proposal for an embedded-focused network protocol stack, is under 8276 discussion. Please review and provide your input! 8277* ``pw_cli`` now supports tab completion! 8278* A new UART Linux backend for ``pw_stream`` was added (``pw_stream_uart_linux``). 8279 8280Active SEEDs 8281============ 8282* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ 8283* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ 8284* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ 8285* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ 8286* `SEED-0107: Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ 8287* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ 8288 8289Modules 8290======= 8291 8292pw_allocator 8293------------ 8294We started migrating the ``pw_allocator`` API reference to Doxygen. 8295 8296* `Doxygenify the freelist chunk methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155395>`__ 8297 8298pw_async 8299-------- 8300We increased Bazel support. 8301 8302* `Fill in bazel build rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156911>`__ 8303 8304pw_async_basic 8305-------------- 8306We reduced logging noisiness. 8307 8308* `Remove debug logging <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158193>`__ 8309 8310pw_base64 8311--------- 8312We continued migrating the ``pw_base64`` API reference to Doxygen. 8313 8314* `Doxygenify MaxDecodedSize() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157091>`__ 8315 8316pw_bloat 8317-------- 8318We improved the performance of label creation. One benchmark moved from 120 8319seconds to 0.02 seconds! 8320 8321* `Cache and optimize label production <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159474>`__ 8322 8323pw_bluetooth 8324------------ 8325Support for 3 events was added. 8326 8327* `Add 3 Event packets & format hci.emb <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157663>`__ 8328 8329pw_build 8330-------- 8331* `Fix progress bar clear <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160791>`__ 8332* `Upstream build script fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159473>`__ 8333* `Add pw_test_info <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154551>`__ 8334* `Upstream build script & presubmit runner <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137130>`__ 8335* `pw_watch: Redraw interval and bazel steps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159490>`__ 8336* `Avoid extra newlines for docs in generate_3p_gn <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150233>`__ 8337* `pip install GN args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155270>`__ 8338 (issue `#240701682 <https://issues.pigweed.dev/issues/240701682>`__) 8339* `pw_python_venv generate_hashes option <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157630>`__ 8340 (issue `#292098416 <https://issues.pigweed.dev/issues/292098416>`__) 8341 8342pw_build_mcuxpresso 8343------------------- 8344Some H3 elements in the ``pw_build_mcuxpresso`` docs were being incorrectly 8345rendered as H2. 8346 8347* `Fix doc headings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155570>`__ 8348 8349pw_chrono_freertos 8350------------------ 8351We investigated what appeared to be a race condition but turned out to be an 8352unreliable FreeRTOS variable. 8353 8354* `Update SystemTimer comments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159231>`__ 8355 (issue `#291346908 <https://issues.pigweed.dev/issues/291346908>`__) 8356* `Remove false callback precondition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156091>`__ 8357 (issue `#291346908 <https://issues.pigweed.dev/issues/291346908>`__) 8358 8359pw_cli 8360------ 8361``pw_cli`` now supports tab completion! 8362 8363* `Zsh shell completion autoload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160796>`__ 8364* `Make pw_cli tab completion reusable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160379>`__ 8365* `Print tab completions for pw commands <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160032>`__ 8366* `Fix logging msec timestamp format <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159930>`__ 8367 8368pw_console 8369---------- 8370Communication errors are now handled more gracefully. 8371 8372* `Detect comms errors in Python <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155814>`__ 8373 8374pw_containers 8375------------- 8376The flat map implementation and docs have been improved. 8377 8378* `Doxygenify pw::containers::FilteredView <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160373>`__ 8379* `Support copying the FilteredView predicate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160372>`__ 8380* `Improve FlatMap algorithm and filtered_view support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156652>`__ 8381* `Improve FlatMap doc example <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156651>`__ 8382* `Update FlatMap doc example so it compiles <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156650>`__ 8383 8384pw_digital_io 8385------------- 8386We continued migrating the API reference to Doxygen. An RPC service was added. 8387 8388* `Doxygenify the interrupt handler methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154193>`__ 8389* `Doxygenify Enable() and Disable() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155817>`__ 8390* `Add digital_io rpc service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154974>`__ 8391 8392pw_digital_io_mcuxpresso 8393------------------------ 8394We continued migrating the API reference to Doxygen. Support for a new RPC 8395service was added. 8396 8397* `Remove unneeded constraints <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155394>`__ 8398 8399pw_docgen 8400--------- 8401Support for auto-linking to Rust docs (when available) was added. We also 8402explained how to debug Pigweed's Sphinx extensions. 8403 8404* `Add rustdoc linking support to pigweed-module tag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159292>`__ 8405* `Add extension debugging instructions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156090>`__ 8406 8407pw_env_setup 8408------------ 8409There were lots of updates around how the Pigweed environment uses Python. 8410 8411* `pw_build: Disable pip version check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160551>`__ 8412* `Add docstrings to visitors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159131>`__ 8413* `Sort pigweed_environment.gni lines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158892>`__ 8414* `Mac and Windows Python requirements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158912>`__ 8415 (issue `#292098416 <https://issues.pigweed.dev/issues/292098416>`__) 8416* `Add more Python versions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158891>`__ 8417 (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) 8418* `Remove python.json from Bazel CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158911>`__ 8419 (issue `#292585791 <https://issues.pigweed.dev/issues/292585791>`__) 8420* `Redirect variables from empty dirs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158890>`__ 8421 (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) 8422* `Split Python constraints per OS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157657>`__ 8423 (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) 8424* `Add --additional-cipd-file argument <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158170>`__ 8425 (issue `#292280529 <https://issues.pigweed.dev/issues/292280529>`__) 8426* `Upgrade Python cryptography to 41.0.2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157654>`__ 8427* `Upgrade ipython to 8.12.2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157653>`__ 8428* `Upgrade PyYAML to 6.0.1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157652>`__ 8429* `Add Python constraints with hashes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153470>`__ 8430 (issue `#287302102 <https://issues.pigweed.dev/issues/287302102>`__) 8431* `Bump pip and pip-tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156470>`__ 8432* `Add coverage utilities <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155810>`__ 8433 (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) 8434 8435pw_fuzzer 8436--------- 8437A fuzzer example was updated to more closely follow Pigweed code conventions. 8438 8439* `Update fuzzers to use Pigweed domains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/148337>`__ 8440 8441pw_hdlc 8442------- 8443Communication errors are now handled more gracefully. 8444 8445* `Detect comms errors in Python <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155814>`__ 8446* `Add target to Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157651>`__ 8447 8448pw_i2c 8449------ 8450An RPC service was added. Docs and code comments were updated to use ``responder`` 8451and ``initiator`` terminology consistently. 8452 8453* `Standardize naming on initiator/responder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159132>`__ 8454* `Add i2c rpc service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155250>`__ 8455 8456pw_i2c_mcuxpresso 8457----------------- 8458* `Allow for static initialization of initiator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155790>`__ 8459* `Add test to ensure compilation of module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155390>`__ 8460 8461pw_ide 8462------ 8463* `Support multiple comp DB search paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144210>`__ 8464 (issue `#280363633 <https://issues.pigweed.dev/issues/280363633>`__) 8465 8466pw_interrupt 8467------------ 8468Work continued on how facade backend selection works in Bazel. 8469 8470* `Add backend for xtensa processors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160031>`__ 8471* `Tidy up target compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160650>`__ 8472 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8473* `Remove cpu-based backend selection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160380>`__ 8474 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8475* `Add backend constraint setting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160371>`__ 8476 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8477* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154500>`__ 8478 (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) 8479 8480pw_log_rpc 8481---------- 8482A docs section was added that explains how ``pw_log``, ``pw_log_tokenized``, 8483and ``pw_log_rpc`` interact with each other. 8484 8485* `Explain relation to pw_log and pw_log_tokenized <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157231>`__ 8486 8487pw_package 8488---------- 8489Raspberry Pi Pico and Zephyr support improved. 8490 8491* `Add picotool package installer <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155791>`__ 8492* `Handle windows Zephyr SDK setup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157030>`__ 8493* `Run Zephyr SDK setup.sh after syncing from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156530>`__ 8494 8495pw_perf_test 8496------------ 8497* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154498>`__ 8498 (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) 8499 8500pw_presubmit 8501------------ 8502* `Add ifndef/define check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152173>`__ 8503 (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) 8504* `Remove deprecated gn_docs_build step <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159291>`__ 8505* `Fix issues with running docs_build twice <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159290>`__ 8506* `Add Rust docs to docs site <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157656>`__ 8507 8508pw_protobuf_compiler 8509-------------------- 8510* `Disable legacy namespace <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157232>`__ 8511* `Transition to our own proto compiler rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157033>`__ 8512 (issue `#234874064 <https://issues.pigweed.dev/issues/234874064>`__) 8513* `Allow external usage of macros <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155432>`__ 8514 8515pw_ring_buffer 8516-------------- 8517``pw_ring_buffer`` now builds with ``-Wconversion`` enabled. 8518 8519* `Conversion warning cleanups <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157430>`__ 8520 (issue `#259746255 <https://issues.pigweed.dev/issues/259746255>`__) 8521 8522pw_rpc 8523------ 8524* `Create client call hook in Python client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157870>`__ 8525* `Provide way to populate response callbacks during tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156670>`__ 8526* `Add Soong rule for pwpb echo service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156270>`__ 8527 8528pw_rpc_transport 8529---------------- 8530* `Add more Soong rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155035>`__ 8531 8532pw_rust 8533------- 8534We are preparing pigweed.dev to automatically link to auto-generated 8535Rust module documentation when available. 8536 8537* `Add combined Rust doc support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157632>`__ 8538* `Update @rust_crates sha <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155051>`__ 8539 8540pw_spi 8541------ 8542We updated docs and code comments to use ``initiator`` and ``responder`` 8543terminology consistently. 8544 8545* `Standardize naming on initiator/responder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159132>`__ 8546 8547pw_status 8548--------- 8549* `Add Clone and Copy to Rust Error enum <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157093>`__ 8550 8551pw_stream 8552--------- 8553We continued work on Rust support. 8554 8555* `Fix Doxygen typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154732>`__ 8556* `Add read_exact() an write_all() to Rust Read and Write traits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157094>`__ 8557* `Clean up rustdoc warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157092>`__ 8558* `Add Rust varint reading and writing support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156451>`__ 8559* `Refactor Rust cursor to reduce monomorphization <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155391>`__ 8560* `Add Rust integer reading support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155053>`__ 8561* `Move Rust Cursor to it's own sub-module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155052>`__ 8562 8563pw_stream_uart_linux 8564-------------------- 8565A new UART Linux backend for ``pw_stream`` was added. 8566 8567* `Add stream for UART on Linux <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156910>`__ 8568 8569pw_sync 8570------- 8571C++ lock traits were added and used. 8572 8573* `Improve Borrowable lock traits and annotations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153573>`__ 8574 (issue `#261078330 <https://issues.pigweed.dev/issues/261078330>`__) 8575* `Add lock traits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153572>`__ 8576 8577pw_sync_freertos 8578---------------- 8579* `Fix ODR violation in tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160795>`__ 8580 8581pw_sys_io 8582--------- 8583* `Add android to alias as host system <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157871>`__ 8584 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8585* `Add chromiumos to alias as host system <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155811>`__ 8586 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8587 8588pw_system 8589--------- 8590* `Update IPython init API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157872>`__ 8591* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154497>`__ 8592 (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) 8593 8594pw_tokenizer 8595------------ 8596We refactored the ``pw_tokenizer`` docs to adhere to :ref:`seed-0102`. 8597 8598* `Update tagline, restore missing info, move sections <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158192>`__ 8599* `Migrate the proto docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157655>`__ 8600* `Remove stub sections and add guides link (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157631>`__ 8601* `Migrate the custom macro example (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157032>`__ 8602* `Migrate the Base64 docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156531>`__ 8603* `Migrate token collision docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155818>`__ 8604* `Migrate detokenization docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155815>`__ 8605* `Migrate masking docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155812>`__ 8606 8607pw_toolchain 8608------------ 8609The build system was modified to use relative paths to avoid unintentionally 8610relying on the path environment variable. Map file generation is now optional 8611to avoid generating potentially large map files when they're not needed. 8612 8613* `Test trivially destructible class <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159232>`__ 8614* `Make tools use relative paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159130>`__ 8615 (issue `#290848929 <https://issues.pigweed.dev/issues/290848929>`__) 8616* `Support conditionally creating mapfiles <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157431>`__ 8617 8618pw_trace_tokenized 8619------------------ 8620* `Replace singletons with dependency injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155813>`__ 8621* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154499>`__ 8622 (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) 8623 8624pw_unit_test 8625------------ 8626* `Update metadata test type for unit tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154550>`__ 8627 8628pw_varint 8629--------- 8630* `Update Rust API to return number of bytes written <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156450>`__ 8631 8632pw_watch 8633-------- 8634We fixed an issue where builds were getting triggered when files were opened 8635or closed without modication. 8636 8637* `Trigger build only on file modifications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157633>`__ 8638 8639pw_web 8640------ 8641* `Remove dependency on 'crc' and 'buffer' NPM packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160830>`__ 8642* `Update theme token values and usage <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155970>`__ 8643* `Add disconnect() method to WebSerialTransport <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156471>`__ 8644* `Add docs section for log viewer component <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155050>`__ 8645 8646Build 8647===== 8648 8649bazel 8650----- 8651* `Add host_backend_alias macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160550>`__ 8652 (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) 8653* `Fix missing deps in some modules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160376>`__ 8654* `Support user bazelrc files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160030>`__ 8655* `Update rules_python to 0.24.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158913>`__ 8656 (issue `#266950138 <https://issues.pigweed.dev/issues/266950138>`__) 8657 8658build 8659----- 8660* `Use remote Java runtime for Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160793>`__ 8661 (issue `#291791485 <https://issues.pigweed.dev/issues/291791485>`__) 8662* `Add Rust toolchain to Bazel macOS build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159491>`__ 8663 (issue `#291749888 <https://issues.pigweed.dev/issues/291749888>`__) 8664* `Mark linux-only Bazel build targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158191>`__ 8665 8666Targets 8667======= 8668 8669targets/rp2040_pw_system 8670------------------------ 8671Some of the Pico docs incorrectly referred to another hardware platform. 8672 8673* `Fix references to STM32 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157233>`__ 8674 (issue `#286652309 <https://issues.pigweed.dev/issues/286652309>`__) 8675 8676Language support 8677================ 8678 8679python 8680------ 8681* `Remove setup.py files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159472>`__ 8682 8683rust 8684---- 8685* `Add rustdoc links for existing crates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159470>`__ 8686 8687OS support 8688========== 8689 8690zephyr 8691------ 8692* `Add project name to unit test root <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156850>`__ 8693* `Add pigweed root as module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156596>`__ 8694* `Fix setup.sh call <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156591>`__ 8695 8696Docs 8697==== 8698We added a feature grid to the homepage and fixed outdated info in various 8699docs. 8700 8701* `pigweed.dev feature grid <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157658>`__ 8702* `Mention SEED-0102 in module_structure.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157234>`__ 8703 (issue `#286477675 <https://issues.pigweed.dev/issues/286477675>`__) 8704* `Remove outdated Homebrew info in getting_started.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157291>`__ 8705 (issue `#287528787 <https://issues.pigweed.dev/issues/287528787>`__) 8706* `Fix "gn args" examples which reference pw_env_setup_PACKAGE_ROOT <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156452>`__ 8707* `Consolidate contributing docs in site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155816>`__ 8708 8709SEEDs 8710===== 8711 8712SEED-0107 8713--------- 8714* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157031>`__ 8715 8716SEED-0108 8717--------- 8718* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158171>`__ 8719 8720Third party 8721=========== 8722 8723third_party 8724----------- 8725* `Remove now unused rules_proto_grpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157290>`__ 8726 8727third_party/mbedtls 8728------------------- 8729* `3.3.0 compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160790>`__ 8730 (issue `#293612945 <https://issues.pigweed.dev/issues/293612945>`__) 8731