summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2022-06-30Add section-5 man page for just-mr repository config file formatPaul Cristian Sarbu
2022-06-30just-mr: retry removal of temporary directoriesKlaus Aehlig
When converting a directory to git, just-mr.py shells out to git to to the actual conversion. However, not in all cases git waits for its children, in particular when deciding to implicitly run git-gc ("Auto packing the repository in background for optimum performance.") This causes problems, as we assume that after git finishes we safely can remove the temporary directory from which we pulled; however, the shutils.rmtree function we call for this assumes the directory to be removed not to be changed by other processes---like git removing the file gc.pid. Work around this, by retrying the removal of no longer needed temporary directories.
2022-06-29Error reporting: also abbreviate the expression in the stack traceKlaus Aehlig
... to the same limit as the values occuring in the stack.
2022-06-29rename private member in compliance with the used code styleAlberto Sartori
2022-06-29Use a more meaningful abbreviation of expression valuesKlaus Aehlig
... in error messages. The outer structure is usually more important than the the details of the first element.
2022-06-29util: support abbreviating jsonKlaus Aehlig
To an intended number of characters by leaving out the parts after a given depth. As the correct depths has to be determined, the JSON value is serialized several times; hence the method is slow, but acceptable for the generation of error messages.
2022-06-28Support more verbose error reportingKlaus Aehlig
2022-06-28Generic: add support for out_dirsAlberto Sartori
Before this patch, the built-in "generic" type allowed for just output files, listed in the field "outs". Now, the type also supports output directories, listed in the "out_dirs" field. The output directories are created before the command is executed.
2022-06-28sort and deduplicate outputs before creating the actionAlberto Sartori
2022-06-28define new header-only library for vector manipulationAlberto Sartori
2022-06-28improve error message when outpus are not disjointAlberto Sartori
2022-06-28add parenthesis to emphasize the order of evaluationAlberto Sartori
2022-06-27Share: Add section 5 man page for repository config formatOliver Reiche
2022-06-27just version information: support VERSION_EXTRA_SUFFIXKlaus Aehlig
... which, if defined, is appended to the suffix string. In this way, versions can be forked, e.g., if non-upstream changes are included.
2022-06-24Add a version subcommandKlaus Aehlig
To also allow identifying snapshot versions in a meaningful way, we support embedding SOURCE_DATE_EPOCH which ought to be set to the commit time of the commit used.
2022-06-24Add man page describing the action graph file formatKlaus Aehlig
2022-06-24action deserialisation: accept null for "may_fail"Klaus Aehlig
In that way, we are consistent with all other values in that there is a way to positively state that the default value should be taken. While there, fix a wrong error message.
2022-06-24Tutorial: Add section about testsOliver Reiche
2022-06-23update man 1 pageAlberto Sartori
add details for the --action-timeout and -f,--log-file command line options
2022-06-23Upd rules doc on writable directories available to test runnersPaul Cristian Sarbu
2022-06-23Add new distdir repo bootstrap testPaul Cristian Sarbu
2022-06-23Add distdir repo logic to bootstrap.pyPaul Cristian Sarbu
2022-06-23Fix style of bootstrap.pyPaul Cristian Sarbu
2022-06-23Add distdir repo to just config and its targets filePaul Cristian Sarbu
2022-06-23Fix handling of existing tmp paths in just-mrPaul Cristian Sarbu
2022-06-23Add distdir repo type in just-mrPaul Cristian Sarbu
2022-06-23Extract useful logic into own functions in just-mrPaul Cristian Sarbu
2022-06-23Fix style of just-mrPaul Cristian Sarbu
2022-06-22Tutorial: Updated proto sectionOliver Reiche
2022-06-22Protobuf: Bump version to 3.12.4Oliver Reiche
2022-06-22RemoteExecutionClient: Check and log execution statusOliver Reiche
2022-06-20Export remote-execution APIKlaus Aehlig
In this way, we follow our own standard practices of exporting targets to be used by other repositories. While for a couple of proto files, there shouldn't be a difference in performance, it is still good to have the interfaces cleaned up and documented.
2022-06-20Document the concept of target-level cachingKlaus Aehlig
2022-06-20Correctly serialize and deserialize results and nodesKlaus Aehlig
So far, our serialisation and deserialisation assumed that no node or result values are included contained in the given value. However, for nodes (and hence ressults, given our implementation of value nodes) there is a legitimate use case. An abstract interface specification, given by provided nodes, can well be a meaningful target to be exported. Implement serialisation for those values. Also, avoid tree-unfolding the value when deserialising the value by appropriately caching the corresponding expression pointers. Moreover, avoid the quadratic overhead through linearly searching through the list of artifacts.
2022-06-20Repository representation: also use string as name in bindingsKlaus Aehlig
In this way, we keep the repsitory description more close to a normal multi-repository configuration. The only difference remaining is the absence of repository locations for git-tree roots.
2022-06-20analysed targets: artifacts can also be contained in nodes and resultsKlaus Aehlig
2022-06-20Disallow comparison of namesKlaus Aehlig
In our semantics, it was always intended that names are completely opaque and only used by passing them to functions providing information about a target. However, we never enforced that they not be compared for equality, even though we always had this in mind, and the computation of the target-level cache key was designed with this semantics in mind. Enforce this restriction now.
2022-06-20expression: cache the cacheability propertyKlaus Aehlig