summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Re-generate man pageschandan/depsChandan Singh2019-02-1221-21/+27
|
* _frontend: Allow printing dependencies using `bst show`Chandan Singh2019-02-123-1/+50
| | | | | | | | | | | | | | | | | | At present, there isn't an easy way to print anything from `bst show` that would give the users an idea of what the dependency graph looks like. One could use things like `--deps build`, but that will just print a list, without any information about the dependency edges. Add `%{deps}`, `%{build-deps}` and `%{runtime-deps}` format strings to `bst show` that would simply print the list of all dependencies, build dependencies and runtime dependencies respectively. Summary of changes: * buildstream/_frontend/cli.py: Add help for new format symbols. * buildstream/_frontend/widget.py: Add support for new format symbols for dependencies. * tests/frontend/show.py: Add tests for new format symbols.
* Merge branch 'juerg/buffer-size' into 'master'Jürg Billeter2019-02-122-3/+5
|\ | | | | | | | | Increase read buffer size to improve performance See merge request BuildStream/buildstream!1142
| * _cas/cascache.py: Increase buffer size in add_object()Jürg Billeter2019-02-121-2/+4
| | | | | | | | | | Increasing buffer size from 4 kB to 64 kB speeds up read() bandwidth by factor 4, according to a very simple benchmark.
| * utils.py: Increase buffer size in sha256sum()Jürg Billeter2019-02-121-1/+1
|/ | | | | Increasing buffer size from 4 kB to 64 kB speeds up read() bandwidth by factor 4, according to a very simple benchmark.
* Merge branch 'jjardon/allow_fail_WSL' into 'master'Jürg Billeter2019-02-111-0/+1
|\ | | | | | | | | .gitlab-ci.yml: allow "test-wsl" to fail until runner problems are sorted out See merge request BuildStream/buildstream!1145
| * .gitlab-ci.yml: Do not automatically run "test-wsl" until runner problems ↵jjardon/allow_fail_WSLJavier Jardón2019-02-111-0/+1
|/ | | | are sorted out
* Merge branch 'aevri/include-error' into 'master'Jürg Billeter2019-02-112-11/+68
|\ | | | | | | | | More user-friendly reporting on include errors See merge request BuildStream/buildstream!891
| * tests/format/include: remove unused tmpdir'saevri/include-errorAngelos Evripiotis2019-02-111-6/+6
| | | | | | | | | | Don't create and remove temp dirs unnecessarily when they are not used, looks like these were just copy-pastes without intended side-effects.
| * _includes: re-use file_path variableAngelos Evripiotis2019-02-111-1/+1
| | | | | | | | Avoid an unnecessary call to os.path.join().
| * _includes: better error on including directoryAngelos Evripiotis2019-02-112-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, include a directory result in an error like this: mydir is a directory. bst command expects a .bst file. Note that the file containing the include was not mentioned. Now we get an error like this instead: element.bst [line 12 column 0]: Include block references a directory instead of a file: 'mydir'.
| * _includes: better error on missing includeAngelos Evripiotis2019-02-112-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, a missing include would result in an error like this: Could not find file at not-a-file.include Note that the file containing the include was not mentioned. Now we get an error like this instead: element.bst [line 7 column 5]: Include block references a file that could not be found: 'not-a-file.include'.
| * _includes: better provenance on recursive includeAngelos Evripiotis2019-02-112-3/+6
|/ | | | Use the provenance of the include block, instead of the whole node.
* Merge branch 'snakeviz' into 'master'Jürg Billeter2019-02-111-18/+5
|\ | | | | | | | | contributing: snakeviz replaces pyflame+flamegraph See merge request BuildStream/buildstream!1129
| * contributing: snakeviz replaces pyflame+flamegraphsnakevizAngelos Evripiotis2019-02-111-18/+5
|/ | | | | | | | | | | | | Replace the instructions for pyflame+flamegraph with simpler ones for snakeviz. For our general use-case this seems to be easier and better. Usage of this tool was demonstrated at the 2019 BuildStream Gathering in January by Daniel Silverstone, when presenting the aggregate results of profiling on many target environments. Here is the relevant mailing list thread: "Profiling before the gathering" https://mail.gnome.org/archives/buildstream-list/2019-January/msg00057.html
* Merge branch 'juerg/symlinks' into 'master'Jürg Billeter2019-02-115-38/+43
|\ | | | | | | | | Symlink fixes See merge request BuildStream/buildstream!1138
| * tests/sources/local.py: Add directory symlink testJürg Billeter2019-02-111-0/+20
| |
| * _casbaseddirectory.py: Do not mimic os.walk() in list_relative_paths()Jürg Billeter2019-02-111-14/+1
| | | | | | | | | | | | This matches the change in utils.list_relative_paths() that now sorts all symlinks as files, instead of following the broken behavior of os.walk().
| * utils.py: Fix sorting of symlinks to directoriesJürg Billeter2019-02-111-13/+13
| | | | | | | | | | | | | | | | | | os.walk() resolves symlinks to check whether they point to a directory even when followlinks is set to False. We already work around that broken behavior by extracting symlinks from `dirnames`. However, the sort order was still incorrect as we returned symlinks in dirnames before files and other symlinks. This change fixes this, sorting all files and symlinks in a single list.
| * utils.py: Remove list_dirs parameter from list_relative_paths()Jürg Billeter2019-02-112-9/+7
| | | | | | | | | | | | | | | | list_dirs was always True in the BuildStream code base. There was also a bug in the list_dirs=False code path as it did not return symlinks in `dirnames`. This is an API break, however, there are no known external callers.
| * sandbox/sandbox.py: Do not follow symlinks in _has_command()Jürg Billeter2019-02-111-2/+2
| | | | | | | | This is required to ensure symlinks are not resolved on the host.
| * local.py: Do not follow symlinks in local directoriesJürg Billeter2019-02-111-3/+3
|/ | | | | isdir() follows symlinks on the host, resulting in potential host contamination. This change reorders the file checks to avoid this issue.
* Merge branch 'juerg/import' into 'master'Jürg Billeter2019-02-111-0/+4
|\ | | | | | | | | | | | | import.py: Validate config node Closes #662 See merge request BuildStream/buildstream!1141
| * import.py: Validate config nodejuerg/importJürg Billeter2019-02-101-0/+4
|/ | | | Fixes #662.
* Merge branch 'jjardon/fedora_27' into 'master'Jürg Billeter2019-02-091-6/+1
|\ | | | | | | | | .gitlab-ci.yml: Remove testing on Fedora 27 See merge request BuildStream/buildstream!1136
| * .gitlab-ci.yml: Remove testing on Fedora 27Javier Jardón2019-02-091-6/+1
|/ | | | | | Fedora 27 is EOL since 2018-11-30 See https://fedoraproject.org/wiki/End_of_life
* Merge branch 'abderrahim/artifact-cache-junction' into 'master'Javier Jardón2019-02-082-6/+11
|\ | | | | | | | | | | | | Use artifact cache specs from the parent project before those defined in junctions Closes #618 and #401 See merge request BuildStream/buildstream!1113
| * _project.py: use artifact caches from the parent project for junctionsabderrahim/artifact-cache-junctionAbderrahim Kitouni2019-02-082-5/+10
| | | | | | | | | | | | | | This makes a junction use the artifact cache of the parent project before the ones defined for the junction Fixes #401
| * _artifactcache.py: don't leak the project specific remote cachesAbderrahim Kitouni2019-02-081-1/+1
|/ | | | | | | the code for initializing remotes added the project specific remote caches to the global list instead of making a copy. Fixes #618
* Merge branch 'phil/plugin-testing-api' into 'master'Phil Dawson2019-02-08101-159/+274
|\ | | | | | | | | | | | | Expose basic api for testing external plugins. Closes #847 See merge request BuildStream/buildstream!1075
| * Expose basic api for testing external plugins.phil/plugin-testing-apiPhil Dawson2019-02-08101-159/+274
|/ | | | | | | | | | | | | | | | | | We want external plugins to be able to make use of the core testing utils. This commit exposes the basic utilities which are currently in use in bst-external plugins. If necessary, more utilities could be exposed in the future. Moves the following files from tests/testutils/ to buildstream/plugintestingutils/: o runcli.py o integration.py As part of this, this commit makes the following changes to runcli.py and integration.py: o runcli.py: Fix linting errors o runcli.py: Add user facing documentation o Integration.py: Add user facing documentation
* Merge branch 'willsalmon/log_formating' into 'master'Will Salmon2019-02-072-4/+19
|\ | | | | | | | | Add more log formatting options See merge request BuildStream/buildstream!1125
| * Add more log formatting optionsWilliam Salmon2019-02-072-4/+19
|/ | | | The 'wallclock-us' is a option that we thought we already had.
* Merge branch 'danielsilverstone-ct/other-roaring' into 'master'Benjamin Schubert2019-02-064-22/+18
|\ | | | | | | | | | | | | loadelement.py: Switch from roaringbitmap to pyroaring Closes #899 See merge request BuildStream/buildstream!1133
| * Update testing images to include c++ compilerBenjamin Schubert2019-02-061-13/+13
| |
| * loadelement.py: Switch from roaringbitmap to pyroaringDaniel Silverstone2019-02-063-9/+5
|/ | | | | | | | The licence for roaringbitmap was not compatible. pyroaring is a similar project which is MIT licensed and is slightly better on memory too. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'jonathan/wsl-tests' into 'master'Jonathan Maw2019-02-0622-86/+118
|\ | | | | | | | | | | | | Add pre-merge tests that use a WSL runner Closes #852 See merge request BuildStream/buildstream!1108
| * tests: Fix test failures caused by unix sockets' path length limitjonathan/wsl-testsJonathan Maw2019-02-061-1/+8
| | | | | | | | | | | | The unix specification for unix sockets only allocates ~100 characters for the length of the path. This may be longer than the path for a CI runner, or the path to a user's buildstream directory.
| * tests: Skip tests that use sandboxes on WSLJonathan Maw2019-02-0620-85/+96
| |
| * gitlab-ci: Add commands to be run by WSL runnersJonathan Maw2019-02-061-0/+14
|/
* Merge branch 'danielsilverstone-ct/roaring-bitmaps' into 'master'Benjamin Schubert2019-02-053-3/+18
|\ | | | | | | | | Switch to roaring bitmaps for the loader dependency caches See merge request BuildStream/buildstream!1128
| * loadelement.py: Use roaring bitmaps in dep cacheDaniel Silverstone2019-02-051-3/+12
| | | | | | | | | | | | | | | | | | | | | | The dependency cache in LoadElement causes the peak RAM consumption of the loader to be exceedingly large, upwards of 25GB for a test of a Debian stack. By switching from the old dict cache to a roaring bitmap based cache, we reduce the cost of the loader cache in RAM terms to around 5.5GB for the same stack, which makes it plausible for the short term. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * requirements: Add roaringbitmap to the requirementsDaniel Silverstone2019-02-052-0/+6
|/ | | | | | | In order to support use of roaring bitmaps in the loader, we need to depend on it here. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'tpollard/buildremote' into 'master'Tom Pollard2019-02-056-6/+107
|\ | | | | | | | | Add --remote, -r option to bst build, inline with pull & push See merge request BuildStream/buildstream!1119
| * Add --remote, -r option to bst build, inline with pull & pushTom Pollard2019-02-056-6/+107
|/ | | | | | Providing a remote will limit build's pull/push remote actions to the given remote specifically, ignoring those defined via user or project configuration.
* Merge branch 'jennis/warn_for_nonexistent_domains' into 'master'James Ennis2019-02-045-4/+49
|\ | | | | | | | | Fail when we explictly try to include/exclude non-existent domains in a filter element See merge request BuildStream/buildstream!1117
| * filter.py: Fail if declared domains do not exist in the parent elementjennis/warn_for_nonexistent_domainsJames Ennis2019-02-045-4/+49
|/ | | | | | | | | This patch also uncovered the fact that our test_filter_deps_ok() test has been inaccurate. Thus the element built in this test (deps-permitted.bst) has been modified so that it build depends on the input.bst element, as it should. tests/filter.py: Ensure deps_ok test passes
* Merge branch 'jennis/filter-docs' into 'master'James Ennis2019-02-012-21/+124
|\ | | | | | | | | | | | | Improve our filter documentation Closes #278 See merge request BuildStream/buildstream!1112
| * filter.py: Add an example to the documentationjennis/filter-docsJames Ennis2019-02-011-3/+105
| |
| * filter.py/filter.yaml: Documentation improvementsJames Ennis2019-02-012-21/+22
|/