summaryrefslogtreecommitdiff
path: root/src/buildtool/main
AgeCommit message (Collapse)Author
6 daysStart 1.6.1 development cycleKlaus Aehlig
6 daysRelease 1.6.0v1.6.0Klaus Aehlig
6 daysjust describe: Fix typo in output messagePaul Cristian Sarbu
9 daysRelease 1.6.0~beta1v1.6.0-beta1Klaus Aehlig
9 daysExecutionService: Use LocalApi directlyOliver 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-12Add a flag to `gc` command: `--all`Maksim Denisov
2025-06-04FileRoot: Give git-based roots access to storage configPaul Cristian Sarbu
2025-06-04RepositoryConfig: Give access to a persistent storage config...Paul Cristian Sarbu
...whenever it is given access to a Git repository. The referenced storage config needs to outlive the repository config instance.
2025-05-30WriteTargetCacheEntries: do not use quadratic many jobsKlaus Aehlig
When backing up target-cache entries we use parallelism at two dimensions, the independent cache entries and for each entry we retrieve the artifacts in parallel. If for each dimension we use the full amount of parallelism allowed, that gives a number of threads up to the square of the amount of parallelism specified by the user. Therefore, use in each dimension only the square root of the allowed parallelism keeping the total parallelism (up to rounding) within the specified range.
2025-05-28profile: include also the end time of the buildKlaus Aehlig
... which might be quite ahead of the end time of the invocation if writing out of the action graph delays the end of the invocation.
2025-05-26profile: include time of build startKlaus Aehlig
When using a serve end point, the analysis phase might take quite long if serve has to actually build a delegated target or, at least, has to synchronize artifacts with the remote end point. Therefore, also record the time the build phase started (if building is requested) as an additional time stamp in the profile.
2025-05-15Make --dump-artifacts-to-build act cummulativelyKlaus Aehlig
2025-05-07profile: include remote-execution propertiesKlaus Aehlig
Include in the profile also the effective remote-execution endpoint, properties, and dispatch list. Software projects are often tested in a variety of environments or hardware configurations; as, obviously, the performance might differ significantly (especially depending on the used hardware) a proper analysis therefore requires the possibility to distinguish the various backends. Adding the effective configuration adds this posibility.
2025-05-06just: record analysis errors in profileKlaus Aehlig
2025-05-06Extend just exit codes to distinguish different kinds of failuresKlaus Aehlig
2025-04-17archive.cpp: eliminate un-needed copies of payloadAlberto Sartori
2025-04-17ServeFailureReporter: use const& to avoid copiesAlberto Sartori
2025-04-17main: ensure --profile is also honored for failed buildsKlaus Aehlig
We use a pointer to the actual Profile object to handle profiling, if requested. For this to work, actual object needs to stay in scope. However, we handle most of the operations, including parsing of arguments, in a global try-catch block. In order to be able to also correctly write a profile file outside this block, move the scope of the Profile object to top-level in main. While there, also improve the signature of the Profile class. That class is only meaningful, if a profile should eventually be writting to disk. So reflect this in the constructur. Also, once we know the file name to write the profile to (if any), we have already parsed the command line; so the making available of the command line to the profile can be enforced by adding this to the constructor as well. Co-authored-by: Denisov Maksim <denisov.maksim@huawei.com>
2025-04-16just profile: include subcommand and its argumentsKlaus Aehlig
As parsing the the command-line is non-trivial, we include all the relevant information about the command line in the profile. This should also include the subcommand. For sake of completeness, we also include the non-option arguments of the subcommand.
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-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-03-10Profiling: start collecting informations per actionsKlaus Aehlig
... so far, which actions where considered, and which of those were cached.
2025-03-10Add basic --profile option to justKlaus Aehlig
... so far only keeping track basic properties of the invocation. Still, the code is already organized to support future extensions; in particular, we do not have to rely on the Profile class being copyable.
2025-03-10Make graph-dumping options cummulativeKlaus Aehlig
If --dump-graph or --dump-plain-graph is given several times, the action graph wil also be written several times. In this way, regular use of those options will not be affected by adding them implicitly through invocation-logging options in the rc file.
2025-03-06Start 1.6 development cycleKlaus Aehlig
2025-03-06Release 1.5.0v1.5.0Klaus Aehlig
2025-03-05FileSystemManager: Let caller decide log level for reading directoryPaul Cristian Sarbu
Do not emit errors when it does not lead to build failures. Callers handle the log level at which failures of this method should be logged.
2025-02-28Release 1.5.0~beta2v1.5.0-beta2Klaus Aehlig
2025-02-28GraphTraverser: Pass artifacts, blobs and trees to BuildAndStage by rvalueMaksim Denisov
2025-02-28Make statistics a separate libraryMaksim Denisov
2025-02-28Include ArtifactDigestFactory into "common" libraryMaksim Denisov
2025-02-25just serve: allow clients to access execution endpoint with a different addressAlberto Sartori
To properly use `just serve`, both the client and the serve instance must talk to the very same execution endpoint. Typically, both the client and serve can reach out to the execution endpoint via the same IP address. However, it might be possible that the client and a serve instance know the same execution endpoint by means of differnet IP addresses. For example, the client knows the execution endpoint address through an _external_ IP address, while the serve instance, deployed within the same network infrastructure, only knows the _internal_ IP address. This patch adds the subkey `"client address"` -- of the key `"execution endpoint"` -- in the serve configuration file, to specify the alternative pair `address:port` used by the client.
2025-02-24Release 1.5.0~beta1v1.5.0-beta1Klaus Aehlig
2025-02-19ApiBundle: Remove HashFunction.Maksim Denisov
And ensure every user obtains HashFunction from corresponding IExecutionApi
2025-02-14just add-to-cas: Enable --resolve-special optionPaul Cristian Sarbu
2025-02-14just add-to-cas: Implement resolve special logic for treesPaul Cristian Sarbu
2025-01-22Source-tree service: accept lock referenceKlaus Aehlig
... so that tagging in the associated git root can be synchronized with other services provided by just serve.
2025-01-07Implement rebuilding of StorageConfigMaksim Denisov
2025-01-07Add backend description to CAS in a ctor of TargetCacheMaksim Denisov
...instead of adding it preliminarily.
2025-01-07Pass BackendDescription to StorageConfig from the outsideMaksim Denisov
2025-01-07Pack BackendDescription to a classMaksim Denisov
...to let it be stored as an independent instance.
2024-12-19Use PrecomputedRoots during evaluationMaksim Denisov
2024-12-19Fix cause of minor warningsOliver Reiche
2024-12-11main: avoid spourious warningsKlaus Aehlig
... given that a proper reporting of the return code if repo_config.SetGitCAS is contained in main anyway. Therefore, log the details trying to set the git cas to a level less than that of the final reporting.
2024-12-10Computed Roots: be aware of the serve end pointKlaus Aehlig
... as the base repository of a computed root might be absent.
2024-12-09Move garbage_collector to a separate libraryMaksim Denisov
2024-12-09Use expected to return an error from ParseRootMaksim Denisov
2024-12-09Localize error_msg argument of ParseRootMaksim Denisov
...and use expected to replace it.