summaryrefslogtreecommitdiff
path: root/doc/concepts
AgeCommit message (Collapse)Author
2024-04-24expressions: add "length" functionKlaus Aehlig
Lists are somtimes used in configurations as replacement for tuples. Providing length gives an easy way to detect usage errors.
2024-04-24expressions: add generic assertionsKlaus Aehlig
2024-04-16expression language: add array access by indexKlaus Aehlig
2024-04-12service-target-cache doc: Remove obsolete conceptPaul Cristian Sarbu
2024-03-26Expression language: add float operations "*" and "+"Klaus Aehlig
Numerical values are used at some places in justbuild: as value for timeout scaling, as well as by the "range" expression that is used, e.g., to define repreated test runs. Therefore, improve support for numerical values by adding basic operations.
2024-03-08doc: Improve description of "preferred hostnames"Oliver Reiche
2024-02-27symlinks design doc: Fix typoPaul Cristian Sarbu
2024-01-26doc: Extend 'just serve' design with absent roots sync changesPaul Cristian Sarbu
Adds documentation for the new proto requests required for the 'to_git' pragma root handling, as well as general syncing of root trees. Also adds clarifying comments on handling of absent roots by just-mr.
2024-01-18Document the implementation of tc deps tracking on gcKlaus Aehlig
2024-01-08doc: Extend just serve design with 'tree of a distdir' auxiliary requestPaul Cristian Sarbu
2023-12-15just serve design doc: Update and move to conceptsPaul Cristian Sarbu
2023-12-11Documentation for "configure" rule: clarify role of "config"Klaus Aehlig
... as an overlay for the configuration, not the configuration to be used for the target to configure.
2023-11-23Move blob-splitting design document to implemented conceptsSascha Roloff
2023-11-15target-cache.md: fix a typoAlberto Sartori
2023-11-14alternative-mirrors design doc: Move to concepts folderPaul Cristian Sarbu
...and reword content to move from proposal to implemented state.
2023-08-28Extend built-in "generic" rule to allow setting "sh"Klaus Aehlig
2023-08-14expression: add new built in "reverse"Klaus Aehlig
While a foldl is enough to implement a reverse functionality, adding it as a built in allows doing so in linear time.
2023-08-14expression: add new built in "set"Klaus Aehlig
... 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.
2023-08-10doc: Extend documentation with 'symlink' built-in rulePaul Cristian Sarbu
2023-08-07doc: Extended treatment of symlinks in roots and treesPaul Cristian Sarbu
We now allow restrictive use of upwards symbolic links when importing filesystem directories and archives to git.
2023-07-12Execution properties are no longer a future designKlaus Aehlig
... but an implemented concept. Update the documentation accordingly.
2023-06-28doc: Move non-upwards symlinks to conceptsPaul Cristian Sarbu
Also link it in the README.
2023-06-28doc: Fix description of built-in rule genericOliver Reiche
2023-06-26Add non-upwards symlinks in the rule language...Paul Cristian Sarbu
via a 'SYMLINK' constructor function. This works similarly to the 'FILE' construct, but the name given must point to a non-upwards symlink and a symlink artifact is being generated from it. Also updates the relevant tests.
2023-06-12doc: Minor format and consistency improvementsOliver Reiche
2023-06-12doc: Convert orgmode files to markdownOliver Reiche
2023-02-28Various typo fixesPaul Cristian Sarbu
Co-authored-by: Sascha Roloff <sascha.roloff@huawei.com>
2023-02-22docs: Fix typos in general documentationPaul Cristian Sarbu
2023-01-20Document the conepts behind garbage collectionKlaus Aehlig
2022-12-07Built-in rules: add a tree ruleKlaus Aehlig
... so that for every construct supported in rules there is an analogous one as a built-in rule to allow ad-hoc constructions without having to write a rule (even though writing a rule is recommended for everything occuring more than once): - the "generic" rule allows an ad-hoc ACTION, - the "file_gen" rule allows an ad-hoc BLOB, - the "tree" rule allows an an ad-hoc TREE, and - the "configure" rule allows an ad-hoc configuration transition.
2022-11-23Document the configuration transition in configureKlaus Aehlig
The built-in rule configure carries out a full configuration transition. While this is useful in quite a few situations, care has to be taken to avoid conflicts on dependencies also used in other ways by the calling target. Document this more clearly in the documentation.
2022-11-16Make "config" accept a computed targetKlaus Aehlig
... and thus allowing the "business logic" in the configuration target (e.g., setting defaults and derived options) to be shared by many targets.
2022-10-05Doc: Describe usage of 'configure' built-inOliver Reiche
2022-10-05Doc: Describe usage of 'env' expressionOliver Reiche
2022-08-19Add glob reference to source filesKlaus Aehlig
Like file or tree references, globs are restricted to the current module; in fact, by the way we evaluate them, even to the top-level directory of that module: a glob is a target having as artifacts and runfiles those entries of the top-level directory of the specified module that match the given pattern.
2022-07-12rules documentation: mention use cases for providersKlaus Aehlig
While there, fix a few typos in the same document as well.
2022-06-28Generic: add support for out_dirsAlberto Sartori
Before this patch, the built-in "generic" type allowed for just output files, listed in the field "outs". Now, the type also supports output directories, listed in the "out_dirs" field. The output directories are created before the command is executed.
2022-06-20Document the concept of target-level cachingKlaus Aehlig
2022-06-20Disallow comparison of namesKlaus Aehlig
In our semantics, it was always intended that names are completely opaque and only used by passing them to functions providing information about a target. However, we never enforced that they not be compared for equality, even though we always had this in mind, and the computation of the target-level cache key was designed with this semantics in mind. Enforce this restriction now.
2022-06-09fix typosAlberto Sartori
2022-06-01user-defined rules: describe the TREE functionKlaus Aehlig
In the defining expression of a rule, the TREE function is also available. Document this.
2022-05-31"enumerate" expression: add padding to 10 charactersKlaus Aehlig
2022-05-30Built-in expressions: add enumerateKlaus Aehlig
Add a function transforming a list into a map. In this way, artifacts collected positionally in a list can easily be realized as a stage used for input to an action or output of a target.
2022-05-24concepts: describe configurationKlaus Aehlig
2022-05-20overview over the most important concepts of the toolKlaus Aehlig
2022-05-10Document built-in rulesKlaus Aehlig
2022-05-09Built-in "to_subdir": interpret input keys as pathKlaus Aehlig
... and detect conflicts araising this way. Also normalize the paths after staging them to the specified subdir.
2022-05-09Verify conflict-freeness in inputs, artifacts, and runfilesKlaus Aehlig
Our maps serve two purposes: on the one hand, they can be a generic key-value association with arbitrary strings as keys. On the other hand, we use them to describe arrangements of files (inputs to actions, artifacts or runfiles generated). In this function, certain keys refer to the same path and hence have to be identifed. Therefore, at places where the keys clearly have to be paths in the file system, implicitly normalize them and check for conflicts.
2022-05-09doc/concepts/anonumous-targets.org: fix markupKlaus Aehlig
While there, also fix a few typos.
2022-04-26doc strings: support documentation of the resultKlaus Aehlig
A complete documentation of a rule should not only include how to use it (i.e., which fields are present and what is their meaning) but also what the result is. This is particularly true, as the result is structured and can contain some complex logic or conventions in the provided information.