summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cascache: atomically save size via tmpdir insteadaevri/tmpdir_for_cache_sizeAngelos Evripiotis2019-03-131-1/+1
| | | | | | | | | | Instead of doing the atomic 'mv into place' using a temporary file in the 'cas' directory, use the sibling 'tmp' directory instead. This will avoid the situation where CacheSizeJob encounters a temporary file in the cas directory. This can happen because CacheSizeJob does not always run with an exclusive lock on the cas directory, and BuildQueue updates the cache size whenever a BuildJob completes.
* Merge branch 'tpollard/908' into 'master'laurence/update-readmebst-marge-bot2019-03-122-231/+544
|\ | | | | | | | | | | | | Artifact 'abstraction' class Closes #908 See merge request BuildStream/buildstream!1175
| * element.py: Remove unused local private methods due to Artifact classtpollard/908Tom Pollard2019-03-121-31/+0
| | | | | | | | | | __get_extract_key() & __get_directory() are not directly invoked within element after the transition.
| * _artifact.py: Transition element.py get_artifact_metadata*() methodsTom Pollard2019-03-122-56/+180
| | | | | | | | | | | | This includes the methods that interact with the metadata stored within the artifact yaml: keys, depedencies, workspaced and workspaced dependencies.
| * _artifact.py: Transition element.py __load*() methodsTom Pollard2019-03-122-18/+52
| | | | | | | | This includes __load_public_data() & __load_build_result().
| * _artifact.py: Transition element.py _cached_buildtree()Tom Pollard2019-03-122-11/+28
| |
| * _artifact.py: Transition element.py _cache_artifact()Tom Pollard2019-03-122-100/+136
| | | | | | | | | | element.py: Adapt to the transition, ensure required private properties are added to the parameters.
| * Create Artifact 'abstraction' classTom Pollard2019-03-122-18/+151
|/ | | | | | | | | _artifact.py: Add new class, transition get_artifact_directory(), get_extract_key() from element.py and add new methods for geting artifact specific content such as files and buildtree. element.py: Add artifact class to init properties, adapt transitioned use of methods.
* Merge branch 'jennis/assert_composition_failure' into 'master'bst-marge-bot2019-03-126-0/+63
|\ | | | | | | | | | | | | Add tests to ensure that overwriting on subsequent compositions does not fail Closes #938 See merge request BuildStream/buildstream!1221
| * tests: Add tests to ensure that overwriting on later compositions worksJames Ennis2019-03-126-0/+63
|/
* Merge branch 'chandan/container-plugins' into 'master'bst-marge-bot2019-03-121-0/+1
|\ | | | | | | | | doc/source/core_plugins.rst: Add link to bst-plugins-container See merge request BuildStream/buildstream!1213
| * doc/source/core_plugins.rst: Add link to bst-plugins-containerChandan Singh2019-03-121-0/+1
|/ | | | | | https://gitlab.com/BuildStream/bst-plugins-container has now had its first (and second and third too) release, add it to the list of known external plugins.
* Merge branch 'tristan/cleanup-workspace-tests' into 'master'Tristan Van Berkom2019-03-121-19/+13
|\ | | | | | | | | tests/frontend/workspace.py: Remove redundant and pointless tests See merge request BuildStream/buildstream!1212
| * tests/frontend/workspace.py: Remove redundant and pointless testsTristan Van Berkom2019-03-121-19/+13
|/ | | | | | | | | | | | | | | | | The following tests all test core functionalities for which the plugin type cannot possibly have any effects on the result, because none of the tested functionalities in these tests are delegated to plugins in anyway: - test_open_track - test_open_force - test_open_force_open - test_open_force_different_workspace - test_close - test_inconsitent_pipeline_message Reduced these tests to only test with the git plugin, instead of redundantly running these tests against every plugin.
* Merge branch 'tristan/missing-file-errors' into 'master'bst-marge-bot2019-03-1218-5/+121
|\ | | | | | | | | | | | | Improve error reporting when files are not found Closes #947 See merge request BuildStream/buildstream!1216
| * tests/format/junctions.py: Added tests for missing files across junction ↵Tristan Van Berkom2019-03-1211-0/+66
| | | | | | | | | | | | | | boundaries These include assertions for the expected provenance in the errors, protecting against regressions of #947
| * tests/format/project.py: Added tests for missing files and missing junctionsTristan Van Berkom2019-03-125-0/+31
| | | | | | | | | | These also assert that the provenance of the references to missing files are reported, guarding for regressions of issue #947
| * _loader/loader.py: Specify junction name in missing file errors where ↵Tristan Van Berkom2019-03-121-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | appropriate When a file is missing in a subproject, it is not particularly meaningful to specify the filesystem path to the elements directory of the subproject, as this temporary staging directory belongs to BuildStream and not the user. Instead, when a file is missing in a subproject, specifying the junction name is more useful. This fixes an aspect of #947
| * _loader/loader.py: Include provenance in missing file errorsTristan Van Berkom2019-03-121-3/+9
| | | | | | | | This fixes issue #947
| * _yaml.py: Report more accurate provenance informationTristan Van Berkom2019-03-121-1/+5
|/ | | | | | | | | When printing the provenance, show the fully qualified element name including the junction prefix in the case that the provenance comes from a subproject. This makes much more sensible error reporting when reporting errors which originate from a subproject.
* Merge branch 'jennis/move_node_get_project_path' into 'master'bst-marge-bot2019-03-113-106/+103
|\ | | | | | | | | Cleanup: Move _yaml.node_get_project_path() to Project._get_path_from_node() See merge request BuildStream/buildstream!1211
| * _yaml.py: Move node_get_project_path to project.pyJames Ennis2019-03-113-106/+103
|/ | | | | | _yaml.node_get_project_path() is currently only used by Project and by Plugin. This function has been moved to Project._get_path_from_node() and no longers requires a project directory as argument.
* .gitlab-ci.yml: Fix "overnight-tests-no-cache" jobJavier Jardón2019-03-101-1/+0
| | | | | | freedesktop-sdk/bootstrap/project.conf doesn't exist anymore This completes d61e058273f45bd0a2fda1722d579cdc39fbc99a
* Merge branch 'jjardon/use_freedesktop-sdk-18.08.28' into 'master'Javier Jardón2019-03-101-1/+1
|\ | | | | | | | | | | | | .gitlab-ci.yml: Use current stable version of freedeskop-sdk: freedesktop-sdk-18.08.28 Closes #954 See merge request BuildStream/buildstream!1219
| * .gitlab-ci.yml: Use current stable version of freedeskop-sdk: ↵Javier Jardón2019-03-091-1/+1
|/ | | | freedesktop-sdk-18.08.28
* Merge branch 'juerg/remote-execution-cas' into 'master'bst-marge-bot2019-03-081-22/+21
|\ | | | | | | | | | | | | Improve remote execution Closes #935 See merge request BuildStream/buildstream!1192
| * _sandboxremote.py: Add support for embedded stdout and stderrJürg Billeter2019-03-081-2/+9
| | | | | | | | Part of #797.
| * _sandboxremote.py: Process job output for failed commandsJürg Billeter2019-03-081-3/+3
| | | | | | | | | | The sandbox directory should be updated even for commands with non-zero exit code. This allows caching the failed buildtree for debugging.
| * _sandboxremote.py: Request the whole directory tree as outputJürg Billeter2019-03-081-12/+5
| | | | | | | | | | | | process_job_output() currently expects the whole directory tree as output. Match this in the request by asking for the whole directory tree.
| * _sandboxremote.py: Remove support for FileBasedDirectory as sandbox rootJürg Billeter2019-03-081-5/+0
| | | | | | | | Remote execution should always use CasBasedDirectory.
| * _sandboxremote.py: Use CasBasedDirectory as sandbox rootJürg Billeter2019-03-081-0/+4
|/ | | | This allows bypassing the local filesystem.
* Merge branch 'phil/external-plugin-testing' into 'master'bst-marge-bot2019-03-082-2/+122
|\ | | | | | | | | | | | | Make it easy to test BuildStream against external plugins Closes #922 See merge request BuildStream/buildstream!1158
| * Allow testing of external plugins via toxphil/external-plugin-testingPhil Dawson2019-03-082-2/+122
|/
* Merge branch 'chandan/base-git-mirror' into 'master'bst-marge-bot2019-03-072-6/+11
|\ | | | | | | | | Expose _GitMirror as part of plugin author facing API See merge request BuildStream/buildstream!1022
| * _gitsourcebase.py: Make mirror class used by derived plugins overridablePhil Dawson2019-03-071-3/+8
| | | | | | | | | | | | | | | | | | | | We want it to be possible for plugin authors writing git type plugins derrived from _GitSourceBase to be able to make use of custom _GitMirror classes. Add a MirrorClass class variable to _GitSourceBase which can be overriden by derriving classes. This allows plugin authors to specify the use of custom/derrived _GitMirror class.
| * Expose _GitMirror as part of plugin author facing APIChandan Singh2019-03-072-6/+6
|/ | | | | | | | In !1019, we opened up the `_GitSourceBase()` class but forgot to expose the `GitMirror()` class that does most of the heavy lifting around handling the Git repository. So, add it to `__init__.py` as well, but not as a public API.
* Merge branch 'bschubert/tests-behind-proxy' into 'master'bst-marge-bot2019-03-061-0/+7
|\ | | | | | | | | test: Pass proxy and cert env variable to tox environment See merge request BuildStream/buildstream!1207
| * test: Pass proxy and cert env variable to tox environmentbschubert/tests-behind-proxyBenjamin Schubert2019-03-061-0/+7
|/ | | | | | In order to be able to run integration tests behind a proxy, we need to let proxy related environment variable cascade to the tox environment.
* Merge branch 'jennis/compose_backwards' into 'master'bst-marge-bot2019-03-062-6/+13
|\ | | | | | | | | cleanup: Move YAML handling logic in _include.py to _yaml.py See merge request BuildStream/buildstream!1205
| * _include.py: Move yaml related logic to _yaml.pyjennis/compose_backwardsJames Ennis2019-03-062-6/+13
|/
* Merge branch 'juerg/fast-import' into 'master'bst-marge-bot2019-03-0612-103/+183
|\ | | | | | | | | Improve import performance See merge request BuildStream/buildstream!1190
| * filter.py: Set BST_RUN_COMMANDS to FalseJürg Billeter2019-03-061-0/+3
| | | | | | | | Filter elements do not run any commands. This will allow faster staging.
| * filter.py: Set BST_VIRTUAL_DIRECTORYJürg Billeter2019-03-061-0/+3
| | | | | | | | The filter plugin doesn't use Sandbox.get_directory().
| * import.py: Set BST_RUN_COMMANDS to FalseJürg Billeter2019-03-061-0/+3
| | | | | | | | Import elements do not run any commands. This will allow faster staging.
| * element.py: Disable Sandbox.run() for elements that don't need itJürg Billeter2019-03-061-0/+7
| | | | | | | | This will allow faster staging.
| * element.py: Add BST_RUN_COMMANDS flagJürg Billeter2019-03-061-0/+6
| | | | | | | | | | | | This flag indicates whether the plugin may run commands using `Sandbox.run()` and defaults to `True`. This will allow faster staging for plugins that do not need to run any commands in the sandbox.
| * sandbox.py: Add _disable_run() methodJürg Billeter2019-03-061-0/+18
| | | | | | | | | | This enables use of CasBasedDirectory for faster staging when command execution is not required.
| * sandbox.py: Add _use_cas_based_directory() methodJürg Billeter2019-03-061-2/+14
| | | | | | | | | | Allow Sandbox implementations to decide whether to use CasBasedDirectory.
| * _casbaseddirectory.py: Deduplicate os.path.join() calls in _add_file()Jürg Billeter2019-03-061-2/+3
| |
| * _casbaseddirectory.py: Don't set relative_pathname in _check_replacementJürg Billeter2019-03-061-5/+4
| | | | | | | | | | We already have relative_pathname in the caller. Reuse that instead of calling os.path.join().