diff options
Diffstat (limited to 'docs/changelog.rst')
-rw-r--r-- | docs/changelog.rst | 2741 |
1 files changed, 2741 insertions, 0 deletions
diff --git a/docs/changelog.rst b/docs/changelog.rst new file mode 100644 index 000000000..26465d7b7 --- /dev/null +++ b/docs/changelog.rst @@ -0,0 +1,2741 @@ +:tocdepth: 2 + +.. _docs-changelog: + +===================== +What's New In Pigweed +===================== + +---------------------------------------- +Discuss what's new with the Pigweed team +---------------------------------------- +.. pigweed-live:: + +.. _docs-changelog-latest: + +----------- +Nov 3, 2023 +----------- +.. changelog_highlights_start + +Highlights (Oct 19, 2023 to Nov 3, 2023): + +* A lot more of the :cpp:class:`pw::multibuf::Chunk` API was implemented. +* :ref:`module-pw_format` is a new module dedicated to Rust format string parsing. +* The tokenizer prefix is now configurable via + ``PW_TOKENIZER_NESTED_PREFIX_STR``. +* References to C++14 have been removed throughout the codebase. Pigweed no + longer supports C++14; C++17 or newer is required. +* The upstream Pigweed GN build is now + :ref:`more isolated <docs-changelog-20231103-pw_build>` so that downstream + projects have less conflicts when importing Pigweed into their existing GN + build. +* Build configuration is moving away from Bazel macros like ``pw_cc_library`` + and towards the toolchain configuration so that downstream projects can have + :ref:`full control <docs-changelog-20231103-bazel>` over how Pigweed libraries + are built. +* New guidelines for authoring module docs have been published at + :ref:`docs-contrib-moduledocs`. :ref:`module-pw_string` is now an example + of a "golden" module docs set that follows the new guidelines. Please leave + feedback on the new guidelines (and module docs updated to follow the + guidelines) in `issue #309123039 <https://issues.pigweed.dev/issues/309123039>`__. + +.. changelog_highlights_end + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ +* `SEED-0113: Modular Bazel C/C++ Toolchain API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173453>`__ +* `SEED-0114: Channels <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ +* `SEED-0115: Sensors <http://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176760>`__ +* `SEED-0116: Sockets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177696>`__ + +Modules +======= + +pw_allocator +------------ +The docs now have an auto-generated :ref:`module-pw_allocator-size`. +``pw::allocator::SplitFreeListAllocator`` has a new ``blocks()`` method for getting the +range of blocks being tracked. The class was also refactored to +use the existing ``Block`` API. The ``Block`` API itself was refactored to +encode offsets and flags into fields. + +* `Add size reporting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178370>`__ +* `Return Range from SplitFreeListAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177807>`__ +* `Refactor SplitFreeListAllocator to use Block <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176579>`__ +* `Refactor Block to use encoded offsets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176578>`__ + +pw_arduino_build +---------------- +* `STM32 Core fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177750>`__ + +pw_assert +--------- +* `Update print_and_abort backend formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177845>`__ + +pw_bluetooth +------------ +More :ref:`Emboss <module-pw_third_party_emboss>` definitions were added. + +.. todo-check: disable + +* `Add TODO for issue 308794058 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151070>`__ + (issue `#308794058 <https://issues.pigweed.dev/issues/308794058>`__) +* `Remove anonymous entry in LEPeerAddressTypeNoAnon <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177881>`__ +* `Separate LEAddressType and LEExtendedAddressType <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178010>`__ +* `Define LEExtendedCreateConnectionV1 Emboss structure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176574>`__ + (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) +* `Define LEEnhancedConnectionCompleteSubeventV1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176576>`__ + (issue `#305976440 <https://issues.pigweed.dev/issues/305976440>`__) +* `Remove padding from Emboss command definitions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176772>`__ + +.. todo-check: enable + +.. _docs-changelog-20231103-pw_build: + +pw_build +-------- +Pigweed used to inject a selection of recommended configs into every ``pw_*`` +C/C++ target in the GN build. These were previously only possible to remove +with the ``remove_configs`` argument. These configs are now bundled with +toolchains instead, and if you don't use a Pigweed-style toolchain you'll +no longer need to find ways to strip the default configs from Pigweed build rules. +More importantly, this changes makes Pigweed's recommended configs behave +identically to other toolchain configs, and they're now more clearly part of +GN toolchain definitions. This change is transparent to most projects, but some +Pigweed customers have been asking for this for a while. + +The :ref:`module-pw_build-bazel-empty_cc_library` Bazel utility was added. + +* `Add empty_cc_library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178555>`__ +* `Remove pw_build_default_configs_in_toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177894>`__ +* `Apply pigweed_default_configs in toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120610>`__ + (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) +* `Fix blob attribute ordering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177458>`__ +* `Only use -Wextra-semi on C++ files with GCC <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177171>`__ + (issue `#301262374 <https://issues.pigweed.dev/issues/306734552, b/301262374>`__) +* `Silence Windows-specific warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177172>`__ + +pw_bytes +-------- +A new ``_b`` literal was added to make it easier to create bytes for tests +and constants. + +* `Add _b suffix for byte literals <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178134>`__ + +pw_containers +------------- +The reference docs for the variable length entry queue API in C and Python +were updated. + +* `Update VariableLengthEntryQueue size functions; cleanup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173454>`__ + +pw_digital_io_mcuxpresso +------------------------ +* `Remove RT595 size def <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178353>`__ + +pw_doctor +--------- +* `Trivial linter fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176939>`__ + +pw_emu +------ +* `renode: Show more details when failing to connect <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178563>`__ + (issue `#307736513 <https://issues.pigweed.dev/issues/307736513>`__) + +pw_env_setup +------------ +``pip`` has been pinned to ``23.2.1`` and ``pip-tools`` to ``7.3.0`` to +prevent dependency resolution problems. + +* `Pin pip and pip-tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177834>`__ +* `Update protoc to 2@24.4 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177050>`__ + (issue `#306461552 <https://issues.pigweed.dev/issues/306461552>`__) + +pw_format +--------- +:ref:`module-pw_format` is a new module dedicated to Rust format string parsing. + +* `Correct crate name in docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178078>`__ +* `Move Rust format string parsing into its own module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168362>`__ + +pw_fuzzer +--------- +* `Inline NonOkStatus() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178212>`__ +* `Fix instrumentation config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178214>`__ + +.. _docs-changelog-20231103-pw_hdlc: + +pw_hdlc +------- +Using read callbacks in ``RpcClient`` is no longer accepted and the use of +``CancellableReader`` is now enforced because it provides a safe and clean +shutdown process. + +* `Enforce use of CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173618>`__ + (issue `#301496598 <https://issues.pigweed.dev/issues/301496598>`__) + +pw_libcxx +--------- +:ref:`module-pw_libcxx` is a new module that provides ``libcxx`` symbols and +will eventually facilitate pulling in headers as well. + +* `Add pw_libcxx library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144970>`__ + +pw_log +------ +A :ref:`module-pw_log-bazel-backend_impl` label flag was added to Bazel to +avoid circular dependencies. + +* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ + (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) +* `Introduce backend_impl label flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177842>`__ + (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) + +pw_multibuf +----------- +A lot more of the :cpp:class:`pw::multibuf::Chunk` API was implemented. + +* `Add basic MultiBuf operations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178036>`__ +* `Add Chunk::Merge <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177636>`__ +* `Fix TrackingAllocatorWithMemory UAF <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177694>`__ +* `Add module and Chunk implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173951>`__ + +pw_package +---------- +* `Use mirror for stm32cube <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/142510>`__ + (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) +* `Fix Zephyr URL <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177456>`__ + +pw_presubmit +------------ +A CSS formatter was added. + +* `Add basic CSS formatter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178810>`__ + (issue `#308948504 <https://issues.pigweed.dev/issues/308948504>`__) +* `Kalypsi-based coverage upload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175070>`__ + (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) +* `Handle missing upstream better <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177038>`__ + (issue `#282808936 <https://issues.pigweed.dev/issues/282808936>`__) +* `Trivial linter fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176939>`__ + +pw_protobuf +----------- +* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ + (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) + +pw_rpc +------ +:ref:`pw::rpc::SynchronousCallFor() <module-pw_rpc-client-sync-call-wrappers>` +now supports :ref:`DynamicClient <module-pw_rpc_pw_protobuf-client>`. + +* `Update Java service error with tip <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178812>`__ + (issue `#293361955 <https://issues.pigweed.dev/issues/293361955>`__) +* `Support DynamicClient with SynchronousCallFor API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177637>`__ + +pw_string +--------- +The docs were updated to match the new :ref:`docs-contrib-moduledocs`. + +* `Docs tweaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177883>`__ + +pw_sys_io +--------- +Backends that depend on ``default_putget_bytes`` were updated to express the +dependency. + +* `Fix Bazel backends <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177656>`__ + +pw_system +--------- +See :ref:`docs-changelog-20231103-pw_hdlc` for an explanation of the +``CancellableReader`` change. + +* `Enforce use of CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173618>`__ + (issue `#301496598 <https://issues.pigweed.dev/issues/301496598>`__) + +pw_tls_client +------------- +* `Update to new boringssl API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178150>`__ + +pw_tokenizer +------------ +The tokenizer prefix is now configurable via ``PW_TOKENIZER_NESTED_PREFIX_STR``. + +* `Enable sandboxing for pigweed genrules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178550>`__ + (issue `#307824623 <https://issues.pigweed.dev/issues/307824623>`__) +* `Let tokenizer prefix be configurable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177575>`__ + +pw_toolchain +------------ +You can now set the ``dir_pw_third_party_builtins`` GN var to your +``compiler-rt/builtins`` checkout to enable buildings LLVM ``builtins`` from +source instead of relying on a shipped ``libgcc``. + +* `Apply pigweed_default_configs in toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120610>`__ + (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) +* `Build compiler-rt builtins to replace libgcc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144050>`__ + +pw_unit_test +------------ +* `Pass verbose flag to TestRunner <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177470>`__ + +pw_web +------ +* `Limit component rerendering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177810>`__ + (issue `#307559191 <https://issues.pigweed.dev/issues/307559191>`__) + +Build +===== +References to C++14 have been removed throughout the codebase. Pigweed no +longer supports C++14; C++17 or newer is required. + +* `Drop C++14 compatibility from the build and docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177610>`__ + +.. _docs-changelog-20231103-bazel: + +Bazel +----- +Build configuration is moving away from Bazel macros like ``pw_cc_library`` +and towards the toolchain configuration so that downstream projects can have +full control over how Pigweed libraries are built. + +* `Move Kythe copts to toolchain configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178592>`__ + (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) +* `Move warnings to toolchain configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178557>`__ + (issue `#240466562 <https://issues.pigweed.dev/issues/240466562>`__) +* `Silence warnings from external code <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178436>`__ + (issue `#300330623 <https://issues.pigweed.dev/issues/300330623>`__) +* `stm32cube support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177134>`__ +* `Remove most copts from pw_cc_library macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170824>`__ + (issue `#267498492 <https://issues.pigweed.dev/issues/267498492>`__) + +Targets +======= +``pw_assert_BACKEND`` for :ref:`target-host` was set to +``print_and_abort_check_backend`` to enable compatibility with GoogleTest death +tests. + +* (``host``) `Change pw_assert_BACKEND <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177835>`__ + +OS support +========== +* (``zephyr``) `Update checkout to v3.5 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177669>`__ + +Docs +==== +New guidelines for authoring module docs have been published at +:ref:`docs-contrib-moduledocs`. :ref:`module-pw_string` is now an example +of a "golden" module docs set that follows the new guidelines. Please leave +feedback on the new guidelines (and module docs updated to follow the +guidelines) in `issue #309123039 <https://issues.pigweed.dev/issues/309123039>`__. + +There's now a definition for :ref:`docs-glossary-facade` in the glossary. + +* `Update module docs authoring guidelines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177465>`__ +* `Fix nav and main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178591>`__ + (issue `#303261476 <https://issues.pigweed.dev/issues/303261476>`__) +* `Add udev instructions to Bazel Get Started <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178435>`__ +* `Add information on the experimental repo to contributing.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/178272>`__ +* `Mention command for updating Py dep hashes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177799>`__ +* `Define facade in glossary <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177632>`__ +* `Remove symlinks to files that were removed <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177530>`__ +* `Mention upstream development guide in contributor guidelines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177459>`__ +* `Move all images out of the repo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176751>`__ +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177085>`__ + (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) +* `Move CoC to Contributors section of sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177071>`__ + +SEEDs +===== +* (SEED-0107) `Update SEED references; fix typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177698>`__ +* (SEED-0112) `Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ +* (SEED-0115) `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177093>`__ +* (SEED-0116) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177697>`__ + +Third party +=========== +* (nanopb) `Detect protoc updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177650>`__ + +------------ +Oct 20, 2023 +------------ +Highlights (Oct 5, 2023 to Oct 20, 2023): + +* ``pw_emu`` has launched! Check out :ref:`module-pw_emu` to get started. + See :ref:`seed-0108` for background. +* :ref:`module-pw_log-tokenized-args` are now supported. See :ref:`seed-0105` + for background. +* The new :cpp:class:`pw::allocator::UniquePtr` class offers a safer, simpler + RAII API for allocating individual values within an allocator. +* A few SEEDs were accepted: :ref:`seed-0105`, :ref:`seed-0109`, and + :ref:`seed-0111`. +* Lots of new docs, including a guide for + :ref:`getting started with Bazel <docs-get-started-bazel>`, a + conceptual explanation of :ref:`facades and backends <docs-facades>`, + and an eng blog post detailing :ref:`Kudzu <docs-blog-01-kudzu>`, an + electronic badge that the Pigweed team made for Maker Faire 2023. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ +* `SEED-0113: Modular Bazel C/C++ Toolchain API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173453>`__ +* `SEED-0114: Channels <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175471>`__ +* `SEED-0115: Sensors <http://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176760>`__ + +Modules +======= + +pw_allocator +------------ +The new :cpp:class:`pw::allocator::UniquePtr` class offers a safer, simpler +RAII API for allocating individual values within an allocator. + +* `Fix SplitFreeListAllocator region alignment <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175232>`__ +* `Add UniquePtr\<T\> <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176781>`__ + +pw_async +-------- +* `Add CMake support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175475>`__ + +pw_async_basic +-------------- +* `Add missing include <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175476>`__ +* `Fix build error when using pw_async:heap_dispatcher <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173480>`__ + +pw_bluetooth +------------ +* `Define LEChannelSelectionAlgorithmSubevent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176577>`__ +* `Define LEScanTimeoutSubevent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176575>`__ + (issue `#265052417 <https://issues.pigweed.dev/issues/265052417>`__) +* `Use $size_in_bits instead of hardcoding size <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176573>`__ +* `Switch from parameterized value to determining at run time <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176572>`__ + (issue `#305975969 <https://issues.pigweed.dev/issues/305975969>`__) +* `Fix size reports <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173620>`__ + +pw_build +-------- +:ref:`module-pw_build-bazel-pw_linker_script` now describes how to work +with linker scripts. + +* `Update pw_linker_script docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174848>`__ +* `Move pw_linker_script rule definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174872>`__ + +pw_chre +------- +* `Remove TODOs for CHRE MacOS support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175490>`__ + +pw_cli +------ +* `Honor NO_COLOR and CLICOLOR_FORCE <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176860>`__ +* `Use typing.Literal <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176778>`__ + +pw_digital_io +------------- +* `Add Android.bp for proto/rpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176270>`__ + +pw_emu +------ +The module has launched! Check out :ref:`module-pw_emu` to get started. + +* `renode: Increase start timeout to 120s <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176865>`__ +* `Fix pid file race condition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176782>`__ +* `mock_emu: start listening before making the port available <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176856>`__ + (issue `#306155313 <https://issues.pigweed.dev/issues/306155313>`__) +* `qemu: Force using IPv4 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176430>`__ + (issue `#305810466 <https://issues.pigweed.dev/issues/305810466>`__) +* `Add renode support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173613>`__ +* `Add QEMU support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173612>`__ +* `core: Let the OS terminate foreground emulator processes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175638>`__ +* `Add user APIs and the command line interface <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173611>`__ +* `Add core components <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173610>`__ +* `Add Emulators Frontend module boilerplate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162096>`__ + +pw_env_setup +------------ +* `Allow disabling CIPD cache <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176650>`__ +* `Add prpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175236>`__ + +pw_function +----------- +* `Move pw_function_CONFIG to .gni <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173652>`__ + +pw_hdlc +------- +:ref:`module-pw_hdlc-api-rpc` now has much more information on how to use +``pw_hdlc`` for RPC in Python. + +* `Update Python RPC documents <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174825>`__ + +pw_i2c +------ +* `Fix accidental c++2a <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176511>`__ +* `Add Android.bp for i2c proto/rpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176070>`__ + +pw_kvs +------ +The new ``FlashPartitionWithLogicalSectors`` variant of ``FlashPartition`` +supports combining multiple physical ``FlashMemory`` sectors into a single +logical ``FlashPartition`` sector. + +* `Add FlashPartitionWithLogicalSectors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/106917>`__ + +pw_log_tokenized +---------------- +:ref:`module-pw_log-tokenized-args` are now supported. See :ref:`seed-0105` for background. + +* `Add tokenized string args support to log backend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164514>`__ + +pw_log_zephyr +------------- +* `Clean-up unused dependencies from TOKENIZED_LIB <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174813>`__ + +pw_minimal_cpp_stdlib +--------------------- +* `Support additional libraries <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173814>`__ +* `Add Zephyr Kconfig to enable include path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173653>`__ + +pw_package +---------- +* `Update boringssl commit & skip clang-tidy <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175016>`__ +* `Update Emboss commit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173619>`__ + +pw_presubmit +------------ +:ref:`module-pw_presubmit-presubmit-checks` has more guidance on when to use +``--base`` and ``--full``. + +* `Add note about --full and --base <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175633>`__ + +pw_snapshot +----------- +* `More detokenization tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176759>`__ + +pw_spi +------ +* `Fix cmake integration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175190>`__ + +pw_sync_zephyr +-------------- +* `Add TimedThreadNotification::try_acquire_until <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175478>`__ + +pw_system +--------- +The ``Device`` class's constructor now accepts a ``logger`` argument +that enables you to specify which logger should be used. + +* `Add option to pass logger to Device <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175075>`__ + +pw_third_party_freertos +----------------------- +* `Add arm_cm7_not_r0p1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172382>`__ + +pw_thread +--------- +* `More detokenization tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176759>`__ + +pw_thread_freertos +------------------ +* `Fix extra wakeups when detaching threads <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175310>`__ + (issue `#303885539 <https://issues.pigweed.dev/issues/303885539>`__) + +pw_tokenizer +------------ +:ref:`module-pw_tokenizer-get-started-integration` has new guidance around +configuring linker scripts in Bazel. + +* `Expose linker_script in BUILD.bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175590>`__ + +pw_toolchain +------------ +* `Exclude googletest from static analysis <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173482>`__ + +pw_transfer +----------- +* `Start the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170011>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) + +pw_web +------ +* `Reduce table cell padding <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176690>`__ + (issue `#305022558 <https://issues.pigweed.dev/issues/305022558>`__) +* `Fix invisible jump button <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175330>`__ +* `Enable manual color scheme setting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173630>`__ + (issue `#301498553 <https://issues.pigweed.dev/issues/301498553>`__) + +Build +===== +* `Fix pw_BUILD_BROKEN_GROUPS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176114>`__ +* `Update Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175631>`__ + (issue `#277108894 <https://issues.pigweed.dev/issues/277108894>`__) + +Bazel +----- +* `Don't autodetect C++ toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175613>`__ + (issue `#304880653 <https://issues.pigweed.dev/issues/304880653>`__) +* `Add O2 to arm_gcc toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175536>`__ + (issue `#299994234 <https://issues.pigweed.dev/issues/299994234>`__) + +Targets +======= +* (rp2040_pw_system) `Enable time slicing <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175074>`__ + +OS support +========== +* (zephyr) `Allow direct CMake inclusions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175477>`__ + +Docs +==== +* `Move CoC to Contributors section of sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177071>`__ +* `Create concepts section in sitenav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/177037>`__ +* `Add facades and backends page <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170602>`__ +* `Add Bazel getting started tutorial <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176319>`__ +* `Remove css class on Kudzu image captions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176770>`__ +* `Kudzu photos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176710>`__ +* `Refactor the getting started section <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176331>`__ +* `Add sitemap <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176492>`__ +* `Add hat tip for pixel doubling technique <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175639>`__ +* `Start eng blog and add Kudzu page <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175619>`__ +* `Add Pigweed Live directive <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174892>`__ +* `Add builder viz to CI/CQ intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175414>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175415>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Add changelog highlight <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175231>`__ +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174818>`__ + +SEEDs +===== +A few SEEDs were accepted and a few more started. + +* (SEED-0105) `Add nested tokens to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* (SEED-0109) `Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ +* (SEED-0111) `Update status, add link to SEED-0113 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176254>`__ +* (SEED-0111) `Make Bazel Pigweed's Primary Build System <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ +* (SEED-0113) `Claim SEED number (Modular Bazel C/C++ Toolchain API) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175510>`__ +* (SEED-0114) `Claim SEED number (Channels) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175412>`__ +* (SEED-0115) `Clain SEED number (Sensors) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176763>`__ + +Third party +=========== +* (boringssl) `Remove crypto_sysrand.cc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175017>`__ +* (fuchsia) `Copybara import <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173651>`__ +* (fuchsia) `Update copybara with fit/defer.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173481>`__ + +Miscellaneous +============= +* `Update formatting for new clang version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175311>`__ +* `Use C++20 everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174630>`__ + (issue `#303371098 <https://issues.pigweed.dev/issues/303371098>`__) +* (revert) `Use .test convention" <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171793>`__ +* `Add generated Emboss code <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/176571>`__ + +----------- +Oct 6, 2023 +----------- +Highlights (Sep 21, 2023 to Oct 6, 2023): + +* We expanded our RP2040 support. See the new :ref:`module-pw_chrono_rp2040` + and :ref:`module-pw_digital_io_rp2040` modules. +* The :ref:`new CancellableReader class in pw_hdlc <docs-changelog-20231009-pw_hdlc>` + is an interface for receiving RPC packets that guarantees its read process can be + stopped. +* ``pw_rpc`` now :ref:`automatically generates a new DynamicClient interface + <docs-changelog-20231009-pw_rpc>` when dynamic allocation is enabled. +* The Python backend for ``pw_tokenizer`` now supports :ref:`tokenizing strings as + arguments <docs-changelog-20231009-pw_tokenizer>`. +* The ``pigweed_config`` mechanism in Bazel is now officially retired. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ +* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ +* `SEED-0111: Make Bazel Pigweed's Primary Build System <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ +* `SEED-0112: Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ + +Modules +======= + +.. _docs-changelog-20231009-pw_allocator: + +pw_allocator +------------ +We added a bunch of new allocator APIs! ``AllocatorMetricProxy`` is a wrapper for +``Allocator`` that tracks the number and total of current memory allocations as well +as peak memory usage. ``LibCAllocator`` is an allocator that uses ``malloc()`` and +``free()``. ``NullAllocator`` is an allocator that always fails which is useful for +disallowing memory allocations under certain circumstances. ``SplitFreeListAllocator`` +uses a free list to reduce fragmentation. ``FallbackAllocator`` enables you to +specify primary and secondary allocators. + +* `Add Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173851>`__ +* `Add pool accessors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173615>`__ +* `Move Resize assertion <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173614>`__ +* `Add AllocatorMetricProxy <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172380>`__ +* `Add LibCAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172232>`__ +* `Add NullAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172233>`__ +* `Add SplitFreeListAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172231>`__ +* `Add FallbackAllocator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171837>`__ +* `Generic interface for allocators <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171709>`__ + +pw_analog +--------- +* `Migrate MicrovoltInput to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170593>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) + +pw_async +-------- +* `Add OWNERS file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173690>`__ + +pw_bloat +-------- +``pw_size_report()`` has a new ``json_key_prefix`` argument which is an +optional prefix for key names in JSON size reports and a new +``full_json_summary`` argument which provides more control over how +much detail is provided in a JSON size report. + +* `Update API to allow verbose json content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168718>`__ + (issue `#282057969 <https://issues.pigweed.dev/issues/282057969>`__) + +pw_bluetooth +------------ +* `Format Emboss files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174832>`__ +* `Update comments in HCI event defs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174070>`__ + (issue `#265052417 <https://issues.pigweed.dev/issues/265052417>`__) + +pw_build +-------- + + +* `Fix path in Bazel pw_linker_script <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174591>`__ +* `Expose pw_linker_script in Bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174590>`__ + (issue `#303482154 <https://issues.pigweed.dev/issues/303482154>`__) +* `Define empty configs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174490>`__ +* `Add bazel implementation of pw_cc_blob_library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173452>`__ + (issue `#238339027 <https://issues.pigweed.dev/issues/238339027>`__) +* `Clean up build_target.gni <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/120215>`__ + (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) +* `Allow add_global_link_deps to be overriden <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150050>`__ +* `Expose pigweed_default_configs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173372>`__ + (issue `#260111641 <https://issues.pigweed.dev/issues/260111641>`__) +* `Apply -Wextra-semi to C code as well as C++ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172372>`__ + +pw_chre +------- +* `Update bug numbers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172330>`__ + +pw_chrono +--------- +* `Add clarification to is_nmi_safe <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174573>`__ + +pw_chrono_rp2040 +---------------- +This module is a new ``pw::chrono::SystemClock`` backend for RP2040. + +* `System clock backend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174651>`__ + +pw_cli +------ +* `Update requires script <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126101>`__ +* `Narrow logic around colors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173232>`__ + +pw_containers +------------- +There's a new C implementation for ``VariableLengthEntryDeque`` which is a +double-ended queue buffer that stores variable-length entries inline in a +circular (ring) buffer. The old ``VariableLengthEntryDeque`` was renamed +to ``VariableLengthEntryQueue``. + +* `Add missing <utility> include for std::move <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173879>`__ +* `Rename to VariableLengthEntryQueue <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173451>`__ +* `Rename files to variable_length_entry_queue <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173450>`__ +* `VariableLengthEntryDeque Entry struct <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173130>`__ +* `VariableLengthEntryDeque C implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169731>`__ + +pw_digital_io_rp2040 +-------------------- +This module is a new RP2040 backend for ``pw_digital_io``. + +* `Implementation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173550>`__ + (issue `#303255049 <https://issues.pigweed.dev/issues/303255049>`__) + +pw_env_setup +------------ +We made the Pigweed bootstrap process on Windows more robust. + +* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172416>`__ + (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) +* `Better highlight bootstrap failure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172415>`__ +* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ + (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) + +.. _docs-changelog-20231009-pw_hdlc: + +pw_hdlc +------- +The new ``CancellableReader`` class is a new interface for receiving RPC +packets that guarantees its read process can be stopped. + +* `Add CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172051>`__ + (issue `#294858483 <https://issues.pigweed.dev/issues/294858483>`__) + +pw_i2c +------ +* `Fix docs to use MakeExpectedTransactionArray <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173570>`__ +* `Add cmake integration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172210>`__ + +pw_kvs +------ +The new ``FlashPartitionWithLogicalSectors`` C++ class supports combining +multiple physical ``FlashMemory`` sectors into a single logical +``FlashPartition`` sector. + +* `Add FlashPartitionWithLogicalSectors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/106917>`__ + +pw_libc +------- +* `Don't implicitly link against global link_deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150051>`__ + +pw_metric +--------- +* `Make constructors constexpr <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172379>`__ + +pw_minimal_cpp_stdlib +--------------------- +* `Update to compile with stdcompat <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173350>`__ +* `Namespace public/internal to module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173692>`__ + +pw_perf_test +------------ +* `Gate on pw_chrono_SYSTEM_TIMER_BACKEND <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174650>`__ + +pw_presubmit +------------ +* `Allow dots in module part of commit message <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174232>`__ +* `Use autodoc for context classes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169119>`__ +* `Allow passing kwargs to build.bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173853>`__ + (issue `#302045722 <https://issues.pigweed.dev/issues/302045722>`__) +* `No env_with_clang_vars with bazel <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173656>`__ + +pw_ring_buffer +-------------- +* `Minor build and docs updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173030>`__ + +.. _docs-changelog-20231009-pw_rpc: + +pw_rpc +------ +If dynamic allocation is enabled via ``PW_RPC_DYNAMIC_ALLOCATION`` a new +``DynamicClient`` is now generated which dynamically allocates the call +object with ``PW_RPC_MAKE_UNIQUE_PTR``. + +* `Generate DynamicClient that dynamically allocates call objects <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168534>`__ +* `Add CancellableReader <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172051>`__ + (issue `#294858483 <https://issues.pigweed.dev/issues/294858483>`__) + +pw_rpc_transport +---------------- +* `Add a test loopback service registry <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171114>`__ + (issue `#300663813 <https://issues.pigweed.dev/issues/300663813>`__) + +pw_stream +--------- +``pw_stream`` now has initial support for ``winsock2``. + +* `Add Windows socket support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172413>`__ + +pw_sys_io_rp2040 +---------------- +* `Renamed from pw_sys_io_pico <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174910>`__ + +.. _docs-changelog-20231009-pw_tokenizer: + +pw_tokenizer +------------ +The Python backend now supports nested hashing tokenization. See +:ref:`module-pw_tokenizer-nested-arguments`. + +* `Support nested hashing tokenization (python backend) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/145339>`__ + (issue `#278890205 <https://issues.pigweed.dev/issues/278890205>`__) +* `Test for C99 support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170150>`__ + +pw_toolchain +------------ +* `Add libc stub for gettimeofday, update visibility rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173850>`__ +* `Link against pw_libc for host clang toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151439>`__ + +pw_transfer +----------- +* `Start the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170011>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) +* `Remove old test server <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172951>`__ + (issue `#234875234 <https://issues.pigweed.dev/issues/234875234>`__) + +pw_unit_test +------------ +* `Do not print contents of unknown objects <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174911>`__ +* `Add more pw_unit_test_TESTONLY args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173670>`__ + (issue `#234873207 <https://issues.pigweed.dev/issues/234873207>`__) +* `Add pw_unit_test_TESTONLY build arg <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171970>`__ + (issue `#234873207 <https://issues.pigweed.dev/issues/234873207>`__) + +pw_watch +-------- +* `Add link to served docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173456>`__ + +pw_web +------ +* `Make ongoing transfers accessible downstream <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174231>`__ +* `TypeScript workarounds for disambiguation errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173590>`__ +* `Throw error as an Error type <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173051>`__ +* `Remove need for Buffer package in pw_hdlc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172377>`__ +* `Remove date-fns <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172371>`__ + +Build +===== +* `Fix extended default group <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174574>`__ + (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) +* `Fix \`all\` target in GN build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173050>`__ +* `Add an extended default group <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/110391>`__ + +Bazel +----- +* `Retire pigweed_config (part 3) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172411>`__ +* `Retire pigweed_config (part 2) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170058>`__ + (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) + +Docs +==== +We started a :ref:`glossary <docs-glossary>` and added new docs about +:ref:`rollers <docs-rollers>` and :ref:`CI/CQ <docs-ci-cq-intro>`. + +* `Add docs on rollers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174770>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Remove redundant auto-submit section <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174890>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Reformat CI/CQ Intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174870>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Move CI/CQ Intro to infra/ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174776>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Address comments on CI/CQ intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173932>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Tidy up build system docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173658>`__ +* `Fix typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173872>`__ +* `Add CI/CQ Intro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173455>`__ + (issue `#302680656 <https://issues.pigweed.dev/issues/302680656>`__) +* `Add policy on incomplete docs changes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/173617>`__ +* `Start the glossary <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172952>`__ +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172810>`__ + (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) +* `Add Doxygen @endcode guidance <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172470>`__ + +SEEDs +===== +* (SEED-0112) `Fix link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174771>`__ + +Miscellaneous +============= + +pigweed.json +------------ +* `Exclude patches.json from formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/174230>`__ + (issue `#232234662 <https://issues.pigweed.dev/issues/232234662>`__) + +------------ +Sep 22, 2023 +------------ +Highlights (Sep 07, 2023 to Sep 22, 2023): + +* ``pw_tokenizer`` has :ref:`new C++ methods for detokenizing + Base64-encoded strings and new C functions for manually encoding tokenized + messages that contain integers <docs-changelog-pw_tokenizer-20230922>`. +* ``pw::rpc::SynchronousCall`` now supports the use of :ref:`custom response message + classes <docs-changelog-pw_rpc-20230922>`. +* The C API for ``pw_varint`` got :ref:`lots of ergonomic improvements + <docs-changelog-pw_varint-20230922>`. +* The new :ref:`docs-code_reviews` document outlines the upstream Pigweed code + review process. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ +* `SEED-0110: Memory Allocation Interfaces <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168772>`__ +* `SEED-0111: Future of Pigweed build systems <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171695>`__ +* `SEED-0112: Async Poll Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168337>`__ + +Modules +======= + +pw function +----------- +* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ + (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) + +pw perf_test +------------ +* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ + (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) + +pw_analog +--------- +* `Migrate AnalogInput to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170511>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) + +pw_async +-------- +The ``Run*()`` methods of ``FakeDispatcher`` now return a boolean that indicates +whether any tasks were invoked. + +* `Return bool from FakeDispatcher Run*() methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170599>`__ + +pw_async_basic +-------------- +``release()`` is now only called outside of locked contexts to prevent an +issue where the thread wakes up and then immediately goes back to sleep. +An unnecessary 5-second wakeup has been removed from ``BasicDispatcher``. + +* `release outside of lock context <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171103>`__ +* `Remove unnecessary 5-second wakeup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171102>`__ + +pw_base64 +--------- +The new ``pw::base64::IsValidChar()`` method can help you determine if a +character is valid Base64. + +* `Add base64 detokenizer handler <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165010>`__ + +pw_bluetooth +------------ +More :ref:`Emboss <module-pw_third_party_emboss>` definitions were added. + +* `Add ReadLocalSupportedCommandsCommandCompleteEvent Emboss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169877>`__ +* `Add LEReadLocalSupportedFeaturesCommandCompleteEvent <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169931>`__ +* `Add ReadBufferSizeCommandComplete Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169869>`__ +* `Add ReadBdAddrCommandCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170052>`__ +* `Add ReadLocalVersionInfoCommandCompleteEvent Emboss def <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169951>`__ +* `Add LELongTermKeyRequestSubevent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169950>`__ +* `Add UserPasskeyNotificationEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169917>`__ + +pw_build +-------- +* `Apply -Wextra-semi to C code as well as C++ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172372>`__ + +pw_bytes +-------- +The ``AlignDown()``, ``AlignUp()``, and ``Padding()`` methods of ``pw_kvs`` +have moved to ``pw_bytes`` to enable ``pw_allocator`` to use them without +taking a dependency on ``pw_kvs``. + +* `Move Align functions from pw_kvs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171831>`__ + +pw_checksum +----------- +* `Sign conversion fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171832>`__ + (issue `#301079199 <https://issues.pigweed.dev/issues/301079199>`__) + +pw_chre +------- +The implementation of a module that will enable to work more seamlessly with +Android's `Context Hub Runtime Environment <https://source.android.com/docs/core/interaction/contexthub>`__ +has begun. + +* `Update bug numbers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172330>`__ +* `Minor fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171851>`__ + (issue `#301079509 <https://issues.pigweed.dev/issues/301079509>`__) +* `Fix build rules to use paramertized paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171850>`__ + (issue `#298474212 <https://issues.pigweed.dev/issues/298474212>`__) +* `Split out shared_platform <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170791>`__ +* `Write our own version.cc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170790>`__ + (issue `#300633363 <https://issues.pigweed.dev/issues/300633363>`__) +* `Add barebones CHRE <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162510>`__ + (issue `#294106526 <https://issues.pigweed.dev/issues/294106526>`__) + +pw_console +---------- +When invoking ``pw_console`` directly from Python, you can now provide arguments +through an ``argparse.Namespace`` instead of messing with ``sys.argv`` or forking +another process. + +* `Allow injecting args via Python call <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172414>`__ + +pw_containers +------------- +`MemorySanitizer <https://github.com/google/sanitizers/wiki/MemorySanitizer>`__ has +been disabled in some of the ``InlineDeque`` implementation to prevent some false +positive detections of uninitialized memory reads. + +* `Silence MSAN false positives <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171990>`__ + +pw_env_setup +------------ +Work continues on making the Windows bootstrap process more robust. + +* `Better highlight bootstrap failure <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172415>`__ +* `Fix double bootstrap.bat failures on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ + (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) +* `Enable overriding Clang CIPD version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171838>`__ +* `PyPI version bump to 0.0.15 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171836>`__ +* `Add relative_pigweed_root to pigweed.json <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171218>`__ + (issue `#300632028 <https://issues.pigweed.dev/issues/300632028>`__) +* `Roll cipd to 0f08b927516 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170452>`__ + +pw_function +----------- +The documentation has been updated for accuracy. + +* `Update config.h comments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171250>`__ +* `Add configurable Allocator default <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171130>`__ +* `Update example to match guidelines for parameters <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170651>`__ +* `Add Allocator injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170190>`__ + +pw_fuzzer +--------- +Conditional logic around fuzzing support has been refactored to allow for +dedicated targets based on specific conditions and to make it clearer +exactly what configurations and dependencies are being used. + +* `Refactor conditional GN targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169712>`__ + +pw_ide +------ +* `Reformat json files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172310>`__ +* `Fix clangd path on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171099>`__ +* `Move VSC extension into npm package dir <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170995>`__ + +pw_libc +------- +The initial implementation work continues. + +* `Pull in 'abort' <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/138518>`__ +* `Use .test convention <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171793>`__ +* `Use underscore prefixed variables <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171792>`__ +* `Add documentation for pw_libc_source_set <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171693>`__ +* `Pull in 'gmtime' <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137699>`__ +* `Fix printf for newer llvm-libc commits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170831>`__ +* `Fix llvm-libc after internal assert changes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168830>`__ + +pw_log +------ +The implementation work continues to enable an Android component to read logs +from a component running the ``pw_log_rpc`` service. + +* `Update Android.bp to generate RPC header files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169530>`__ + (issue `#298693458 <https://issues.pigweed.dev/issues/298693458>`__) + +pw_log_string +------------- +* `Fix the default impl to handle zero length va args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169975>`__ + +pw_package +---------- +Mirrors are now being used for various third-party dependencies. + +* `Use mirror for zephyrproject-rtos/zephyr <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170355>`__ + (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) +* `Use Pigweed mirror for google/emboss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170356>`__ + (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) +* `Use mirror for raspberrypi/picotool <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170040>`__ + (issue `#278914999 <https://issues.pigweed.dev/issues/278914999>`__) + +pw_polyfill +----------- +* `Increase __GNUC__ for __constinit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171150>`__ + (issue `#300478321 <https://issues.pigweed.dev/issues/300478321>`__) + +pw_presubmit +------------ +A new JSON formatting check has been added. The missing newline check has been +made more robust. + +* `Add JSON formatter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171991>`__ +* `Better handling of missing newlines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172230>`__ + (issue `#301315329 <https://issues.pigweed.dev/issues/301315329>`__) +* `Expand Bazel parser to tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171890>`__ +* `Remove now-unnecessary flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171670>`__ + (issue `#271299438 <https://issues.pigweed.dev/issues/271299438>`__) +* `Additional functions for handling gn args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170594>`__ +* `Include bazel_build in full program <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170056>`__ + +pw_protobuf +----------- +* `Fix "Casting..." heading level <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171030>`__ + +.. _docs-changelog-pw_rpc-20230922: + +pw_rpc +------ +``pw::rpc::SynchronousCall`` now supports the use of custom response message +classes that set field callbacks in their constructor. See +:ref:`module-pw_rpc-client-sync-call-wrappers`. + +.. todo-check: disable + +* `Refer to bug in TODO and fix format <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172453>`__ +* `Support custom response messages in SynchronousCall <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170041>`__ + (issue `#299920227 <https://issues.pigweed.dev/issues/299920227>`__) +* `Add fuzz tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/143474>`__ + +.. todo-check: enable + +pw_stream +--------- +* `Add Windows socket support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172413>`__ + +pw_string +--------- +* `Fix signed integer overflow <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171839>`__ + +pw_system +--------- +* `Add arm_none_eabi_gcc_support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158730>`__ + +pw_thread +--------- +* `Fix small typo in docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171750>`__ + +.. _docs-changelog-pw_tokenizer-20230922: + +pw_tokenizer +------------ +``pw::tokenizer::Detokenizer`` has new ``DetokenizeBase64Message()`` and +``DetokenizeBase64()`` methods for detokenizing Base64-encoded strings. +The new ``pw_tokenizer_EncodeInt()`` and ``pw_tokenizer_EncodeInt64()`` +functions in the C API make it easier to manually encode tokenized messages +with integers from C. + +* `C++ Base64 detokenization improvements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171675>`__ +* `Add base64 detokenizer handler <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165010>`__ +* `C functions for encoding arguments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169976>`__ + +pw_toolchain +------------ +``arm_gcc`` now supports Cortex-M33. + +* `Add missing objcopy tool to bazel toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171697>`__ + (issue `#301004620 <https://issues.pigweed.dev/issues/301004620>`__) +* `Add cpu flags to asmopts as well <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171671>`__ +* `Add cortex-m33 support to arm_gcc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171237>`__ + +pw_toolchain_bazel +------------------ +* `Support ar opts in pw_toolchain_features <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171673>`__ +* `Add cortex-m7 constraint_value <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171071>`__ + (issue `#300467616 <https://issues.pigweed.dev/issues/300467616>`__) + +.. _docs-changelog-pw_varint-20230922: + +pw_varint +--------- +The C encoding functions now have an output size argument, making them much +easier to use. There's a new macro for calculating the encoded size of an +integer in a C constant expression. Incremental versions of the encode and +decode functions have been exposed to support in-place encoding and decoding +with non-contiguous buffers. + +* `C API updates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170050>`__ + +pw_web +------ +The ``ProgressStats`` and ``ProgressCallback`` types are now exported. +Styling and scrolling behavior in the log viewer has been improved. + +* `Remove need for Buffer package in pw_hdlc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172377>`__ +* `Remove date-fns <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172371>`__ +* `Export ProgressStats, ProgressCallback types <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171707>`__ +* `Add back 'buffer' dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171891>`__ +* `NPM version bump to 0.0.13 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171110>`__ +* `Improve scrolling behavior <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171290>`__ + (issue `#298097109 <https://issues.pigweed.dev/issues/298097109>`__) +* `Fix leading white spaces, scrollbar size, and filters in quotes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170811>`__ +* `NPM version bump to 0.0.12 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170597>`__ +* `Fix column sizing & toggling, update UI <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169591>`__ +* `Replace Map() with object in proto collection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170493>`__ + +pw_work_queue +------------- +* `Don't lock around work_notification_ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170450>`__ +* `Migrate API reference to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169830>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) + +Build +===== +* `Update Android.bp <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171510>`__ + +Bazel +----- +* `Add platform-printing aspect <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/122974>`__ +* `Retire pigweed_config (part 2) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170058>`__ + (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) +* `Retire pigweed_config (part 1) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168721>`__ + (issue `#291106264 <https://issues.pigweed.dev/issues/291106264>`__) +* `Remove -Wno-private-header from copts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170951>`__ + (issue `#240466562 <https://issues.pigweed.dev/issues/240466562>`__) +* `Remove bazelembedded dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170650>`__ + (issue `#297239780 <https://issues.pigweed.dev/issues/297239780>`__) +* `Move cxxopts out of bazelrc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170639>`__ + (issue `#269195628 <https://issues.pigweed.dev/issues/269195628>`__) +* `Use the same clang version as in GN <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170638>`__ +* `Arm gcc configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168192>`__ + (issue `#297239780 <https://issues.pigweed.dev/issues/297239780>`__) + +Targets +======= +* `Fix pico_sdk elf2uf2 on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170770>`__ +* `Add pw_strict_host_clang_debug_dynamic_allocation tc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171674>`__ + +Docs +==== +The new :ref:`docs-code_reviews` document outlines the upstream Pigweed code +review process. + +* `Add Doxygen @endcode guidance <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172470>`__ +* `Clean up remaining instances of code:: <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172050>`__ + (issue `#300317685 <https://issues.pigweed.dev/issues/300317685>`__) +* `Document code review process <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171774>`__ +* `Add link to in-progress hardware targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171239>`__ +* `Fix link title for pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170670>`__ +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170055>`__ + (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) + +SEEDs +===== +* `Update process document <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170390>`__ +* (SEED-0104) `Display Support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ +* (SEED-0109) `Make link externally accessible <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170043>`__ +* (SEED-0110) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170038>`__ +* (SEED-0111) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171672>`__ +* (SEED-0112) `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168359>`__ + +Third party +=========== +* `Add public configs for FuzzTest deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169711>`__ + +third_party/fuchsia +------------------- +* `Copybara import <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171010>`__ +* `Update patch script and patch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170890>`__ +* `Update patch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170794>`__ +* `Support specifying the Fuchsia repo to use <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170170>`__ + +third_party/pico_sdk +-------------------- +* `Selectively disable elf2uf2 warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/171072>`__ + (issue `#300474559 <https://issues.pigweed.dev/issues/300474559>`__) +* `Fix multicore source filename <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170330>`__ + +Miscellaneous +============= +.. todo-check: disable + +* `Use new TODO style <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/170730>`__ +* `Add toolchain team members <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172170>`__ +* `Fix double bootstrap.bat failures on Windows" <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/172410>`__ + (issue `#300992566 <https://issues.pigweed.dev/issues/300992566>`__) + +.. todo-check: enable + +----------- +Sep 8, 2023 +----------- +Highlights (Aug 25, 2023 to Sep 8, 2023): + +* SEED :ref:`seed-0107` has been approved! Pigweed will adopt a new sockets API as + its primary networking abstraction. The sockets API will be backed by a new, + lightweight embedded-focused network protocol stack inspired by TCP/IP. +* SEED :ref:`seed-0108` has also been approved! Coming soon, the new ``pw_emu`` + module will make it easier to work with emulators. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0109: Communication Buffers <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168357>`__ + +Modules +======= + +pw_assert +--------- +We fixed circular dependencies in Bazel. + +* `Remove placeholder target <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168844>`__ +* `Fix Bazel circular deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160794>`__ + (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) +* `Introduce pw_assert_backend_impl <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168774>`__ + (issue `#234877642 <https://issues.pigweed.dev/issues/234877642>`__) + +pw_bluetooth +------------ +We added :ref:`Emboss <module-pw_third_party_emboss>` definitions. + +* `Add SimplePairingCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169916>`__ +* `Add UserPasskeyRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169912>`__ +* `Add UserConfirmationRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169871>`__ +* `Use hci.LinkKey in LinkKeyNotificationEvent.link_key <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168858>`__ +* `Add IoCapabilityResponseEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168354>`__ +* `Add IoCapabilityRequestEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168353>`__ +* `Add EncryptionKeyRefreshCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168331>`__ +* `Add ExtendedInquiryResultEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168330>`__ + +pw_build +-------- +* `Force watch and default recipe names <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169911>`__ + +pw_build_mcuxpresso +------------------- +* `Output formatted bazel target <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169740>`__ + +pw_cpu_exception +---------------- +We added Bazel support. + +* `bazel build support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169733>`__ + (issue `#242183021 <https://issues.pigweed.dev/issues/242183021>`__) + +pw_crypto +--------- +The complete ``pw_crypto`` API reference is now documented on :ref:`module-pw_crypto`. + +* `Add API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169572>`__ + (issue `#299147635 <https://issues.pigweed.dev/issues/299147635>`__) + +pw_env_setup +------------ +Banners should not print correctly on Windows. + +* `Add i2c protos to python deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169231>`__ +* `Fix banner printing on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169172>`__ + (issue `#289008307 <https://issues.pigweed.dev/issues/289008307>`__) + +pw_file +------- +* `Add pw_file python package <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168831>`__ + +pw_function +----------- +The :cpp:func:`pw::bind_member()` template is now exposed in the public API. +``bind_member()`` is useful for binding the ``this`` argument of a callable. +We added a section to the docs explaining :ref:`why pw::Function is not a +literal <module-pw_function-non-literal>`. + +* `Explain non-literal design rationale <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168777>`__ +* `Expose \`bind_member\` <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169123>`__ + +pw_fuzzer +--------- +We refactored ``pw_fuzzer`` logic to be more robust and expanded the +:ref:`module-pw_fuzzer-guides-reproducing_oss_fuzz_bugs` doc. + +* `Refactor OSS-Fuzz support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167348>`__ + (issue `#56955 <https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56955>`__) + +pw_i2c +------ +* `Use new k{FieldName}MaxSize constants to get buffer size <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168913>`__ + +pw_kvs +------ +We are discouraging the use of the shorter macros because they collide with +Abseil's logging API. + +* `Remove usage of pw_log/shorter.h API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169920>`__ + (issue `#299520256 <https://issues.pigweed.dev/issues/299520256>`__) + +pw_libc +------- +``snprintf()`` support was added. + +* `Import LLVM libc's snprintf <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137735>`__ + +pw_log_string +------------- +We added more detail to :ref:`module-pw_log_string`. + +* `Fix the default impl to handle zero length va args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169975>`__ +* `Provide more detail in the getting started docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168934>`__ + (issue `#298124226 <https://issues.pigweed.dev/issues/298124226>`__) + +pw_log_zephyr +------------- +It's now possible to define ``pw_log_tokenized_HandleLog()`` outside of Pigweed +so that Zephyr projects have more flexibility around how they capture tokenized +logs. + +* `Split tokenize handler into its own config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168612>`__ + +pw_package +---------- +* `Handle failed cipd acl checks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168530>`__ + +pw_persistent_ram +----------------- +* `Add persistent_buffer flat_file_system_entry <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168832>`__ + +pw_presubmit +------------ +We added a reStructuredText formatter. + +* `Make builds_from_previous_iteration ints <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169721>`__ + (issue `#299336222 <https://issues.pigweed.dev/issues/299336222>`__) +* `Move colorize_diff to tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168839>`__ +* `RST formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168541>`__ + +pw_protobuf +----------- +``max_size`` and ``max_count`` are now exposed in generated headers. +The new ``proto_message_field_props()`` helper function makes it easier to +iterate through a messages fields and properties. + +* `Expose max_size, max_count in generated header file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168973>`__ + (issue `#297364973 <https://issues.pigweed.dev/issues/297364973>`__) +* `Introduce proto_message_field_props() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168972>`__ +* `Change PROTO_FIELD_PROPERTIES to a dict of classes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168971>`__ +* `Rename 'node' to 'message' in forward_declare() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168970>`__ +* `Simplify unnecessary Tuple return type <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168910>`__ + +pw_random +--------- +We're now auto-generating the ``XorShiftStarRng64`` API reference via Doxygen. + +* `Doxygenify xor_shift.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164510>`__ + +pw_rpc +------ +The new ``request_completion()`` method in Python enables you to send a +completion packet for server streaming calls. + +* `Add request_completion to ServerStreamingCall python API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168439>`__ + +pw_spi +------ +* `Fix Responder.SetCompletionHandler() signature <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169130>`__ + +pw_symbolizer +------------- +The ``LlvmSymbolizer`` Python class has a new ``close()`` method to +deterministically close the background process. + +* `LlvmSymbolizer tool improvement <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168863>`__ + +pw_sync +------- +We added :ref:`module-pw_sync-genericbasiclockable`. + +* `Add GenericBasicLockable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165930>`__ + +pw_system +--------- +``pw_system`` now supports different channels for primary and logging RPC. + +* `Multi-channel configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167158>`__ + (issue `#297076185 <https://issues.pigweed.dev/issues/297076185>`__) + +pw_thread_freertos +------------------ +* `Add missing dep to library <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169239>`__ + +pw_tokenizer +------------ +We added :c:macro:`PW_TOKENIZE_FORMAT_STRING_ANY_ARG_COUNT` and +:c:macro:`PW_TOKENIZER_REPLACE_FORMAT_STRING`. We refactored the docs +so that you don't have to jump around the docs as much when learning about +key topics like tokenization and token databases. Database loads now happen +in a separate thread to avoid blocking the main thread. Change detection for +directory databases now works more as expected. The config API is now exposed +in the API reference. + +* `Remove some unused deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169573>`__ +* `Simplify implementing a custom tokenization macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169121>`__ +* `Refactor the docs to be task-focused <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169124>`__ +* `Reload database in dedicated thread <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168866>`__ +* `Combine duplicated docs sections <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168865>`__ +* `Support change detection for directory dbs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168630>`__ +* `Move config value check to .cc file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168615>`__ + +pw_unit_test +------------ +We added ``testing::Test::HasFailure()``, ``FRIEND_TEST``, and ``<<`` messages +to improve gTest compatibility. + +* `Add testing::Test::HasFailure() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168810>`__ +* `Add FRIEND_TEST <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169270>`__ +* `Allow <<-style messages in test expectations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168860>`__ + +pw_varint +--------- +``pw_varint`` now has a :ref:`C-only API <module-pw_varint-api-c>`. + +* `Add C-only implementation; cleanup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169122>`__ + +pw_web +------ +Logs can now be downloaded as plaintext. + +* `Fix TypeScript errors in Device files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169930>`__ +* `Json Log Source example <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169176>`__ +* `Enable downloading logs as plain text <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168130>`__ +* `Fix UI/state bugs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167911>`__ +* `NPM version bump to 0.0.11 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168591>`__ +* `Add basic bundling tests for log viewer bundle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168539>`__ + +Build +===== + +Bazel +----- +* `Fix alwayslink support in MacOS host_clang <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168614>`__ + (issue `#297413805 <https://issues.pigweed.dev/issues/297413805>`__) +* `Fix lint issues after roll <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169611>`__ + +Docs +==== +* `Fix broken links <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169579>`__ + (issue `#299181944 <https://issues.pigweed.dev/issues/299181944>`__) +* `Recommend enabling long file paths on Windows <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169578>`__ +* `Update Windows command for git hook <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168592>`__ +* `Fix main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168555>`__ + (issue `#297384789 <https://issues.pigweed.dev/issues/297384789>`__) +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168540>`__ + (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) +* `Use code-block:: instead of code:: everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168617>`__ +* `Add function signature line breaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168554>`__ +* `Cleanup indentation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168537>`__ + +SEEDs +===== +* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ + +Third party +=========== +* `Add public configs for FuzzTest deps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169711>`__ +* `Reconfigure deps & add cflags to config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152691>`__ + +Miscellaneous +============= +* `Fix formatting with new clang version <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/169078>`__ + +mimxrt595_evk_freertos +---------------------- +* `Use config_assert helper <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160378>`__ + +------------ +Aug 25, 2023 +------------ +Highlights (Aug 11, 2023 to Aug 25, 2023): + +* ``pw_tokenizer`` now has Rust support. +* The ``pw_web`` log viewer now has advanced filtering and a jump-to-bottom + button. +* The ``run_tests()`` method of ``pw_unit_test`` now returns a new + ``TestRecord`` dataclass which provides more detailed information + about the test run. +* A new Ambiq Apollo4 target that uses the Ambiq Suite SDK and FreeRTOS + has been added. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ + +Modules +======= + +pw_bloat +-------- +* `Fix typo in method name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166832>`__ + +pw_bluetooth +------------ +The :ref:`module-pw_third_party_emboss` files were refactored. + +* `Add SynchronousConnectionCompleteEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167862>`__ +* `Add all Emboss headers/deps to emboss_test & fix errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168355>`__ +* `Add InquiryResultWithRssiEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167859>`__ +* `Add DataBufferOverflowEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167858>`__ +* `Add LinkKeyNotificationEvent Emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167855>`__ +* `Add LinkKeyRequestEvent emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167349>`__ +* `Remove unused hci emboss files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167090>`__ +* `Add RoleChangeEvent emboss definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167230>`__ +* `Add missing test dependency <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167130>`__ +* `Add new hci subset files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166730>`__ + +pw_build +-------- +The ``pw_build`` docs were split up so that each build system has its own page +now. The new ``output_logs`` flag enables you to not output logs for ``pw_python_venv``. + +* `Handle read-only files when deleting venvs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167863>`__ +* `Split build system docs into separate pages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165071>`__ +* `Use pw_toolchain_clang_tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167671>`__ +* `Add missing pw_linker_script flag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167632>`__ + (issue `#296928739 <https://issues.pigweed.dev/issues/296928739>`__) +* `Fix output_logs_ unused warning <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166991>`__ + (issue `#295524695 <https://issues.pigweed.dev/issues/295524695>`__) +* `Don't include compile cmds when preprocessing ldscripts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166490>`__ +* `Add pw_python_venv.output_logs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165330>`__ + (issue `#295524695 <https://issues.pigweed.dev/issues/295524695>`__) +* `Increase size of test linker script memory region <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164823>`__ +* `Add integration test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154553>`__ + +pw_cli +------ +* `Default change pw_protobuf default <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126806>`__ + (issue `#266298474 <https://issues.pigweed.dev/issues/266298474>`__) + +pw_console +---------- +* `Update web viewer to use pigweedjs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162995>`__ + +pw_containers +------------- +* `Silence MSAN false positive in pw::Vector <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167111>`__ + +pw_docgen +--------- +Docs builds should be faster now because Sphinx has been configured to use +all available cores. + +* `Remove top nav bar <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168446>`__ +* `Parallelize Sphinx <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164738>`__ + +pw_env_setup +------------ +Sphinx was updated from v5.3.0 to v7.1.2. We switched back to the upstream Furo +theme and updated to v2023.8.19. The content of ``pigweed_environment.gni`` now +gets logged. There was an update to ensure that ``arm-none-eabi-gdb`` errors +propagate correctly. There is now a way to override Bazel build files for CIPD +repos. + +* `Upgrade sphinx and dependencies for docs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168431>`__ +* `Upgrade sphinx-design <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168339>`__ +* `Copy pigweed_environment.gni to logs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167850>`__ +* `arm-gdb: propagate errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165411>`__ +* `arm-gdb: exclude %VIRTUAL_ENV%\Scripts from search paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164370>`__ +* `Add ability to override bazel BUILD file for CIPD repos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165530>`__ + +pw_function +----------- +* `Rename template parameter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168334>`__ + +pw_fuzzer +--------- +* `Add test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154555>`__ + +pw_hdlc +------- +A new ``close()`` method was added to ``HdlcRpcClient`` to signal to the thread +to stop. + +* `Use explicit logger name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166591>`__ +* `Mitigate errors on Python background thread <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162712>`__ + (issue `#293595266 <https://issues.pigweed.dev/issues/293595266>`__) + +pw_ide +------ +A new ``--install-editable`` flag was added to install Pigweed Python modules +in editable mode so that code changes are instantly realized. + +* `Add cmd to install Py packages as editable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163572>`__ +* `Make VSC extension run on older versions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167054>`__ + +pw_perf_test +------------ +* `Add test metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154554>`__ + +pw_presubmit +------------ +``pw_presubmit`` now has an ESLint check for linting and a Prettier check for +formatting JavaScript and TypeScript files. + +* `Add msan to OTHER_CHECKS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168325>`__ + (issue `#234876100 <https://issues.pigweed.dev/issues/234876100>`__) +* `Upstream constraint file output fix <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166270>`__ +* `JavaScript and TypeScript lint check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165410>`__ +* `Apply TypeScript formatting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164825>`__ +* `Use prettier for JS and TS files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165390>`__ + +pw_rpc +------ +A ``request_completion()`` method was added to the ``ServerStreamingCall`` +Python API. A bug was fixed related to encoding failures when dynamic buffers +are enabled. + +* `Add request_completion to ServerStreamingCall python API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168439>`__ +* `Various small enhancements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167162>`__ +* `Remove deprecated method from Service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165510>`__ +* `Prevent encoding failure when dynamic buffer enabled <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166833>`__ + (issue `#269633514 <https://issues.pigweed.dev/issues/269633514>`__) + +pw_rpc_transport +---------------- +* `Add simple_framing Soong rule <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165350>`__ + +pw_rust +------- +* `Update rules_rust to 0.26.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166831>`__ + +pw_stm32cube_build +------------------ +* `Windows path fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167865>`__ + +pw_stream +--------- +Error codes were updated to be more accurate and descriptive. + +* `Use more appropriate error codes for Cursor <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164592>`__ + +pw_stream_uart_linux +-------------------- +Common baud rates such as ``9600``, ``19200``, and so on are now supported. + +* `Add support for baud rates other than 115200 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165070>`__ + +pw_sync +------- +Tests were added to make sure that ``pw::sync::Borrowable`` works with lock +annotations. + +* `Test Borrowable with Mutex, TimedMutex, and InterruptSpinLock <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153575>`__ + (issue `#261078330 <https://issues.pigweed.dev/issues/261078330>`__) + +pw_system +--------- +The ``pw_system.device.Device`` Python class can now be used as a +`context manager <https://realpython.com/python-with-statement/>`_. + +* `Make pw_system.device.Device a context manager <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163410>`__ + +pw_tokenizer +------------ +``pw_tokenizer`` now has Rust support. The ``pw_tokenizer`` C++ config API +is now documented at :ref:`module-pw_tokenizer-api-configuration` and +the C++ token database API is now documented at +:ref:`module-pw_tokenizer-api-token-databases`. When creating a token +database, parent directories are now automatically created if they don't +already exist. ``PrefixedMessageDecoder`` has been renamed to +``NestedMessageDecoder``. + +* `Move config value check to .cc file <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168615>`__ +* `Create parent directory as needed <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168510>`__ +* `Rework pw_tokenizer.detokenize.PrefixedMessageDecoder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167150>`__ +* `Minor binary database improvements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167053>`__ +* `Update binary DB docs and convert to Doxygen <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163570>`__ +* `Deprecate tokenizer buffer size config <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163257>`__ +* `Fix instance of -Wconstant-logical-operand <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166731>`__ +* `Add Rust support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/145389>`__ + +pw_toolchain +------------ +A new Linux host toolchain built using ``pw_toolchain_bazel`` has been +started. CIPD-provided Rust toolchains are now being used. + +* `Link against system libraries using libs not ldflags <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151050>`__ +* `Use %package% for cxx_builtin_include_directories <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168340>`__ +* `Extend documentation for tool prefixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167633>`__ +* `Add Linux host toolchain <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164824>`__ + (issue `#269204725 <https://issues.pigweed.dev/issues/269204725>`__) +* `Use CIPD provided Rust toolchains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166852>`__ +* `Switch macOS to use builtin_sysroot <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165414>`__ +* `Add cmake helpers for getting clang compile+link flags <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163811>`__ + +pw_unit_test +------------ +``run_tests()`` now returns the new ``TestRecord`` dataclass which provides +more detailed information about the test run. ``SetUpTestSuit()`` and +``TearDownTestSuite()`` were added to improve GoogleTest compatibility. + +* `Add TestRecord of Test Results <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166273>`__ +* `Reset static value before running tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166590>`__ + (issue `#296157327 <https://issues.pigweed.dev/issues/296157327>`__) +* `Add per-fixture setup/teardown <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165210>`__ + +pw_web +------ +Log viewers are now drawn every 100 milliseconds at most to prevent crashes +when many logs arrive simultaneously. The log viewer now has a jump-to-bottom +button. Advanced filtering has been added. + +* `NPM version bump to 0.0.11 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168591>`__ +* `Add basic bundling tests for log viewer bundle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168539>`__ +* `Limit LogViewer redraws to 100ms <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167852>`__ +* `Add jump to bottom button, fix UI bugs and fix state bugs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164272>`__ +* `Implement advanced filtering <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162070>`__ +* `Remove object-path dependency from Device API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165013>`__ +* `Log viewer toolbar button toggle style <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165412>`__ +* `Log-viewer line wrap toggle <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164010>`__ + +Targets +======= + +targets +------- +A new Ambiq Apollo4 target that uses the Ambiq Suite SDK and FreeRTOS +has been added. + +* `Ambiq Apollo4 support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/129490>`__ + +Language support +================ + +Python +------ +* `Upgrade mypy to 1.5.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166272>`__ +* `Upgrade pylint to 2.17.5 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166271>`__ + +Docs +==== +Doxygen-generated function signatures now present each argument on a separate +line. Tabbed content looks visually different than before. + +* `Use code-block:: instead of code:: everywhere <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168617>`__ +* `Add function signature line breaks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168554>`__ +* `Cleanup indentation <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168537>`__ +* `Remove unused myst-parser <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168392>`__ +* `Use sphinx-design for tabbed content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168341>`__ +* `Update changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164810>`__ + +SEEDs +===== +:ref:`SEED-0107 (Pigweed Communications) <seed-0107>` was accepted and +SEED-0109 (Communication Buffers) was started. + +* `Update protobuf SEED title in index <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/166470>`__ +* `Update status to Accepted <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167770>`__ +* `Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ +* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/168358>`__ + +Miscellaneous +============= + +Build +----- +* `Make it possible to run MSAN in GN <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/167112>`__ + +soong +----- +* `Remove host/vendor properties from defaults <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/165270>`__ + +------------ +Aug 11, 2023 +------------ +Highlights (Jul 27, 2023 to Aug 11, 2023): + +* We're prototyping a Pigweed extension for VS Code. Learn more at + :ref:`docs-editors`. +* We added ``pw_toolchain_bazel``, a new LLVM toolchain for building with + Bazel on macOS. +* We are working on many docs improvements in parallel: auto-generating ``rustdocs`` + for modules that support Rust + (`example <https://pigweed.dev/rustdoc/pw_varint/>`_), refactoring the + :ref:`module-pw_tokenizer` docs, migrating API references to Doxygen, + fixing `longstanding docs site UI issues <https://issues.pigweed.dev/issues/292273650>`_, + and more. + +Active SEEDs +============ +Help shape the future of Pigweed! Please leave feedback on the following active RFCs (SEEDs): + +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0107: Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ +* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ + +Modules +======= + +pw_alignment +------------ +* `Fix typos <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163250>`__ + +pw_analog +--------- +Long-term, all of our API references will be generated from header comments via +Doxygen. Short-term, we are starting to show header files directly within the +docs as a stopgap solution for helping Pigweed users get a sense of each +module's API. See :ref:`module-pw_analog` for an example. + +* `Include header files as stopgap API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161491>`__ + (issue `#293895312 <https://issues.pigweed.dev/issues/293895312>`__) + +pw_base64 +--------- +We finished migrating the ``pw_random`` API reference to Doxygen. + +* `Finish Doxygenifying the API reference <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162911>`__ +* `Doxygenify the Encode() functions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156532>`__ + +pw_boot_cortex_m +---------------- +* `Allow explict target name <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159790>`__ + +pw_build +-------- +We added a ``log_build_steps`` option to ``ProjectBuilder`` that enables you +to log all build step lines to your screen and logfiles. + +* `Handle ProcessLookupError exceptions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163710>`__ +* `ProjectBuilder log build steps option <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162931>`__ +* `Fix progress bar clear <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160791>`__ + +pw_cli +------ +We polished tab completion support. + +* `Zsh shell completion autoload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160796>`__ +* `Make pw_cli tab completion reusable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160379>`__ + +pw_console +---------- +We made copy-to-clipboard functionality more robust when running ``pw_console`` +over SSH. + +* `Set clipboard fallback methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150238>`__ + +pw_containers +------------- +We updated :cpp:class:`filteredview` constructors and migrated the +``FilteredView`` API reference to Doxygen. + +* `Doxygenify pw::containers::FilteredView <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160373>`__ +* `Support copying the FilteredView predicate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160372>`__ + +pw_docgen +--------- +At the top of pages like :ref:`module-pw_tokenizer` there is a UI widget that +provides information about the module. Previously, this UI widget had links +to all the module's docs. This is no longer needed now that the site nav +automatically scrolls to the page you're on, which allows you to see the +module's other docs. + +* `Remove the navbar from the module docs header widget <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162991>`__ + (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) + +pw_env_setup +------------ +We made Python setup more flexible. + +* `Add clang_next.json <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163810>`__ + (issue `#295020927 <https://issues.pigweed.dev/issues/295020927>`__) +* `Pip installs from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162093>`__ +* `Include Python packages from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162073>`__ +* `Remove unused pep517 package <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162072>`__ +* `Use more available Python 3.9 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161492>`__ + (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) +* `Update Bazel to 2@6.3.0.6 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161010>`__ + +pw_ide +------ +We are prototyping a ``pw_ide`` extension for VS Code. + +* `Restore stable clangd settings link <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164011>`__ +* `Add command to install prototype extension <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162412>`__ +* `Prototype VS Code extension <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/151653>`__ + +pw_interrupt +------------ +We added a backend for Xtensa processors. + +* `Add backend for xtensa processors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160031>`__ +* `Tidy up target compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160650>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) + +pw_log_zephyr +------------- +We encoded tokenized messages to ``pw::InlineString`` so that the output is +always null-terminated. + +* `Fix null termination of Base64 messages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163650>`__ + +pw_presubmit +------------ +We increased +`LUCI <https://chromium.googlesource.com/infra/infra/+/main/doc/users/services/about_luci.md>`_ +support and updated the ``#pragma once`` check to look for matching ``#ifndef`` +and ``#define`` lines. + +* `Fix overeager format_code matches <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162611>`__ +* `Exclude vsix files from copyright <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163011>`__ +* `Clarify unicode errors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162993>`__ +* `Upload coverage json to zoss <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162090>`__ + (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) +* `Add to context tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162311>`__ +* `Add patchset to LuciTrigger <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162310>`__ +* `Add helpers to LuciContext <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162091>`__ +* `Update Python vendor wheel dir <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161514>`__ +* `Add summaries to guard checks <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161391>`__ + (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) +* `Copy Python packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161490>`__ +* `Add ifndef/define check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152173>`__ + (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) + +pw_protobuf_compiler +-------------------- +We continued work to ensure that the Python environment in Bazel is hermetic. + +* `Use hermetic protoc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162913>`__ + (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) +* `Move reference to python interpreter <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162932>`__ + (issue `#294414535 <https://issues.pigweed.dev/issues/294414535>`__) +* `Make nanopb hermetic <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162313>`__ + (issue `#293792686 <https://issues.pigweed.dev/issues/293792686>`__) + +pw_python +--------- +We fixed bugs related to ``requirements.txt`` files not getting found. + +* `setup.sh requirements arg fix path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164430>`__ +* `setup.sh arg spaces bug <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163510>`__ + +pw_random +--------- +We continued migrating the ``pw_random`` API reference to Doxygen. + +* `Doxygenify random.h <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163730>`__ + +pw_rpc +------ +We made the Java client more robust. + +* `Java client backwards compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164515>`__ +* `Avoid reflection in Java client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162930>`__ + (issue `#293361955 <https://issues.pigweed.dev/issues/293361955>`__) +* `Use hermetic protoc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162913>`__ + (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) +* `Improve Java client error message for missing parser() method <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159471>`__ + +pw_spi +------ +We continued work on implementing a SPI responder interface. + +* `Responder interface definition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159230>`__ + +pw_status +--------- +We fixed the nesting on a documentation section. + +* `Promote Zephyr heading to h2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160730>`__ + +pw_stream +--------- +We added ``remaining()``, ``len()``, and ``position()`` methods to the +``Cursor`` wrapping in Rust. + +* `Add infalible methods to Rust Cursor <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164271>`__ + +pw_stream_shmem_mcuxpresso +-------------------------- +We added the :ref:`module-pw_stream_shmem_mcuxpresso` backend for ``pw_stream``. + +* `Add shared memory stream for NXP MCU cores <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160831>`__ + (issue `#294406620 <https://issues.pigweed.dev/issues/294406620>`__) + +pw_sync_freertos +---------------- +* `Fix ODR violation in tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160795>`__ + +pw_thread +--------- +* `Fix test_thread_context typo and presubmit <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162770>`__ + +pw_tokenizer +------------ +We added support for unaligned token databases and continued the +:ref:`seed-0102` update of the ``pw_tokenizer`` docs. + +* `Separate API reference and how-to guide content <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163256>`__ +* `Polish the sales pitch <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163571>`__ +* `Support unaligned databases <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163333>`__ +* `Move the basic overview into getting started <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163253>`__ +* `Move the case study to guides.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163255>`__ +* `Restore info that get lost during the SEED-0102 migration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163330>`__ +* `Use the same tagline on every doc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163332>`__ +* `Replace savings table with flowchart <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158893>`__ +* `Ignore string nonliteral warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162092>`__ + +pw_toolchain +------------ +We fixed a regression that made it harder to use Pigweed in an environment where +``pw_env_setup`` has not been run and fixed a bug related to incorrect Clang linking. + +* `Optionally depend on pw_env_setup_CIPD_PIGWEED <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163790>`__ + (issue `#294886611 <https://issues.pigweed.dev/issues/294886611>`__) +* `Prefer start-group over whole-archive <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150610>`__ + (issue `#285357895 <https://issues.pigweed.dev/issues/285357895>`__) + +pw_toolchain_bazel +------------------ +We added a an LLVM toolchain for building with Bazel on macOS. + +* `LLVM toolchain for macOS Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157634>`__ + (issue `#291795899 <https://issues.pigweed.dev/issues/291795899>`__) + +pw_trace_tokenized +------------------ +We made tracing more robust. + +* `Replace trace callback singletons with dep injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156912>`__ + +pw_transfer +----------- +We made integration tests more robust. + +* `Fix use-after-destroy in integration test client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163252>`__ + (issue `#294101325 <https://issues.pigweed.dev/issues/294101325>`__) +* `Fix legacy binary path <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162914>`__ + (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) +* `Mark linux-only Bazel tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162094>`__ + (issue `#294101325 <https://issues.pigweed.dev/issues/294101325>`__) + +pw_web +------ +We added support for storing user preferences in ``localStorage``. + +* `Fix TypeScript warnings in web_serial_transport.ts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/164591>`__ +* `Add state for view number, search string, and columns visible <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161390>`__ +* `Fix TypeScript warnings in transfer.ts <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162411>`__ +* `Fix TypeScript warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162095>`__ +* `Remove dependency on 'crc' and 'buffer' NPM packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160830>`__ + +Build +===== +We made the Bazel system more hermetic and fixed an error related to not +finding the Java runtime. + +* `Do not allow PATH leakage into Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162610>`__ + (issue `#294284927 <https://issues.pigweed.dev/issues/294284927>`__) +* `Use remote Java runtime for Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160793>`__ + (issue `#291791485 <https://issues.pigweed.dev/issues/291791485>`__) + +Docs +==== +We created a new doc (:ref:`docs-editors`) that explains how to improve Pigweed +support in various IDEs. We standardized how we present call-to-action buttons +on module homepages. See :ref:`module-pw_tokenizer` for an example. We fixed a +longstanding UI issue around the site nav not scrolling to the page that you're +currently on. + +* `Add call-to-action buttons <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163331>`__ +* `Update module items in site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163251>`__ +* `Add editor support doc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/110261>`__ +* `Delay nav scrolling to fix main content scrolling <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162990>`__ + (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) +* `Suggest editor configuration <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162710>`__ +* `Scroll to the current page in the site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162410>`__ + (issue `#292273650 <https://issues.pigweed.dev/issues/292273650>`__) +* `Add changelog <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160170>`__ + (issue `#292247409 <https://issues.pigweed.dev/issues/292247409>`__) + +SEEDs +===== +We created a UI widget to standardize how we present SEED status information. +See the start of :ref:`seed-0102` for an example. + +* `Create Sphinx directive for metadata <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/161517>`__ + +Third party +=========== + +third_party/mbedtls +------------------- +* `3.3.0 compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160790>`__ + (issue `#293612945 <https://issues.pigweed.dev/issues/293612945>`__) + +Miscellaneous +============= + +OWNERS +------ +* `Add kayce@ <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163254>`__ + +------------ +Jul 28, 2023 +------------ +Highlights (Jul 13, 2023 to Jul 28, 2023): + +* `SEED-0107: Pigweed Communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__, + a proposal for an embedded-focused network protocol stack, is under + discussion. Please review and provide your input! +* ``pw_cli`` now supports tab completion! +* A new UART Linux backend for ``pw_stream`` was added (``pw_stream_uart_linux``). + +Active SEEDs +============ +* `SEED-0103: pw_protobuf Object Model <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/133971>`__ +* `SEED-0104: display support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150793>`__ +* `SEED-0105: Add nested tokens and tokenized args to pw_tokenizer and pw_log <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154190>`__ +* `SEED-0106: Project Template <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155430>`__ +* `SEED-0107: Pigweed communications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157090>`__ +* `SEED-0108: Emulators Frontend <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158190>`__ + +Modules +======= + +pw_allocator +------------ +We started migrating the ``pw_allocator`` API reference to Doxygen. + +* `Doxygenify the freelist chunk methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155395>`__ + +pw_async +-------- +We increased Bazel support. + +* `Fill in bazel build rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156911>`__ + +pw_async_basic +-------------- +We reduced logging noisiness. + +* `Remove debug logging <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158193>`__ + +pw_base64 +--------- +We continued migrating the ``pw_base64`` API reference to Doxygen. + +* `Doxygenify MaxDecodedSize() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157091>`__ + +pw_bloat +-------- +We improved the performance of label creation. One benchmark moved from 120 +seconds to 0.02 seconds! + +* `Cache and optimize label production <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159474>`__ + +pw_bluetooth +------------ +Support for 3 events was added. + +* `Add 3 Event packets & format hci.emb <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157663>`__ + +pw_build +-------- +* `Fix progress bar clear <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160791>`__ +* `Upstream build script fixes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159473>`__ +* `Add pw_test_info <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154551>`__ +* `Upstream build script & presubmit runner <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/137130>`__ +* `pw_watch: Redraw interval and bazel steps <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159490>`__ +* `Avoid extra newlines for docs in generate_3p_gn <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150233>`__ +* `pip install GN args <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155270>`__ + (issue `#240701682 <https://issues.pigweed.dev/issues/240701682>`__) +* `pw_python_venv generate_hashes option <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157630>`__ + (issue `#292098416 <https://issues.pigweed.dev/issues/292098416>`__) + +pw_build_mcuxpresso +------------------- +Some H3 elements in the ``pw_build_mcuxpresso`` docs were being incorrectly +rendered as H2. + +* `Fix doc headings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155570>`__ + +pw_chrono_freertos +------------------ +We investigated what appeared to be a race condition but turned out to be an +unreliable FreeRTOS variable. + +* `Update SystemTimer comments <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159231>`__ + (issue `#291346908 <https://issues.pigweed.dev/issues/291346908>`__) +* `Remove false callback precondition <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156091>`__ + (issue `#291346908 <https://issues.pigweed.dev/issues/291346908>`__) + +pw_cli +------ +``pw_cli`` now supports tab completion! + +* `Zsh shell completion autoload <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160796>`__ +* `Make pw_cli tab completion reusable <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160379>`__ +* `Print tab completions for pw commands <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160032>`__ +* `Fix logging msec timestamp format <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159930>`__ + +pw_console +---------- +Communication errors are now handled more gracefully. + +* `Detect comms errors in Python <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155814>`__ + +pw_containers +------------- +The flat map implementation and docs have been improved. + +* `Doxygenify pw::containers::FilteredView <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160373>`__ +* `Support copying the FilteredView predicate <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160372>`__ +* `Improve FlatMap algorithm and filtered_view support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156652>`__ +* `Improve FlatMap doc example <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156651>`__ +* `Update FlatMap doc example so it compiles <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156650>`__ + +pw_digital_io +------------- +We continued migrating the API reference to Doxygen. An RPC service was added. + +* `Doxygenify the interrupt handler methods <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154193>`__ +* `Doxygenify Enable() and Disable() <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155817>`__ +* `Add digital_io rpc service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154974>`__ + +pw_digital_io_mcuxpresso +------------------------ +We continued migrating the API reference to Doxygen. Support for a new RPC +service was added. + +* `Remove unneeded constraints <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155394>`__ + +pw_docgen +--------- +Support for auto-linking to Rust docs (when available) was added. We also +explained how to debug Pigweed's Sphinx extensions. + +* `Add rustdoc linking support to pigweed-module tag <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159292>`__ +* `Add extension debugging instructions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156090>`__ + +pw_env_setup +------------ +There were lots of updates around how the Pigweed environment uses Python. + +* `pw_build: Disable pip version check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160551>`__ +* `Add docstrings to visitors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159131>`__ +* `Sort pigweed_environment.gni lines <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158892>`__ +* `Mac and Windows Python requirements <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158912>`__ + (issue `#292098416 <https://issues.pigweed.dev/issues/292098416>`__) +* `Add more Python versions <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158891>`__ + (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) +* `Remove python.json from Bazel CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158911>`__ + (issue `#292585791 <https://issues.pigweed.dev/issues/292585791>`__) +* `Redirect variables from empty dirs <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158890>`__ + (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) +* `Split Python constraints per OS <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157657>`__ + (issue `#292278707 <https://issues.pigweed.dev/issues/292278707>`__) +* `Add --additional-cipd-file argument <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158170>`__ + (issue `#292280529 <https://issues.pigweed.dev/issues/292280529>`__) +* `Upgrade Python cryptography to 41.0.2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157654>`__ +* `Upgrade ipython to 8.12.2 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157653>`__ +* `Upgrade PyYAML to 6.0.1 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157652>`__ +* `Add Python constraints with hashes <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153470>`__ + (issue `#287302102 <https://issues.pigweed.dev/issues/287302102>`__) +* `Bump pip and pip-tools <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156470>`__ +* `Add coverage utilities <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155810>`__ + (issue `#279161371 <https://issues.pigweed.dev/issues/279161371>`__) + +pw_fuzzer +--------- +A fuzzer example was updated to more closely follow Pigweed code conventions. + +* `Update fuzzers to use Pigweed domains <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/148337>`__ + +pw_hdlc +------- +Communication errors are now handled more gracefully. + +* `Detect comms errors in Python <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155814>`__ +* `Add target to Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157651>`__ + +pw_i2c +------ +An RPC service was added. Docs and code comments were updated to use ``responder`` +and ``initiator`` terminology consistently. + +* `Standardize naming on initiator/responder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159132>`__ +* `Add i2c rpc service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155250>`__ + +pw_i2c_mcuxpresso +----------------- +* `Allow for static initialization of initiator <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155790>`__ +* `Add test to ensure compilation of module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155390>`__ + +pw_ide +------ +* `Support multiple comp DB search paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/144210>`__ + (issue `#280363633 <https://issues.pigweed.dev/issues/280363633>`__) + +pw_interrupt +------------ +Work continued on how facade backend selection works in Bazel. + +* `Add backend for xtensa processors <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160031>`__ +* `Tidy up target compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160650>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) +* `Remove cpu-based backend selection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160380>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) +* `Add backend constraint setting <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160371>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) +* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154500>`__ + (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) + +pw_log_rpc +---------- +A docs section was added that explains how ``pw_log``, ``pw_log_tokenized``, +and ``pw_log_rpc`` interact with each other. + +* `Explain relation to pw_log and pw_log_tokenized <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157231>`__ + +pw_package +---------- +Raspberry Pi Pico and Zephyr support improved. + +* `Add picotool package installer <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155791>`__ +* `Handle windows Zephyr SDK setup <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157030>`__ +* `Run Zephyr SDK setup.sh after syncing from CIPD <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156530>`__ + +pw_perf_test +------------ +* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154498>`__ + (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) + +pw_presubmit +------------ +* `Add ifndef/define check <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/152173>`__ + (issue `#287529705 <https://issues.pigweed.dev/issues/287529705>`__) +* `Remove deprecated gn_docs_build step <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159291>`__ +* `Fix issues with running docs_build twice <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159290>`__ +* `Add Rust docs to docs site <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157656>`__ + +pw_protobuf_compiler +-------------------- +* `Disable legacy namespace <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157232>`__ +* `Transition to our own proto compiler rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157033>`__ + (issue `#234874064 <https://issues.pigweed.dev/issues/234874064>`__) +* `Allow external usage of macros <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155432>`__ + +pw_ring_buffer +-------------- +``pw_ring_buffer`` now builds with ``-Wconversion`` enabled. + +* `Conversion warning cleanups <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157430>`__ + (issue `#259746255 <https://issues.pigweed.dev/issues/259746255>`__) + +pw_rpc +------ +* `Create client call hook in Python client <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157870>`__ +* `Provide way to populate response callbacks during tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156670>`__ +* `Add Soong rule for pwpb echo service <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156270>`__ + +pw_rpc_transport +---------------- +* `Add more Soong rules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155035>`__ + +pw_rust +------- +We are preparing pigweed.dev to automatically link to auto-generated +Rust module documentation when available. + +* `Add combined Rust doc support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157632>`__ +* `Update @rust_crates sha <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155051>`__ + +pw_spi +------ +We updated docs and code comments to use ``initiator`` and ``responder`` +terminology consistently. + +* `Standardize naming on initiator/responder <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159132>`__ + +pw_status +--------- +* `Add Clone and Copy to Rust Error enum <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157093>`__ + +pw_stream +--------- +We continued work on Rust support. + +* `Fix Doxygen typo <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154732>`__ +* `Add read_exact() an write_all() to Rust Read and Write traits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157094>`__ +* `Clean up rustdoc warnings <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157092>`__ +* `Add Rust varint reading and writing support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156451>`__ +* `Refactor Rust cursor to reduce monomorphization <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155391>`__ +* `Add Rust integer reading support <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155053>`__ +* `Move Rust Cursor to it's own sub-module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155052>`__ + +pw_stream_uart_linux +-------------------- +A new UART Linux backend for ``pw_stream`` was added. + +* `Add stream for UART on Linux <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156910>`__ + +pw_sync +------- +C++ lock traits were added and used. + +* `Improve Borrowable lock traits and annotations <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153573>`__ + (issue `#261078330 <https://issues.pigweed.dev/issues/261078330>`__) +* `Add lock traits <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/153572>`__ + +pw_sync_freertos +---------------- +* `Fix ODR violation in tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160795>`__ + +pw_sys_io +--------- +* `Add android to alias as host system <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157871>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) +* `Add chromiumos to alias as host system <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155811>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) + +pw_system +--------- +* `Update IPython init API <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157872>`__ +* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154497>`__ + (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) + +pw_tokenizer +------------ +We refactored the ``pw_tokenizer`` docs to adhere to :ref:`seed-0102`. + +* `Update tagline, restore missing info, move sections <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158192>`__ +* `Migrate the proto docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157655>`__ +* `Remove stub sections and add guides link (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157631>`__ +* `Migrate the custom macro example (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157032>`__ +* `Migrate the Base64 docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156531>`__ +* `Migrate token collision docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155818>`__ +* `Migrate detokenization docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155815>`__ +* `Migrate masking docs (SEED-0102) <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155812>`__ + +pw_toolchain +------------ +The build system was modified to use relative paths to avoid unintentionally +relying on the path environment variable. Map file generation is now optional +to avoid generating potentially large map files when they're not needed. + +* `Test trivially destructible class <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159232>`__ +* `Make tools use relative paths <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159130>`__ + (issue `#290848929 <https://issues.pigweed.dev/issues/290848929>`__) +* `Support conditionally creating mapfiles <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157431>`__ + +pw_trace_tokenized +------------------ +* `Replace singletons with dependency injection <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155813>`__ +* `Remove redundant Bazel targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154499>`__ + (issue `#290359233 <https://issues.pigweed.dev/issues/290359233>`__) + +pw_unit_test +------------ +* `Update metadata test type for unit tests <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/154550>`__ + +pw_varint +--------- +* `Update Rust API to return number of bytes written <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156450>`__ + +pw_watch +-------- +We fixed an issue where builds were getting triggered when files were opened +or closed without modication. + +* `Trigger build only on file modifications <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157633>`__ + +pw_web +------ +* `Remove dependency on 'crc' and 'buffer' NPM packages <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160830>`__ +* `Update theme token values and usage <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155970>`__ +* `Add disconnect() method to WebSerialTransport <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156471>`__ +* `Add docs section for log viewer component <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155050>`__ + +Build +===== + +bazel +----- +* `Add host_backend_alias macro <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160550>`__ + (issue `#272090220 <https://issues.pigweed.dev/issues/272090220>`__) +* `Fix missing deps in some modules <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160376>`__ +* `Support user bazelrc files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160030>`__ +* `Update rules_python to 0.24.0 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158913>`__ + (issue `#266950138 <https://issues.pigweed.dev/issues/266950138>`__) + +build +----- +* `Use remote Java runtime for Bazel build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160793>`__ + (issue `#291791485 <https://issues.pigweed.dev/issues/291791485>`__) +* `Add Rust toolchain to Bazel macOS build <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159491>`__ + (issue `#291749888 <https://issues.pigweed.dev/issues/291749888>`__) +* `Mark linux-only Bazel build targets <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158191>`__ + +Targets +======= + +targets/rp2040_pw_system +------------------------ +Some of the Pico docs incorrectly referred to another hardware platform. + +* `Fix references to STM32 <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157233>`__ + (issue `#286652309 <https://issues.pigweed.dev/issues/286652309>`__) + +Language support +================ + +python +------ +* `Remove setup.py files <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159472>`__ + +rust +---- +* `Add rustdoc links for existing crates <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/159470>`__ + +OS support +========== + +zephyr +------ +* `Add project name to unit test root <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156850>`__ +* `Add pigweed root as module <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156596>`__ +* `Fix setup.sh call <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156591>`__ + +Docs +==== +We added a feature grid to the homepage and fixed outdated info in various +docs. + +* `pigweed.dev feature grid <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157658>`__ +* `Mention SEED-0102 in module_structure.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157234>`__ + (issue `#286477675 <https://issues.pigweed.dev/issues/286477675>`__) +* `Remove outdated Homebrew info in getting_started.rst <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157291>`__ + (issue `#287528787 <https://issues.pigweed.dev/issues/287528787>`__) +* `Fix "gn args" examples which reference pw_env_setup_PACKAGE_ROOT <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/156452>`__ +* `Consolidate contributing docs in site nav <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/155816>`__ + +SEEDs +===== + +SEED-0107 +--------- +* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157031>`__ + +SEED-0108 +--------- +* `Claim SEED number <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/158171>`__ + +Third party +=========== + +third_party +----------- +* `Remove now unused rules_proto_grpc <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/157290>`__ + +third_party/mbedtls +------------------- +* `3.3.0 compatibility <https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/160790>`__ + (issue `#293612945 <https://issues.pigweed.dev/issues/293612945>`__) |