Age | Commit message (Collapse) | Author |
|
|
|
... 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)
|
|
|
|
|
|
...which signal either cient- or server-side failures.
This ensures we exit with a failed network fetch early in cases
where it is clear we won't receive useful data.
(cherry-picked from 4ef74caa5d96471d058bd1c9542d79ad58538da7)
|
|
After successfully fetching data over the network for an archive,
if the optional checksums are not provided, the code will throw if
there is a mismatch between the hash of the fetched data stream
and the provided content hash.
This commit fixes the issue by adding an additional check which
properly handles the possible mismatch.
(cherry-picked from 9acaa7f60c88c97f58b757ffb6ce206f3f2953a2)
|
|
(cherry-picked from 82e0bd818aee1ca8751e0abf20455af88cc513bf)
|
|
|
|
|
|
(cherry picked from 53ba5581070bc8914a35a5e16af901c562923e61)
|
|
... std::hash<fs::path> was first implemented in libstdc++
version 12. However, that change was also backported to
bug-fix release 11.4, so we may not include our
reimplementation if that version is used.
(cherry picked from 8fb4a41a63e5d195c2463ce0bc75e9d41cc0c5be)
|
|
The formatter is based on fmt's ostream_formatter, using the provided
operator<<(std::ostream&) of nlohmann::basic_json. This is required to
allow compilation against fmt 10.x
(cherry picked from 601d546b8452159c38d65231d52f0dbd05e793d2)
Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
|
|
|
|
|
|
... 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.
|
|
... to suppress 'unused function' warnings.
|
|
|
|
... by moving the diagnose and cli related code into to separate
libraries. In this way, we hopefully improve maintainability of
the code base.
|
|
...by moving subcommands code into separate libraries.
This maintains a cleaner code structure and lowers the build time
by improving target caching.
|
|
|
|
|
|
|
|
|
|
Similarly to tarballs, an autodetection option for zip-like
archives is added to enable a unified handling of both traditional
zip and 7zip formats. Thus, for "zip" archives just-mr uses now
this autodetection option.
|
|
Also updates the archive usage tests accordingly.
|
|
These are provided by the recently added liblzma external dependency.
|
|
We shouldn't exclude the possibility of receiving uncompressed
tarballs as repositories in just-mr. Therefore, we introduce an
explicit type that performs the autodetection (default behaviour
in just-mr). This is done to also be more in line with our
implementation which allows the granular handling of various
archive types (currently used only for testing purposes).
|
|
|
|
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.
|
|
|
|
|
|
|