summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-04-11Remove unused function GetTree from BazelCasClientKlaus Aehlig
2025-04-11Drop unused directory mapKlaus Aehlig
The BazelNetworkReader contains an optimization for reading directories in case the remote execution (in compatible mode) supports the GetTree request. This is, however not the case for many remote exeuciton services, including our own single-node execution service. So the code is basically untested and rarely used, if at all. Moreover, justbuild is usually used in native mode and using compatibility mode is expected to handle tree operations less efficient. Therefore, remove this basically dead code and decrease complexity this way.
2025-04-10cas_utils: Fix typo in log messagePaul Cristian Sarbu
2025-04-10BazelAcClient: log cache misses at trace levelKlaus Aehlig
... instead of at debug. We expect actions to be not in cache, so the fact that we experience cache misses is not surprising. Given the information available at this point, a useful logging indicating (in terms meaningful to the user) is not possible. Therefore, keep the debug-level log clean.
2025-04-10FilesystemManger: reduce debug level for absent filesKlaus Aehlig
At various places in the build tool, we try to read files from various CASes and caches. The absence of a file there is normal; therefore, reduce log level in order to not overload the debug-level log.
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-10Remove unnecessary targets filesKlaus Aehlig
2025-04-08executor: for a tree-overlay action, also report inputs in case of errorKlaus Aehlig
2025-04-08Tree-overlay utils: also report the path within the original treeKlaus Aehlig
... instead of only the file name. Having the full path into the tree makes it more easy for the user to understand the root cause of a conflict.
2025-04-08BazelCasClient: only warn on failure of GetTreeKlaus Aehlig
... as that failure does not necessarily abort the build.
2025-04-08executor: also track begin and end of tree-overlay operationsKlaus Aehlig
Those operations require fetching objects through the network. The fetch is already restricted to only the tree-objects where a merge is necessary, leaving out unchanged trees as well as all blobs. Still, some time may be required, especially over slow networks. Therefore report this activity in the progress.
2025-04-08Result map: include tree-overlay actions to the origin mapKlaus Aehlig
Now that we generate tree-overlay action identifiers that are disjoint from identifiers of regular actions, having a joint origin map does not cause any confusion. Concerning the numbering of subtasks, we always see tree-overlay actions following the regular actions, even if defined in a different order. In this way, the identifiers for the regular actions don't change. Including tree-overlay actions in the origin map also has the advantage that the origin is properly reported in case of failure (e.g., non-disjointness of the obtained trees).
2025-04-08Keep identifiers for actions, trees, and tree_overlays disjointKlaus Aehlig
While our traverser correctly keeps separate identifier spaces for those entities, having disjoint identifiers allows easier reading of log messages and more simple reporting of origins of actions.
2025-04-08executor: properly report failure of tree actionsKlaus Aehlig
... calling them as such, and not trying to report command and environment.
2025-04-08Improve reporting on tree errorsKlaus Aehlig
- break lines at logicial point, following the layout of our other error messages - fix a typo - properly quote the path of the conflict
2025-04-07executor: also handle tree-overlay actionsKlaus Aehlig
2025-04-07TreeOperationsUtils: sequential version of tree overlay computationSascha Roloff
2025-04-07graph_traverser: also create tree-overlay actionsKlaus Aehlig
2025-04-07dag: be aware of tree-overlaysKlaus Aehlig
2025-04-07Add built-in rules {disjoint_,}tree_overlayKlaus Aehlig
2025-04-07Defined rules: add TREE_OVERLAY and DISJOINT_TREE_OVERLAY functionKlaus Aehlig
2025-04-07analysed_target: include tree overlaysKlaus 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-04-07Add a class describing a tree defined as an overlayKlaus Aehlig
2025-04-07Action: support tree-overlay actionsKlaus Aehlig
2025-04-07ArtifactDescription: support tree overlaysKlaus Aehlig
... that, like trees, are given by their identifier.
2025-04-07just-mr progress_reporter: Fix typo in log messagePaul Cristian Sarbu
2025-04-04just: Interleave graph dumping with other tasksKlaus Aehlig
... and only as late as possible wait for that parallel task. Serializing a large task to JSON can take several seconds and as building does not depend on it, we shouldn't delay the build for with extra information.
2025-04-03Result-Map: do not log analysis result in ToFile operationKlaus Aehlig
... to avoid duplicate log entries.
2025-04-02Executor: use the passed loggerKlaus Aehlig
... instead of blindly logging globally.
2025-04-01git_repo: Add missing include in debug modePaul Cristian Sarbu
2025-03-26built-in rule "tree": fix supported fieldsKlaus Aehlig
The built-in rule "tree" does not support the field "data". Hence remove it from the list of white-listed fields so that an appropriate warning is issued if it occurs for that rule.
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-03-24Add 'zip_map' expressionPaul Cristian Sarbu
Produces the mapping between correspondingly indexed entries of two lists, one containing the keys and the other of values. The keys list must have string entries. If the two input lists are of different sizes, the extra elements are ignored.
2025-03-24Add 'zip_with' expressionPaul Cristian Sarbu
Produces the list containing the results of evaluating the body on the corresponding elementwise pairs from the two input lists. If the input lists are of different sizes, the extra elements are ignored.
2025-03-24BazelNetworkReader: Remove IncrementalReaderMaksim Denisov
2025-03-24BazelResponse: Use non-incremental readingMaksim Denisov
to avoid downloading the same blobs.
2025-03-24BazelApi: Use non-incremental readingMaksim Denisov
...to avoid downloading the same blobs.
2025-03-24BazelNetworkReader: Implement non-incremental reading.Maksim Denisov
2025-03-24BazelCasClient: BatchRead to temporary files.Maksim Denisov
2025-03-24BytestreamClient: Read to temporary files.Maksim Denisov
2025-03-24BazelApi: Use file sources of ArtifactBlobs.Maksim Denisov
2025-03-24LocalApi: Use file sources of ArtifactBlobs.Maksim Denisov
2025-03-24ArtifactBlob: Return file pathMaksim Denisov
2025-03-24ArtifactBlob: Support construction from temporary filesMaksim Denisov
2025-03-24ExecutionApi: Return TmpDirMaksim Denisov
2025-03-24Pass TmpDir to BazelNetwork and BazelCasClientMaksim Denisov
2025-03-24LargeObjectCAS: Use TmpFile for splicingMaksim Denisov
...and remove LargeObject
2025-03-24TmpDir: Create temporary filesMaksim Denisov
... and keep parent directories alive while nested directories exist.
2025-03-24TmpDir: Create nested directoriesMaksim Denisov
... and keep parent directories alive while nested directories exist.