summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* source.py: ensure previous track refs are updatedraoul/1010-multiple-track-fixRaoul Hidalgo Charman2019-05-105-25/+31
| | | | | | | | | | | | Updates the refs in the job process (but doesn't write), to ensure following sources can see consistency of previous sourcse has been updated. `_save_ref` is renamed `_set_ref` with writing to file now optional. This also changes the previous_source_access test to use a remote, so that it actually tests this cornercase. Fixes #1010
* Merge branch 'aevri/retry_flag' into 'master'bst-marge-bot2019-05-101-10/+5
|\ | | | | | | | | jobs/job.py: refactor, rm redundant _retry_flag See merge request BuildStream/buildstream!1335
| * jobs/job.py: refactor, rm redundant _retry_flagAngelos Evripiotis2019-05-101-10/+5
|/ | | | | This member variable is always assigned right before it's tested, so it doesn't need to persist in the object.
* Merge branch 'tristan/fix-build-track-all-no-strict' into 'master'Tristan Van Berkom2019-05-102-3/+94
|\ | | | | | | | | | | | | Fix build track all no strict Closes #1014 See merge request BuildStream/buildstream!1332
| * tests/frontend/buildtrack.py: Test that tracking builds in non-strict mode ↵tristan/fix-build-track-all-no-strictTristan Van Berkom2019-05-091-0/+77
| | | | | | | | | | | | actually build This is a regression test for issue #1014
| * tests/frontend/buildtrack.py: Extending tests to ensure we build after trackingTristan Van Berkom2019-05-091-2/+14
| | | | | | | | | | This adds a check to test_build_track() to ensure that the target is cached as a result of building with tracking of selected elements.
| * element.py: Update state on reverse dependencies when strict key is resolved.Tristan Van Berkom2019-05-091-1/+3
|/ | | | | | | | | | | | | When calculating the strict key, we do not know for sure yet that the element is required or whether it will ever have a cache key, as we could be tracking elements which will result in resolving an element which is a build-only dependency of the target. This ensures that we process all elements which need to be processed, which is important for cases where we are building in non-strict mode and tracking is also enabled. This fixes issue #1014
* Merge branch 'tristan/fix-no-strict-junctions' into 'master'Tristan Van Berkom2019-05-092-2/+10
|\ | | | | | | | | | | | | Fix no strict junctions Closes #1018 See merge request BuildStream/buildstream!1333
| * test/frontend/fetch.py: Test for crashes when loading junctions in ↵tristan/fix-no-strict-junctionsTristan Van Berkom2019-05-081-1/+9
| | | | | | | | | | | | non-strict mode This is a regression test for #1018
| * _loader/loader.py: Set junction to be required in order to resolve cache keyTristan Van Berkom2019-05-081-1/+1
|/ | | | | | | | | | | | Recent code changes has avoided resolving cache keys in some conditions, which causes loading to break when attempting to stage junctions in non-strict mode. Instead of calling Element._update_state() here to resolve the cache key, setting it to be required causes it to automatically have it's cache key resolved, solving the problem. This change fixes #1018
* Merge branch 'tristan/fix-missing-workspace-artifact' into 'master'bst-marge-bot2019-05-063-5/+54
|\ | | | | | | | | | | | | element.py: Reset workspace state if last successful build is missing. Closes #1017 See merge request BuildStream/buildstream!1328
| * tests/integration/workspace.py: Test that we don't crash when workspace ↵tristan/fix-missing-workspace-artifactTristan Van Berkom2019-05-061-0/+33
| | | | | | | | | | | | artifacts are deleted This is a regression test for #1017
| * testing/runcli.py: Fix remove_artifact_from_cache() to work with subdirs.Tristan Van Berkom2019-05-061-2/+2
| | | | | | | | | | | | | | The artifact directories are based on the element normal_name, which substitutes any path separators with dashes. Fix the helper function to use the correct path.
| * element.py: Reset workspace state if last successful build is missing.Tristan Van Berkom2019-05-061-3/+19
|/ | | | | | | | If the artifact referred to by the last successful build in the workspace state no longer exists, reset the workspace state and do not attempt to perform an incremental build instead of crashing. This fixes #1017
* Merge branch 'jjardon/sphinx_2' into 'master'bst-marge-bot2019-05-041-1/+1
|\ | | | | | | | | tox.ini: do not hardcode sphinx version See merge request BuildStream/buildstream!1306
| * tox.ini: do not hardcode sphinx versionjjardon/sphinx_2Javier Jardón2019-05-041-1/+1
|/ | | | | This is not needed anymore since 431e578bf1b80074bd0f0ca8559e998dad59d4c0
* Merge branch 'jjardon/fedora_30_master' into 'master'bst-marge-bot2019-05-041-5/+5
|\ | | | | | | | | .gitlab-ci.yml: Add Fedora 30 and remove deprecated Fedora 28 See merge request BuildStream/buildstream!1320
| * .gitlab-ci.yml: Add Fedora 30 and remove deprecated Fedora 28jjardon/fedora_30_masterJavier Jardón2019-05-031-5/+5
|/
* Merge branch 'danielsilverstone-ct/track-update' into 'master'bst-marge-bot2019-05-022-2/+16
|\ | | | | | | | | _yaml.py, source.py: Fix tracking of refs inside conditions See merge request BuildStream/buildstream!1324
| * _yaml.py, source.py: Fix tracking of refs inside conditionsDaniel Silverstone2019-05-022-2/+16
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if you had a source of the form: ```yaml - (?): somecondition: url: blah ref: foo othercondition: url: blah ref: bar ``` And you did `bst source track` on the element then you'd get something output of the form: ```yaml - (?)... ... ref: wibble ``` With this patch, the *correct* ref inside the conditionals is updated instead. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'abderrahim/non-strict-key-display' into 'master'bst-marge-bot2019-05-011-3/+3
|\ | | | | | | | | | | | | _artifactcache.py: display the actual key being pulled Closes #981 See merge request BuildStream/buildstream!1304
| * _artifactcache.py: display the actual key being pulledAbderrahim Kitouni2019-05-011-3/+3
|/ | | | Fixes #981
* Merge branch 'bschubert/remove-duplicated-code' into 'master'bst-marge-bot2019-05-011-5/+0
|\ | | | | | | | | _yaml.py: remove duplicated check See merge request BuildStream/buildstream!1318
| * _yaml.py: remove duplicated checkBenjamin Schubert2019-05-011-5/+0
|/
* Merge branch 'tristan/fix-cloned-plugin-ids' into 'master'bst-marge-bot2019-04-302-10/+21
|\ | | | | | | | | | | | | Fix cloned plugin ids Closes #1012 See merge request BuildStream/buildstream!1316
| * source.py: Inherit unique ID in cloned sourcestristan/fix-cloned-plugin-idsTristan Van Berkom2019-04-301-3/+5
| | | | | | | | | | | | When cloning a Source, we should inherit the same unique ID for the sake of sending a valid ID in any messages sent back to the frontend from a source cloned in a child task.
| * plugin.py: Allow passing a unique_id through the constructor.Tristan Van Berkom2019-04-301-5/+9
| | | | | | | | | | | | | | In the case of cloned Sources, they should not be allocating a new ID in track() and fetch() in case they do communicate their ID back to the main process, they should inherit the same ID of the Source they were cloned from.
| * plugin.py: Start plugin ID counter at ID 1Tristan Van Berkom2019-04-301-2/+7
|/ | | | | | | | | | | This was always intended, but was not well commented. The reason we start plugin ID counters at 1 is that we prefer relying on a falsy value to determine whether an ID holding variable has been set or not. This patch also adds a more informative assertion in Plugin._lookup() This by itself essentially fixes #1012
* Merge branch 'phil/separate-local-tests' into 'master'bst-marge-bot2019-04-304-8/+86
|\ | | | | | | | | testing._sourcetests: Don't special case 'local' in parameter list See merge request BuildStream/buildstream!1317
| * testing._sourcetests: Don't special case 'local' in parameter listPhil Dawson2019-04-304-8/+86
|/ | | | | | | | | | | | The 'local' kind is hard coded in the parameter list of on test in testing._sourcetests as so will always run regardless of what plugins have been registered. Remove this special casing by duplicating the test in the local source specific test. Ideally, the local source should have a Repo implementation and be registered with the templated tests.
* Merge branch 'jonathan/reduce-update-state-calls' into 'master'bst-marge-bot2019-04-291-2/+6
|\ | | | | | | | | Reduce the amount of times we call Element._update_state() See merge request BuildStream/buildstream!1312
| * element.py: Remove _update_state from _schedule_trackingjonathan/reduce-update-state-callsJonathan Maw2019-04-291-1/+0
| | | | | | | | Nothing can happen at this point
| * element.py: _fetch_done only updates source stateJonathan Maw2019-04-291-1/+6
|/
* Merge branch 'fixed-bug-for-pip-test' into 'master'bst-marge-bot2019-04-291-1/+2
|\ | | | | | | | | tests/testutil/python_repo.py: fixed executable path when running pip See merge request BuildStream/buildstream!1313
| * 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