Separate generation of environment scripts/JSON files from the object
that stores that environment.
Change-Id: I4dba68636d79d23bc50ec737753b115ed81e26d5
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33000
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
Running the 'source_is_in_build_files' step in presubmit only succeeds
if the user runs it from the root directory. Change the step to run from
root regardless of the current working directory.
Change-Id: I929d5cfcdfcaafc259bc20dc34052c2d5adfb7bf
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/34520
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Prashanth Swaminathan <prashanthsw@google.com>
Expand documentation for presubmit checks. Discuss failures for internal
projects and submitting changes if there are known breakages.
Change-Id: I353ecbbe777d07ac8b2a46eb182b53aaa1625aca
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33040
Reviewed-by: David Rogers <davidrogers@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
- The docs are now available online.
- Remove reference to a module that probably shouldn't be used.
Change-Id: If926692eeb7db7100b77d3e9e1b0b9030e593d78
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/34040
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: David Rogers <davidrogers@google.com>
Ensure that Nanopb method implementations use the correct request and
response types. Using the wrong struct type will be a compilation error.
Change-Id: I9d300a108d76d014cb7699a72b7526b5b3e2d82e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33701
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
This adds the public_overrides directory to the includes.
This allows for you to include using `#include <span>`
rather than `#include "pw_span/span.h"`.
Change-Id: I0094bdbf69b6701f338110a6c563e2144f81e192
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/30080
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Akira Baruah <akira.baruah@gmail.com>
Check was against the private variable rather than the argument.
Bug: 325
Change-Id: Ib360801b3443f59e82e7340ded43d51c2a5c9289
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/34260
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
Specifying --virtualenv-gn-out-dir causes undefined behavior when
multiple --virtualenv-gn-target flags are specified. This change makes
it so only one virtualenv GN target can be specificied.
If a virtualenv GN target is provided, pigweed will no longer provide
its own python virtualenv target when --use-pigweed-defaults is in use.
This means projects must manually explicitly list Pigweed's python
modules as dependencies in their project.
Bug: 325
Change-Id: I323929fa803b91816d043b2df4521f5e04ce295d
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33600
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
Pigweed no longer has a requirements.txt, so it should't be added to the
virtualenv invocation called from pw_presubmit.
Change-Id: I7569c84e5545cd6a6f3db3332f87ec9a5b6b7245
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/34120
Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
- Generate hash macro for 256 B and update code and tests to support it.
- Rename 'mark_removals' to 'mark_removed'.
Change-Id: I451dc3123b6a9b829fcc19bb345967df5cf2cdb1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33862
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
This ensures that stdout stays in sync with the logs on stderr.
Change-Id: I4cc6c4dc5f8ac8f530fa0cc0e5e06a9472cf3801
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33820
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
- PW_UNUSED provides no value over the [[maybe_unused]] C++ attribute or
a simple void cast. Replace uses of it and mark the macro as
deprecated.
- Add a section to the Embedded C++ Guide about compiler warnings,
including how to silence -Wunused-* warnings.
Change-Id: I078be670465ed87733f7c6d1f3d327915a0f49f6
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32122
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Adds the SocketStream::Connect member function, allowing a SocketStream
to be established from the client side of a socket rather than only the
serving side as before.
Additionally, this change renames the existing Init member function to
Serve instead to make it clear that it is not required before calling
Connect and is instead an alternative way of establishing a SocketStream
connection.
Change-Id: Ib3fdb9f5405eee92ae1a166c64e990cb9c05fca7
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/31261
Pigweed-Auto-Submit: Jason Graffius <jgraff@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
This removes all log statements from the static router. This is done as
there is no guarantee for what pw_log backend is used. In some systems,
logs may flow directly through the router, resulting in recursive calls
that cause a crash.
The user of the router can choose to check and log its return values if
the operation is safe.
Change-Id: I3a94d9245fde8fd5d27a23ddd1713aba1e880bd8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33621
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Alexei Frolov <frolv@google.com>
Also use version Fuchsia is packaging.
Change-Id: I175248e02701600d11770ef077aafab2c5c758eb
Fixed: 322
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33460
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Support iterating over all message types in a proto Library.
Change-Id: Ia95e30842c4ea8a9795762ebb3cf9a7a27597207
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32881
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Adds a std::thread like API through a new pw_thread facade based
on the STL's std::thread API, however with more restricted function
entry routine format support and backend specific option support
to permit non-portable configuration of thread settings/parameters
including static context allocations.
In addition this provides an initial set of backends based on using
the STL's std::thread directly.
Change-Id: Ib8c3cbdc434044e204e67e58d861a40e4acec9b4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/30920
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
Provide member function to close and cleanup socket fds in SocketStream.
Additionally cleans up and closes fds during destruction.
Change-Id: Ia271f944a4630b223707f7c6bf340df8843323ca
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/31260
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Jason Graffius <jgraff@google.com>
Add a basic RPC service to trace which currently provides 3 RPCs:
- Enable(bool), Turns tracing on or off
- IsEnabled, Returns if tracing is currently on or off
- GetTraceData, Streams the encoded trace data.
This CL also adds a python script which uses these RPCs to retrieve
and decode trace data from a connected device.
Change-Id: Iaceb3fa87017939a17512738101af70bf335504a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/31880
Reviewed-by: Paul Mathieu <paulmathieu@google.com>
Commit-Queue: Rob Oliver <rgoliver@google.com>
- Return the status of the Channel::Send() call in
BaseServerWriter::Finish().
- Assert if BaseServerWriter::AcquirePayloadBuffer() is called on a
closed server writer. This is an internal function and calling it on a
closed writer would be bug.
Change-Id: I8f10a3a400d3c3893057424e3675e8f4522cbda9
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33126
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Create a simple watchdog class that could be used to track connection
state in a pw_rpc console.
Change-Id: I943b514d7994e78ef52898e639c691e5b6c2c046
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/33100
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Jennifer Silva <jennifersilva@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
The bloat_main source set depends on the headers provided by the
bloat_this_binary source_set.
Change-Id: I28659bd66eca3198fb7c2d3bece2263cbdd33acc
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32700
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Prashanth Swaminathan <prashanthsw@google.com>
IntrusiveList is part of the top-level 'pw' namespace, instead of the
'pw::containers' namespace, which some of the documentation refers to.
Change-Id: Iec09fdd579783db0ea74aed49978e92555a6b43a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32580
Pigweed-Auto-Submit: Prashanth Swaminathan <prashanthsw@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Commit-Queue: Prashanth Swaminathan <prashanthsw@google.com>
- Support nested messages, enums, oneof, mappings, optional fields, and
repeated fields in the proto_repr function.
- Display only hexadecimal for bytes when fewer than half the characters
are ASCII.
- Add the flag for optional fields in proto3 to dynamic proto
compilation so that optional fields can be used in tests.
Change-Id: I87dd646de1e339e80ceec729476af89548af21e5
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32880
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Have the docs group build the docs directly using the docs toolchain,
rather than relying on the pigweed_default group.
Change-Id: I898508ea74758fef72535f060be8c5fffc9d31db
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/31801
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
This removes the log when the HDLC decoder processes a frame which is
too large for the provided buffer, as it is not necessarily an error
case.
Change-Id: Ic366f5e9dca1961d0019ed96c69235d569541a68
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32900
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Alexei Frolov <frolv@google.com>
See also pwrev/32582.
Change-Id: I0a26a9ac1e6f16c6b291e488cea09b111a1747a0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32560
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
Adds a config based option to permit users to provide a macro
implementation of PW_LOG_APPEND_TIMESTAMP to append a timestamp
in their preferred format to the beginning of the pw_log_basic
log line.
Change-Id: I2590f3e9d887f0578a0c87633965acc0411761cb
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32540
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
The TenBit and SevenBit methods are intended as alternate constructors
for pw::i2c::Address, this change exposes them as static.
Change-Id: Ibf0a30b38dc810fcc4cc290735d5c91c48e1af03
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/32581
Commit-Queue: Max Koopman <koopman@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Jennifer Silva <jennifersilva@google.com>