Age | Commit message (Collapse) | Author |
|
|
|
When a tree is taken from a git root, it is not necessarily known on
the remote site. So, as any missing artifact it has to be uploaded,
recursively uploading the parts to keep the tree invariant. The
function RetrieveToCas was doing the correct recursiv pattern, however
inspecting trees incorrectly using the function ReadTreeInfos; the
latter function, however, was obtaining all the leafs of the tree
as is needed for a compatible action-input description. Add and
use a function that reads the direct contents of a tree.
|
|
... as for remote execution, the map entries are only used
for the `install` subcommand. For local execution, much less
tree objects are read from CAS when using this map. However,
the performance benefit is barely measurable and therefore
we rather remove this map entirely to reduce complexity.
|
|
... to align with the original idea of caching a flat list
of blob objects, without the need to recursively traverse
any trees. Consequently, we cannot create any map entry in
places where we do not have all sub-tree entries at hand
(e.g., LocalAPI, BazelAPI, BazelResponse).
|
|
... which is not using `Directory` messages nor does it
support the `GetTree()` rpc.
|
|
... so that any infra structure problem on the remote execution
is reported by default.
|
|
... to emphasize that this is the extensional action identifier,
not the intensional one.
|
|
|
|
|
|
|
|
... while technically not required, it makes it harder to
run into nasty errors.
|
|
The version subcommand now has no expected command line options, as expected.
Also the version subcommand was missing from the man page synopsis.
|
|
... at INFO level, in the same way as all other dumping of analysis
results happen.
|
|
|
|
|
|
... by dropping curl-brace-initializers for nlohmann::json,
which calls the intializer-list constructor converting any
JSON type to array.
|
|
|
|
|
|
case they got pruned
|
|
|
|
between different CASes
|
|
|
|
|
|
in daca274041e31636f08927b0cebc56fd33c7bbdf it has been added a local
tree-cas. This cas is populated only when just runs in native
mode. However, even in compatible mode, a tree must be looked for in
the tree-cas. This patch set the path of the tree-cas to be the same
of file-cas while running in compatible mode.
|
|
|
|
... to be able to report the respective graph for later analysis
by other tools.
|
|
... as this is relevant for performance of analysis. We log the total
numer of trees at performance level and the individual directories
at debug level, if requested.
|
|
When reporting the percentage already completed, only report actions
that were actually run. Cache hits are considered by reducing the
overall work to be considered, i.e., by making the completed actions
count more. In practice, however, most cache hits are discovered
ayway till the first progress status is reported.
|
|
|
|
|
|
|
|
Like file or tree references, globs are restricted to the current
module; in fact, by the way we evaluate them, even to the top-level
directory of that module: a glob is a target having as artifacts and
runfiles those entries of the top-level directory of the specified
module that match the given pattern.
|
|
When constructing module names, we normalize the directory path
implicit in it. However, we take the empty string as valid canonical
name for the top-level directory (as it is the empty relative path).
When accessing git roots, however, only the file-system canonical
path "." is special cased as self reference. Hence explicitly
convert the empty string.
|
|
... also when determining default module or target.
|
|
|
|
We have to include explicit tree references into our target-result
map, as these targets can provide a tree definition, if the root
is not a git root or compatible mode is used. Nevertheless, from a
user's persepective, trees are just source references, like files.
Therefore, do not include them, when dumping the map of analyzed
targets. In this way, we also avoid the ambiguity in the dump between
an explicit tree reference and a defined target with the same name.
|
|
In targets that produce a large list of artifacts, e.g., a simple
test suite realized by "install", it is sometimes hard to find the
failed artifacts after being made aware of them by the warning.
Therefore, at info level, repeat a list of the failed artifacts
close to the end of the output.
|
|
Analysing a target is a pretty self-contained task. So move it
into a library of its own, to keep main.cpp more managable.
|
|
|
|
|
|
|
|
|
|
|
|
... otherwise actual blob size might exceed the maximum
transfer size of the CAS client. Therefore, we always have
to use the bytestream client if the size is unknown.
|
|
native mode
|
|
|
|
|
|
|
|
- LocalStorage Add tree CAS and support reading Git trees
- LocalAction: Create Git tree for output directory
- LocalApi: Support availability and upload of Git trees
- LocalStorage: Support dumping tree to stream in native mode
|
|
|