diff options
author | Sascha Roloff <sascha.roloff@huawei.com> | 2023-06-20 11:28:28 +0200 |
---|---|---|
committer | Sascha Roloff <sascha.roloff@huawei.com> | 2023-06-23 18:51:01 +0200 |
commit | 903537d36fd3c5fa9a235eebf72e0e1d595bad00 (patch) | |
tree | c86534dbcc81c3676d88a48a28dd4bcb4cfaa2af /share | |
parent | 9d7a7d086783efe7d651e45c5125a743f00de263 (diff) | |
download | justbuild-903537d36fd3c5fa9a235eebf72e0e1d595bad00.tar.gz |
man pages: properly emphasize and quote arguments and other keywords in man pages
In order to consistently emphasize arguments and other keywords in man page as
well as markdown viewers, they should be wrapped in single asterisks and single
backticks like *`<argument>`*.
Diffstat (limited to 'share')
-rw-r--r-- | share/man/just-graph-file.5.md | 148 | ||||
-rw-r--r-- | share/man/just-import-git.1.md | 44 | ||||
-rw-r--r-- | share/man/just-mr-repository-config.5.md | 128 | ||||
-rw-r--r-- | share/man/just-mr.1.md | 99 | ||||
-rw-r--r-- | share/man/just-mrrc.5.md | 48 | ||||
-rw-r--r-- | share/man/just-repository-config.5.md | 56 | ||||
-rw-r--r-- | share/man/just.1.md | 355 |
7 files changed, 439 insertions, 439 deletions
diff --git a/share/man/just-graph-file.5.md b/share/man/just-graph-file.5.md index 66c3f8ae..640283a2 100644 --- a/share/man/just-graph-file.5.md +++ b/share/man/just-graph-file.5.md @@ -17,33 +17,34 @@ Artifacts and their serialization --------------------------------- There are four different kind of artifacts. The serialization of the -artifact is always a JSON object with two keys: `"type"` and `"data"`. -The value for `"type"` is always on of the strings `"LOCAL"`, `"KNOWN"`, -`"ACTION"`, or `"TREE"`. The value for `"data"` is a JSON object with -keys depending on which type the artifact is of. +artifact is always a JSON object with two keys: *`"type"`* and +*`"data"`*. The value for *`"type"`* is always on of the strings +*`"LOCAL"`*, *`"KNOWN"`*, *`"ACTION"`*, or *`"TREE"`*. The value for +*`"data"`* is a JSON object with keys depending on which type the +artifact is of. - - `"LOCAL"` artifacts refer to source files in a logical repository. + - *`"LOCAL"`* artifacts refer to source files in a logical repository. The describing data are - - the `"repository"`, given as its global name, and - - the `"path"`, given as path relative to the root of that + - the *`"repository"`*, given as its global name, and + - the *`"path"`*, given as path relative to the root of that repository. - - `"KNOWN"` artifacts are described by the hash of their content. The + - *`"KNOWN"`* artifacts are described by the hash of their content. The describing data are - - the `"file_type"`, which is a one-letter string, - - `"f"` for regular, non-executable files, - - `"x"` for executable files, or - - `"t"` for trees. - - the `"id"` specifying the (applicable) hash of the file given as + - the *`"file_type"`*, which is a one-letter string, + - *`"f"`* for regular, non-executable files, + - *`"x"`* for executable files, or + - *`"t"`* for trees. + - the *`"id"`* specifying the (applicable) hash of the file given as its hexadecimal encoding, a string, and - - the `"size"` of the artifact, a number, in bytes. - - `"ACTION"` artifacts are the outputs of actions. The defining data + - the *`"size"`* of the artifact, a number, in bytes. + - *`"ACTION"`* artifacts are the outputs of actions. The defining data are - - the `"id"`, a string with the name of the action, and - - the `"path"`, specifying the path of this output artifact, + - the *`"id"`*, a string with the name of the action, and + - the *`"path"`*, specifying the path of this output artifact, relative to the root of the action directory - - `"TREE"` artifacts refer to trees defined in the action graph. The + - *`"TREE"`* artifacts refer to trees defined in the action graph. The defining data are - - the `"id"`, a string with the name of the tree. + - the *`"id"`*, a string with the name of the tree. Actions and their serialization ------------------------------- @@ -55,71 +56,64 @@ values. For some data items default values are given; if the value for the respective item equals the default, the respective key-value pair may be omitted in the serialization. - - `"command"` specifies the command to be executed. It is a non-empty + - *`"command"`* specifies the command to be executed. It is a non-empty list of strings that forms the argument vector; the first entry is taken as program. This key is mandatory. - - - `"env"` specifies the environment variables the command should be + - *`"env"`* specifies the environment variables the command should be executed with. It is given as map from strings to strings. The default is the empty map. - - - `"input"` describes the files available to the action. The action - must not modify them in any way. They are specified as map from - paths to artifacts (the latter serialized as described). Paths have - to be relative paths and are taken relative to the working directory - of the action. The default is the empty map. - - - `"output"` describes the files the action is supposed to generate, - if any. It is given as a list of strings, each specifying a file - name by a path relative to the working directory of the action. The + - *`"input"`* describes the files available to the action. The action + must not modify them in any way. They are specified as map from paths + to artifacts (the latter serialized as described). Paths have to be + relative paths and are taken relative to the working directory of the + action. The default is the empty map. + - *`"output"`* describes the files the action is supposed to generate, + if any. It is given as a list of strings, each specifying a file name + by a path relative to the working directory of the action. The default is the empty list. However, every action has to produce some - form of output, so if `"output"` is empty, `"output_dirs"` cannot be - empty. - - - `"output_dirs"` describes the directory output of the action, if + form of output, so if *`"output"`* is empty, *`"output_dirs"`* cannot + be empty. + - *`"output_dirs"`* describes the directory output of the action, if any. It is given as a list of strings, each specifying the a directory name by a path relative to the working directory of the - action. The `"output_dirs"` may also specify directories from which - individual files are specified as `"output"`. The default value for - `"output_dirs"` is the empty list. However, every action to produce - some form of output, so if `"output_dirs"` is empty, `"output"` + action. The *`"output_dirs"`* may also specify directories from which + individual files are specified as *`"output"`*. The default value for + *`"output_dirs"`* is the empty list. However, every action to produce + some form of output, so if *`"output_dirs"`* is empty, *`"output"`* cannot be empty. - - - `"may_fail"` can either be `null` or a string. If it is a string, - the build should be continued, even if that action returns a - non-zero exit state. If the action returns a non-zero exit code, - that string should be shown to the user in a suitable way (e.g., - printing on the console). Otherwise (i.e., if no `"may_fail"` string - is given), the build should be aborted if the action returns a - non-zero exit code. The default for `"may_fail"` is `null`, i.e., - abort on non-zero exit code. - - - `"no_cache"` is a boolean. If `true`, the action should never be - cached, not even on success. The default is `false`. + - *`"may_fail"`* can either be *`null`* or a string. If it is a string, + the build should be continued, even if that action returns a non-zero + exit state. If the action returns a non-zero exit code, that string + should be shown to the user in a suitable way (e.g., printing on the + console). Otherwise (i.e., if no *`"may_fail"`* string is given), the + build should be aborted if the action returns a non-zero exit code. + The default for *`"may_fail"`* is *`null`*, i.e., abort on non-zero + exit code. + - *`"no_cache"`* is a boolean. If *`true`*, the action should never be + cached, not even on success. The default is *`false`*. The graph format ---------------- The action graph is given by a JSON object. - - The value for the key `"blobs"` is a list of strings. Those strings + - The value for the key *`"blobs"`* is a list of strings. Those strings should be considered known; they might (additionally to what was - agreed ahead of time as known) referred to as `"KNOWN"` artifacts. - - - The value for the key `"trees"` is a JSON object, mapping the names - of trees to their definition. The definition of a tree is JSON - object mapping paths to artifacts (serialized in the way described - earlier). The paths are always interpreted as relative paths, - relative to the root of the tree. It is not a requirement that a new - tree is defined for every subdirectory; if a path contains the - hierarchy separator, which is slash, then implicitly a subdirectory - is present, and all path going through that subdirectory contribute - to its content. It is, however, an error, if the a path is a prefix - of another one (with the comparison done in the canonical form of - that path). - - - The value for the key `"actions"` is a JSON object, mapping names of - actions to their respective definition (serialized as JSON). + agreed ahead of time as known) referred to as *`"KNOWN"`* artifacts. + + - The value for the key *`"trees"`* is a JSON object, mapping the names + of trees to their definition. The definition of a tree is JSON object + mapping paths to artifacts (serialized in the way described earlier). + The paths are always interpreted as relative paths, relative to the + root of the tree. It is not a requirement that a new tree is defined + for every subdirectory; if a path contains the hierarchy separator, + which is slash, then implicitly a subdirectory is present, and all + path going through that subdirectory contribute to its content. It + is, however, an error, if the a path is a prefix of another one (with + the comparison done in the canonical form of that path). + + - The value for the key *`"actions"`* is a JSON object, mapping names + of actions to their respective definition (serialized as JSON). Additional keys --------------- @@ -130,20 +124,20 @@ ignore those. Implementations writing action-graph files should be aware that a future version of this file format might give a specific meaning to those extra keys. -Graphs written by **just(1)** have the additional key `"origins"` in +Graphs written by **just(1)** have the additional key *`"origins"`* in each action. The value is a list of all places where this action was requested (so often, but not always, the list has length 1). Each such place is described by a JSON object with the following keys. - - `"target"` The target in which the action was requested. It is given - as a list, either a full qualified named target given as `"@"` - followed by global repository name, module, and target name, or an - anonymous target, given by `"#"` followed by a hash of the rule - binding and the node name. - - `"subtask"` The running number, starting from `0`, of the action, as + - *`"target"`* The target in which the action was requested. It is + given as a list, either a full qualified named target given as + *`"@"`* followed by global repository name, module, and target name, + or an anonymous target, given by *`"#"`* followed by a hash of the + rule binding and the node name. + - *`"subtask"`* The running number, starting from 0, of the action, as given by the (deterministic) evaluation order of he defining expression for the rule that defined the target. - - `"config"` The effective configuration for that target, a JSON + - *`"config"`* The effective configuration for that target, a JSON object. See also diff --git a/share/man/just-import-git.1.md b/share/man/just-import-git.1.md index c93bda4d..f3d143be 100644 --- a/share/man/just-import-git.1.md +++ b/share/man/just-import-git.1.md @@ -9,28 +9,29 @@ configuration SYNOPSIS ======== -just-import-deps \[OPTIONS\] URL \[foreign repository name\] +just-import-deps \[*`OPTION`*\]... *`URL`* \[*`foreign repository name`*\] DESCRIPTION =========== Extend an existing **just-mr-repository-config(5)** by adding one git repository. In doing so, the dependencies declared in the imported -repository are added as well and `"file"` repositories are transformed -to `"subdir"` parts of the imported repository. This solves the problem, -that a repository can refer to itself only as `"."` in a portable way. -The importing party, however, always knows the URL it is importing from. +repository are added as well and *`"file"`* repositories are transformed +to *`"subdir"`* parts of the imported repository. This solves the +problem, that a repository can refer to itself only as *`"."`* in a +portable way. The importing party, however, always knows the URL it is +importing from. The imported repositories are renamed in a way that no conflicts with already present repositories arise. The repositories pulled in as dependencies are named in a way to remind for which repositories they came as a dependency. This renaming is taken into account at all places -repositories are referred to, i.e., the `"bindings"` field, as well as +repositories are referred to, i.e., the *`"bindings"`* field, as well as roots defined by reference to other repositories. -Only the main parts of repositories are imported (`"repository"`, -`"bindings"`, names, and roots). The `"pragma"` part, as well as unknown -fields are dropped. +Only the main parts of repositories are imported (*`"repository"`*, +*`"bindings"`*, names, and roots). The *`"pragma"`* part, as well as +unknown fields are dropped. The repository to import is specified by its URL @@ -39,40 +40,41 @@ The resulting configuration is printed on standard output. OPTIONS ======= -**`--as`** NAME +**`--as`** *`NAME`* Specify the name the imported repository should have in the final configuration. If not specified, default to the name the repository has in the configuration file of the repository imported. In any case, the name is amended if it conflicts with an already existing name. -**`-b`** BRANCH +**`-b`** *`BRANCH`* The branch in the imported repository to use; this branch is also -recorded as the branch to follow. Defaults to `"master"`. +recorded as the branch to follow. Defaults to *`"master"`*. -**`-C`** CONFIGFILE +**`-C`** *`CONFIGFILE`* Use the specified file as the configuration to import into. The string -`-` is treated as a request to take the config from stdin; so a file -called `-` has to be described as `./-`, or similar. If not specified, -for a config file is searched in the same way, as `just-mr` does, when -invoved with **`--norc`**. +*`-`* is treated as a request to take the config from stdin; so a file +called *`-`* has to be described as *`.`*/*`-`*, or similar. If not +specified, for a config file is searched in the same way, as `just-mr` +does, when invoved with **`--norc`**. **`-h`**, **`--help`** Output a usage message and exit. -**`--map`** THEIRS OURS +**`--map`** *`THEIRS`* *`OURS`* Map repositories from the imported configuration to already existing ones. Those repositories are not imported (and the search for their transitive dependency is omitted) and instead the specified already existing repository is used. This is useful, if a sufficiently compatible repository already exists in the configuration. -**`-R`** RELPATH +**`-R`** *`RELPATH`* Use the file, specified by path relative to the repository root, as multi-repository specification in the imported repository. If not specifed, for a config file is searched in the same way as `just-mr` does, when invoked with **`--no-rc`**, however leaving out searches -relative to global roots (`"home"` and `"system"`). In other words, -`repos.json` and `etc/repos.json` are tried if this option is not given. +relative to global roots (*`"home"`* and *`"system"`*). In other words, +*`repos.json`* and *`etc/repos.json`* are tried if this option is not +given. **`--plain`** Pretend the foreign multi-repository specification is the canonical one diff --git a/share/man/just-mr-repository-config.5.md b/share/man/just-mr-repository-config.5.md index 32257c60..1720a19d 100644 --- a/share/man/just-mr-repository-config.5.md +++ b/share/man/just-mr-repository-config.5.md @@ -28,103 +28,107 @@ as a JSON object, or an implicit one, given as the global name of another repository, from which the workspace root can be inferred. Explicit workspace roots can be of several types, distinguishable by the -value of the key `"type"` in the JSON object. Depending on this value, +value of the key *`"type"`* in the JSON object. Depending on this value, other fields in the object are also supported. -### `"file"` +### *`"file"`* It defines as workspace root a directory on the file system. The following fields are supported: - - `"path"` provides the root directory containing the source files. + - *`"path"`* provides the root directory containing the source files. This entry is mandatory. - - `"ignore_special"` is a boolean signaling that the resulting root + - *`"ignore_special"`* is a boolean signaling that the resulting root should ignore all special (i.e., neither file, executable, nor tree) - entries. Defaults to `false` if missing or not evaluating to `true`. + entries. Defaults to *`false`* if missing or not evaluating to + *`true`*. -### `"archive"` / `"zip"` +### *`"archive"`* / *`"zip"`* They define as workspace root a remote archive. The only difference between the two types is the nature of the archive: a compressed tarball -in the case of `"archive"`, or a compressed zip file in the case of -`"zip"`. +in the case of *`"archive"`*, or a compressed zip file in the case of +*`"zip"`*. The following fields are supported: - - `"content"` provides the git blob hash of the archive file. This has - to be specified in hex encoding. This entry is mandatory. + - *`"content"`* provides the git blob hash of the archive file. This + has to be specified in hex encoding. This entry is mandatory. - - `"fetch"` specifies the URL to the remote archive. This entry is + - *`"fetch"`* specifies the URL to the remote archive. This entry is mandatory. - - `"distfile"` provides an alternative name for the archive file. This - entry is optional. If missing, the basename of the fetch URL is + - *`"distfile"`* provides an alternative name for the archive file. + This entry is optional. If missing, the basename of the fetch URL is used. - - `"sha256"`, + - *`"sha256"`*, - - `"sha512"` provide optional checksum hashes in order to verify the + - *`"sha512"`* provide optional checksum hashes in order to verify the integrity of the remote site archive. These have to be provided in hex encoding. These checks are only performed if the archive file is actually downloaded from the (potentially untrusted) network and not already available locally. - - `"subdir"` specifies the subdirectory withing the unpacked archive. - This entry is optional. If missing, the root directory of the - archive is used. + - *`"subdir"`* specifies the subdirectory withing the unpacked archive. + This entry is optional. If missing, the root directory of the archive + is used. - - `"ignore_special"` is a boolean signaling that the resulting root + - *`"ignore_special"`* is a boolean signaling that the resulting root should ignore all special (i.e., neither file, executable, nor tree) - entries. Defaults to `false` if missing or not evaluating to `true`. + entries. Defaults to *`false`* if missing or not evaluating to + *`true`*. -### `"git"` +### *`"git"`* It defines as workspace root a part of a Git repository. The following fields are supported: - - `"repository"` provides the URL of the Git repository. This entry is - mandatory. + - *`"repository"`* provides the URL of the Git repository. This entry + is mandatory. - - `"commit"` contains the commit hash. This has to be specified in hex - encoding. This entry is mandatory. + - *`"commit"`* contains the commit hash. This has to be specified in + hex encoding. This entry is mandatory. - - `"branch"` provides the branch name, with the promise that it + - *`"branch"`* provides the branch name, with the promise that it contains the aforementioned commit. This entry is mandatory. - - `"subdir"` specifies the subdirectory containing the distribution + - *`"subdir"`* specifies the subdirectory containing the distribution files. This entry is optional. If missing, the root directory of the Git repository is used. - - `"ignore_special"` is a boolean signaling that the resulting root + - *`"ignore_special"`* is a boolean signaling that the resulting root should ignore all special (i.e., neither file, executable, nor tree) - entries. Defaults to `false` if missing or not evaluating to `true`. + entries. Defaults to *`false`* if missing or not evaluating to + *`true`*. -### `"git tree"` +### *`"git tree"`* It defines as workspace root a known Git tree obtainable by a generic command. The following fields are supported: - - `"id"` provides the Git tree identifier. This entry is mandatory. + - *`"id"`* provides the Git tree identifier. This entry is mandatory. - - `"cmd"` provides a list of strings forming a command which promises + - *`"cmd"`* provides a list of strings forming a command which promises that, when executed in an empty directory (anywhere in the file system), creates in that directory a directory structure containing the promised Git tree (either top-level or in some subdirectory). This entry is mandatory. - - `"env"` provides a map of envariables to be set for executing the + - *`"env"`* provides a map of envariables to be set for executing the command. - - `"ignore_special"` is a boolean signaling that the resulting root + - *`"ignore_special"`* is a boolean signaling that the resulting root should ignore all special (i.e., neither file, executable, nor tree) - entries. Defaults to `false` if missing or not evaluating to `true`. + entries. Defaults to *`false`* if missing or not evaluating to + *`true`*. -### `"distdir"` +### *`"distdir"`* It defines as workspace root a directory with the distribution archives of the specified repositories. Usually this root is realized as a Git @@ -132,26 +136,27 @@ tree in the Git repository in `just`'s local build root. The following fields are supported: - - `"repositories"` provides a list of global names of repositories. + - *`"repositories"`* provides a list of global names of repositories. This entry is mandatory. - - `"ignore_special"` is a boolean signaling that the resulting root + - *`"ignore_special"`* is a boolean signaling that the resulting root should ignore all special (i.e., neither file, executable, nor tree) - entries. Defaults to `false` if missing or not evaluating to `true`. + entries. Defaults to *`false`* if missing or not evaluating to + *`true`*. ### Additional keys -The key `"pragma"` is reserved for type-specific repository directives +The key *`"pragma"`* is reserved for type-specific repository directives which alter the workspace root. It is given as a JSON object. The different workspace roots might support different keys for this object; unsupported keys are always ignored. -For a `"file"` workspace root, the pragma key `"to_git"` is supported. -If its value is `true`, it indicates that the workspace root should be -returned as a Git tree. If the root directory is already part of a Git -repository, its Git tree identifier is used; otherwise, the workspace -root will be realized as a Git tree in the Git repository in `just`'s -local build root. +For a *`"file"`* workspace root, the pragma key *`"to_git"`* is +supported. If its value is *`true`*, it indicates that the workspace +root should be returned as a Git tree. If the root directory is already +part of a Git repository, its Git tree identifier is used; otherwise, +the workspace root will be realized as a Git tree in the Git repository +in `just`'s local build root. Repository description ---------------------- @@ -162,32 +167,31 @@ rules, and expressions files, and bindings to other repositories. Specifically, the following fields are supported: - - `"repository"` contains a *workspace root description*. This entry + - *`"repository"`* contains a *workspace root description*. This entry is mandatory. - - `"target_root"`, + - *`"target_root"`*, - - `"rule_root"`, + - *`"rule_root"`*, - - `"expression_root"` define the root directories for the targets, - rules, and expressions, respectively. If provided, they are passed - on expanded to the workspace root of the repository named by their + - *`"expression_root"`* define the root directories for the targets, + rules, and expressions, respectively. If provided, they are passed on + expanded to the workspace root of the repository named by their value. - - `"target_file_name"`, + - *`"target_file_name"`*, - - `"rule_file_name"`, + - *`"rule_file_name"`*, - - `"expression_file_name"` refer to the name of the files containing + - *`"expression_file_name"`* refer to the name of the files containing the targets, rules, and expressions, respectively, located relative to the corresponding root directories. These entries are optional. If provided, they are passed on as-is. - - `"bindings"` provides a JSON object defining dependencies on other - repositories. The object's keys are strings defining local - repository names, while the values are the corresponding global - names of those repositories. If provided, this entry is passed on - as-is. + - *`"bindings"`* provides a JSON object defining dependencies on other + repositories. The object's keys are strings defining local repository + names, while the values are the corresponding global names of those + repositories. If provided, this entry is passed on as-is. Repository configuration format ------------------------------- @@ -195,10 +199,10 @@ Repository configuration format The repository configuration format is structured as a JSON object. The following fields are supported: - - `"main"` contains a JSON string that determines which of the + - *`"main"`* contains a JSON string that determines which of the provided repositories is considered the main repository. - - `"repositories"` contains a JSON object, where each key is the + - *`"repositories"`* contains a JSON object, where each key is the global name of a repository and its corresponding value is the *repository description*. diff --git a/share/man/just-mr.1.md b/share/man/just-mr.1.md index af5cd888..182397c0 100644 --- a/share/man/just-mr.1.md +++ b/share/man/just-mr.1.md @@ -9,14 +9,12 @@ just-mr - multi-repository configuration tool and launcher for SYNOPSIS ======== -just-mr \[OPTIONS\] mrversion -just-mr \[OPTIONS\] {setup|setup-env} \[**`--all`**\] \[main-repo\] -just-mr \[OPTIONS\] fetch \[**`--all`**\] \[**`-o`** fetch-dir\] \[main-repo\] -just-mr \[OPTIONS\] update \[repo...\] -just-mr \[OPTIONS\] do \[JUST ARGS\] -just-mr \[OPTIONS\] -{version|analyse|build|install|install-cas|describe|rebuild} -\[JUST ARGS\] +just-mr \[*`OPTION`*\]... mrversion +just-mr \[*`OPTION`*\]... {setup|setup-env} \[**`--all`**\] \[*`main-repo`*\] +just-mr \[*`OPTION`*\]... fetch \[**`--all`**\] \[**`-o`** *`fetch-dir`*\] \[*`main-repo`*\] +just-mr \[*`OPTION`*\]... update \[*`repo`*\]... +just-mr \[*`OPTION`*\]... do \[*`JUST_ARG`*\]... +just-mr \[*`OPTION`*\]... {version|analyse|build|install|install-cas|describe|rebuild} \[*`JUST_ARG`*\]... DESCRIPTION =========== @@ -39,67 +37,68 @@ General options **`-h`**, **`--help`** Output a usage message and exit. -**`-C`**, **`--repository-config`** PATH +**`-C`**, **`--repository-config`** *`PATH`* Path to the multi-repository configuration file. See **just-mr-repository-config(5)** for more details. If no configuration file is specified, `just-mr` will look for one in the following order: - - `$WORKSPACE_ROOT/repos.json` (workspace of the `just-mr` invocation) - - `$WORKSPACE_ROOT/etc/repos.json` (workspace of the `just-mr` + - *`$WORKSPACE_ROOT/repos.json`* (workspace of the `just-mr` invocation) + - *`$WORKSPACE_ROOT/etc/repos.json`* (workspace of the `just-mr` invocation) - - `$HOME/.just-repos.json` - - `/etc/just-repos.json` + - *`$HOME/.just-repos.json`* + - *`/etc/just-repos.json`* The default configuration lookup order can be adjusted in the just-mrrc file. See **just-mrrc(5)** for more details. -**`-D`**, **`--defines`** JSON +**`-D`**, **`--defines`** *`JSON`* Defines, via an in-line JSON object, an overlay configuration for **just(1)**; if used as a launcher for a subcommand known to support -**`--defines`**, this defines value is forwarded, otherwise it is ignored. -If **`-D`** is given several times, the **`-D`** options overlay (in the -sense of `map_union`) in the order they are given on the command line. +**`--defines`**, this defines value is forwarded, otherwise it is +ignored. If **`-D`** is given several times, the **`-D`** options +overlay (in the sense of *`map_union`*) in the order they are given on +the command line. -**`--local-build-root`** PATH +**`--local-build-root`** *`PATH`* Root for local CAS, cache, and build directories. The path will be created if it does not exist already. This option overwrites any values set in the **just-mrrc(5)** file. -Default: path `".cache/just"` in user's home directory. +Default: path *`".cache/just"`* in user's home directory. -**`--checkout-locations`** PATH +**`--checkout-locations`** *`PATH`* Specification file for checkout locations. This file contains a JSON -object, for which under the key `"<version control>"` of key -`"checkouts"` we get pairs of repository URLs as keys and absolute paths -as values. Currently supported version control is Git, therefore the -respective key is `"git"`. The paths contained for each repository URL -point to existing locations on the filesystem containing the checkout of -the respective repository. This options overwrites any values set in the -**just-mrrc(5)** file. -Default: file path `".just-local.json"` in user's home directory. - -**`-L`**, **`--local-launcher`** JSON_ARRAY +object, for which under the key *`"<version control>"`* of key +*`"checkouts"`* we get pairs of repository URLs as keys and absolute +paths as values. Currently supported version control is Git, therefore +the respective key is *`"git"`*. The paths contained for each repository +URL point to existing locations on the filesystem containing the +checkout of the respective repository. This options overwrites any +values set in the **just-mrrc(5)** file. +Default: file path *`".just-local.json"`* in user's home directory. + +**`-L`**, **`--local-launcher`** *`JSON_ARRAY`* JSON array with the list of strings representing the launcher to prepend actions' commands before being executed locally. -Default: `["env", "--"]`. +Default: *`["env", "--"]`*. -**`--distdir`** PATH +**`--distdir`** *`PATH`* Directory to look for distfiles before fetching. If given, this will be the first place distfiles are looked for. This option can be given multiple times to specify a list of distribution directories that are used for lookup in the order they appear on the command line. Directories specified via this option will be appended to the ones set in the **just-mrrc(5)** file. -Default: the single file path `".distfiles"` in user's home directory. +Default: the single file path *`".distfiles"`* in user's home directory. -**`--main`** NAME +**`--main`** *`NAME`* The repository to take the target from. -**`-f`**, **`--log-file`** PATH +**`-f`**, **`--log-file`** *`PATH`* Path to local log file. `just-mr` will store the information printed on stderr in the log file along with the thread id and timestamp when the output has been generated. -**`--log-limit`** NUM +**`--log-limit`** *`NUM`* Log limit (higher is more verbose) in interval \[0,6\] (Default: 3). **`--plain-log`** @@ -112,23 +111,23 @@ Append messages to log file instead of overwriting existing. Disable the default peer SSL certificate verification step when fetching archives (for which we verify the hash anyway) from remote. -**`--fetch-cacert`** PATH +**`--fetch-cacert`** *`PATH`* Path to the CA certificate bundle containing one or more certificates to be used to peer verify archive fetches from remote. -**`--just`** PATH -Name of the just binary in `PATH` or path to the just binary. -Default: `"just"`. +**`--just`** *`PATH`* +Name of the just binary in *`PATH`* or path to the just binary. +Default: *`"just"`*. -**`--rc`** PATH +**`--rc`** *`PATH`* Path to the just-mrrc file to use. See **just-mrrc(5)** for more details. -Default: file path `".just-mrrc"` in the user's home directory. +Default: file path *`".just-mrrc"`* in the user's home directory. -**`--git`** PATH -Path to the git binary in `PATH` or path to the git binary. Used in the -rare instances when shelling out to git is needed. -Default: `"git"`. +**`--git`** *`PATH`* +Path to the git binary in *`PATH`* or path to the git binary. Used in +the rare instances when shelling out to git is needed. +Default: *`"git"`*. **`--norc`** Option to prevent reading any **just-mrrc(5)** file. @@ -202,10 +201,10 @@ if a different repository type is given. The tool also fails if any of the given repository names are not found in the configuration file. For Git repositories, the subcommand will replace the value for the -`"commit"` field with the commit hash (as a string) found in the remote -repository in the specified branch. The output configuration file will -otherwise remain the same at the JSON level with the input configuration -file. +*`"commit"`* field with the commit hash (as a string) found in the +remote repository in the specified branch. The output configuration file +will otherwise remain the same at the JSON level with the input +configuration file. do -- diff --git a/share/man/just-mrrc.5.md b/share/man/just-mrrc.5.md index 6534a2be..dc901d16 100644 --- a/share/man/just-mrrc.5.md +++ b/share/man/just-mrrc.5.md @@ -17,77 +17,77 @@ same key are treated. Location objects ---------------- -A *location* is a JSON object with the keys `"root"`, `"path"`, and -`"base"`. +A *location* is a JSON object with the keys *`"root"`*, *`"path"`*, and +*`"base"`*. -The value for key `"root"` is either `"workspace"`, `"home"`, or -`"system"`, which have the following meanings: +The value for key *`"root"`* is either *`"workspace"`*, *`"home"`*, or +*`"system"`*, which have the following meanings: - - `"workspace"` refers to the root of the workspace in which the + - *`"workspace"`* refers to the root of the workspace in which the `just-mr` invocation was issued (not the workspace of the requested main repository). This location root is ignored if `just-mr` was not invoked from inside a workspace. - - `"home"` refers to the user's home directory. + - *`"home"`* refers to the user's home directory. - - `"system"` refers to the system root `/`. + - *`"system"`* refers to the system root *`/`*. -The value for key `"path"` is the relative path of the item to locate +The value for key *`"path"`* is the relative path of the item to locate within the location root. -The value for key `"base"` is a relative path within the location root. -This path is only relevant for locations of config files. If such a -config file contains relative paths, those will be resolved relative to -the specified base. If omitted, the default value `"."` is used. +The value for key *`"base"`* is a relative path within the location +root. This path is only relevant for locations of config files. If such +a config file contains relative paths, those will be resolved relative +to the specified base. If omitted, the default value *`"."`* is used. The just-mrrc format -------------------- The just-mrrc is given by a JSON object. - - The value for the key `"config lookup order"` is a JSON list of + - The value for the key *`"config lookup order"`* is a JSON list of location objects, specifying where to look for multi-repository configurations (see **just-mr-repository-config(5)** for more detail). The lookup is performed in the same order the location objects appear in the list. - - The value for the key `"local build root"` is a single location + - The value for the key *`"local build root"`* is a single location object, specifying the path to use as the local build root. For more details, see **just-mr(1)**. - - The value for the key `"checkout locations"` is a single location + - The value for the key *`"checkout locations"`* is a single location object, specifying the path to the file for checkout locations. For more details, see **just-mr(1)**. - - The value for the key `"distdirs"` is a JSON list of location + - The value for the key *`"distdirs"`* is a JSON list of location objects, specifying where to look for distribution files (usually collected via the subcommand `fetch`). The lookup is performed in the same order the location objects appear in the list. For more details, see **just-mr(1)**. - - The value for the key `"just"` is a single location object, + - The value for the key *`"just"`* is a single location object, specifying the path to the `just` binary to use for execution, if `just-mr` is used as a launcher. - - The value for the key `"git"` is a single location object, + - The value for the key *`"git"`* is a single location object, specifying the path to the git binary to use in the instances when `just-mr` needs to shell out. - - The value for the key `"local launcher"`, if given, is list of + - The value for the key *`"local launcher"`*, if given, is list of strings setting the default for local launcher for `just-mr`; command-line arguments take precedence over the value in the - configuration file. If the key `"local launcher"` is absent, the - default `["env", "--"]` is assumed. + configuration file. If the key *`"local launcher"`* is absent, the + default *`["env", "--"]`* is assumed. - - The value for the key `"log limit"`, if given, sets the default + - The value for the key *`"log limit"`*, if given, sets the default value for the log limit, that can be overridden by the command-line options. - - The value `"log files"`, if given, has to be a list of location + - The value *`"log files"`*, if given, has to be a list of location objects, specifying additional log files, on top of those specified on the command line. - - The value for the key `"just args"` is a JSON object. Its keys are + - The value for the key *`"just args"`* is a JSON object. Its keys are `just` subcommands and its value is a JSON list of strings. For the corresponding subcommand, these strings are prefixed to the `just` argument vector, if `just-mr` is used as a launcher. diff --git a/share/man/just-repository-config.5.md b/share/man/just-repository-config.5.md index 72f0fdcd..ed7cbbdf 100644 --- a/share/man/just-repository-config.5.md +++ b/share/man/just-repository-config.5.md @@ -17,60 +17,60 @@ defined how repetitions of the same key are treated. File root description --------------------- -Each repository can have multiple *file roots*. Each file root is +Each repository can have multiple *`file roots`*. Each file root is defined as a non-empty JSON list with its first element being a string, which determines the type and semantic of the subsequent elements: - - `"file"` refers to a file root that is located in the file system. + - *`"file"`* refers to a file root that is located in the file system. The list has to be of length 2 and the second argument contains the path to the file root. - - `"git tree"` refers to a file root that is available as part of a - Git repository. The list has to be of length 3 with the remaining - two elements being: + - *`"git tree"`* refers to a file root that is available as part of a + Git repository. The list has to be of length 3 with the remaining two + elements being: - 1. The *git tree hash*, which is sufficient to describe the content - of an entire tree including its sub-trees and blobs. The tree - hash has to be specified in hex encoding. + 1. The *`git tree hash`*, which is sufficient to describe the content + of an entire tree including its sub-trees and blobs. The tree hash + has to be specified in hex encoding. 2. The path to a Git repository on the file system with the promise - that it contains the aforementioned *git tree hash*. + that it contains the aforementioned *`git tree hash`*. Repository description ---------------------- -A single *repository description* is defined as a JSON object, which -contains *file roots*, file names, and bindings to other repositories. +A single *`repository description`* is defined as a JSON object, which +contains *`file roots`*, file names, and bindings to other repositories. Specifically the following fields are supported: - - `"workspace_root"` contains the *file root* where source files are - located. If this entry is missing for the main repository, `just` + - *`"workspace_root"`* contains the *`file root`* where source files + are located. If this entry is missing for the main repository, `just` will perform the normal workspace root resolution starting from the current working directory. - - `"target_root"` contains the *file root* where the target files are - located. If this entry is missing, the workspace root is taken. + - *`"target_root"`* contains the *`file root`* where the target files + are located. If this entry is missing, the workspace root is taken. - - `"target_file_name"` contains the file name of target files to use. - If this entry is missing, the default target file name `TARGETS` is + - *`"target_file_name"`* contains the file name of target files to use. + If this entry is missing, the default target file name *`TARGETS`* is used. - - `"rule_root"` contains the *file root* where the rule files are + - *`"rule_root"`* contains the *`file root`* where the rule files are located. If this entry is missing, the target root is taken. - - `"rule_file_name"` contains the file name of rule files to use. If - this entry is missing, the default rule file name `RULES` is used. + - *`"rule_file_name"`* contains the file name of rule files to use. If + this entry is missing, the default rule file name *`RULES`* is used. - - `"expression_root"` contains the *file root* where the expression + - *`"expression_root"`* contains the *`file root`* where the expression files are located. If this entry is missing, the rule root is taken. - - `"expression_file_name"` contains the file name of expression files + - *`"expression_file_name"`* contains the file name of expression files to use. If this entry is missing, the default expression file name - `EXPRESSIONS` is used. + *`EXPRESSIONS`* is used. - - `"bindings"` contains a JSON object that defines bindings to other + - *`"bindings"`* contains a JSON object that defines bindings to other repositories by mapping local repository names to global ones. The - object's key is local name, while the value is a string - representing the global name. + object's key is local name, while the value is a string representing + the global name. Note that any other unsupported field is accepted but ignored. There are no guarantees that any yet unsupported field may not become meaningful @@ -82,12 +82,12 @@ Repository configuration format The repository configuration format is a JSON object with the following keys: - - `"main"` contains a string, which defines the repository name to + - *`"main"`* contains a string, which defines the repository name to consider by default if not explicitly specified on the command line (i.e., via **`--main`**). This entry is optional and if omitted the empty string is used. - - `"repositories"` contains a JSON object that defines all + - *`"repositories"`* contains a JSON object that defines all repositories by mapping global repository names to *repository descriptions* documented above. This entry is optional and if omitted an empty JSON object is used. diff --git a/share/man/just.1.md b/share/man/just.1.md index 4417ad77..6d453cc2 100644 --- a/share/man/just.1.md +++ b/share/man/just.1.md @@ -9,14 +9,14 @@ SYNOPSIS ======== just version -just {analyse|build} \[OPTIONS\] \[\[module\] target\] -just install **`-o`** OUTPUT_DIR \[OPTIONS\] \[\[module\] target\] -just install-cas \[OPTIONS\] OBJECT_ID -just describe \[OPTIONS\] \[\[module\] target\] -just rebuild \[OPTIONS\] \[\[module\] target\] -just traverse **`-g`** GRAPH_FILE **`-o`** OUT_DIR \[OPTIONS\] -just gc \[OPTIONS\] -just execute \[OPTIONS\] +just {analyse|build} \[*`OPTION`*\]... \[\[*`module`*\] *`target`*\] +just install \[*`OPTION`*\]... **`-o`** *`OUTPUT_DIR`* \[\[*`module`*\] *`target`*\] +just install-cas \[*`OPTION`*\]... *`OBJECT_ID`* +just describe \[*`OPTION`*\]... \[\[*`module`*\] *`target`*\] +just rebuild \[*`OPTION`*\]... \[\[*`module`*\] *`target`*\] +just traverse \[*`OPTION`*\]... **`-o`** *`OUTPUT_DIR`* **`-g`** *`GRAPH_FILE`* +just gc \[*`OPTION`*\]... +just execute \[*`OPTION`*\]... DESCRIPTION =========== @@ -27,7 +27,7 @@ the relative location of the inputs is independent of their physical location. This staging allows taking sources from different locations (logical repositories), including bare git repositories. Targets are defined using JSON format, in proper files (by default, named -`TARGETS`). Targets are uniquely identified by their name, the +*`TARGETS`*). Targets are uniquely identified by their name, the repository, and the module they belong to. A module is the relative path from the repository target root directory to a subdirectory containing a target file. @@ -50,39 +50,39 @@ modules. The main repository is the repository containing the target specified on the command line. The main repository can either be read from the -multi-repository configuration file if it contains the key `main` or +multi-repository configuration file if it contains the key *`main`* or through the option **`--main`**. The command-line option **`--main`** overrides what is eventually read from the multi-repository configuration file. If neither the multi-repository configuration file -contains the `main` key nor the **`--main`** option is provided, the +contains the *`main`* key nor the **`--main`** option is provided, the lexicographical first repository from the multi-repository configuration file is used as main. -The `workspace_root` of the main repository is then defined as follows. -If the option **`--workspace-root`** is provided, then `workspace_root` -is set accordingly. If the option is not provided, `just` checks if it -is specified within the multi-repository configuration file. If it is, -then it is set accordingly. If not, just starts looking for a marker in -the current directory first, then in all the parent directories until it -finds one. The supported markers are +The *`workspace_root`* of the main repository is then defined as +follows. If the option **`--workspace-root`** is provided, then +*`workspace_root`* is set accordingly. If the option is not provided, +`just` checks if it is specified within the multi-repository +configuration file. If it is, then it is set accordingly. If not, just +starts looking for a marker in the current directory first, then in all +the parent directories until it finds one. The supported markers are - - ROOT file (can be empty, content is ignored) - - WORKSPACE (can be empty, content is ignored) - - .git (can be either a file - empty or not, content is ignored - or - the famous directory) + - *`ROOT`* file (can be empty, content is ignored) + - *`WORKSPACE`* (can be empty, content is ignored) + - *`.git`* (can be either a file - empty or not, content is ignored - + or the famous directory) If it fails, `just` errors out. -For non-main repositories, the `workspace_root` entry must be declared +For non-main repositories, the *`workspace_root`* entry must be declared in the multi-repository configuration file. -Afterwards, `target_root`, `rule_root`, and `expression_root` +Afterwards, *`target_root`*, *`rule_root`*, and *`expression_root`* directories for the main repository are set using the following strategy. If the corresponding command-line option is specified, then it is honored. Otherwise, it is read from the multi-repo configuration file. If it is not specified there, the default value is used. The -default value of `target_root` is `workspace_root`, of `rule_root` is -`target_root`, and of `expression_root` is `rule_root`. +default value of *`target_root`* is *`workspace_root`*, of *`rule_root`* +is *`target_root`*, and of *`expression_root`* is *`rule_root`*. Finally, the file names where `targets`, `rules`, and `expressions` are defined for the main repository. If the corresponding key is present in @@ -90,14 +90,14 @@ the multi-repository configuration file, it is set accordingly. If the user gives the corresponding command-line option, it overwrites what is eventually read from the configuration file. If they are not explicitly stated neither within the multi-repository configuration file nor on the -command line, the default values are used, which are `TARGETS`, `RULES`, -and `EXPRESSIONS`, respectively. +command line, the default values are used, which are *`TARGETS`*, +*`RULES`*, and *`EXPRESSIONS`*, respectively. For non-main repositories (i.e., repositories defining targets required -by the target given on the command line), `target_root`, `rule_root`, -`expression_root`, and file names of targets, rules and expressions, if -different from the default values, must be declared in the -multi-repository configuration file. +by the target given on the command line), *`target_root`*, +*`rule_root`*, *`expression_root`*, and file names of targets, rules and +expressions, if different from the default values, must be declared in +the multi-repository configuration file. SUBCOMMANDS =========== @@ -109,16 +109,16 @@ Print on stdout a JSON object providing version information about the version of the tool used. This JSON object will contain at least the following keys. - - `"version"` The version, as a list of numbers of length at least 3, + - *`"version"`* The version, as a list of numbers of length at least 3, following the usual convention that version numbers are compared lexicographically. - - `"suffix"` The version suffix as a string. Generally, suffixes - starting with a `+` symbol are positive offsets to the version, - while suffixes starting with a `~` symbol are negative offsets. - - `"SOURCE_DATE_EPOCH"` Either a number or `null`. If it is a number, - it is the time, in seconds since the epoch, of the last commit that - went into this binary. It is `null` if that time is not known (e.g., - in development builds). + - *`"suffix"`* The version suffix as a string. Generally, suffixes + starting with a + symbol are positive offsets to the version, while + suffixes starting with a *`~`* symbol are negative offsets. + - *`"SOURCE_DATE_EPOCH"`* Either a number or *`null`*. If it is a + number, it is the time, in seconds since the epoch, of the last + commit that went into this binary. It is *`null`* if that time is not + known (e.g., in development builds). analyse|build|install ----------------------- @@ -132,9 +132,9 @@ sequentially. ### analyse -`analyse` reads the target graph from TARGETS files for the given -target, computes the action graph (required by e.g., `build`, `install`, -`traverse`), and reports the artifacts, provides, and runfiles of the +analyse reads the target graph from *`TARGETS`* files for the given +target, computes the action graph (required by e.g., build, install, +traverse), and reports the artifacts, provides, and runfiles of the analysed target. In short, the `analyse` subcommand identifies all the steps required to @@ -151,8 +151,8 @@ computed through the `analyse` phase. If building locally, the building process is performed in temporary separate directories to allow for staging according to the logical path -described in the TARGETS file. Since artifacts are only stored in the -CAS, the user has to use either the `install` or `install-cas` +described in the *`TARGETS`* file. Since artifacts are only stored in +the CAS, the user has to use either the install or install-cas subcommand to get them. `just` allows for both local (i.e., on the same machine where `just` is @@ -168,10 +168,10 @@ artifacts. The `install` subcommand determines which (if any) actions need to be (re)done and issues the command to (re)run them. Then, it installs the artifacts (stored in the local or remote CAS) of the processed target -under the given output-dir (set by option **`-o`**) honoring the logical -path (aka, staging). If the output path does not exist, it will create -all the necessary folders and subfolders. If files are already present, -they will be overwritten. +under the given *`OUTPUT_DIR`* (set by option **`-o`**) honoring the +logical path (aka, staging). If the output path does not exist, it will +create all the necessary folders and subfolders. If files are already +present, they will be overwritten. rebuild ------- @@ -196,23 +196,23 @@ definition can also reside in a git-tree root. install-cas ----------- -`install-cas` fetches artifacts from CAS (Content Addressable Storage) -by means of their object identifier. The canonical format of an object -identifier is `[<hash>:<size>:<type>]`; however, when parsing an object -identifier, `install-cas` uses the following default rules, to make -usage simpler. +install-cas fetches artifacts from CAS (Content Addressable Storage) by +means of their *`OBJECT_ID`* (object identifier). The canonical format +of an object identifier is *`[<hash>:<size>:<type>]`*; however, when +parsing an object identifier, install-cas uses the following default +rules, to make usage simpler. - The square brackets are optional. - If the size is missing (e.g., because the argument contains no colon), or cannot be parsed as a number, this is not an error, and - the value `0` is assumed. While this is almost never the correct - size, many CAS implementations, including the local CAS of just - itself, ignore the size for lookups. - - From the type, only the first letter (`f` for non-executable file, - `x` for executable file, and `t` for tree) is significant; the rest - is ignored. If the type is missing (e.g., because the argument - contains less than two colons), or its first letter is not one of - the valid ones, `f` is assumed. + the value 0 is assumed. While this is almost never the correct size, + many CAS implementations, including the local CAS of just itself, + ignore the size for lookups. + - From the type, only the first letter (*`f`* for non-executable file, + *`x`* for executable file, and *`t`* for tree) is significant; the + rest is ignored. If the type is missing (e.g., because the argument + contains less than two colons), or its first letter is not one of the + valid ones, *`f`* is assumed. Depending on whether the output path is set or not, the behavior is different. @@ -251,7 +251,8 @@ traverse -------- It allows for the building and staging of requested artifacts from a -well-defined graph file. See **just-graph-file(5)** for more details. +well-defined *`GRAPH_FILE`*. See **just-graph-file(5)** for more +details. gc -- @@ -295,126 +296,126 @@ analyse|build|install-cas|install|rebuild|traverse|execute. Build configuration options --------------------------- -**`--action-timeout`** NUM +**`--action-timeout`** *`NUM`* Action timeout in seconds. (Default: 300). The timeout is honored only for the remote build. Supported by: build|install|rebuild|traverse. -**`-c`**, **`--config`** PATH +**`-c`**, **`--config`** *`PATH`* Path to configuration file. Supported by: analyse|build|describe|install|rebuild. -**`-C`**, **`--repository-config`** PATH +**`-C`**, **`--repository-config`** *`PATH`* Path to configuration file for multi-repository builds. See **just-repository-config(5)** for more details. Supported by: analyse|build|describe|install|rebuild|traverse. -**`-D`**, **`--defines`** JSON +**`-D`**, **`--defines`** *`JSON`* Defines, via an in-line JSON object a configuration to overlay (in the -sense of `map_union`) to the configuration obtained by the **`--config`** -option. If **`-D`** is given several times, the **`-D`** options overlay in -the order they are given on the command line. +sense of *`map_union`*) to the configuration obtained by the +**`--config`** option. If **`-D`** is given several times, the **`-D`** +options overlay in the order they are given on the command line. Supported by: analyse|build|describe|install|rebuild. -**`--request-action-input`** ACTION +**`--request-action-input`** *`ACTION`* Modify the request to be, instead of the analysis result of the requested target, the input stage of the specified action as artifacts, with empty runfiles and a provides map providing the remaining -information about the action, in particular as `"cmd"` the arguments -vector and `"env"` the environment. +information about the action, in particular as *`"cmd"`* the arguments +vector and *`"env"`* the environment. An action can be specified in the following ways - - an action identifier prefixed by the `%` character - - a number prefixed by the `#` character (note that it requires - quoting on most shells). This specifies the action with that index - of the actions associated directly with that target; the indices - start from `0` onwards, and negative indices count from the end of - the array of actions. + - an action identifier prefixed by the *`%`* character + - a number prefixed by the *`#`* character (note that it requires + quoting on most shells). This specifies the action with that index of + the actions associated directly with that target; the indices start + from 0 onwards, and negative indices count from the end of the array + of actions. - an action identifier or number without prefix, provided the action - identifier does not start with either `%` or `#` and the number does - not happen to be a valid action identifier. + identifier does not start with either *`%`* or *`#`* and the number + does not happen to be a valid action identifier. Supported by: analyse|build|describe|install|rebuild. -**`--expression-file-name`** TEXT +**`--expression-file-name`** *`TEXT`* Name of the expressions file. Supported by: analyse|build|describe|install|rebuild. -**`--expression-root`** PATH +**`--expression-root`** *`PATH`* Path of the expression files' root directory. Default: Same as **`--rule-root`**. Supported by: analyse|build|describe|install|rebuild. -**`-L`**, **`--local-launcher`** JSON_ARRAY +**`-L`**, **`--local-launcher`** *`JSON_ARRAY`* JSON array with the list of strings representing the launcher to prepend actions' commands before being executed locally. Default value: -`["env", "--"]` +*`["env", "--"]`* Supported by: build|install|rebuild|traverse|execute. -**`--local-build-root`** PATH +**`--local-build-root`** *`PATH`* Root for local CAS, cache, and build directories. The path will be created if it does not exist already. Supported by: build|install-cas|install|rebuild|traverse|gc|execute. -**`--main`** NAME +**`--main`** *`NAME`* The repository to take the target from. Supported by: analyse|build|describe|install|rebuild|traverse. -**`--rule-file-name`** TEXT +**`--rule-file-name`** *`TEXT`* Name of the rules file. Supported by: analyse|build|describe|install|rebuild. -**`--rule-root`** PATH +**`--rule-root`** *`PATH`* Path of the rule files' root directory. Default: Same as **`--target-root`** Supported by: analyse|build|describe|install|rebuild. -**`--target-file-name`** TEXT +**`--target-file-name`** *`TEXT`* Name of the targets file. Supported by: analyse|build|describe|install|rebuild. -**`--target-root`** PATH +**`--target-root`** *`PATH`* Path of the target files' root directory. Default: Same as **`--workspace-root`** Supported by: analyse|build|describe|install|rebuild. -**`-w`**, **`--workspace-root`** PATH +**`-w`**, **`--workspace-root`** *`PATH`* Path of the workspace's root directory. Supported by: analyse|build|describe|install|rebuild|traverse. General output options ---------------------- -**`--dump-artifacts-to-build`** PATH +**`--dump-artifacts-to-build`** *`PATH`* File path for writing the artifacts to build to. Output format is JSON map with staging path as key, and intentional artifact description as value. Supported by: analyse|build|install|rebuild. -**`--dump-artifacts`** PATH -Dump artifacts generated by the given target. Using `-` as PATH, it is -interpreted as stdout. Note that, passing `./-` will instead create a -file named `-` in the current directory. Output format is JSON map with -staging path as key, and object id description (hash, type, size) as -value. Each artifact is guaranteed to be KNOWN in CAS. Therefore, this -option cannot be used with `analyse`. +**`--dump-artifacts`** *`PATH`* +Dump artifacts generated by the given target. Using *`-`* as PATH, it is +interpreted as stdout. Note that, passing *`.`*/*`-`* will instead +create a file named *`-`* in the current directory. Output format is +JSON map with staging path as key, and object id description (hash, +type, size) as value. Each artifact is guaranteed to be *`KNOWN`* in +CAS. Therefore, this option cannot be used with analyse. Supported by: build|install|rebuild|traverse. -**`--dump-graph`** PATH +**`--dump-graph`** *`PATH`* File path for writing the action graph description to. See **just-graph-file(5)** for more details. Supported by: analyse|build|install|rebuild. -**`-f`**, **`--log-file`** PATH +**`-f`**, **`--log-file`** *`PATH`* Path to local log file. `just` will store the information printed on stderr in the log file along with the thread id and timestamp when the output has been generated. Supported by: analyse|build|describe|install|install-cas|rebuild|traverse|gc|execute. -**`--log-limit`** NUM +**`--log-limit`** *`NUM`* Log limit (higher is more verbose) in interval \[0,6\] (Default: 3). Supported by: analyse|build|describe|install|install-cas|rebuild|traverse|gc|execute. @@ -429,13 +430,13 @@ Append messages to log file instead of overwriting existing. Supported by: analyse|build|describe|install|install-cas|rebuild|traverse|gc|execute. -**`--expression-log-limit`** NUM +**`--expression-log-limit`** *`NUM`* In error messages, truncate the entries in the enumeration of the active environment, as well as the expression to be evaluated, to the specified number of characters (default: 320). Supported by: analyse|build|install -**`-P`**, **`--print-to-stdout`** LOGICAL_PATH +**`-P`**, **`--print-to-stdout`** *`LOGICAL_PATH`* After building, print the specified artifact to stdout. **`-s`**, **`--show-runfiles`** @@ -445,13 +446,13 @@ Supported by: build|install|rebuild|traverse. Output dir and path ------------------- -**`-o`**, **`--output-dir`** PATH +**`-o`**, **`--output-dir`** *`PATH`* Path of the directory where outputs will be copied. If the output path does not exist, it will create all the necessary folders and subfolders. If the artifacts have been already staged, they will be overwritten. Required by: install|traverse. -**`-o`**, **`--output-path`** PATH +**`-o`**, **`--output-path`** *`PATH`* Install path for the artifact. Refer to **install-cas** section for more details. Supported by: install-cas @@ -469,11 +470,11 @@ install|traverse|install-cas Parallelism options ------------------- -**`-J`**, **`--build-jobs`** NUM +**`-J`**, **`--build-jobs`** *`NUM`* Number of jobs to run during build phase. Default: same as **`--jobs`**. Supported by: build|install|rebuild|traverse. -**`-j`**, **`--jobs`** NUM +**`-j`**, **`--jobs`** *`NUM`* Number of jobs to run. Default: Number of cores. Supported by: analyse|build|describe|install|rebuild|traverse. @@ -485,13 +486,13 @@ also available for analysis. In this way, the same action identifiers can be achieved despite the extensional projection inherent to target level caching, e.g., in conjunction with **`--request-action-input`**. -**`--remote-execution-property`** KEY:VAL +**`--remote-execution-property`** *`KEY`*:*`VAL`* Property for remote execution as key-value pair. Specifying this option multiple times will accumulate pairs. If multiple pairs with the same key are given, the latest wins. Supported by: analyse|build|install|rebuild|traverse. -**`-r`**, **`--remote-execution-address`** NAME:PORT +**`-r`**, **`--remote-execution-address`** *`NAME`*:*`PORT`* Address of the remote execution service. Supported by: analyse|build|install-cas|install|rebuild|traverse. @@ -500,17 +501,17 @@ Authentication options Only TLS and mutual TLS (mTLS) are supported. -**`--tls-ca-cert`** PATH +**`--tls-ca-cert`** *`PATH`* Path to a TLS CA certificate that is trusted to sign the server certificate. Supported by: build|install-cas|install|rebuild|traverse|execute. -**`--tls-client-cert`** PATH +**`--tls-client-cert`** *`PATH`* Path to a TLS client certificate to enable mTLS. It must be passed in conjunction with **`--tls-client-key`** and **`--tls-ca-cert`**. Supported by: build|install-cas|install|rebuild|traverse. -**`--tls-client-key`** PATH +**`--tls-client-key`** *`PATH`* Path to a TLS client key to enable mTLS. It must be passed in conjunction with **`--tls-client-cert`** and **`--tls-ca-cert`**. Supported by: build|install-cas|install|rebuild|traverse. @@ -518,39 +519,39 @@ by: build|install-cas|install|rebuild|traverse. **analyse** specific options ---------------------------- -**`--dump-actions`** PATH -Dump actions to file. `-` is treated as stdout. Output is a list of +**`--dump-actions`** *`PATH`* +Dump actions to file. *`-`* is treated as stdout. Output is a list of action descriptions, in JSON format, for the given target. -**`--dump-anonymous`** PATH -Dump anonymous targets to file. `-` is treated as stdout. Output is a -JSON map, for all transitive targets, with two entries: `nodes` and -`rule_maps`. The former contains maps between node id and the node -description. `rule_maps` states the maps between the `mode_type` and the -rule to use in order to make a target out of the node. - -**`--dump-blobs`** PATH -Dump blobs to file. `-` is treated as stdout. The term `blob` identifies -a collection of strings that the execution back end should be aware of -before traversing the action graph. A blob, will be referred to as a -KNOWN artifact in the action graph. - -**`--dump-nodes`** PATH -Dump nodes of only the given target to file. `-` is treated as stdout. +**`--dump-anonymous`** *`PATH`* +Dump anonymous targets to file. *`-`* is treated as stdout. Output is a +JSON map, for all transitive targets, with two entries: *`nodes`* and +*`rule_maps`*. The former contains maps between node id and the node +description. *`rule_maps`* states the maps between the *`mode_type`* and +the rule to use in order to make a target out of the node. + +**`--dump-blobs`** *`PATH`* +Dump blobs to file. *`-`* is treated as stdout. The term *`blob`* +identifies a collection of strings that the execution back end should be +aware of before traversing the action graph. A blob, will be referred to +as a *`KNOWN`* artifact in the action graph. + +**`--dump-nodes`** *`PATH`* +Dump nodes of only the given target to file. *`-`* is treated as stdout. Output is a JSON map between node id and its description. -**`--dump-vars`** PATH -Dump configuration variables to file. `-` is treated as stdout. The +**`--dump-vars`** *`PATH`* +Dump configuration variables to file. *`-`* is treated as stdout. The output is a JSON list of those variable names (in lexicographic order) at which the configuration influenced the analysis of this target. This might contain variables unset in the configuration if the fact that they -were unset (and hence treated as the default `null`) was relevant for +were unset (and hence treated as the default *`null`*) was relevant for the analysis of that target. -**`--dump-targets`** PATH -Dump all transitive targets to file for the given target. `-` is treated -as stdout. Output is a JSON map of all targets encoded as tree by their -entity name: +**`--dump-targets`** *`PATH`* +Dump all transitive targets to file for the given target. *`-`* is +treated as stdout. Output is a JSON map of all targets encoded as tree +by their entity name: ``` jsonc { "#": // anonymous targets @@ -566,60 +567,60 @@ entity name: } ``` -**`--dump-export-targets`** PATH +**`--dump-export-targets`** *`PATH`* Dump all transitive targets to file for the given target that are export -targets. `-` is treated as stdout. The output format is the same as for -**`--dump-targets`**. +targets. *`-`* is treated as stdout. The output format is the same as +for **`--dump-targets`**. -**`--dump-targets-graph`** PATH +**`--dump-targets-graph`** *`PATH`* Dump the graph of configured targets to a file (even if it is called -`-`). In this graph, only non-source targets are reported. The graph is -represented as a JSON object. The keys are the nodes of the graph, and -for each node, the value is a JSON object containing the different kind -of dependencies (each represented as a list of nodes). +*`-`*). In this graph, only non-source targets are reported. The graph +is represented as a JSON object. The keys are the nodes of the graph, +and for each node, the value is a JSON object containing the different +kind of dependencies (each represented as a list of nodes). - - "declared" are the dependencies coming from the target fields in + - *`"declared"`* are the dependencies coming from the target fields in the definition of the target - - "implicit" are the dependencies implicit from the rule definition - - "anonymous" are the dependencies on anonymous targets implicitly + - *`"implicit"`* are the dependencies implicit from the rule definition + - *`"anonymous"`* are the dependencies on anonymous targets implicitly referenced during the evaluation of that rule While the node names are strings (so that they can be keys in a JSON object), they can themselves be decoded as JSON and in this way precisely name the configured target. More precisely, the JSON decoding of a node name is a list of length two, with the first entry being the -target name (as `["@", repo, - module, target]` or `["#", rule_map_id, node_id]`) and the second -entry the effective configuration. +target name (as *`["@", repo, module, target]`* or _`["#", rule_map_id, +node_id]`_) and the second entry the effective configuration. -**`--dump-trees`** PATH -Dump trees and all subtrees of the given target to file. `-` is treated -as stdout. Output is a JSON map between tree ids and the corresponding -artifact map, which maps the path to the artifact description. +**`--dump-trees`** *`PATH`* +Dump trees and all subtrees of the given target to file. *`-`* is +treated as stdout. Output is a JSON map between tree ids and the +corresponding artifact map, which maps the path to the artifact +description. **rebuild** specific options ---------------------------- -**`--vs`** NAME:PORT|"local" -Cache endpoint to compare against (use "local" for local cache). +**`--vs`** *`NAME`*:*`PORT`*|*`"local"`* +Cache endpoint to compare against (use *`"local"`* for local cache). -**`--dump-flaky`** PATH +**`--dump-flaky`** *`PATH`* Dump flaky actions to file. **traverse** specific options ----------------------------- -**`-a`**, **`--artifacts`** TEXT +**`-a`**, **`--artifacts`** *`TEXT`* JSON maps between relative path where to copy the artifact and its description (as JSON object as well). -**`-g`**, **`--graph-file`** TEXT `[[REQUIRED]]` +**`-g`**, **`--graph-file`** *`TEXT`* *`[[REQUIRED]]`* Path of the file containing the description of the actions. See **just-graph-file(5)** for more details. -**`--git-cas`** TEXT -Path to a Git repository, containing blobs of potentially missing KNOWN -artifacts. +**`--git-cas`** *`TEXT`* +Path to a git repository, containing blobs of potentially missing +*`KNOWN`* artifacts. **describe** specific options ----------------------------- @@ -633,32 +634,32 @@ Module and target arguments refer to a rule instead of a target. **execute** specific options ---------------------------- -**`-p`**, **`--port`** INT +**`-p`**, **`--port`** *`INT`* Execution service will listen to this port. If unset, the service will listen to the first available one. -**`--info-file`** TEXT +**`--info-file`** *`TEXT`* Write the used port, interface, and pid to this file in JSON format. If the file exists, it will be overwritten. -**`-i`**, **`--interface`** TEXT +**`-i`**, **`--interface`** *`TEXT`* Interface to use. If unset, the loopback device is used. -**`--pid-file`** TEXT +**`--pid-file`** *`TEXT`* Write pid to this file in plain txt. If the file exists, it will be overwritten. -**`--tls-server-cert`** TEXT +**`--tls-server-cert`** *`TEXT`* Path to the TLS server certificate. -**`--tls-server-key`** TEXT +**`--tls-server-key`** *`TEXT`* Path to the TLS server key. -**`--log-operations-threshold`** INT -Once the number of operations stored exceeds twice 2^n, where n is given -by the option **`--log-operations-threshold`**, at most 2^n operations -will be removed, in a FIFO scheme. If unset, defaults to 14. Must be in -the range \[0,255\]. +**`--log-operations-threshold`** *`INT`* +Once the number of operations stored exceeds twice *`2^n`*, where *`n`* +is given by the option **`--log-operations-threshold`**, at most *`2^n`* +operations will be removed, in a FIFO scheme. If unset, defaults to +14. Must be in the range \[0,255\]. EXIT STATUS =========== @@ -669,8 +670,8 @@ The exit status of `just` is one of the following values: - 1: the command could not complete due to some errors (e.g., compilation errors, missing arguments, syntax errors, etc.) - 2: the command successfully parsed all the needed files (e.g., - TARGETS), successfully compiled the eventually required objects, but - the generation of some artifacts failed (e.g., a test failed). + *`TARGETS`*), successfully compiled the eventually required objects, + but the generation of some artifacts failed (e.g., a test failed). See also ======== |