summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 'artifact log': document the 'artifacts' argumentaevri/doc_artifact_logAngelos Evripiotis2019-03-141-2/+37
| | | | | | | | | | I found it quite difficult to guess what format the 'bst artifact log' command would like artifact references in. Put them in the help for that command, to save folks time. In future work, we probably want to document the behaviour of 'Stream._classify_artifacts' globally - most commands take them and the results can be surprising if you don't know about artifact refs.
* Merge branch 'aevri/nodefaultsset' into 'master'bst-marge-bot2019-03-141-16/+11
|\ | | | | | | | | element.__init_default: treat `None` plugin_conf as if missing file + refactor See merge request BuildStream/buildstream!1210
| * element.py: remove redundant `__defaults_set`Angelos Evripiotis2019-03-141-4/+2
| | | | | | | | | | | | Use the conventional `None` value to indicate that the class variable `__defaults` is not yet initialized. This lets us remove `__defaults_set`.
| * Element.__init_defaults: init if no plugin_confAngelos Evripiotis2019-03-141-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Still initialize `Element.__defaults` as usual, even if a `plugin_conf` is not specified. As part of the work on !1101 to introduce `ArtifactElement`s, a special case for `__init_defaults` was made, such that none of the usual defaults would be loaded. This seems to be because it has no config and none of the defaults are required by ArtifactElement, although they don't seem to adversely affect it. Instead, treat a 'None' `plugin_conf` in the same way as the existing case of a missing file. This avoids the appearance of having plugin-specific behaviour in the base-class, and is perhaps less puzzling to new contributors.
| * element: refactor, rm unused temp varAngelos Evripiotis2019-03-141-2/+1
|/
* Merge branch 'jennis/remove_node_chain_stuff' into 'master'Jürg Billeter2019-03-145-161/+26
|\ | | | | | | | | Rip out ChainMap(), node_chain_copy(), node_list_copy() See merge request BuildStream/buildstream!1209
| * _yaml.py: Rip out ChainMap(), node_chain_copy(), node_list_copy()jennis/remove_node_chain_stuffJames Ennis2019-03-145-161/+26
|/ | | | | | | | | | | | | This class and these two functions exist as they were intended to bring efficiency. Benchmarking this patch against the debian-stack.bst element in the debian-like project [0] showed that although this took 15M more RAM (peak usage), there was a ~20s gain in the time taken to 'show' the stack. Thus the class and functions have been removed. This also has the advantage of removing a lot of duplicate and unnecessary code. [0] https://gitlab.com/jennis/debian-stretch-bst
* Merge branch 'juerg/cas' into 'master'bst-marge-bot2019-03-142-8/+8
|\ | | | | | | | | _casbaseddirectory.py: Use variable-length argument list See merge request BuildStream/buildstream!1230
| * _casbaseddirectory.py: Use variable-length argument list for _exists()Jürg Billeter2019-03-141-1/+1
| | | | | | | | This matches Directory.descend() and _objpath().
| * _casbaseddirectory.py: Use variable-length argument list for _objpath()Jürg Billeter2019-03-142-7/+7
|/ | | | This matches Directory.descend().
* Merge branch 'phil/consolidate-repo-tests' into 'master'bst-marge-bot2019-03-1444-974/+1489
|\ | | | | | | | | Consolidate templated source tests See merge request BuildStream/buildstream!1215
| * tests: move templated tests from workspace.py into separate filephil/consolidate-repo-testsPhil Dawson2019-03-146-6/+203
| | | | | | | | | | | | | | Move the templated tests in tests/frontend/workspace.py into sources/generic/workspace.py This is part of the preparation work for #944
| * tests/frontend/workspaces/py: Fix typo in WorkspaceCreator classPhil Dawson2019-03-141-7/+7
| |
| * tests: move templated tests from source-determinism.py into separate filePhil Dawson2019-03-143-74/+137
| | | | | | | | | | | | | | Move the templated tests in tests/frontend/source-determinism.py into sources/source_determinism.py This is part of the preparation work for #944
| * tests: move templated source tests from track.py into separate filePhil Dawson2019-03-142-368/+413
| | | | | | | | | | Move the templated tests in tests/frontend/track.py into sources/generic/track.py
| * tests: move templated tests from track_cross_junction.py into separate filePhil Dawson2019-03-141-0/+23
| | | | | | | | | | | | | | Move the templated tests in tests/frontend/track_cross_junction.py into sources/generic/track_cross_junction.py This is part of the preparation work for #944
| * tests: move templated tests from buildcheckout.py into basic_functionality.pyPhil Dawson2019-03-142-48/+82
| | | | | | | | | | | | | | Move the templated tests in tests/frontend/buildcheckout.py into sources/generic/buildcheckout.py This is part of the preparation work for #944
| * tests: move templated source tests from mirror.py into separate filePhil Dawson2019-03-142-397/+427
| | | | | | | | | | | | | | Move the templated tests in tests/frontend/mirror.py into sources/generic/mirror.py This is part of the preparation work for #944
| * tests: move templated source tests from fetch.py into separate filePhil Dawson2019-03-1429-75/+198
|/ | | | | | | | Create tests/sources/basic_functionality.py for templated source tests and move the templated tests in tests/frontend/fetch.py into sources/generic/fetch.py This is part of the preparation work for #944
* Merge branch 'raoul/440-source-cache' into 'master'bst-marge-bot2019-03-1438-362/+1195
|\ | | | | | | | | Source cache See merge request BuildStream/buildstream!1124
| * Source cache testsRaoul Hidalgo Charman2019-03-1415-0/+429
| | | | | | | | | | | | | | Few different source cache tests have been to check that sources are staged into the local CAS and fetched where appropriate Part of #440
| * Integrate source cache with rest of buildstreamRaoul Hidalgo Charman2019-03-1418-59/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This involve introducing new Consistency states `STAGED` and `BOTH` that represent when the source is just in the local CAS and in both the local CAS and unstaged in the source directory. Sources are staged for each element into the local CAS during the fetch stage. If the sources are in the local consistency state `STAGED` when wanting to open a workspace, the original sources are fetched. Relavant tests this affects have been changed. Part of #440
| * _sourcecache.py: Introduce SourceCache classRaoul Hidalgo Charman2019-03-142-0/+154
| | | | | | | | | | | | | | | | Introduces source cache which allows sources to be staged into the local CAS for use in builds. Registers methods with CASQuota in order to allow for the clean method to remove unrequired sources as well. Part of #440
| * source.py: Add source cache keyRaoul Hidalgo Charman2019-03-141-0/+23
| | | | | | | | | | | | | | | | | | This adds o _key: property to access cache key o generate_key: method to generate key given previous sources o _get_source_name: method to create ref for given source Part of #440
| * utils: add deterministic_umask context managerRaoul Hidalgo Charman2019-03-142-1/+17
| | | | | | | | | | | | Useful for when exporting file from cas. Part of #870
| * CASQuota: move clean method hereRaoul Hidalgo Charman2019-03-144-114/+147
| | | | | | | | | | | | We need the clean method to be able to remove source refs as well. Part of #440
| * _basecache.py: Move artifactcache methods to base cacheRaoul Hidalgo Charman2019-03-143-194/+244
|/ | | | | | | | ArtifactCache now derives from BaseCache, and so will the SourceCache. Methods relevant to both have been moved here, such as generating specs from the config. Part of #440
* Merge branch 'tpollard/fix-complete-nonetype' into 'master'bst-marge-bot2019-03-141-8/+11
|\ | | | | | | | | | | | | _frontend/cli.py: Don't attempt to path NoneType in complete_target() Closes #958 See merge request BuildStream/buildstream!1228
| * _frontend/cli.py: Don't attempt to path NoneType in complete_target()Tom Pollard2019-03-141-8/+11
|/
* Merge branch 'jennis/introduce_artifact_delete' into 'master'Jürg Billeter2019-03-1331-31/+275
|\
| * docs: Add bst artifact delete to using_commands.rstJames Ennis2019-03-131-0/+7
| |
| * Update man pages now that bst artifact delete existsJames Ennis2019-03-1322-22/+41
| |
| * NEWS: Add news entry for bst artifact deleteJames Ennis2019-03-131-0/+4
| |
| * cascache.py: Ensure path exists before trying to update the mtimeJames Ennis2019-03-132-6/+48
| | | | | | | | | | | | | | | | | | If an artifact is pulled from the cache without its buildtree, CASCache.prune() will fail when it tries to update the mtimes of the build tree's object files. A new integration test has been added to tests/integration/artifact.py which reflects this.
| * cli.py: Add artifact delete commandJames Ennis2019-03-134-1/+160
| | | | | | | | | | | | This command provides a --no-prune option because or a large cache, pruning can be an expensive operation. If a developer wishes to quicky rebuild an artifact, they may consider using this option.
| * _artifactelement.py: Add _get_cache_key() overrideJames Ennis2019-03-131-0/+4
| |
| * _artifactcache.py: Add prune() methodJames Ennis2019-03-131-0/+7
| |
| * _artifactcache.py: Add optional defer_prune flag to remove()James Ennis2019-03-131-2/+4
|/
* Merge branch 'phil/fixup-external-plugin-tests' into 'master'bst-marge-bot2019-03-132-31/+9
|\ | | | | | | | | Move external plugin tests to seperate tox environment. See merge request BuildStream/buildstream!1224
| * Move external plugin tests to seperate tox environment.Phil Dawson2019-03-132-31/+9
|/ | | | | | | | | Having the external plugins in the same tox env as the internal tests is inconvenient for developers. Move the external tests into their own environment. In order to run the external tests locally, append `-external` to an environment name. For example tox -e py35-external.
* 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