Age | Commit message (Collapse) | Author |
|
- in sequence containers, use operator[] instead of .at() when
accessing indices guaranteed to be in bound;
- in associative containers, prefer .find() and reusing the
returned const iterator to using .contains() and .at(); while
there, make any so obtained iterators const if they are read-only.
|
|
... by explicitly catching any possible exception. Mainly to make clang-tidy
happy.
...
|
|
|
|
...with respect to rejecting invalid entries such as upwards
symlinks. Also ensure that valid trees are only checked once by
remebering known valid tress though marker files in local storage.
|
|
...whenever it is given access to a Git repository.
The referenced storage config needs to outlive the repository
config instance.
|
|
This allows individual blobs read to be checked, e.g., for upwards
symlinks, also when not part of a tree, which performs such a
validation for its entries during its parsing into a GitTree.
|
|
This fixes a bug in which the setup root was falsely being changed
by unconditionally searching early for a default configuration
files, despite one being explicitly provided at the command line.
|
|
|
|
|
|
...when calling std::filesystem::weakly_canonical, since the latter converts the argument path to an absolute path internally.
|
|
While our traverser correctly keeps separate identifier spaces for
those entities, having disjoint identifiers allows easier reading
of log messages and more simple reporting of origins of actions.
|
|
|
|
|
|
... that, like trees, are given by their identifier.
|
|
|
|
|
|
... so far only keeping track basic properties of the invocation.
Still, the code is already organized to support future extensions;
in particular, we do not have to rely on the Profile class
being copyable.
|
|
If --dump-graph or --dump-plain-graph is given several times, the
action graph wil also be written several times. In this way, regular
use of those options will not be affected by adding them implicitly
through invocation-logging options in the rc file.
|
|
|
|
...to remove code duplication.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To properly use `just serve`, both the client and the serve instance
must talk to the very same execution endpoint. Typically, both the
client and serve can reach out to the execution endpoint via the same
IP address. However, it might be possible that the client and a serve
instance know the same execution endpoint by means of differnet IP
addresses. For example, the client knows the execution endpoint
address through an _external_ IP address, while the serve instance,
deployed within the same network infrastructure, only knows the
_internal_ IP address.
This patch adds the subkey `"client address"` -- of the key
`"execution endpoint"` -- in the serve configuration file, to specify
the alternative pair `address:port` used by the client.
|
|
|
|
|
|
Trying to access a git object return a recoverable failure, hence
the failure to find the object in the git object database should
be logged at warning level at most. Moreover, in some cases we
should log that event at an even lower level, e.g., if we're just
checking the presence of the object in the local git cas to avoid
unnecessary network access.
|
|
... allowing to print the unique artifact built (if any). This
allows convenient inspection of the build result of targets that
define precisely one artifact.
|
|
|
|
|
|
|
|
|
|
... as there might be cases where it is expected that setting the
git CAS fails, e.g., if referring to the implict git repository in
the local build root as a fallback CAS.
|
|
As analysis now can compute roots, i.e., can build artifacts, it
needs to support setting the local launcher, action timeout, and
the build jobs.
The stage and rebuild arguments, which are also needed by the graph
traversal, as well as other build-related arguments, remain not
supported for the analysis subcomamnd, however they remain honored
if set by subcommands that trigger an implicit analysis (e.g.,
build or install).
|
|
|
|
|
|
The class RepositoryConfig is mutable, but has a set-once derived
value, the largest bisimulation of the repositories described. This
construction is problematic in that it assumes that all modifications
be done before the first inspection of a value happens that implicitly
triggers the setting of the derived value. Therefore, at the very
least reset this derived value if a repository is modified.
|
|
|
|
In some situations, we use a retry strategy, but in case of complete
failure have another way of attempting that task. In this case, we
should not emmit an error message right away. Add support for this.
|
|
... instead of relying on those dependencies being pulled in
indirectly.
|
|
|
|
The digest tree check should take into account the protocol.
Also add a TODO to point out the currently needed code duplication.
|
|
The origins of actions are useful for understanding the action
graph; if, however, the action graph is only to be used for further
computaiton, this is unnecessary information. Therefore, add an
option to dump the action graph without origins.
|
|
...and private members using lower_case_
|