summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests/testutil/python_repo.py: fixed executable path when running pipfixed-bug-for-pip-testShahwat Dalal2019-04-261-1/+2
| | | | | Using `sys.executable` is a safer option as that is the interpreter that is currently being used
* Merge branch 'phil/move-integration-cache-to-testing' into 'master'bst-marge-bot2019-04-263-50/+50
|\ | | | | | | | | Make Integration cache fixture available in testing package See merge request BuildStream/buildstream!1307
| * testing: make Integration cache fixture available in testing modulePhil Dawson2019-04-263-50/+50
|/ | | | | | The cli_integration fixture provided in testing.runcli depends on the integration cache fixture. This was missed when cli_integration was originally exposed.
* Merge branch 'tpollard/artifactmetadata' into 'master'bst-marge-bot2019-04-262-69/+42
|\ | | | | | | | | Simplify metadata within Artifact class See merge request BuildStream/buildstream!1314
| * _artifact.py: Remove unneeded key return from _get directory methodsTom Pollard2019-04-261-18/+14
| | | | | | | | | | | | The returned key was only being used to reference or create the keyed dicts within the metadata methods. Keeping key as a default optional parameter may later be found redundant.
| * _artifact.py: Remove the returned key from the get_$subdir methodsTom Pollard2019-04-262-11/+7
| | | | | | | | | | | | As with the metadata simplification, the key is internalised to the element's Artifact member as such it is redudant to return the key which was used.
| * _artifact.py: Simplify get_metadata methods and membersTom Pollard2019-04-261-48/+29
|/ | | | | | As the Artifact instance within element represents a single artifact with the keys internalised, this removes the need to have keyed dicts for the extracted artifact metadata.
* Merge branch 'tristan/fdsdk-ci-refresh' into 'master'Tristan Van Berkom2019-04-251-2/+2
|\ | | | | | | | | .gitlab-ci.yml: Updating overnight tests to test ported freedesktop-sdk See merge request BuildStream/buildstream!1308
| * .gitlab-ci.yml: Updating overnight tests to test ported freedesktop-sdkTristan Van Berkom2019-04-251-2/+2
|/ | | | | | | | | Now that BuildStream 2 APIs have diverged, we maintain a branch of freedesktop-sdk which supports BuildStream 2 and uses bst-plugins-experimental instead of bst-external. This commit updates our overnight tests to check that we're not breaking our builds against a ported freedesktop-sdk project.
* Merge branch 'jennis/revert_gc_management' into 'master'bst-marge-bot2019-04-243-36/+0
|\ | | | | | | | | Revert !1164 - Manage GC during pipeline load See merge request BuildStream/buildstream!1310
| * Revert "_stream.py, _project.py: Manage GC during pipeline load"jennis/revert_gc_managementJames Ennis2019-04-243-36/+0
|/ | | | | | | | | | | | | | | This change was initialy introduced as it provided a minor gain in the load time of the elements, pre-scheduler. For the base-files subset of the debian-stack, this gain was ~2 seconds. However, with it, came a fairly significant cost to peak memory usage (~100M). Additionally, the benchmarks have highlighted that this patch has introduced some cost during build time, where the build of the base-files subset of the debian-like project has increased by ~90 seconds and peak memory by ~100M This reverts commit 746aa7a63c4d06b1caa012a35c970b43e0166faa and commit d55039c33685d267fd8834ecc5d16030c1385325.
* Merge branch 'phil/1008' into 'master'bst-marge-bot2019-04-231-2/+17
|\ | | | | | | | | | | | | setup.py: Include buildstream.testing datafiles in package_data Closes #1008 See merge request BuildStream/buildstream!1309
| * setup.py: Include buildstream.testing datafiles in package_dataPhil Dawson2019-04-231-2/+17
|/ | | | | | | * Remove `include_package_data=True` from setup.py * Collect datafiles for buildstream.testing by adding them to `package_data` Fixes #1008
* Merge branch 'chandan/fix-assemble-stack' into 'master'bst-marge-bot2019-04-221-9/+1
|\ | | | | | | | | | | | | stack.py: Stop creating empty bst directory Closes #998 See merge request BuildStream/buildstream!1301
| * stack.py: Stop creating empty bst directorychandan/fix-assemble-stackChandan Singh2019-04-221-9/+1
|/ | | | | | | | | | | It seems like this hack was added as a workaround for OSTree's limitations to commit an empty directory, originally in https://gitlab.com/BuildStream/buildstream/commit/91940a6cba193ac0e20c01008335617847be27a5. Since we do not have this limitation anymore, stop creating this empty directory. Fixes #998.
* Merge branch 'bochecha/fix-docs-master' into 'master'bst-marge-bot2019-04-222-2/+2
|\ | | | | | | | | Fix building the docs See merge request BuildStream/buildstream!1303
| * doc/source/format_declaring.rst: Fix the YAML blockMathieu Bridon2019-04-221-1/+1
| | | | | | | | String starting with a "%" character need to be quoted.
| * doc: Fix the build with Sphinx 2.0Mathieu Bridon2019-04-221-1/+1
|/ | | | | | | | | | | | Sphinx 1.7, released in February 2018 moved the sphinx.apidoc module to sphinx.ext.apidoc, with an alias and a deprecation warning in place so users know to port their code. The compatibility alias was removed in Sphinx 2.0, so we need to move to the new module name. Fortunately, since the new module name is more than a year old, this shouldn't break anything for anybody.
* Merge branch 'chandan/pseudo-junction' into 'master'bst-marge-bot2019-04-1817-3/+181
|\ | | | | | | | | Add support for defining target for junction elements See merge request BuildStream/buildstream!1293
| * NEWS: Add entry about junction targetsChandan Singh2019-04-181-0/+3
| |
| * Add tests for specifying targets of junction elementsChandan Singh2019-04-1813-0/+103
| |
| * Add support for defining target for junction elementsChandan Singh2019-04-183-3/+75
|/ | | | | | | | | | | Add support for specifying target of a junction element to be a sub-sub-project as a configuration option. When such a target is defined, the junction element is not allowed to have any sources. This was discussed in the following mailing list thread: https://mail.gnome.org/archives/buildstream-list/2019-April/msg00025.html Since this adds new configuration, also bump `BST_FORMAT_VERSION`.
* Merge branch 'phil/fixup-templated-test-collection' into 'master'bst-marge-bot2019-04-181-1/+23
|\ | | | | | | | | | | | | Ensure templated source tests aren't collected unconditionally Closes #995 See merge request BuildStream/buildstream!1297
| * testing: Ensure templated tests hook aren't collected undesirablyPhil Dawson2019-04-181-1/+23
|/ | | | | | | | Ensure that when specifying either a subset of tests to run, the templated source tests are not automatically collected, regardless of whether or not they are desired. Fixes #995
* Merge branch 'tpollard/955' into 'master'bst-marge-bot2019-04-172-295/+142
|\ | | | | | | | | | | | | Follow-up from "Artifact 'abstraction' class" Closes #955 See merge request BuildStream/buildstream!1271
| * element.py: Discard __artifact/__strict_artifact in update_state()Tom Pollard2019-04-172-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | When we determine that current cache keys are to be discarded, we should also discard the associated members for correctness. This should act as a safeguard against accessing Artifact instances that have discarded cache keys. A side effect of this is the querying of element buildtree state from cli methods on elements that don't have a cached artifact would lead to the artifact member methods not being reachable. Ensuring the element is cached before trying to call said accessor methods resolves this.
| * _artifact.py: Move element metadata caching to Artifact ClassTom Pollard2019-04-172-173/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | As the artifact object now stores keys, it allows for the simplification of metadata methods. Transitioning the metadata members to Artifact also means the private accessor methods can be removed from Element which reduces the overhead of syncing private variables across the two classes via parameters. With the key and metadata handling now being internalised within Artifact, a temporary Artifact for the last_successful incremental build is created for correctness. This should help guarantee that an Artifact object is never used to access different artifacts.
| * element.py: Remove redundant fully private __cached_success()Tom Pollard2019-04-171-8/+5
| | | | | | | | | | | | This was being accessed via a local private method that wasn't augmenting the output as such it can be moved to match _cached_failure.
| * element.py: Remove redundant fully private __get_build_result()Tom Pollard2019-04-171-9/+5
| | | | | | | | | | This was being accessed via a local private method that wasn't augmenting the output as such it can be moved.
| * element.py: Instantiate the Artifact objects within update_state()Tom Pollard2019-04-172-109/+83
| | | | | | | | | | | | | | | | | | | | | | The Artifact instance within Element is now initialised when the relevant keys are available, with the weak & strong keys being in the constructor. It also introduces the notion of a strict_artifact, which is used to make a distinction of the Artifact keys and cached state dependant on the context defined strictness. The keys are updated when a relevant key change occurs. As the keys are now internalised within Artifact, the majority of key determinsim and parameterisation in public Artifact method calls are now redundant.
| * element.py: Assert cached in __load_public_data()Tom Pollard2019-04-172-3/+1
| | | | | | | | | | | | This moves the cached assertion to happen before calling the Artifact method, which removes the need to loopback for the same purpose.
| * _artifact.py: Use _get_subdirectory() in non meta* methodsTom Pollard2019-04-171-8/+8
|/ | | | | | Switch to using the private _get_subdirectory() in places where we are interacting directly with a subdirectory of the artifact.
* Merge branch 'phil/rename-plugintestutils' into 'master'bst-marge-bot2019-04-17159-159/+153
|\ | | | | | | | | Rename 'plugintestutils' package to 'testing' See merge request BuildStream/buildstream!1291
| * plugintestutils: Rename 'plugintestutils' package to 'testing'phil/rename-plugintestutilsPhil Dawson2019-04-16159-159/+153
|/ | | | | | | | | - Rename plugintestutils to testing. - Don't run the tests from bst-plugins-template. This imports buildstream.plugintestutils so will have to be disabled to get through CI. This can be re nabled once bst-plugins-template has been patched.
* Merge branch 'phil/fix-empty-external-tests' into 'master'bst-marge-bot2019-04-161-1/+2
|\ | | | | | | | | Fix empty external tests See merge request BuildStream/buildstream!1295
| * tox.ini Allow movement of coverage files to fail for external testsPhil Dawson2019-04-161-1/+2
|/ | | | | | | If the list of external plugin tests is empty, tox -e pyXX-external will fail attempting to move a coverage file which doesn't exist. Allow the offending mv command to fail.
* Merge branch 'tristan/fix-non-strict-push' into 'master'bst-marge-bot2019-04-152-0/+69
|\ | | | | | | | | | | | | Fix non strict push Closes #990 See merge request BuildStream/buildstream!1290
| * tests/frontend/push.py: Test pushing artifacts in non-strict modeTristan Van Berkom2019-04-151-0/+55
| | | | | | | | This is a regression test for issue #990
| * _stream.py: Mark all elements as pulled in Stream.push()Tristan Van Berkom2019-04-151-0/+14
|/ | | | | | | | | Marking all elements as pulled in Stream.push() ensures that cache keys are resolved before pushing elements, otherwise state is left unresolved in non-strict mode while elements are awaiting to download an artifact by it's strict cache key. Fixes #990
* Merge branch 'phil/expose-templated-tests' into 'master'bst-marge-bot2019-04-1574-183/+415
|\ | | | | | | | | Expose templated source tests See merge request BuildStream/buildstream!1261
| * tox.ini: Add tox env as a wrapper for running individual templated testsphil/expose-templated-testsPhil Dawson2019-04-121-0/+20
| |
| * docs: Add generated docs for buildstream.plugintestutilsPhil Dawson2019-04-122-0/+5
| |
| * Make templated source tests available in buildstream.plugintestutilsPhil Dawson2019-04-1243-43/+60
| |
| * plugintestutils._utils: Copy subset of tests.testutils.sitePhil Dawson2019-04-122-1/+47
| | | | | | | | | | | | A subset of the functionality provided by this module is not available from buildstream._site but is necessary for the templated source plugin tests.
| * plugintestutils: Add copy of testutils.junction.pyPhil Dawson2019-04-126-4/+88
| | | | | | | | | | Copy tests.testutils.junction into plugintestutils._utils. This is needed for use by the templated source tests.
| * testutils: move repo.py into buildstream.plugintestutilsPhil Dawson2019-04-1238-167/+227
|/ | | | | | | | This needs to be exposed as part of the plugin author facing API so that plugin authors can define custom repo types which will can be passed to the set of tests which iterate over multiple source types. Part of the work towards #944
* Merge branch 'jjardon/bst-plugins-experimental' into 'master'bst-marge-bot2019-04-121-1/+1
|\ | | | | | | | | .gitlab-ci.yml: master (bst2) should use the new bst-plugins-experimental repo instead bst-external See merge request BuildStream/buildstream!1275
| * .gitlab-ci.yml: bst2 should use the new bst-plugins-experimental repo ↵jjardon/bst-plugins-experimentalJavier Jardón2019-04-121-1/+1
|/ | | | instead bst-external
* Merge branch 'juerg/partial-cas' into 'master'bst-marge-bot2019-04-129-54/+240
|\ | | | | | | | | Do not fetch file blobs for build-only dependencies with remote execution See merge request BuildStream/buildstream!1278
| * cascache.py: Simplify handling of Digest objectsJürg Billeter2019-04-121-17/+7
| | | | | | | | | | Avoid unnecessary copies and use CopyFrom() instead of copying fields one by one where copies are necessary.