docs: Update changelog

Change-Id: Iec00b35e9b44e2f2ecc8a62dccfcb581029ca133
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/216153
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Pigweed-Auto-Submit: Kayce Basques <kayce@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Kayce Basques 2024-06-14 19:26:34 +00:00 committed by CQ Bot Account
parent 71bc6ad022
commit 1b2c01eabe
6 changed files with 804 additions and 21 deletions

View File

@ -213,9 +213,9 @@ async function render(commits) {
rest += `${'-'.repeat(title.length)}\n\n`;
rest += '.. changelog_highlights_start\n\n';
rest += `Highlights (${start} to ${end}):\n\n`;
rest += '* Highlight #1\n';
rest += '* Highlight #2\n';
rest += '* Highlight #3\n\n';
rest += '* **<Highlight 1>**: Description\n';
rest += '* **<Highlight 2>**: Description\n';
rest += '* **<Highlight 3>**: Description\n\n';
rest += '.. changelog_highlights_end\n\n';
rest += 'Active SEEDs\n';
rest += '============\n';
@ -228,13 +228,13 @@ async function render(commits) {
rest += '.. space.\n\n';
const categories = [
'Modules',
'Build',
'Targets',
'Build systems',
'Hardware targets',
'Language support',
'OS support',
'Docs',
'SEEDs',
'Third party',
'Third-party software',
'Miscellaneous',
];
for (let i = 0; i < categories.length; i++) {
@ -245,11 +245,19 @@ async function render(commits) {
let topics = Object.keys(commits[category]);
topics.sort();
topics.forEach((topic) => {
rest += `${topic}\n`;
rest += `${'-'.repeat(topic.length)}\n\n\n`;
// Some topics should not be rendered because they're redundant.
// E.g. we already have a "Docs" H3 heading so we don't need another
// "docs" H4 heading right after it.
const topicsToSkip = ['docs'];
if (!topicsToSkip.includes(topic)) {
rest += `${topic}\n`;
rest += `${'-'.repeat(topic.length)}\n\n\n`;
}
commits[category][topic].forEach((commit) => {
const change = commit.change.replaceAll('`', '`');
// The double underscores are signficant:
// Escape any backticks that are used in the commit message.
const change = commit.change.replaceAll('`', '\\`');
// Use double underscores to make the links anonymous so that Sphinx
// doesn't error when the same link is used multiple times.
// https://github.com/sphinx-doc/sphinx/issues/3921
rest += `* \`${commit.title}\n <${change}>\`__\n`;
if (commit.issue)

View File

@ -14,10 +14,775 @@ Talk to the team at Pigweed Live
.. _docs-changelog-latest:
------------
May 30, 2024
Jun 13, 2024
------------
.. changelog_highlights_start
.. _bootstrap.fish: https://cs.opensource.google/pigweed/pigweed/+/main:bootstrap.fish
Highlights (May 30, 2024 to Jun 13, 2024):
``pw_malloc`` now supports :ref:`pw_allocator <module-pw_allocator>`-based
backends.
* **GitHub Actions guidance**: The new :ref:`docs-github` guide shows you
how to set up GitHub Actions for Pigweed projects.
* **New pw_build Bazel rules**: ``pw_py_test`` rule wraps ``py_test``,
:ref:`pw_elf_to_dump <module-pw_build-bazel-pw_elf_to_dump>` takes a
binary executable and produces a text file containing the full binary layout,
and :ref:`pw_elf_to_bin <module-pw_build-bazel-pw_elf_to_bin>` rule takes
a binary executable and produces a file with all ELF headers removed.
* **Improved Fish shell support**: The ``pw`` and ``pw build``
commands now support `Fish <https://fishshell.com/>`__ shell completion.
The new `bootstrap.fish`_ script demonstrates how to bootstrap a Pigweed
project from a Fish shell and makes it easier for Fish users to contribute
to upstream Pigweed.
* **More informative modules index**: The :ref:`modules index <docs-module-guides>`
now shoes useful metadata for each module, such as a summary of the
module's purpose and the programming languages that the module supports.
.. changelog_highlights_end
Active SEEDs
============
Help shape the future of Pigweed! Please visit :ref:`seed-0000`
and leave feedback on the RFCs (i.e. SEEDs) marked
``Open for Comments``.
Modules
=======
pw_allocator
------------
The ``pw::allocator::Layout`` constructor is now marked ``explicit`` to
ensure that functions that take ``Layout`` instances as arguments don't
silently accept and convert other types. The ``pw::allocator::FreeList`` and
``pw::allocator::FreeListHeap`` interfaces have been removed.
* `Make Layout constructor explicit
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211915>`__
* `Remove FreeList and FreeListHeap
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211914>`__
(issue `#328076428 <https://issues.pigweed.dev/issues/328076428>`__)
* `Refactor Bucket chunk list
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215488>`__
(issue `#345526413 <https://issues.pigweed.dev/issues/345526413>`__)
pw_analog
---------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214500>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_android_toolchain
--------------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214501>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_arduino_build
----------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214173>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_assert
---------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214539>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_async
--------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214499>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_async2
---------
* `Fix location of backends in sitenav
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213914>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_base64
---------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214540>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_bloat
--------
* `Build and run \`pw bloat\` CLI command in Bazel
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215456>`__
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214177>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_blob_store
-------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214502>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_bluetooth
------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214575>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Add HCI StatusCode values
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213553>`__
pw_bluetooth_hci
----------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214576>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_bluetooth_profiles
---------------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214612>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_bluetooth_proxy
------------------
The new ``pw::bluetooth::proxy::HasSendAclCapability()`` function indicates
whether the proxy has the capability to send ACL packets.
* `Remove H4HciPacketSendFn alias
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215221>`__
(issue `#326499764 <https://issues.pigweed.dev/issues/326499764>`__)
* `Fix const on sendGattNotify param
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214864>`__
(issue `#326499764 <https://issues.pigweed.dev/issues/326499764>`__)
* `Mark unused parameters with [[maybe_unused]]
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214637>`__
(issue `#345526399 <https://issues.pigweed.dev/issues/345526399>`__)
* `Add maybe_unused to make downstream happy
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214360>`__
(issue `#344031126 <https://issues.pigweed.dev/issues/344031126>`__)
* `Add ProxyHost::HasSendAclCapability()
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214101>`__
(issue `#344030724 <https://issues.pigweed.dev/issues/344030724>`__)
* `Update H4HciPacket construction
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214233>`__
* `Add sendGattNotify stub
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214106>`__
(issue `#344031126 <https://issues.pigweed.dev/issues/344031126>`__)
* `Fix compilation errors
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213733>`__
* `Pass H4 as event type plus an HCI span
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213664>`__
(issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__)
* `Tweak CreateNonInteractingToHostBuffer to take array
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213663>`__
(issue `#326499611 <https://issues.pigweed.dev/issues/326499611>`__)
pw_boot_cortex_m
----------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215458>`__
pw_build
--------
The new ``pw_py_test`` rule wraps ``py_test`` and defaults to setting
``target_compatible_with`` to ``host`` only. The new
:ref:`pw_elf_to_dump <module-pw_build-bazel-pw_elf_to_dump>` rule takes a
binary executable and produces a text file containing the full binary layout.
The new :ref:`pw_elf_to_bin <module-pw_build-bazel-pw_elf_to_bin>` rule takes
a binary executable and produces a file with all ELF headers removed.
* `Move host_backend_alias (part 1)
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215740>`__
(issue `#344654805 <https://issues.pigweed.dev/issues/344654805>`__)
* `Add python.install into the default GN group
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215791>`__
* `Introduce pw_py_test to bazel
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215258>`__
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214506>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Clarify docs on pw_elf_to_bin
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213616>`__
* `Update intro
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214062>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Add pw_elf_to_dump rule
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212851>`__
* `Add pw_elf_to_bin rule
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212671>`__
* `Populate executable field in return from link_cc utility
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212631>`__
pw_build_info
-------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214616>`__
pw_build_mcuxpresso
-------------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214507>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_bytes
--------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214509>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_channel
----------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214621>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Update function documentation
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213712>`__
* `Remove manual registration from epoll channel
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213653>`__
pw_checksum
-----------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214623>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_chre
-------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214633>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_chrono
---------
:ref:`libc time wrappers <module-pw_chrono-libc-time-wrappers>` are now
provided to improve compatibility with software not written for embedded
systems that depends on ``gettimeofday`` and ``time`` from POSIX.
* `Group common backends in the GN build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215336>`__
* `Introduce SystemClock backed link time wrappers
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213551>`__
pw_cli
------
.. _Fish: https://fishshell.com/
The ``pw`` and ``pw build`` commands now support `Fish`_ shell completion.
* `Fish shell completion
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213734>`__
pw_clock_tree
-------------
The new ``pw::clock_tree::ClockSourceNoOp`` class can be used to satisfy
the dependency of a source clock tree element for other clock source classes.
The new ``pw::clock_tree::ElementController`` class provides easier integration
of optional clock tree logic into existing drivers.
* `Introduce ClockSourceNoOp class
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213851>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Introduce ElementController class
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212095>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Fix source set name and visibility
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212151>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
pw_clock_tree_mcuxpresso
------------------------
* `Comment clean up
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214573>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Add ClockMcuxpressoRtc support
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214572>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Remove unnecessary pw::
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214494>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Add ClockMcuxpressoAudioPll support
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214332>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Configure ClkIn as source for osc_clk
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214234>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Make Mclk and ClkIn dependent elements
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213853>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Move example code out of docs
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213852>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `Fix source set name and visibility
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212152>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
pw_console
----------
Theme colors are now correctly applied when running ``pw console`` with the
``--config-file`` option.
* `Reload theme when using a config-file
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214891>`__
pw_containers
-------------
The ``pw::Vector::at()`` function signature was changed to take ``size_t``
instead of ``size_type``. The new ``pw::InlineVarLenEntryQueue::try_push()``
function is similar to ``pw::InlineVarLenEntryQueue::push_overwrite()`` but it
drops entries instead of overwriting old ones. The new
``pw::InlineVarLenEntryQueue::max_size()`` function returns the maximum number
of empty entries.
* `Make Vector::at() use size_t
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215859>`__
* `Disallow deletion from InlineVarLenEntryQueue base
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/210639>`__
* `InlineVarLenEntryQueue::try_push() function
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213612>`__
pw_digital_io
-------------
* `Remove invalid digital_io_controller reference
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214691>`__
pw_digital_io_linux
-------------------
``pw_digital_io_linux`` now supports input interrupts. The new
:ref:`watch <module-pw_digital_io_linux-cli-watch>` command in the CLI
tool configures a GPIO line as an input and watches for interrupt events.
* `Add trigger option to CLI watch command
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213131>`__
* `Add "watch" command
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209596>`__
* `Add support for input interrupts
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209595>`__
* `Move examples out to compiled source files
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209771>`__
* `Update mock_vfs
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209594>`__
* `Add log_errno.h
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209593>`__
pw_docgen
---------
* `Update module metadata status badge colors
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214574>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214182>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Fix search results increasing in width
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215332>`__
pw_env_setup
------------
The new `bootstrap.fish`_ script demonstrates how to bootstrap a Pigweed
project from a Fish shell and makes it easier for Fish users to contribute
to upstream Pigweed.
* `Update clang next version
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212432>`__
* `Bootstrap fish-shell support
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/56840>`__
pw_grpc
-------
* `Remove send queue timeout
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214099>`__
(issue `#345088816 <https://issues.pigweed.dev/issues/345088816>`__)
pw_ide
------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215512>`__
* `Preserve modified editor settings
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213670>`__
(issue `#344681641 <https://issues.pigweed.dev/issues/344681641>`__)
* `Fix constant Pylance crashes
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213668>`__
(issue `#338607100 <https://issues.pigweed.dev/issues/338607100>`__)
pw_log
------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214184>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Cast log level to int32_t
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212092>`__
(issue `#343518613 <https://issues.pigweed.dev/issues/343518613>`__)
pw_log_string
-------------
* `Introduce link time assert() wrapper for newlib
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213072>`__
* `Set default log backend
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212832>`__
pw_malloc
---------
``pw_malloc`` now supports :ref:`pw_allocator <module-pw_allocator>`-based
backends.
* `Add allocator backends
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/208417>`__
pw_multibuf
-----------
The new ``pw::multibuf::MultiBuf::IsContiguous()`` method checks if a multibuf
is contiguous and the new ``pw::multibuf::MultiBuf::ContiguousSpan()`` method
provides a way to access contiguous data as a span. The new ``CopyTo()``,
``CopyFrom()``, and ``CopyFromAndTruncate()`` methods also simplify
interactions with contiguous byte spans.
* `Contiguous span functions
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214859>`__
* `Functions for copying into and out of a MultiBuf
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214858>`__
* `Truncate after an iterator
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214857>`__
* `AdvanceToData in iterator constructor
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214503>`__
* `Fix Truncate(0) on empty MultiBuf
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213661>`__
* `SimpleAllocatorForTest
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212312>`__
pw_multisink
------------
The new ``pw::multisink::MultiSink::GetUnreadEntriesSize()`` and
``pw::multisink::MultiSink::UnsafeGetUnreadEntriesSize()`` methods
implement :ref:`seed-0124`. The new ``PW_MULTISINK_CONFIG_LOCK_TYPE``
macro configures the underlying lock that's used to guard multisink
reads or writes.
* `Add GetUnreadEntriesSize to Drain
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213472>`__
* `Add option to inject a user defined lock
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213211>`__
pw_presubmit
------------
* `Add --fresh to cmake presubmits
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215736>`__
* `Add coverage of rp2040 build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215231>`__
(issue `#342638018 <https://issues.pigweed.dev/issues/342638018>`__)
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214571>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Remove shellcheck from lintformat program
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213617>`__
pw_protobuf
-----------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214187>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_ring_buffer
--------------
* `Add EntriesSize API to Reader
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213471>`__
(issue `#337150071 <https://issues.pigweed.dev/issues/337150071>`__)
pw_router
---------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214190>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_rpc
------
The Python client API now uses positional-only arguments.
* `Use positional-only arguments in Python client API
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215532>`__
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214032>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Fix hyperlink
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213556>`__
pw_sensor
---------
* `Add Bazel support for Python package
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214534>`__
pw_spi
------
* `Fix sitenav location for RP2040 backend
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214031>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_spi_rp2040
-------------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214232>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_stream
---------
* `Fix include in mpsc_stream
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215075>`__
pw_stream_uart_mcuxpresso
-------------------------
* `Make dma_stream Write of size 0 succeed
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214151>`__
* `InterruptSafeWriter example
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212513>`__
(issue `#343773769 <https://issues.pigweed.dev/issues/343773769>`__)
* `Stream example
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212512>`__
(issue `#343773769 <https://issues.pigweed.dev/issues/343773769>`__)
* `Use clock tree
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209534>`__
(issue `#331672574 <https://issues.pigweed.dev/issues/331672574>`__)
* `DMA stream example
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212391>`__
(issue `#343773769 <https://issues.pigweed.dev/issues/343773769>`__)
pw_sync
-------
The new ``pw_targets_FREERTOS_BACKEND_GROUP`` GN rule sets up multiple
modules to use FreeRTOS backends.
* `Group common backends in the GN build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215336>`__
pw_system
---------
``pw-system-console`` now connects to the first detected port if ``--device``
isn't provided and only one port is detected or it shows an interactive
prompt if multiple ports are detected. :ref:`target-host-device-simulator-demo`
now shows how to run ``pw-system-console`` with ``host_device_simulator`` in
Bazel-based projects.
* `Console interactive serial port selection
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214912>`__
(issue `#343949763 <https://issues.pigweed.dev/issues/343949763>`__)
* `Host device simulator entrypoint
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214972>`__
* `Move config variables to config.h
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213811>`__
* `Mention that extra libs need alwayslink
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212831>`__
* `Add host_device_simulator transitions
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212414>`__
pw_target_runner
----------------
* `Switch to Bazel build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214059>`__
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214317>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_thread
---------
* `Group common backends in the GN build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215336>`__
pw_thread_freertos
------------------
* `Expand comment to help when debugging linker errors
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213669>`__
pw_toolchain
------------
* `Enable PIC on host
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214495>`__
* `Add bazel toolchain for cortex-m0plus
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215479>`__
(issue `#346609655 <https://issues.pigweed.dev/issues/346609655>`__)
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214351>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Add IOKit and Security headers to mac toolchains
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214013>`__
pw_toolchain_bazel
------------------
* `Add cortex-a32 mcpu value
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213855>`__
(issue `#342510882 <https://issues.pigweed.dev/issues/342510882>`__)
pw_transfer
-----------
* `Remove unused imports
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215478>`__
* `Fix ConcurrentModificationException in handleTimeouts()
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214065>`__
(issue `#322919275 <https://issues.pigweed.dev/issues/322919275>`__)
* `Always terminate transfers on stream reopen
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212953>`__
pw_uart
-------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214252>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_varint
---------
* `Add module metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214352>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
pw_watch
--------
Watching now works in directories other than ``PW_ROOT``.
* `Enable watching from non-PW_ROOT
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215735>`__
(issue `#328083083 <https://issues.pigweed.dev/issues/328083083>`__)
pw_web
------
* `Get icon fonts via Google Fonts URL
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212871>`__
(issue `#332587834 <https://issues.pigweed.dev/issues/332587834>`__)
* `Fix last column filling space in log table
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212154>`__
Build systems
=============
Bazel
-----
* `Stop using deprecated pw_facade aliases
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/216151>`__
(issue `#328679085 <https://issues.pigweed.dev/issues/328679085>`__)
* `Don't use llvm_toolchain for fuchsia_clang
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215651>`__
(issue `#346354914 <https://issues.pigweed.dev/issues/346354914>`__)
* `Fix reference to nonexistent file
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215511>`__
* `Roll latest rules_libusb
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214792>`__
* `No integration tests in wildcard build
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214056>`__
(issue `#344654806 <https://issues.pigweed.dev/issues/344654806>`__)
* `Move integration build config in-repo
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214092>`__
(issue `#344654806 <https://issues.pigweed.dev/issues/344654806>`__)
Hardware targets
================
host_device_simulator
---------------------
* `Make host_device_simulator_binary \`bazel run\`-able
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214693>`__
rp2040
------
* `Add bazel picotool support
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214861>`__
* `Add bazel support for rp2040_utils pylib
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211591>`__
(issue `#342634966 <https://issues.pigweed.dev/issues/342634966>`__)
* `Support running tests using the debug probe
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/211363>`__
* `Add pico/debug probe filtering flags
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212611>`__
* `Temporarily disable remaining failing rp2040 tests
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215490>`__
* `Fix test runner scripts to correct check if args are specified
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214794>`__
* `Support bazel wildcard build on rp2040
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213071>`__
(issue `#343467774, <https://issues.pigweed.dev/issues/343467774,>`__)
stm32f429i
----------
* `Add baremetal bazel build support
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214626>`__
(issue `#344661765 <https://issues.pigweed.dev/issues/344661765>`__)
OS support
==========
Zephyr
------
* `Fix typo
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213271>`__
FreeRTOS
--------
FreeRTOS application function implementations like ``vApplicationStackOverflowHook()``
are now shared between multiple hardware targets.
* `Share common FreeRTOS function implementations
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213737>`__
Docs
====
The :ref:`modules index <docs-module-guides>` now includes metadata for each
module such as a summary of each module and what languages each module
supports. The ``pigweed.dev`` sitenav was simplified.
:ref:`docs-blog-02-bazel-feature-flags` was published. A "skip to main
content" accessibility feature was added to ``pigweed.dev``.
* `Fix Python package dependencies for sphinx
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/215852>`__
* `Auto-generate modules index from metadata
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214711>`__
(issue `#339741960 <https://issues.pigweed.dev/issues/339741960>`__)
* `Update sitenav
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214797>`__
* `Update homepage tagline
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213951>`__
* `Add "skip to main content" a11y feature
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213659>`__
(issue `#344643289 <https://issues.pigweed.dev/issues/344643289>`__)
* `blog: Bazel feature flags
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/209922>`__
* `Update changelog
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212491>`__
Third-party software support
============================
* `Add @libusb to bazel workspace
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214094>`__
* `Symlink probe-rs binary into common location
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214057>`__
* `Add probe-rs
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213693>`__
mimxrt595
---------
* `Upgrade to SDK_2_14_0_EVK-MIMXRT59
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212451>`__
(issue `#343775421 <https://issues.pigweed.dev/issues/343775421>`__)
GitHub
------
The new :ref:`docs-github` guide shows you how to set up GitHub Actions
for Pigweed projects.
* `Fix step name
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213692>`__
* `Add basic workflow and docs
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/212952>`__
(issue `#340900493 <https://issues.pigweed.dev/issues/340900493>`__)
io_bazel_rules_go
-----------------
* `Update to fork which disables warnings
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/214851>`__
pigweed.json
============
* `Add config for Bazel builders
<https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/213991>`__
(issue `#275107504 <https://issues.pigweed.dev/issues/275107504>`__)
------------
May 30, 2024
------------
Highlights (May 17, 2024 to May 30, 2024):
* **Clock management**: The new :ref:`module-pw_clock_tree` module manages
@ -26,7 +791,7 @@ Highlights (May 17, 2024 to May 30, 2024):
* **GitHub Actions**: The new :ref:`docs-github` guide shows you
how to set up GitHub Actions to build and test a Bazel-based Pigweed
project when a pull request is received.
* **pw_system and Bazel**:ref:`module-pw_system` usage in Bazel has been
* **pw_system and Bazel**: :ref:`module-pw_system` usage in Bazel has been
simplified by gathering all required ``pw_system`` components into one
target and providing label flags that can set platform-dependent
dependencies.
@ -34,8 +799,6 @@ Highlights (May 17, 2024 to May 30, 2024):
class sends and receives data through a file descriptor, with read and write
notifications backed by Linux's epoll system.
.. changelog_highlights_end
Active SEEDs
============
Help shape the future of Pigweed! Please visit :ref:`seed-0000`

View File

@ -337,6 +337,8 @@ This should result in a ``test.map`` file generated next to the ``test`` binary.
Note that it's only partially compatible with the ``cc_binary`` interface and
certain things are not implemented like make variable substitution.
.. _module-pw_build-bazel-pw_elf_to_bin:
pw_elf_to_bin
-------------
The ``pw_elf_to_bin`` rule takes in a binary executable target and produces a
@ -354,6 +356,8 @@ this type of file is booting directly on hardware with no bootloader.
bin_out = "main.bin",
)
.. _module-pw_build-bazel-pw_elf_to_dump:
pw_elf_to_dump
--------------
The ``pw_elf_to_dump`` rule takes in a binary executable target and produces a

View File

@ -552,14 +552,10 @@ Example in C++
foo_timer.InvokeAfter(42ms); // DoFoo will be invoked after 42ms.
}
.. toctree::
:hidden:
:maxdepth: 1
Backends <backends>
.. _module-pw_chrono-libc-time-wrappers:
------------------
Libc Time Wrappers
libc time wrappers
------------------
The `gettimeofday <https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html>`
and `time <https://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html>`
@ -589,3 +585,9 @@ Wrap ``gettimeofday`` and ``time`` with an implementation that uses
determined by the SystemClock backend epoch, which on most embedded systems will
be time since boot. Use this option if you don't care about the time returned
being close to actual time, but do care that it increments like a real clock.
.. toctree::
:hidden:
:maxdepth: 1
Backends <backends>

View File

@ -91,6 +91,7 @@ Configure an interrupt pin and handle events
:linenos:
:lines: 15-
.. _module-pw_digital_io_linux-cli:
----------------------
Command-Line Interface
@ -143,9 +144,11 @@ Arguments:
* ``LINE``: GPIO line number (e.g. ``1``)
* ``VALUE``: the value to set (``0`` = inactive or ``1`` = active)
.. _module-pw_digital_io_linux-cli-watch:
``watch``
=========
Configure a GPIO line as an input and watch for interrupt evnts.
Configure a GPIO line as an input and watch for interrupt events.
By default, both rising and falling edges will trigger an event.
This can be changed via the ``-t`` option.

View File

@ -64,6 +64,9 @@ Setup
dir_pw_third_party_nanopb = "//environment/packages/nanopb"
dir_pw_third_party_freertos = "//environment/packages/freertos"
.. _target-host-device-simulator-demo:
-----------------------------
Building and running the demo
-----------------------------