Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
While on the console, we want multi-line logs nicely aligned, when
logging to a file, unique readability is enough. So we can fix the
continuation prefix to a fixed string (with non-overlapping initial
segment). This makes log files easier to scan and also avoids
very long lines, given that the more complete message prefixes
are very long.
|
|
|
|
This patch introduces a templated ParseEntityName which can accept a
json or ExpressionPtr. Internally, performs a proper dispatch on these
cases
- isString
- isList
- size == 2
- size >= 3
A test is added for checking the proper handling of an empty list
|
|
EntityName now clearly expresses its double identity:
- NamedTarget
- AnonymousTarget
The usage of std::variant<NamedTarget,AnonymousTarget> guarantees that
EntityName, internally, is not a mix of the two - like could happen
before this patch.
NamedTarget features an enum ReferenceType to express the type of the
target, namely, "normal target" or an "explicit file reference".
Thanks to this refactoring, the introduction of new targets type
should be easier, since the design is more modular.
NamedTarget
|
|
|
|
|
|
|
|
... which was accessing the wrong artifacts in the list if the
artifact list contains a mixture of files and trees.
|
|
If we do not use a target directly, we also should not include
it. It's be build tool's job to track indirect dependencies.
|
|
I this way, also resulting trees can cleanly be printed on the command
line via the -P option.
|
|
|
|
|
|
... to be consistent with the remote execution protocol.
|
|
... as wrongfully only sub-tree entries were added to
locally cached trees, although they should also store
entries for files and executables.
|
|
... as wrongfully only sub-tree entries were added to
locally cached trees, although they should also store
entries for files and executables.
|
|
... and refactor static constant to proper format `kFdLess`.
|
|
|
|
... and therefore split the common `AtomicAdd()` into two functions
for adding from bytes or file path. The procedure for adding from
bytes remains the same. For adding from file path, we can link the
file directly and skip the rename, if the file did not exist and we
have ownership.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When reporting a command that failed, or produced some output,
report it as a list of strings, not as a singleton-list consisting
of a list of strings. While there, improve wording of message; in
particular, avoid confussion between a command that errored and
one that produced outout on stderr.
|
|
Our rule names can be arbitrary strings, so improve readability of
error message by properly quoting the rule name; while there, also
properly quote the module name, resulting in better readability if
the module is "".
|
|
Given a number or number representation, return a list of that
length consisting of representations of the lower numbers. In this
way, repeated non-pure actions can be generated (e.g., repetitions
of a test to detect flakyness).
|
|
In this way the user gets an early feedback about the target that
was requested and can check if that was the target they had in
mind, especially in the case of fall back to the alphabetically
first one (according to native byte order). As a nice side effect,
we have a timestap on when the analysis started.
|
|
On the one hand, this message is after an important step in the
build process, to giving the user a better insight into what is
going on. On the other hand, the size of the discovered graph is
useful information, e.g., when comparing with the number of actions
actually traversed when building the requested artifacts.
|
|
... to avoid unnecessary copying and moving of larger objects.
|
|
In this way, the user has a slightly better insight into the stage
the tool currently works on. While there, also move the first report
of taintedness to the earliest possible moment.
|
|
|
|
|
|
|
|
|
|
This is the initial version of our tool that is able to
build itself. In can be bootstrapped by
./bin/bootstrap.py
Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
Co-authored-by: Victor Moreno <victor.moreno1@huawei.com>
|