summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-05GitCAS: Support reading/creating trees without filesystem IOOliver Reiche
2022-08-05GitCAS: Add create tree via libgit2's treebuilderOliver Reiche
2022-08-05Version: Bump up to 0.1.1+develOliver Reiche
2022-08-05Version: Bump up to 0.1.1Oliver Reiche
2022-08-05GitCAS: Implement reading git tree via libgit2Oliver Reiche
2022-08-05ExecutionResponse: Fix artifacts reserve sizeOliver Reiche
2022-08-05Added remote execution specification documentSascha Roloff
Co-authored-by: Alberto Sartori <alberto.sartori@huawei.com>
2022-08-04libgit2: Patch race condition with fake repositoriesOliver Reiche
2022-08-04rules: Extend patch rule to split parts from patchOliver Reiche
2022-08-02Utils: Drop ill-formed audit checks for truncating JSONOliver Reiche
2022-07-28Upd tutorial to reflect new just-mr setup outputPaul Cristian Sarbu
2022-07-28Add setup-env option to just-mrPaul Cristian Sarbu
2022-07-28Fix style in just-mrPaul Cristian Sarbu
2022-07-28Executor Test: Add proper guards for optionalsOliver Reiche
2022-07-27man: Update man page on options for describe subcommandOliver Reiche
2022-07-27describe: Support serializing to JSONOliver Reiche
2022-07-27describe: Support describing by rule nameOliver Reiche
2022-07-27install-cas now accepts --log-limit and --log-fileAlberto Sartori
2022-07-26INSTALL.md: fix verb orderKlaus Aehlig
Even though most subcommands of just accept the -C option, not all do and hence it is not a global option (in fact, just has no global options). Fix this in the installation instruction. While there, fix another typo.
2022-07-26Fix just-mr bug: ensure git cache folder present for git opsPaul Cristian Sarbu
2022-07-25just-mr: retry `git tag -f` if neededKlaus Aehlig
just-mr uses git tags to ensure that git roots used in the repository configuration handed out do not get garbage collected. Here, the tag encodes the commit to be kept; hence we can safely do this operation forcefully: we would only reset the tag to its old value. However, this tagging still is not free of races: git seems to first check for the existence of the tag and if not present tries creation under the assumption that no other process does so (and fails if this is the case). As our tagging is idempotent, we can safely retry it to work around this git race.
2022-07-25Add basic overview filesKlaus Aehlig
2022-07-25Test bootstrapping against preinstalled dependenciesKlaus Aehlig
In particular, also add a target that explicitly all dependencies besides python3 and the C++ compiler which also serves as a machine checkable documentation.
2022-07-25Move bootstrap tests to their own directoryKlaus Aehlig
2022-07-25Support bootstrapping from preinstalled sourcesKlaus Aehlig
For quick development, it is convenient to only need a C++ compiler and python3 and get all dependencies downloaded at the beginning of the bootstrap process. For packaging the tool, however, this is not a valid approach; dependencies should be managed by the packing tool there (so that security updates have to be fixed only at one place). So, for building our tool, the dependencies look like installed to the ambient environment.
2022-07-25CC rules: keep dependencies last in linkingKlaus Aehlig
... as the external link dependency is still associated with this library. In this way, importing preinstalled libraries can happen in a sound way, even though the actual library is just an external link dependency; still dependencies among external libraries are honored.
2022-07-25Rules: Enforce non-empty library and binary namesOliver Reiche
2022-07-20just-mr: Fix use of local Git repos with relative pathOliver Reiche
... by computing the absolute path (required to successfully identified them as a Git root) and enforcing that tag creation is only performed for the default Git root from the cache directory.
2022-07-20just-mr: Git root must always be a directoryOliver Reiche
... and not only located on the file system. This change enables the use of Git bundles as "non-local" repositories.
2022-07-12rules documentation: mention use cases for providersKlaus Aehlig
While there, fix a few typos in the same document as well.
2022-07-08In install-cas be more liberal in parsing artifact identifiersKlaus Aehlig
2022-07-07just-mr: more safely create directoriesKlaus Aehlig
While the just binary itself was carefully created to work correctly in the presence of several instances running simultaneously, the just-mr.py script started as proof-of-concept out of the need to conveniently generate a multi-repository configuration for just. Nevertheless, it is now actually used, so parallel running instances have to be taken seriously. Moreover, we have to ensure that in case of failures, we don't leave the local build root in a state giving a false impression on how an unpacked archive looks like. Both can be avoided by always working on temporary directories and, should a persistent location be needed, only renaming to the final desitantion once everything is set up correclty.
2022-07-07Traverser: Bring task system down gracefully on errorOliver Reiche
2022-07-07TaskSystem: Implement shutdownOliver Reiche
2022-07-06TaskSystem: Support wait for finishOliver Reiche
2022-07-06TaskSystem: Fix early shutdownOliver Reiche
... conceptually, it was possible that a previous task decrements the `num_threads_running_` counter before it is incremented by the next task. Therefore, we have to unify the queue and thread status in a single counter (`total_workload_`) and ensure that woken threads increment it before decrementing it for popping a queue.
2022-07-06External PCRE: Give meaningful error if OS/ARCH is not setOliver Reiche
2022-07-06When requesting action input, also provide action informationKlaus Aehlig
Extend the --request-action-input option to also provide command line, environment, etc, of the requested action. As this option is mainly for debugging, having that information available via the analyse subcommand is useful; for build/install that change does not make a difference anyway.
2022-07-05Make remote endpoint specification part of analysisKlaus Aehlig
The remote execution endpoint shards the target-level cache; still, for analysis, we want to specify a particular target-level cache, e.g., to analyse the inputs of a particular action that failed remotely. Note that the action identifier depends on the target-level cache in question, due to the extensional projection implicit in target-level caching.
2022-07-05Remove option --persistentKlaus Aehlig
... as the --request-action-input option provides a clean way of restoring the inputs to a specific action, without the need of interacting with the internal directory structure of the tool. In particular, the new option also works for remote builds.
2022-07-05Implement staging of action inputsKlaus Aehlig
Add an option to change the requested result to be (as artifacts) the input stage of a specified action. In this way, the inputs to individual actions can conveniently be inspected, e.g., for local debugging of why an action failed.
2022-07-05ResultMapTargetMap: support looking up an action by identifierKlaus Aehlig
2022-07-05Fix wrong output pipe for version info in mainPaul Cristian Sarbu
2022-07-04Externals: Give meaningful error if OS/ARCH is not setOliver Reiche
... which is required for boringssl, libg2 and grpc.
2022-07-04Main: Fix typo in include guardsOliver Reiche
2022-07-04Drop copy constructor from atomic valueOliver Reiche
2022-07-04Drop copy constructor from linked mapsOliver Reiche
2022-07-04Drop copy constructor for expressionsOliver Reiche
2022-07-04Improve move semantics with smart pointersOliver Reiche
2022-06-30Rules: Split library result and library artifact expressionOliver Reiche