Age | Commit message (Collapse) | Author |
|
|
|
Before this patch, if the option `--remote-execution-property KEY:VAL`
is repeated multiple times (also with different `KEY`s), only the last
one is taken into account.
This patch fixes the intended behavior.
(cherry picked from commit 2e953b04bbd8e619172c9d0eeafd0342700d6ee9)
|
|
To avoid too many intermediate results, we compute the union of
a list in a divide and conquer fashion. Of course, for a disjoint
union, the recursive calls on the lists of half the length have to
be disjoint as well, i.e., the template parameter kDisjoint has to
be passed on. Fix this.
(cherry picked from commit 469a7190bee490344d147099c3511fc45e2aadf0)
|
|
Taken from commit fb365b17ca339a25688ff61918280a46d64943b9
|
|
(cherry-picked from commit c3d28a4cc3115644414ddba41d4b7ada5fd74fc2)
|
|
... to provide an informative error message on how a rule is related
to a particular import and, in particularly, at which expression
a problem with the import occurred.
While there, also improve the message in the other error case to
follow our standard line-breaking scheme.
(cherry picked from commit be91d666a483d0c982aea3c7b2d77a1c1dfa1bf9)
|
|
|
|
|
|
... and improve log messages in case of failure.
(cherry picked from commit 65d35006de65e540355833a56bcaa7659f6f1afd)
|
|
The traverser instantiation consumes the arguments.build struct,
therefore one must not access that struct later in the code.
(cherry picked from commit bc09302c2772c979c45ecc716c36e4a70bb484ac)
|
|
(cherry picked from bab0d949d51fe4f10c8d492083427d514206cb63)
|
|
The install target, like any other target, has to have artifacts
and runfiles being proper stages, i.e., in such a way that the
keys can be interpreted as names in the file system without causing
conflicts. This property used to be unchecked, thus allowing users
to define mal-formed targets that, when used as inputs to actions,
would result in unspecified layout of the action directory. Fix
this by adding an appropriate check enforcing well-formedness of
the resulting stage.
(cherry picked from f66db4bb21efeead140a453f91280bb9471f24a9)
|
|
|
|
|
|
Make sure that all CopyFile, WriteFile, and CreateSymlink
functions properly unlink the target file (if it exists and
overwrite requested) to avoid interferences of the install
command. With this change, the clean up step for install-cas
and the within GraphTraverser can new be omitted.
(cherry-picked from 04e2f0aa0ccfe4f39c5f6c713bde182c6b7704dd)
|
|
... which was accidentially a list of (a single) object,
instead of only a single JSON object.
(cherry-picked from 63a874517618a57dd5ca223d19a795c28a39c123)
|
|
The cache key for an export target should contain as target name
that of the export target (and its effective configuration) rather
than the exported target. As we computed the repository part of
the cache key for the target included in the key, this was still a
correct cache key except in the case an explicit file reference was
exported (as here, the information that the file was to be taken
rather than the target of the same name got lost). We still fix
this issue by making the implementation match our design (rather
than by including the file-reference bit in the cache key), as the
original design gives the cleaner protocol for target-level caching
as a service.
(cherry-picked from 180d8d89ffa92f8c3e8b8bcb912ec1a4990569c9)
|
|
...of the internal cache used for keeping track of running operations.
(cherry-picked from bec4dbd9bd995f73eab1ff803e7895187068ddb0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... to silence false-positive 'possible dangling reference'
warning produced by gcc 13.2.0.
|
|
... which are only actions that, besides giving exit code 0 also
created all the outputs they promised to.
|
|
|
|
... by moving the diagnose and cli related code into to separate
libraries. In this way, we hopefully improve maintainability of
the code base.
|
|
|
|
|
|
|
|
While a foldl is enough to implement a reverse functionality,
adding it as a built in allows doing so in linear time.
|
|
... to obtain from a list of strings a map with those entries
as keys and true as value. In this way, repeated membership tests
in lists can be implemented more efficiently.
|
|
|
|
|
|
... in order to make that functionality reusable
|
|
The rule generates a non-upwards symbolic link with given target
path.
|
|
|
|
If install-cas finds a file in the target location, unlink it before
writing (in the same way as install does already). In this way, we
avoid changing other file locations in the presence of hard links.
|
|
Upwards symlinks should still be collected from actions, even if
only the non-upwards symlinks are supported artifact types. The
client side is thus the one responsible with enforcing the
non-upwardness condition.
|
|
|
|
... to allow selecting a sub object of a specified tree.
|
|
|
|
|
|
Before this patch, when creating an action directory, symlinks were
staged as regular files.
|
|
|
|
The bytestream server implementation (deployed by just execute) now
stores the temporary files under
$local_build_root/protocol-depenedent/generation-0
so that they can be garbage collected if "just exectue" is terminated
before they are cleaned up.
|
|
...that std::filesystem::* calls produce. This is because existence
and type checks use almost exclusively std::filesystem::status,
which follows symbolic links, when being called with path arguments.
Instead, one should instead use these methods with the value
returned by a call of std::filesystem::symlink_status.
This commit also streamlines the FileSystemManager tests, as well
as replace bare calls to std::filesystem with their FileSystemManager
counterparts (where suitable).
|
|
The introduction of non-upwards symlinks as first-class objects
should have updated the handling of known git tree artifacts
containing symlinks. In particular, one should consider trees in
their entirety when uploading (irrespective of the ignore_special
flag), and git trees should only be reported as known only if
the ignore_special flag is set to false.
|
|
|