summaryrefslogtreecommitdiff
path: root/doc/concepts
AgeCommit message (Collapse)Author
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.
2022-04-25expression: add "msg" argument to "to_subdir"Klaus Aehlig
... allowing to provide additional information in case of conflict during flat staging.
2022-04-21Document the expression language used in our build toolKlaus Aehlig
2022-04-07Add basic documentation on build rulesKlaus Aehlig
2022-03-24Document our cache-pragmas for actionsKlaus Aehlig
... that allow us to treat builds and tests in a uniform way, basically by building a test report.
2022-03-24doc/concepts/anonymous-targets.org: fix org markup typoKlaus Aehlig
2022-03-22Add basic documentation for anonymous targetsKlaus Aehlig
2022-03-22Add documentation for the basic concepts of multi-repo buildsKlaus Aehlig
2022-03-22Document the way we use our documentation stringsKlaus Aehlig