Age | Commit message (Collapse) | Author |
|
|
|
map itself
|
|
|
|
|
|
Also adds missing TARGETS file in serve_api folder and ensures
code comments are consistent with the proto file.
|
|
- add missing serve_api TARGETS file
- rename service client to align with server naming scheme
- fix inconsistencies in comments between implementation and protocol
|
|
This is required in order to make them available to 'just serve'
in a minimal just installation.
|
|
This way they can be used by 'just serve'.
|
|
This avoids using the more geenric GitRepoRemote method which
has libcurl as a dependency, something that is not needed for this
Git operation.
|
|
Also fixes a small typo in tree existence checker log messages.
|
|
Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>
|
|
|
|
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.
|
|
...of the internal cache used for keeping track of running operations.
|
|
...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.
|
|
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.
|
|
|
|
In order to not pollute builds, one should only store in the id
file the association between a commit and its *root* tree. As the
need for such a file only happens when asked to fetch absent
roots, which should be a quite rare use case, we can request the
whole tree of a commit to be served (incl. synced with remote
execution) and perform the subdir tree extraction locally instead.
|
|
|
|
|
|
This was causing the remote serve address to overwrite the one set
for remote execution.
Also, to keep things clean, some common remote server-related
methods and definitions were moved into their own library.
|
|
Using absent repositories depends on a just-serve endpoint. As
such, it is not a datum of the project, but one of the available
infrastructure. As the latter can change independently of the
project, it is desriable to have the option to specify those pieces
of information in separate files.
|
|
Just like the remote-execution protocol has several services (Execution,
ActionCache, ContentAddressableStorage, etc), so will the serve
protocol: the actual target-level caching, as well auxilliary
services, like the service to obtain the tree for a given root. Already
follow that scheme, before the protocol gets part of any release.
Also, move the status enum into the respective answer messages. In this
way, we can have different enums for different requests without causing
conflicts on the named enum constants.
|
|
server is started
|
|
... by also keeping the map of commit to tree locally.
|
|
The serve service will communicate with this endpoint when needed,
as well as ensure artifacts it provides are synced with the remote
execution CAS, if requested by the client.
If just-mr is given the --fetch-absent option, it Always produce
present roots irrespective of the 'absent' pragma. For Git repositories
marked with the 'absent' pragma, first try to fetch any commit
trees provided by the serve endpoint from the execution endpoint
CAS, before reverting to a network fetch.
Co-authored-by: Klaus Aehlig <klaus.aehlig@huawei.com>
Co-authored-by: Alberto Sartori <alberto.sartori@huawei.com>
|
|
This functionality will be needed to upload git trees
to a remote-execution end point by `just serve.
|
|
...via an 'absent' pragma in repository descriptions.
For 'git'-type repositories, first interrogates a 'just serve'
remote, if given, before reverting to fetching from the network.
|
|
|
|
|
|
...able to request the tree of a commit known to the remote.
|
|
Initial version, to be extended later with other RPCs.
|
|
|
|
|
|
|
|
|
|
The IsAvailable method with the correct signature is now called.
|
|
|
|
If a key has a map value, do not force all its subkeys to be
present.
Fixes changes brought in with supporting remote execution and
authentication options in just-mr.
|
|
There is no need to use the full format API, so avoid increasing
the compile time gratuitously.
|
|
|
|
|
|
... 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.
|
|
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
Co-authored-by: Oliver Reiche <oliver.reiche@huawei.com>
|
|
|
|
...for archives not already in local CAS.
|
|
This better separates the utility methods used in just-mr commands
and avoids any cyclic dependencies that might arise in new utility
methods requiring both existing utilities and the command-line
arguments.
|
|
These have similar meanings as in 'just', are forwarded to 'just'
subcommands that support them, and can be set also in the RC file
via appropriate fields.
|
|
... in the human-readable description. More precisely, for
any implicit target field, show
- the field documentation given (if any), and
- the resolved targets this field contains.
However, do not show the actual name of the field, as this name
is internal to the rule and not part of the interface.
|
|
|