summaryrefslogtreecommitdiff
path: root/src/buildtool/main
AgeCommit message (Collapse)Author
2024-05-08Relase 1.3.0v1.3.0Klaus Aehlig
2024-05-02Release 1.3.0~beta1v1.3.0-beta1Klaus Aehlig
2024-05-02Small changes to allow gsl-lite supportPaul Cristian Sarbu
The gsl-lite implementation is slightly more picky in terms of type conversions and constness resolution in initializers, therefore small changes were needed.
2024-04-26analyse: fix reporting of internal errosKlaus Aehlig
... by taking the correct map to report which targets failed to be analysed and also report about rules that failed to be analysed.
2024-04-25just serve: Paths in config file should be location objectsPaul Cristian Sarbu
Also updates the tests and all relevant documentation accordingly.
2024-04-24just analyse: add --dump-result command line optionAlberto Sartori
The result of the analysis is a JSON object containing the keys `"artifacts"`, `"runfiles"`, and `"provides"`. This JSON object, by default, is logged. However, it might be useful to process the data contained in it, while, for example, developing new rules. This patch adds a new command line option (`--dump-result`), reserved to the subcommand `analyse`, to dump the analysis result to the given file or stdout (if `-` is given).
2024-04-23just describe: support retry argumentsKlaus Aehlig
... as also just describe can communicate to grpc endpoints.
2024-04-18Move retry-related CLI parts into separate librariesKlaus Aehlig
... to simplify reuse.
2024-04-16just: support writing the error blobs from serve into a json fileKlaus Aehlig
... so that they are available in machine-readable form. In this way, all logs can automatically be collected without the need of parsing human-targeted error messages.
2024-04-16Absent targets: support registering the serve failure logsKlaus Aehlig
... in a structured way to eventually support machine-readable access to the identifiers of the log files.
2024-04-10Support stderr log-limit restriciton for serveKlaus Aehlig
As `just serve` is used like a daemon it can be desirable to restrict stderr, e.g., to only errors, while keeping a detailled log of the activity in a file.
2024-04-10Add command-line option to restrict log limit on stderrKlaus Aehlig
2024-04-10just serve: follow symlinks to the serve configKlaus Aehlig
... to simplify set ups where configuration files are provided as symbolic links to some central store.
2024-04-08Use properly included standard library types by defaultPaul Cristian Sarbu
2024-04-08Consistently guard all POSIX C includesPaul Cristian Sarbu
2024-04-02Move file chunker to storage.Maksim Denisov
2024-03-28just install-cas: add option --archiveKlaus Aehlig
Trees are first-class objects for justbuild. To allow interoperation with other tools, it is necessary to provide those objects in a standard format; for directories, those are archives. Hence procive a corresponding option.
2024-03-28Add library to generate an archive from a local objectKlaus Aehlig
2024-03-26Add missing system includesPaul Cristian Sarbu
Main culprits: - std::size_t, std::nullptr_t, and NULL require <cstddef> - std::move and std::forward require <utility> - unordered maps and sets require respective includes - std::for_each and std::all_of require <algorithm>
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-22main: also served export targets are relevant export targetsKlaus Aehlig
... so also report at info level if we got export targets served.
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 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-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-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-19just analysis: Be explicit in logging locationPaul Cristian Sarbu
...by allowing a Logger instance to be provided.
2024-03-19just: Report non-zero served targets after analysisPaul Cristian Sarbu
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-12just serve: Improve progress reportingPaul Cristian Sarbu
During analysis it is useful to track and report the progress for all export targets. This is not exclusively linked to a serve endpoint being present, despite most of the time being expected to be spent in export targets being served from the remote endpoint. This commit refactors the current implementation to give proper feedback to the user on the progress of the analysis phase.
2024-03-11just: Replace singletons for progress tracking and statistics...Paul Cristian Sarbu
...with regular instances that have controlled life-times. This avoids race conditions in tracking and reporting the results of analysis and build, as the serve endpoint can orchestrate multiple builds at the same time asynchronously. As a bonus side-effect this also ensures the correctness of the progress reporting per orchestrated build.
2024-03-11just analyse: Use explicit target cache instancePaul Cristian Sarbu
The serve endpoint always has to access the correctly sharded target cache, including during analysis. For this purpose, the target cache instance interrogated during analysis has to be explicitly provided.
2024-03-11gc: add option --no-rotationKlaus Aehlig
... to clean up what can be done without losing cache information.
2024-03-07just: 'analyse' and 'describe' require client-side authenticationPaul Cristian Sarbu
As these subcommands can access the serve endpoint, it is not enough anymore to just know the remote-execution endpoint, but one must also try to connect to it. Thus, the client-side authentication arguments need to be supported and read. The just.1 man page is also updated accordingly.
2024-02-26Initialize file chunker in mainSascha Roloff
2024-02-16export targets: Enforce the invariant when writing target cache entriesPaul Cristian Sarbu
We ensure that for each export target to be written to the target cache all its implied export targets are written to the target cache first. This ensures that the target cache maintains its consistency at all times with respect to export target dependencies.
2024-02-16async maps: Create utility library to handle cycle detectionPaul Cristian Sarbu
2024-02-15defaults: Support fully static linkingOliver Reiche
... of all produced binaries, including the intermediate ones: protoc and grpc_cpp_plugin.
2024-02-01describe: support -RKlaus Aehlig
... as, for absent repositories, we need to get the description from the serve end point. As a consequence, also support -r and --compatible, as the remote-execution endpoint needs to fit with the one for the serve endpoint.
2024-02-01describe: accept local-build-rootKlaus Aehlig
... as even this command now adds entries to CAS, e.g., the shard for the target-level cache. Also, this command block gc by keeping a lock (also in the local build root).
2024-01-31just serve: Cleanup logging to remove tool namePaul Cristian Sarbu
Also cleans up the logging when parsing the serve service configuration file.
2024-01-30Drop unused -R from install-cas and traverse subcommandsKlaus Aehlig
2024-01-30For install-cas with remember use splittingKlaus Aehlig
2024-01-16Analysed target: keep track of implied export targetsKlaus Aehlig
... that are eligible for caching. In this way, we can accurately keep track of the dependencies between target-level cache entries. Note that it is enough to track the export targets eligible for caching, as no target depending on an ineligible export target can be eligible.
2024-01-09Refactor GraphTraverser to take in platform properties and dispatch listPaul Cristian Sarbu
In order for the serve endpoint to correctly dispatch a build to the correct remote-execution endpoint, the platform properties and dispatch list for a build need to be passed explicitly to the executor (via the graph traverser instance) instead of always being taken from the RemoteExecutionConfig struct. This commit implements these changes, including updating existing tests accordingly.
2024-01-09just main: Fix log messagePaul Cristian Sarbu
2023-12-14just describe: Query serve endpoint for export targets with absent rootsPaul Cristian Sarbu
2023-12-14just describe: Improve cli description and code documentation of --json optionPaul Cristian Sarbu
2023-12-14just analyse: support dumping the provides map of a targetKlaus Aehlig