summaryrefslogtreecommitdiff
path: root/src/buildtool/graph_traverser
AgeCommit message (Collapse)Author
2025-04-25just: make --dump-artifacts act cummulativelyKlaus Aehlig
2025-04-10graph_traverser: drop logging graph-internal identifiersKlaus Aehlig
Those are the sha256sum of the serialisation of an artifact and that serialisation does not end up in the compatible CAS. In other words, they do not refer to anything the user can access. Therefore, drop this message that is not helpful.
2025-04-07graph_traverser: also create tree-overlay actionsKlaus Aehlig
2025-04-07interfaces: extend signatures to be aware of tree overlaysKlaus Aehlig
In order to stay backwards compatible, the "tree_overlays" entry in action-graph descriptions is optional.
2025-03-24GraphTraverser: move implementation to cpp fileKlaus Aehlig
The public interface of our graph traverser is typically called once per program invocation, so there is no benefit in optimizing across the boundaries of that call. Many calls do happen within the internal functions of the graph traverser; but for that, the benefit of being in the same compilation unit also happens if everything is moved to the same cpp file. Therefore, make the graph traverser a standard library and in this way, clean up our code basis.
2025-02-28GraphTraverser: Pass blobs to UploadBlobs by rvalueMaksim Denisov
...in order to avoid copying while uploading.
2025-02-28GraphTraverser: Pass artifacts, blobs and trees to BuildAndStage by rvalueMaksim Denisov
2025-02-28Make statistics a separate libraryMaksim Denisov
2025-02-27ArtifactBlob: Use static function for constructionMaksim Denisov
2025-02-27ArtifactBlob: Move from execution_api/common to commonMaksim Denisov
2025-02-19ApiBundle: Remove HashFunction.Maksim Denisov
And ensure every user obtains HashFunction from corresponding IExecutionApi
2025-02-07Rename artifact_blob_container to artifact_blobMaksim Denisov
2025-02-07CommonApi: Remove template parameter from UploadAndUpdateContainerMaksim Denisov
...since it works with ArtifactBlobs only.
2025-02-07Replace ArtifactBlobContainer and BazelBlobContainerMaksim Denisov
...with explicit std::unordered_set.
2025-01-09just build: add new option -pKlaus Aehlig
... allowing to print the unique artifact built (if any). This allows convenient inspection of the build result of targets that define precisely one artifact.
2024-12-05Also for installation to stdout prefer local CASKlaus Aehlig
... to avoid unnecessary network fetches.
2024-11-14graph_traverser: Implement IWYU suggestionsPaul Cristian Sarbu
2024-10-29Graph traverser: fix wrong wording in trace-level messageKlaus Aehlig
As we write the first message about the actual upload of a blob, we should use future rather than past tense. Also, again at trace level, add a message of successful completion, if we succeeded.
2024-10-25Add dependencies explicitly that are included directlyKlaus Aehlig
... instead of relying on those dependencies being pulled in indirectly.
2024-10-08Name local variables using lower_caseMaksim Denisov
...and private members using lower_case_
2024-10-07Enable bugprone-narrowing-conversions checkMaksim Denisov
2024-09-26Fix redundant std::optional conversionsMaksim Denisov
...proposed by clang-tidy. Enable bugprone-optional-value-conversion check.
2024-09-23Reorder dependencies and remove duplicates in OSSMaksim Denisov
2024-09-13Pass ApiBundle to RetrieveSubPathIdMaksim Denisov
...to get access to the protocol type.
2024-09-11Use HashFunction::Type to deserialize ArtifactDescriptionMaksim Denisov
2024-09-09Replace ArtifactDigest::CreateMaksim Denisov
...with ArtifactDigestFactory::HashDataAs
2024-08-30Move artifact_blob_container to a standalone libraryMaksim Denisov
2024-08-07Replace classic C boolean operators with keywordsMaksim Denisov
! => not; && => and, || => or
2024-07-30Pass ExecutionContext to GraphTraverser and Executor/RebuilderPaul Cristian Sarbu
Also update the classes documentation accordingly.
2024-07-30executor: Use ApiBundlePaul Cristian Sarbu
...instead of separate local and remote instances. For tests, where different implementations of the IExecutionApi interface are used, ApiBundle instances are created by explicitly setting the struct fields instead of using ApiBundle::Create.
2024-07-30ApiBundle: Use a creator method instead of constructorPaul Cristian Sarbu
This will allow for ApiBundle to be used together with the TestApi implementation of IExecutionApi in tests. Also rename CreateRemote method to MakeRemote in order to remove any semantical confusion.
2024-07-30Pass RemoteContext to Executor/RebuilderPaul Cristian Sarbu
2024-07-30Pass RemoteContext to GraphTraverserPaul Cristian Sarbu
It is passed as a not_null const pointer, to avoid binding to temporaries, and stored as a const reference to be later passed also to Executor/Rebuilder.
2024-07-30Pass RemoteContext to ApiBundlePaul Cristian Sarbu
The CreateRemote method is also updated to receive all remote-related information as arguments, such that it does not have to rely on the ApiBundle internal fields which will eventually be removed.
2024-07-22Use HashFunction from StorageConfig in ApiBundleMaksim Denisov
2024-07-22Pass HashFunction to ExecutorMaksim Denisov
2024-07-22Pass HashFunction to ArtifactDigest::CreateMaksim Denisov
2024-07-19Pass RetryConfig instance to ExecutorPaul Cristian Sarbu
2024-07-16Remove the RemoteExecutionConfig singletonPaul Cristian Sarbu
...and replace it with passed instances created early via a builder pattern. Tests are also updated accordingly.
2024-07-16Pass RemoteExecutionConfig instance to ApiBundlePaul Cristian Sarbu
...and store it as a const ref for subsequent use wherever the apis are already passed.
2024-07-16Add useful aliases for platform properties and dispatch endpointPaul Cristian Sarbu
2024-07-04Replace the Auth and Auth::TLS singletonsPaul Cristian Sarbu
Use a builder pattern for creation and validation, in a manner that allows also other authentication methods to be added in the future besides the current TLS/SSL. The main Auth instances are built early and then passed by not_null const pointers, to avoid passing temporaries, replacing the previous Auth::TLS instances passed by simple nullable const pointers. Where needed, these passed Auth instances are also stored, by const ref. Tests also build Auth instances as needed, either with the default 'no certification' or from the test environment arguments.
2024-07-04Pass Auth::TLS instance to BazelApi and ServeApiPaul Cristian Sarbu
2024-06-25Pass IExecutionApi to ServerImpl, Archive by referenceMaksim Denisov
...instead of not_null const ptr.
2024-06-25Pass IExecutionApi to Executor by refereceMaksim Denisov
...instead of not_null const ptr.
2024-06-25Pass IExecutionApi to IExecutionApi by referenceMaksim Denisov
...instead of not_null const ptr.
2024-06-25Pass ApiBundle to GraphTraverserMaksim Denisov
2024-06-25Instantiate LocalApi and BazelApi at onceMaksim Denisov
...to properly fallback to local api if needed.
2024-06-25Remove GraphTraverser's constructor used for tests only.Maksim Denisov
2024-06-04blob containers: Store and upload taking into account content sizePaul Cristian Sarbu
Update logic populating containers to use the new method which is aware of the maximum transfer limit.