summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Overhaul internal messaging APIQinusty/message-helpersTristan Maat2018-10-3111-170/+209
|
* Merge branch 'jonathan/debug-remote-failed-builds' into 'master'Jonathan Maw2018-10-3012-69/+174
|\ | | | | | | | | Jonathan/debug remote failed builds See merge request BuildStream/buildstream!869
| * tests: Add tests for 'bst shell --sysroot'Jonathan Maw2018-10-301-0/+29
| | | | | | | | This is related to #539
| * NEWS: Add item for bst shell --sysroot changesJonathan Maw2018-10-301-0/+4
| |
| * element: Make "--sysroot" take a bare directoryJonathan Maw2018-10-303-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i.e. instead of taking a directory that must contain "root" and "scratch", and treating "root" as the root, use the directory directly. In element.py: * __sandbox takes the `bare_sandbox` arg, to pass into the sandbox's constructor In sandbox.py: * If bare_sandbox, `_root` is the passed-in directory, and `__scratch` is None. * Trying to use `__scratch` when bare_sandbox is True is a bug. In _mount.py: * Don't get the value of `__scratch` if it's not needed. This is part of #539
| * sandbox.py: Remove redundant Sandbox.__directoryJonathan Maw2018-10-301-2/+1
| |
| * tests: Add test that cached build trees are staged in build shellsJonathan Maw2018-10-303-0/+105
| | | | | | | | This is related to #539
| * NEWS: Add item for cached buildtree behaviourJonathan Maw2018-10-301-0/+5
| |
| * Element: Use cached buildtree in build shells and failure shellsJonathan Maw2018-10-305-21/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes changes in app.py: * Interactive failure shell no longer uses the failed build sysroot, defaulting to the cached build tree. Changes in element.py are: * Errors caused by building don't store the failed build sysroot, instead storing that a sandbox can be created to debug the error. * When staging sources, will stage the element's cached build tree if it exists. Changes in _exceptions.py: * BstError.sandbox is now a flag of whether a sandbox can be opened up to debug the error. Changes in widget.py: * Don't try to print any information about the sandbox. Changes in _message.py: * Fix documentation so Message.sandbox is not a directory any more. This is part of #539
| * element.py: Always clean up the rootdirJonathan Maw2018-10-302-44/+2
|/ | | | | | | | | | | | | We shouldn't need it to persist now that we cache failed build dirs. This change breaks the test `tests/integration/shell.py::test_sysroot_workspace_visible`. I can no longer see a use-case for this test. AIUI, it tested that the failed build sysroot stored in the builddir has the workspace's files in, despite the workspace being unmounted. I believe this behaviour is made redundant by cached buildtrees. This fixes part of #539
* Merge branch 'tristan/architecture-docs' into 'master'Tristan Van Berkom2018-10-2941-3/+8384
|\ | | | | | | | | Tristan/architecture docs See merge request BuildStream/buildstream!907
| * doc: Moved cachekey and sandboxing writings into the architecture sectionTristan Van Berkom2018-10-294-2/+2
| |
| * doc: Adding new architecture document about how the scheduler works.Tristan Van Berkom2018-10-2910-0/+2126
| |
| * doc: Adding new architecture document about highlevel program flowTristan Van Berkom2018-10-294-0/+1831
| |
| * doc: Adding new architecture document describing the dependency modelTristan Van Berkom2018-10-298-0/+904
| |
| * doc: Adding new architecture document describing the data modelTristan Van Berkom2018-10-2912-0/+1437
| |
| * doc: Adding new architecture document with initial "Overview of modules" sectionTristan Van Berkom2018-10-295-0/+2078
| |
| * MANIFEST.in: Include SVG and ODG files in source distributionsTristan Van Berkom2018-10-291-0/+2
| |
| * doc/source/format_intro.rst: Adding link anchor for include directivesTristan Van Berkom2018-10-291-0/+3
| |
| * doc/source/conf.py: Added `images` directory for statically included filesTristan Van Berkom2018-10-291-1/+1
|/
* Merge branch 'bschubert/fix-binary-output-capture' into 'master'Benjamin Schubert2018-10-293-11/+18
|\ | | | | | | | | | | | | Don't close stdout when running 'checkout' to stdout Closes #486 See merge request BuildStream/buildstream!905
| * tests/frontend/buildcheckout.py: Enable test_build_checkout_tarball_stdoutdanielsilverstone-ct/preserve-stdoutbschubert/fix-binary-output-captureDaniel Silverstone2018-10-261-2/+1
| | | | | | | | | | | | | | With the new support for saving the stdout FDs cleanly, and binary mode capture in runcli, enable the tarball-to-stdout test. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * tests/testutils/runcli.py: Support binary-mode capture of stdoutDaniel Silverstone2018-10-261-6/+7
| | | | | | | | | | | | | | | | In order to test things which write tarballs to stdout correctly, we need to capture the binary output cleanly. This ensures we're not potentially mismatching encodings in and out. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _stream.py: Preserve stdout FD across checkout-to-stdoutDaniel Silverstone2018-10-261-3/+10
|/ | | | | | | | In order to support things which might need to use the stdout FD after checkout has completed writing a tarball to it, preserve it by means of `os.dup()` and `os.dup2()` Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'valentindavid/ruamel_warnings' into 'master'Valentin David2018-10-261-2/+2
|\ | | | | | | | | Fix some ruamel warnings during tests See merge request BuildStream/buildstream!889
| * Fix some ruamel warnings during testsValentin David2018-10-261-2/+2
|/
* Merge branch 'danielsilverstone-ct/yaml-sentinel-rework' into 'master'James Ennis2018-10-264-18/+7
|\ | | | | | | | | Move _sentinel from utils.py to _yaml.py See merge request BuildStream/buildstream!903
| * various: Move _sentinel from utils.py to _yaml.pyDaniel Silverstone2018-10-264-18/+7
|/ | | | | | | | | The `_sentinel` in `utils.py` was used only for yaml node tracking. As such, simplify matters by removing it from `utils.py` and move it to `_yaml.py` which means that we no longer need to try and avoid a circular import issue by means of runtime importing. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'jennis/another_docs_patch' into 'master'James Ennis2018-10-261-3/+42
|\ | | | | | | | | More information regarding the use of systemd to manage the cache See merge request BuildStream/buildstream!904
| * docs: Add more information to "managing the cache with systemmd" sectionJames Ennis2018-10-261-3/+36
| |
| * using_configuring_artifact_server.rst: Fix lines that are too longJames Ennis2018-10-261-3/+9
|/
* Merge branch 'danielsilverstone-ct/use-enumerate' into 'master'Phil Dawson2018-10-261-5/+3
|\ | | | | | | | | _loader/loadelement.py: Use enumerate() in dependency extraction See merge request BuildStream/buildstream!901
| * _loader/loadelement.py: Use enumerate() in dependency extractiondanielsilverstone-ct/use-enumerateDaniel Silverstone2018-10-261-5/+3
|/ | | | | | | | | In cases where elements end up with large numbers of dependencies, the n-squared performance in `_extract_depends_from_node` can produce significant delays during project load. This patch corrects that. In addition we were double-retrieving provenance which was unnecessary. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'bschubert/fix-command-sandbox' into 'master'Benjamin Schubert2018-10-263-8/+12
|\ | | | | | | | | | | | | Check is command is a str and replace by list before checking existence Closes #728 See merge request BuildStream/buildstream!898
| * Check if command is a str and replace by list before checking existenceBenjamin Schubert2018-10-263-8/+12
|/ | | | | | | | Currently we would make sure the sandbox had a command before converting it to a list if it was given as a string. That meant that a string command would never exist and the check be invalid. This also adds the same logic in the dummy sandbox for consistency.
* Merge branch 'danielsilverstone-ct/do-not-reinsert-yaml' into 'master'Jonathan Maw2018-10-261-3/+2
|\ | | | | | | | | _yaml.py: Do not insert into cache if retrieved from cache See merge request BuildStream/buildstream!902
| * _yaml.py: Do not insert into cache if retrieved from cacheDaniel Silverstone2018-10-261-3/+2
|/ | | | | | | | We were unconditionally inserting into the yaml cache anything we had retrieved from the yaml cache. This had the side-effect of being expensive on re-runs of commands where yaml hadn't changed. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'chandan/source-doc-directory' into 'master'Chandan Singh2018-10-2523-34/+63
|\ | | | | | | | | | | | | plugins: Don't redundantly document common configurations Closes #713 See merge request BuildStream/buildstream!896
| * build elements: Add reference to BuildElement's built-in configchandan/source-doc-directoryChandan Singh2018-10-2512-0/+35
| | | | | | | | | | | | | | | | | | | | | | For each element plugin derived from BuildElement, add reference to the built-in functionality documentation of BuildElement. * buildelement.py: Add anchor for built-in functionality. * plugins/elements/*.py: Add refence to BuildElement's built-in functionality for each build element. Related to #713.
| * sources: Don't redundantly document directory configurationChandan Singh2018-10-2511-34/+28
|/ | | | | | | | | | | | Instead of redundantly documenting "directory" configuration option in each source plugin, refer to the built-in functionality documentation of the Source class. * source.py: Add anchor for built-in functionality. * sources/plugins/*.py: Remove directory config option, and add reference to Source's built-in functionality. Fixes #713.
* Merge branch 'danielsilverstone-ct/fix-lint-issues' into 'master'Chandan Singh2018-10-2530-91/+91
|\ | | | | | | | | Fix lint issues See merge request BuildStream/buildstream!892
| * .gitlab-ci.yml: Change how coverage is recoveredDaniel Silverstone2018-10-251-2/+2
| | | | | | | | | | | | | | We need to alter how coverage data is recovered in order to work with newer coverage tooling. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * MANIFEST: Include a lot more missing stuff in the manifestDaniel Silverstone2018-10-252-7/+16
| | | | | | | | | | | | | | | | | | Versioneer needs to be in the MANIFEST.in and its .pyc needs to be ignored in the .gitignore. Also much docs were not being included, nor conftest.py. Much of the test suite data files needed including, so changed that to a raw include of everything in the tests/ tree. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * Bump CI image tagsTristan Maat2018-10-251-6/+6
| | | | | | | | We need to do this so that the new linting errors pop up
| * _artifactcache/cascache.py: Cleanup lint warning about indexingDaniel Silverstone2018-10-251-2/+3
| | | | | | | | | | | | | | In order to quieten the linter, and to make a more correct comparison, we switch to using the `Code.OK` enumeration from `google.rpc.Code` Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _artifactcache/cascache.py: Remove unused importsDaniel Silverstone2018-10-251-1/+0
| | | | | | | | | | | | The imports of `Message` and `MessageType` were unused. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _artifactcache/cascache.py: Prepare attributes in __init__Daniel Silverstone2018-10-251-0/+4
| | | | | | | | | | | | | | Python linters prefer that attributes are defined in __init__ rather than left to later routines. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _artifactcache/cascache.py: Silence len(SEQUENCE) as condition warningsDaniel Silverstone2018-10-251-3/+3
| | | | | | | | | | | | | | The lint tool dislikes the use of `if len(SEQ) == 0` type statements because nominally `len(SEQ)` may be more expensive than `bool(SEQ)`. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _artifactcache/cascache.py: Refactor slightly for indentationDaniel Silverstone2018-10-251-3/+4
| | | | | | | | | | | | | | Correct some multi-line conditional indentation by slight refactor if necessary. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * sandbox/_sandboxchroot.py: Silence warning about dict.getDaniel Silverstone2018-10-251-1/+1
| | | | | | | | | | | | | | Sometimes `dict.get()` is preferable to an `if` statement, but this time it's clearer if we keep the structure. As such, silence the warning. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>