summaryrefslogtreecommitdiff
path: root/src/buildtool
AgeCommit message (Collapse)Author
8 daysStart 1.6.4 development cycleHEADmasterKlaus Aehlig
8 daysRelease 1.6.3v1.6.3Klaus Aehlig
2025-08-01BazelResponse: Upload symlinks as explicit blobs in compatible modeSascha Roloff
The default remote-execution protocol (which is used in compatible mode) defines symbolic links as embedded fields within a Directory message. No separate blobs will be stored in CAS, but they are required, e.g., when a tree is installed. To fix that issue, we upload any symbolic link received from the remote execution either as explicit output or as part of an output Directory message as separate blob to the remote CAS, similar how we handle output Directory messages themselves.
2025-08-01BazelNetworkReader: In compatible mode, send symlinks backMaksim Denisov
2025-07-30Start 1.6.3 development cycleKlaus Aehlig
2025-07-30Release 1.6.2v1.6.2Klaus Aehlig
2025-07-29On serve failure to build report full digestKlaus Aehlig
... and not only the hash of the blob containing the log of the failed build. In compatible mode, it is necessary to have the full digest (including the size) to download a blob from the remote CAS.
2025-07-28`TargetClient`: Send `repo_key` as a required digest.Maksim Denisov
2025-07-28`TargetService`: Download required digests in `ServeTarget`Maksim Denisov
...and amend the error message.
2025-07-28Extend just serve in order to support required digests in `ServeTargetRequest`Maksim Denisov
...which should be downloaded before the execution starts.
2025-07-16Start 1.6.2 development cycleKlaus Aehlig
2025-07-16Release 1.6.1v1.6.1Klaus Aehlig
2025-07-09Allow colons in remote-execution propertiesBin Yu
When user setting `remote-execution-properties` with commandline, we assume that input value must have format with `key:val`, in that case, if `val` includes colon(s), the real value after parsing won't be the same as user intends to have, for example, considering commandline flag: `--remote-execution-properties image:test.registry:8080/test`, will be parsed into a pair `<image, test.registry>` in existing implementation. Since it's reasonable to allow colon(s) in execution property value, we should allow this case, and still keep the restriction on key format. Signed-off-by: Bin Yu <yubin14@huawei.com>
2025-07-09Use capabilities to find out if split/splice is supportedSascha Roloff
Now that support for split/splice is part of the official capabilites announcement, use those to determine if we should try splitting/splicing. This change is actually mandatory as the new standard mandates that clients must check before trying to use the service. Co-authored-by: Klaus Aehlig <klaus.aehlig@huawei.com>
2025-07-09split/splice: drop algorithm negociation prototypeKlaus Aehlig
So far, blob split/splice was an extension of our build tool; now it got standardized. Therefore we can, and hence should, use the official proto file without modifications. As algorithm negociation is not yet standardized, drop it for now; we will readd it, once a standard is agreed upon.
2025-07-09Server capabilities: add explicit cast from unsigned to signed integerSascha Roloff
... and while there, add Oxford comma to make the comment clearer.
2025-07-01serve target: Fix missing locking of Git CAS in servicePaul Cristian Sarbu
2025-06-27Start 1.6.1 development cycleKlaus Aehlig
2025-06-27Release 1.6.0v1.6.0Klaus Aehlig
2025-06-27just describe: Fix typo in output messagePaul Cristian Sarbu
2025-06-24Release 1.6.0~beta1v1.6.0-beta1Klaus Aehlig
2025-06-24Clarify use of a clang-tidy checkPaul Cristian Sarbu
The google-default-arguments check normally imposes that virtual methods have no default arguments. For our use-cases, all implementations of such methods are expected to use the same default arguments, and thus this check is manually disabled via NOLINT comments. However, this is not done consistently. This commit cleans this up and clarifies our intent by: - removing the default values (and the NOLINT statement) for all implementations of virtual methods with default argument values, matching the desired intended behaviour, but - keeping the clang-tidy check for future cases where derived classes would want to provide each different defaults.
2025-06-24ExecutionService: Support RBE protocol v2.1Oliver Reiche
2025-06-24ExecutionAPI: Support output_paths in requestsOliver Reiche
... and prepare local execution for clients using only RBEv2.1 (setting only output_paths).
2025-06-24ExecutionAPI: Support output_symlinks in responseOliver Reiche
2025-06-24ExecutionApi: Drop DirectorySymlinks from common apiOliver Reiche
... as it is only needed for local execution, there is no need to provide it in the common api interface.
2025-06-24ExecutionService: Use LocalApi directlyOliver Reiche
2025-06-24Executor: Verify types of output artifactsOliver Reiche
... as Justbuild has a strict separation between output files and output directories, but the RBE protocol does not necessarily maintain such a separation and therefore does not perform such a verification.
2025-06-24BazelNetwork: Read supported remote RBE versionOliver Reiche
2025-06-24LocalAction: Fix the use of external loggerOliver Reiche
2025-06-16Avoid unnecessary work in accessing container entriesPaul Cristian Sarbu
- in sequence containers, use operator[] instead of .at() when accessing indices guaranteed to be in bound; - in associative containers, prefer .find() and reusing the returned const iterator to using .contains() and .at(); while there, make any so obtained iterators const if they are read-only.
2025-06-16Ensure equality operators are really noexcept.Klaus T. Aehlig
... by explicitly catching any possible exception. Mainly to make clang-tidy happy. ...
2025-06-12Add a flag to `gc` command: `--all`Maksim Denisov
2025-06-12GarbageCollector: Support removal of all generations at onceMaksim Denisov
...that ignores compactification.
2025-06-05Executor: Log action outputs sorted by pathPaul Cristian Sarbu
...also on failure or warning.
2025-06-05GitRepo: Fix wrong handling of fatal loggingPaul Cristian Sarbu
...in creating Git tree from filesystem directory.
2025-06-05GitRepo: Fix capitalisation inconsistency in loggingPaul Cristian Sarbu
2025-06-05GitRepo: Use std::invoke to call generic loggerPaul Cristian Sarbu
2025-06-05GitRepo: Reduce logging levelsPaul Cristian Sarbu
...in methods that should not report at error level themselves, but let this be handled by its callers. While there, remove an unneeded path manipulation in a defferent set of log messages.
2025-06-05GitRepo: Ensure compliance with existing noexcept specifiersPaul Cristian Sarbu
...while also removing some unneeded one. Do not implicitly trust that the third-party code called in these methods is non-throwing and instead properly handle any exception that might arise. Also remove the specifiers from some anonymous namespace methods where a try-catch would be overkill and let their callers handle any exceptions instead.
2025-06-05GitCAS: Reduce log level where fatal not expectedPaul Cristian Sarbu
...and fix inconsistent capitalisation.
2025-06-05GitCAS: Ensure compliance with existing noexcept specifiersPaul Cristian Sarbu
Do not implicitly trust that the third-party code called in these methods is non-throwing and instead properly handle any exception that might arise.
2025-06-04directory_map: Correctly report fatal on failures to read from workspace rootsPaul Cristian Sarbu
2025-06-04Remove unneeded extra checks for upwards symlinksPaul Cristian Sarbu
2025-06-04Executor: Check validity of action outputs in compatible modePaul Cristian Sarbu
This ensures that any entries that the standard remote execution protocol accepts but are invalid in justbuild, i.e., upwards symlinks, are rejected. For this purpose, do not fail in the action response instances, just perform the check there, as all required information is available, and set a flag that the executor can check as needed.
2025-06-04{Local,Bazel}Response: Fix logic for marking succesful populationPaul Cristian Sarbu
While in practice a failure to populate the fields of a response happens once per invocation, as it will trigger a failure of the execution, from an algorithmic standpoint the flag to mark a successful population of the response fields should only be set on actual success. Fix this.
2025-06-04Executor: Move noexcept enforcement to main public call pointsPaul Cristian Sarbu
...and remove specifiers from methods that might throw in unexpected ways. By doing this, balance the need to avoid wrongly silencing exception sources during execution with reducing the amount of try-catch blocks.
2025-06-04LocalCasReader: Add validity check for bazel directoriesPaul Cristian Sarbu
This will check if directories contain upwards symlinks.
2025-06-04Execution server: Let the underlying API handle invalid entriesPaul Cristian Sarbu
The execution server itself should not consider anything special in setting the response message to the client, instead let the underlying API fail or not during collection.
2025-06-04FileRoot: Improve documentationPaul Cristian Sarbu