summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-02Split off the expression_ptr interfaceKlaus Aehlig
So that we can, also for header-only libraries, always declare the direct dependencies without creating a cyclic dependency between entity_name_data and expressions.
2022-06-02Add missing direct dependenciesKlaus Aehlig
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-31improve file_system_manager testAlberto Sartori
test hard-link capabilities on self generated file instead of relying on right permissions of the input file.
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-24Tutorial: Add hello world sectionOliver Reiche
2022-05-24concepts: describe configurationKlaus Aehlig
2022-05-20overview over the most important concepts of the toolKlaus Aehlig
2022-05-12Libraries can only depend on other librariesKlaus Aehlig
... and headers should be treated as headers.
2022-05-12["data", "staged"] Allow direct dependenciesKlaus Aehlig
Add a "deps" field to ["data", "staged"] from which the runfiles also added, without being staged, e.g., another ["data", "staged"] target, possibly with a different stage. This allows convenient collection of files, logically put to different directories.
2022-05-12Ensure we also correctly handle tree conflicts between filesKlaus Aehlig
Not only trees, but also regular files can disallow paths reaching into them. If we have a file at a/b then another file at a/b/c is a staging conflict as well. Make our tool recognize this.
2022-05-12Ensure consistent path normalisationKlaus Aehlig
In particular, ensure that the empty path and "." have the same normal form.
2022-05-12bootstrap-tarverser: normalize paths before creating directoriesKlaus Aehlig
... so that destinations like "foo/." are handled correctly. Also, support linking to "." in trees by only late creation of the input directory.
2022-05-11Remove dead codeKlaus Aehlig
2022-05-10Document built-in rulesKlaus Aehlig
2022-05-09CLI: Fix use of multiple RE property optionsOliver Reiche
... which were all ignored except the last. CLI11 usually only calls the option function once all options have been parsed. This change ensures that the option function is called everytime the option is parsed.
2022-05-09external: Update CLI11 header-only library to latest versionOliver Reiche
... supporting trigger_on_parse() option, which allows to call option functions multiple times, instead of collecting the option values in a vector and processing this vector.
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-09Move path normalisation to a separate libraryKlaus Aehlig
... as it will be required outside the target map.
2022-05-09doc/concepts/anonumous-targets.org: fix markupKlaus Aehlig
While there, also fix a few typos.
2022-05-09allow for run tests in compatibility modeAlberto Sartori
2022-05-09log to Error level when remote is unreachableAlberto Sartori
2022-05-05just-mr: extend git environmentKlaus Aehlig
... and also use it for "git init" and "git add" as well, to avoid effects of unusual git configurations.
2022-05-04just: add --compatible also to "just analyse"Klaus Aehlig
One of the uses of "just analyse" is to obtain the action graph which also contains identifiers depending on the way artifacts are hashed, e.g., blobs or known artifacts. Therefore, make just analyse support compatible mode as well.
2022-05-04install: normalize dir pathsOliver Reiche
2022-05-04rules/CC: for compiler invocation, pass on ENVKlaus Aehlig
... as some compiler need access to the environemnt in order to find their utility programs (like cc1).
2022-05-02import git2: close header directory as a treeKlaus Aehlig
We assume that the git2 directory in the include-file path is owned by git2 and no other targets put files there. Document this by closing it up as a tree. (As a side effect we pass around fewer identifiers and reported runfiles list get easier to read.) Note that for the tree we can't use the TREE constructor, as, besides the source files, there is also a generated file contained in that directory.
2022-05-02Expression ['', 'field_runfiles']: ensure disjointnessKlaus Aehlig
... by using "disjoint_map_union" instead of "map_union" which has a latest-wins semantics and does not have a "msg" arguement.
2022-04-29add simple bash completion for targetsAlberto Sartori
2022-04-29rules: Perform disjoint map union in field_* expressionsOliver Reiche
... and replace all instances where the field_*_list variant of those expressions is used solely for the purpose of performing the disjoint union manually.
2022-04-28rules: Consistently use new provider expressionsOliver Reiche
2022-04-28rules: Add "link-args-deps" expressionOliver Reiche
... for collecting link-args from dependencies. By consistently using this expression, we fix an issue with C++ binary and test, which both did not collect the linker arguments from their proto-deps.
2022-04-28rules: Honor transition variable in *-deps expressionsOliver Reiche
2022-04-28rules: Add "field_map_provider" and "field_list_provider"Oliver Reiche
... to query and merge map/list entries from the provides map of the given target_fields' targets.
2022-04-28rules: Fix field_artifacts/field_runfiles expressions' docsOliver Reiche
2022-04-28improve bash completionAlberto Sartori
before this patch the completion from just install to install-cas did not work. this patch adds autocompletion to directories and files as well.
2022-04-27repos.json: add stronger checksums for files obtained via the networkKlaus Aehlig
2022-04-27just-mr: support additional hashes for fetched filesKlaus Aehlig
While git's (sha1-based) blob identifier is good for daily use and strong enough to avoid accidental hash collisions (after all, we're using git to version our sources), sha1 is no longer considered safe enough to verify files downloaded through an unsecure channel. Therefore, support additional checksum verification when obtaining a file from the network.
2022-04-27Remove ssl from bootstrap dependencyKlaus Aehlig
As our default (bundled) bootstrap brings a well defined version of ssl, use this also in the initial bootstrap step.
2022-04-27Remove libggit2 as host bootstrap dependencyKlaus Aehlig
Since in default (bundled) bootstrap, we bring our own version of libgit2, also use that for the initial bootstrap step.
2022-04-27bootstrap.py: support header dirs directly stagedKlaus Aehlig
Some libraries, e.g., libgit2, bring an include directory that is expected to occur directly in the search path (containing a git2 directory and a git2.h file). Support this use case by allowing "." as include_name in the bootstrap hints.
2022-04-27use kebab-case for all cmd line argsAlberto Sartori
2022-04-27Allow for better error reporting in case of a malformed targetAlberto Sartori
The expected size of the list that defines the target was not checked consistently. So, in case a target expected a list with 4 elements, but got just 3, a segfault would happen. This patch resolves this issue.
2022-04-27dump action command on DebugLevelAlberto Sartori
2022-04-26rules: Add field_artifacts_list and field_runfiles_listOliver Reiche
... which are more efficient if the caller wants to perform the union manually (because disjointness should be enforced or additional maps should be added to the union, etc.). As a positive side effect, code reuse is slightly increased by consistently calling these newly introduced expressions for obtaining the artifacts/runfiles from all targets of a target field.
2022-04-26rules: More flexible compile-deps and link-depsOliver Reiche
... which can now be parameterized which target_fields to query the dependencies from.
2022-04-26Rebuild: report full command lineKlaus Aehlig
With the reformating of the analyse result we accepted longer output lines anyway. Allowing them in the report of a detected flaky action immediately gets the log and console output more useful, as the source can often be identified without looking at the full definition of the action in the action graph.
2022-04-26Improve documenatation of our internal rulesKlaus Aehlig
In particular, document the result for the most important rules.