Age | Commit message (Collapse) | Author |
|
|
|
... and ensure that the default logging is set up before.
|
|
|
|
While there, also document the option (in more detail) in the man
page.
|
|
|
|
|
|
|
|
the command line --workspace-root now overwrites what is eventually
read from the multi-repository configuration file for the main
repository
|
|
|
|
|
|
|
|
So that we can, also for header-only libraries, always declare the
direct dependencies without creating a cyclic dependency between
entity_name_data and expressions.
|
|
|
|
|
|
Add a function transforming a list into a map. In this way, artifacts
collected positionally in a list can easily be realized as a stage
used for input to an action or output of a target.
|
|
Not only trees, but also regular files can disallow paths reaching
into them. If we have a file at a/b then another file at a/b/c
is a staging conflict as well. Make our tool recognize this.
|
|
In particular, ensure that the empty path and "." have the
same normal form.
|
|
... which were all ignored except the last. CLI11 usually
only calls the option function once all options have been
parsed. This change ensures that the option function is
called everytime the option is parsed.
|
|
... and detect conflicts araising this way. Also normalize
the paths after staging them to the specified subdir.
|
|
Our maps serve two purposes: on the one hand, they can be a generic
key-value association with arbitrary strings as keys. On the other
hand, we use them to describe arrangements of files (inputs to actions,
artifacts or runfiles generated). In this function, certain keys refer
to the same path and hence have to be identifed. Therefore, at places
where the keys clearly have to be paths in the file system, implicitly
normalize them and check for conflicts.
|
|
... as it will be required outside the target map.
|
|
|
|
One of the uses of "just analyse" is to obtain the action graph
which also contains identifiers depending on the way artifacts
are hashed, e.g., blobs or known artifacts. Therefore, make
just analyse support compatible mode as well.
|
|
|
|
Since in default (bundled) bootstrap, we bring our own version
of libgit2, also use that for the initial bootstrap step.
|
|
|
|
The expected size of the list that defines the target was not checked
consistently. So, in case a target expected a list with 4 elements,
but got just 3, a segfault would happen.
This patch resolves this issue.
|
|
|
|
With the reformating of the analyse result we accepted longer
output lines anyway. Allowing them in the report of a detected
flaky action immediately gets the log and console output more
useful, as the source can often be identified without looking
at the full definition of the action in the action graph.
|
|
A complete documentation of a rule should not only include how to
use it (i.e., which fields are present and what is their meaning)
but also what the result is. This is particularly true, as the result
is structured and can contain some complex logic or conventions in
the provided information.
|
|
DirectoryEntries must be constructed explicitly either via a GitTree*
or an unordered_map<string,ObjectType>. So, the case of an empty
directory, is represented by an empty map. Before this patch, empty
directories were represented by std::monostate and missing checks
on that led to a seg-fault.
|
|
For a user, an important information is to know which actions
are currently running and, more importantly, the target that
caused them. To do so, we need a bit of infrastructure.
- We have to keep track of begin and end of running actions,
as well as the order in which they were started. That has
to happen efficiently and in a thread-safe way.
- We have to compute and keep the origin map for actions,
even if we don't serialize the action graph.
|
|
So far, `just describe` reported only the list of keys for runfiles
and artifacts while reporting full information for the provided
data, including the artifacts contained therein. Change this to
always reporting the full information, as for runfiles and artifacts
the detailed information is valuable as well.
|
|
|
|
... allowing to provide additional information in case of conflict
during flat staging.
|
|
The fact that we happen to use the same protocol as bazel does,
does not mean we are bazel. After all, the remote-build-execution
protocol is meant as a generic protocol. Hence change the names in
logs to avoid confusions.
|
|
|
|
To concatenate lists (the only ability the "+" operator had),
use "++".
|
|
|
|
|
|
... to allow for overwriting
|
|
For historic reasons, we considerd special strings as false values.
Drop that behavior in favor of a clean LISP-like semantics: everything
is true that is not empty.
|
|
|
|
|
|
... to foster the implementation of the built-in target "TREE"
|
|
|
|
... so remove it from the list of expected keys.
|
|
Reporting, with exponentially backing off intervals, the number of
cache hits found so far, the number of actions that have ben run,
and the number of actions currently under consideration.
|
|
|
|
|