Proto commits in apple/swift-llbuild2

These 52 commits are when the Protocol Buffers files have changed:

Commit:b61ec62
Author:David M. Bryson

Fixup proto names

The documentation is generated from this commit.

Commit:a524573
Author:David M. Bryson
Committer:David M. Bryson

Remove swift-tools-support-async dependency and restructure module hierarchy Vendor all Swift and C sources from swift-tools-support-async directly into the llbuild2 package, organized into a layered module structure: - FXCore: public client-facing types (FXDataID, FXCASDatabase, FXCASObject, FXFuture/FXPromise/FXByteBuffer typealiases, FXSerializable). This is the only module re-exported to clients via llbuild2fx. - FXAsyncSupport: package-scoped internals (process executor, futures utilities, in-memory CAS database implementation, BLAKE3 hashing). Not visible to clients. - FXCBLAKE3: vendored BLAKE3 C implementation with fx_ symbol prefix to avoid linker conflicts when coexisting with swift-tools-support-async. - FXCProcessSpawnSync: vendored process spawning C code. All types renamed from LLB prefix to FX prefix (FXDataID, FXCASDatabase, FXCASObject, FXFuture, FXByteBuffer, etc.) to prevent type clashes when clients use swift-tools-support-async alongside llbuild2. Additional changes: - Remove BazelRemoteAPI, LLBBazelBackend, LLBCASTool, and llcastool - Move FXExampleRuleset to its own module (not shipped in the library) - Move CAS file tree implementation to llbuild2Testing - Remove FileBackedCASDatabase (unused) - Add FXCASTreeService protocol with export, importTree, and exportFile methods for client-provided tree operations - Add FXTreeMaterializer.materialize(file:filename:) for file materialization - Add FXLocalCASTreeService in llbuild2Testing for test use - Add FXInteropTests verifying TSFCAS types bridge cleanly to FX types - Port all tests from swift-tools-support-async (futures, CAS, file tree, process executor, CAS utilities) into FXCoreTests, FXAsyncSupportTests, and llbuild2TestingTests - Replace fatalError with thrown FXError.missingCASTreeService - Remove load() from FXNodeID/FXTreeID/FXFileID/FXExecutableFileID protocol requirements (dead code, no callers) - Rename tsf_ prefixed identifiers to fx_ - Prefer throw over fatalError (documented in CLAUDE.md) swift-tools-support-async is retained in Package.swift only as a dependency of the FXInteropTests test target. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Commit:4d6691b
Author:David M. Bryson
Committer:David M. Bryson

Update protobufs

Commit:31a4d81
Author:David M. Bryson
Committer:David M. Bryson

Refactor API surface to be llbuild2fx-only - Remove legacy LLBBuildSystem layer - Combine llbuild2 core functionality into llbuild2fx - Remove some unnecessary indirection, reduce public API surface

Commit:651aa2c
Author:David M. Bryson
Committer:David Bryson

Add BLOB artifact type and functionID argument to action execution specs

Commit:1b6e19c
Author:Sergio Campama
Committer:Sergio Campamá

Add support for action chaining, useful for splitting actions into cacheable pieces but still being treated as a single unit in terms of failures and logs

Commit:e753d79
Author:Sergio Campama
Committer:Sergio Campamá

Add support for common action environment configuration fragment

Commit:4051b9b
Author:Sergio Campama
Committer:Sergio Campamá

Rename inconditional to the proper unconditional

Commit:6c4ecac
Author:Sergio Campama
Committer:Sergio Campamá

Add support for outputs that are returned even on action failures

Commit:c18e922
Author:Sergio Campama
Committer:Sergio Campamá

Add java package options to protos

Commit:ce74f98
Author:Lev Walkin
Committer:Lev Walkin

Regenerated protocols

Commit:1cade72
Author:Sergio Campama
Committer:Sergio Campamá

Update gRPC and proto related things

Commit:85b95bc
Author:Sergio Campama
Committer:Sergio Campamá

Remove stderr from APIs and propagate error instead of fake stdout messages for event failures

Commit:90eab6f
Author:Sergio Campama
Committer:Sergio Campama

Update Bazel protos

Commit:689a040
Author:Sergio Campama
Committer:Sergio Campama

Add logsID to ArtifactValue (and update generated protos)

Commit:995c514
Author:Sergio Campama

Add support for additional extra data for remote action requests

Commit:56816b7
Author:Sergio Campama

Add additionalData to action execution request

Commit:56bd74a
Author:Igor Milyakov
Committer:Sergio Campamá

Add untyped additionalData field to LLBActionExecutionResponse proto

Commit:0840b87
Author:Sergio Campama

Add support for propagating the label as the owner of the action in the build event delegate

Commit:01a1b62
Author:Sergio Campama

Add support for marking actions as being able to be cached even on action failures (exitCode != 0)

Commit:f6b8efd
Author:Sergio Campama
Committer:Sergio Campamá

Add description to action keys for better UX for clients

Commit:6d58a83
Author:Sergio Campama

Add stdout and stderr to action value

Commit:936bd92
Author:Sergio Campama

Add support for mnemonics for command actions

Commit:289fcce
Author:David M. Bryson
Committer:David Bryson

Adopt tools-support-async common dependency

Commit:9dd95a7
Author:David M. Bryson
Committer:David Bryson

Fix downstream dependency problems - Remove integral zstd module - Disable unused CASFileTree compression support for now

Commit:0e84db9
Author:Sergio Campama
Committer:Sergio Campamá

Refactor ProviderMap management from the client developers. This introduces a new API for clients of LLBBuildSystem to declare dependencies for LLBConfiguredTarget implementations that allows for a cleaner management by the build system. It also introduces new APIs into the ruleContext to retrieve those providers with typed methods. This effectively hides the fact that LLBProviderMap even exists, which is better encapsulation.

Commit:ee708da
Author:Sergio Campama
Committer:Sergio Campamá

Add support for dynamic action execution.

Commit:48a692e
Author:David M. Bryson
Committer:David Bryson

Move AnySerializable to the core - Moves the type registry into the Engine - Uses AnySerializable to wrap auto conformance to CASObjectRepresentable

Commit:2dd11a7
Author:David M. Bryson
Committer:David Bryson

Move BuildSystemProtocol into the engine

Commit:365204b
Author:Sergio Campama
Committer:David Bryson

Use different field number

Commit:83ea332
Author:Sergio Campama
Committer:Sergio Campamá

Renamed LLBAnyCodable to LLBAnySerializable

Commit:3995f55
Author:Sergio Campama
Committer:Sergio Campamá

Add LLBPrefix to all public types coming from the build system component

Commit:870d3c9
Author:Sergio Campama
Committer:Sergio Campama

Add root support for ConfigurationValue to be used for artifact roots

Commit:dbf865e
Author:Sergio Campama
Committer:Sergio Campamá

Fix upload of static writes and actions into the CAS to ensure it happens after artifact updates

Commit:432d47d
Author:Sergio Campama

Update bazel remote protos

Commit:f59bd14
Author:Sergio Campama
Committer:Sergio Campamá

Add support for tree merging for rule evaluation

Commit:4b4d927
Author:Sergio Campama
Committer:Sergio Campamá

Add support for static writes from rule implementations

Commit:9467f05
Author:Sergio Campama
Committer:Sergio Campamá

Add support for configurations fragments and configuration transitions

Commit:366b611
Author:David M. Bryson
Committer:David Bryson

Unify LLBDataID and LLBPBDataID

Commit:48f65b0
Author:Sergio Campama
Committer:Sergio Campamá

Add EvaluatedTarget and RuleEvaluation functions.

Commit:fa0feb5
Author:Sergio Campama
Committer:Sergio Campamá

Add support for ConfiguredTarget extensibility into llbuild2. In order to be flexible at runtime, we also introduce the LLBAnyCodable mechanism for serializing and deserializing with type information through a global registry. This is similar in nature to the Google_Protobuf_Any approach.

Commit:fe34a79
Author:Sergio Campama
Committer:Sergio Campamá

Add basic support for a label type for identifying targets

Commit:ea19a6b
Author:Sergio Campama
Committer:Sergio Campamá

Add link between Artifact and ActionKeys to model the action graph

Commit:f1df9a2
Author:Sergio Campama
Committer:Sergio Campamá

Add support for ActionKey that resolves inputs before execution

Commit:be1e20c
Author:Sergio Campama
Committer:Sergio Campamá

Add support for ActionExecutionKey, plus some changes for test infrastructure

Commit:33e3d1b
Author:David M. Bryson
Committer:David Bryson

Add CAS File Tree definition - Defines protocol - Models file system objects in CAS form - Supports chunked, compressed CAS representations - Renames LLBCASProtocol module to LLBCAS

Commit:52746c3
Author:David M. Bryson
Committer:David Bryson

Add a protobuf definition for CASObject, reorganize a bit

Commit:5ec9c11
Author:Sergio Campama
Committer:Sergio Campamá

Add support for Artifacts to the build system engine

Commit:2d080ea
Author:Sergio Campama
Committer:Sergio Campama

Rename LLBExecutionProtocol to LLBBuildSystemProtocol

Commit:3b15534
Author:David M. Bryson
Committer:David Bryson

Add BazelRemoteAPI module

Commit:a8ecaf4
Author:Sergio Campama

Fix typo in proto definition

Commit:a86f0db
Author:Sergio Campama
Committer:Sergio Campamá

Add action execution protocol buffer definitions, plus note on serialization