summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-26third-party: Update libcurl to v8.6.0Paul Cristian Sarbu
Now the curl URL API always fails to parse the empty string, so our test was changed to reflect this.
2024-03-26third-party: Update libarchive to v3.7.2Paul Cristian Sarbu
2024-03-26third-party: Update catch2 to v3.5.3Paul Cristian Sarbu
2024-03-26third-party: Update libgit2 to v1.7.2Paul Cristian Sarbu
2024-03-26third-party: Update lzma to v5.6.1Paul Cristian Sarbu
Also updated the remote fetch repository, as the previous upstream repository has since been archived.
2024-03-26third-party: Update fmt to v10.2.1Paul Cristian Sarbu
Also updates the test-mixed-bootstrap script which must use the explicit library version.
2024-03-26third-party: Update json to v3.11.3Paul Cristian Sarbu
2024-03-26third-party: Update cli11 to v2.4.1Paul Cristian Sarbu
2024-03-26Expression language: add float operations "*" and "+"Klaus Aehlig
Numerical values are used at some places in justbuild: as value for timeout scaling, as well as by the "range" expression that is used, e.g., to define repreated test runs. Therefore, improve support for numerical values by adding basic operations.
2024-03-22Absent target: deduplicate serve calls asking for flexible variablesKlaus Aehlig
For an absent export target, the first step of analysis is to ask serve for the flexible variables. The answer to this request is, however, independent of the configuration for this target. So we can avoid calls by caching the answer in an additional map.
2024-03-22Add a test verifying that absent export targets are deduplicated correctlyKlaus Aehlig
2024-03-22Avoid unnecessary calls to serve for export targetsKlaus Aehlig
For export targets, we know ahead of time the effective configuration; so, if the current configuration is not the effective anyway, we can simply analyse the effective configuration and take that result. In this way, we can avoid calls to serve if a target is analysed in two configurations that coincide on the flexible variables.
2024-03-22Add a test verifying export targets are counted only onceKlaus Aehlig
2024-03-22Avoid unnecessary analysis of export targetsKlaus Aehlig
For export targets, we know ahead of time the effective configuration; so, if the current configuration is not the effective anyway, we can simply analyse the effective configuration and take that result. As a side effect, we also count the number of observed export targets correctly.
2024-03-22main: also served export targets are relevant export targetsKlaus Aehlig
... so also report at info level if we got export targets served.
2024-03-21serve target server: lazy report at trace level the analysis/build failurePaul Cristian Sarbu
2024-03-21Reduce log level of common operationsKlaus Aehlig
In general, in the log produced by `just serve`, we want at most one entry at INFO level or higher per successfull request. Therefore, downgrade the log level of all operations that are carried out in a loop over all repositories that just serve takes care of.
2024-03-20Extend serve tests to cover both, standalone serve and separate remote executionKlaus Aehlig
2024-03-20Test "serve-query-target-cache-value": adaopt to standaloneKlaus Aehlig
This test tries to demonstrate that even if the remote-execution has forgotten the action, the target-level cache of just serve will allow a successful build without repeating the action. It does it by cleaning the local build root of the remote-execution service. If, however, serve and execute are the same process, they also use the same local build root, so the target-level cache entry needs to be kept alive separately.
2024-03-20with_serve tests: support standalone serveKlaus Aehlig
... i.e., support testing the use case that the serve instance simultaneously acts as remote-execution endpoint.
2024-03-20Add local launcher to just-serve configKlaus Aehlig
As just serve can simultaneously act as remote-execution endpoint, it has to accept in its configuration all the necessary information, in particular, the local launcher. Add it.
2024-03-20add-to-cas proposal: update design to reflect state of implementationKlaus Aehlig
The base functionality is already implemented. Also, the default has changed with respect to the design to make reading symlinks the default and only follow symlinks if the optin --follow-symlinks is given.
2024-03-20Add test verifying the main use cases of add-to-casKlaus Aehlig
2024-03-20Add new subcommand add-to-casKlaus Aehlig
2024-03-20Add functionality to add local files to CASKlaus Aehlig
... and optionally upload them to a remote-execution endpoint.
2024-03-20Add data-structure specific for adding files to CASKlaus Aehlig
2024-03-19serve target: Remove unneeded backend description uploadPaul Cristian Sarbu
2024-03-19serve target: Fix sharding inconsistenciesPaul Cristian Sarbu
When running in single node, serve endpoint should not even consider sharding. Additionally, garbage collection uplinking should also take the shard into account. For this purpose, a TargetCache instance now remembers if it was explicitly sharded and passed that information to the GarbageCollector for uplinking.
2024-03-19garbage_collector: Fix small doc typosPaul Cristian Sarbu
2024-03-19Add test to check handling of failed serve endpoint buildsPaul Cristian Sarbu
2024-03-19serve target: Differentiate between fatal and non-fatal orchestrated buildsPaul Cristian Sarbu
...by increasing granularity in client-side reporting. This allows to correctly continue with builds of local targets if the serve endpoint does not have the requested target, as well as improve the reporting for users on failure.
2024-03-19serve target server: Provide client the log of failed target buildsPaul Cristian Sarbu
When the serve endpoint has all the information to analyse a target, any analysis or build errors should be made available to the client. This way the user can receive a relevant error report.
2024-03-19serve target: Small improvementsPaul Cristian Sarbu
2024-03-19WriteTargetCacheEntries: Be explicit in logging location...Paul Cristian Sarbu
...by allowing a Logger instance to be provided. Also adds a flag in order for failed artifacts from builds orchestrated by the serve endpoint to be able to be reported as errors instead of warnings.
2024-03-19graph traverser: Be explicit in logging locationPaul Cristian Sarbu
2024-03-19result_map: Be explicit in logging location when getting results...Paul Cristian Sarbu
...by allowing a Logger instance to be provided.
2024-03-19just analysis: Be explicit in logging locationPaul Cristian Sarbu
...by allowing a Logger instance to be provided.
2024-03-19logger: Add common methods for global and named loggersPaul Cristian Sarbu
This allows to be explicit and thus have better control on where messages get logged.
2024-03-19just: Report non-zero served targets after analysisPaul Cristian Sarbu
2024-03-18graph_traverser: Remove unnecessary get callPaul Cristian Sarbu
...as it is redundant here and exception prone.
2024-03-18parallelism: Do not spawn more threads than asked toPaul Cristian Sarbu
...in the tool proper, i.e., excepting tests.
2024-03-15Clean up more includes and targetsPaul Cristian Sarbu
Some of the more specific issues addressed: - missing log_level target/include - header-only libs wrongly marking deps as private - missing/misplaced gsl includes
2024-03-14Add end-to-end test with serve building several targetsKlaus Aehlig
... simultaneously, in order to find race conditions during the build.
2024-03-14export of gsl: add missing flexible_config "ENV"Klaus Aehlig
As a library, that target depends implicitly on the toolchain, hence the already present export of "TOOLCHAIN_CONFIG", but also the environment for using that toolchain. So, export "ENV" as well.
2024-03-13Export more third-party top-level entry pointsKlaus Aehlig
... so that they can be served and hence the corresponding dependency can be absent.
2024-03-13BytestreamServer: also use the correct interface function for tmp dirsKlaus Aehlig
... so that any updates of the local-build-root layout are correctly taken into account. In particular, this change also moves the temporary directory under the emphemeral root, allowing more quick clean up. Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>
2024-03-13Fix tmpdir locationKlaus Aehlig
Commit 2ebf355989eb92ac9967eceee0af14d39477afe0 moved the tmpdir creation for various tasks into the task itself. In doing so, TmpDir was called with a relative path; that was, however, is interpreted relative to the working directory, violating the property that our tool never write anything outside the local build root unless explicitly asked to do so (by specifying the output path in an install or install-cas invocation). Fix this, by calling the the tmp-dir function that is storage-layout aware.
2024-03-13Move storage-aware tmpdir creation to configKlaus Aehlig
... as the fs_utils have a lot more dependencies making them usable in less places. Moreover, this function also serves to shape the layout of the local build root and hence is more appropriately placed in the config anyway.
2024-03-12catch2 main: ensure proper build rootKlaus Aehlig
Some of our C-tests under catch2 may rely on the local build root to get a proper tmp directory; ensure this is set properly to avoid falling back to the user's home directory.
2024-03-12storage config: remove unneeded private dependencyKlaus Aehlig