summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* _cas/cascache.py: Simplify handling of Digest objectsjuerg/partial-casJürg Billeter2019-04-111-17/+7
| | | | | Avoid unnecessary copies and use CopyFrom() instead of copying fields one by one where copies are necessary.
* tests/remoteexecution/partial.py: Add test for partial CASJürg Billeter2019-04-112-0/+52
|
* _sandboxremote.py: Fetch only needed directoriesJürg Billeter2019-04-111-3/+21
|
* element.py: Set sandbox build directoryJürg Billeter2019-04-111-0/+9
| | | | | | Let the sandbox know whether the buildtree will be required. This allows the remote execution sandbox to skip buildtree download when it's not needed.
* element.py: Set SandboxRemote.output_files_requiredJürg Billeter2019-04-111-1/+4
| | | | This enables conditional output file fetching with remote execution.
* sandbox.py: Add _set_build_directory() methodJürg Billeter2019-04-111-0/+16
| | | | | This will enable SandboxRemote to download the file blobs of the build directory only when needed.
* _sandboxremote.py: Make output file fetching conditionalJürg Billeter2019-04-111-7/+23
| | | | | Output files need to be downloaded only if they are required in the local cache or if artifact push remotes need them.
* _artifactcache.py: Add find_missing_blobs() methodJürg Billeter2019-04-111-0/+27
|
* cascache.py: Add remote_missing_blobs() methodJürg Billeter2019-04-111-1/+13
| | | | Extracted from remote_missing_blobs_for_directory().
* cascache.py: Do not fetch files in _fetch_tree()Jürg Billeter2019-04-111-5/+0
| | | | Download them separately as they are not always required.
* _sandboxremote.py: Fetch output file blobs after pull_tree()Jürg Billeter2019-04-111-1/+9
| | | | | This allows skipping file download in pull_tree()/_fetch_tree() and is preparation for conditional output file fetching.
* cascache.py: Make _required_blobs() publicJürg Billeter2019-04-111-27/+32
|
* element.py: Do not pull file contents if not requiredJürg Billeter2019-04-111-0/+5
|
* _stream.py: Suport partial CAS for build sessions with remote executionJürg Billeter2019-04-111-0/+7
|
* _artifact.py: Use Element._artifact_files_required() in cached()Jürg Billeter2019-04-111-1/+1
| | | | | Ensure required artifact files are available for elements that need them even if the context does not require artifact files for all elements.
* element.py: Add _set_artifact_files_required() methodJürg Billeter2019-04-111-0/+24
| | | | | This will be used to allow build sessions with a partial local CAS when using remote execution.
* element.py: Drop remote execution fallback for incompatible pluginsJürg Billeter2019-04-111-7/+6
| | | | | | Element plugins will be required to support virtual directories before the next major version. Drop support for fallback from remote to local execution as this blocks partial CAS.
* Merge branch 'chandan/fix-bst-pull-docs' into 'master'bst-marge-bot2019-04-114-23/+23
|\ | | | | | | | | test: Fix remaining references to bst push/pull See merge request BuildStream/buildstream!1285
| * tests: Fix all remaining references to bst pushchandan/fix-bst-pull-docsChandan Singh2019-04-104-12/+12
| | | | | | | | | | As the `bst push` is now called `bst artifact push`, update the remaining comments in testsuite that still refer to it as `bst push`.
| * tests: Fix all remaining references to bst pullChandan Singh2019-04-103-11/+11
|/ | | | | As the `bst pull` is now called `bst artifact pull`, update the remaining comments in testsuite that still refer to it as `bst pull`.
* Merge branch 'chandan/fix-default-target-junctions' into 'master'bst-marge-bot2019-04-101-1/+5
|\ | | | | | | | | | | | | _project.py: Do not find default targets in .bst directory Closes #992 See merge request BuildStream/buildstream!1284
| * _project.py: Do not find default targets in .bst directorychandan/fix-default-target-junctionsChandan Singh2019-04-101-1/+5
|/ | | | | | | | | | In cases where element path is set to `.` and the project has some junctions, we have to be careful when trying to find the default targets. We can't simply find all files ending with `.bst`. But, we first need to ensure that we do not recurse down the `.bst` directory which is used to store BuildStream internals. Fixes #992.
* Merge branch 'aevri/rm_unused_member' into 'master'bst-marge-bot2019-04-101-1/+0
|\ | | | | | | | | cleanupjob: remove unused '_artifacts' member See merge request BuildStream/buildstream!1283
| * cleanupjob: remove unused '_artifacts' memberaevri/rm_unused_memberAngelos Evripiotis2019-04-101-1/+0
|/
* Merge branch 'aevri/pass_funcs_not_generators' into 'master'bst-marge-bot2019-04-093-3/+7
|\ | | | | | | | | {artifact,source,cas}cache: fix one-shot callbacks See merge request BuildStream/buildstream!1273
| * {artifact,source,cas}cache: fix one-shot callbacksaevri/pass_funcs_not_generatorsAngelos Evripiotis2019-04-093-3/+7
|/ | | | | | | | | | | | Remove the unintended side-effect of only being able to iterate the ref_callbacks results once. This would mean that subsequent calls to clean() were not honoring the required_refs correctly. Update CasQuota.clean() to call the ref callbacks and iterate over their results. When registering ref callbacks; pass the methods, and not the generators that they return.
* Merge branch 'raoul/965-AaaP-service' into 'master'bst-marge-bot2019-04-055-1/+734
|\ | | | | | | | | | | | | Artifact as a Proto: protos and service Closes #965 See merge request BuildStream/buildstream!1259
| * artifactservice.py: tests for the artifact serviceraoul/965-AaaP-serviceRaoul Hidalgo Charman2019-04-041-0/+109
| | | | | | | | Part of #965
| * casserver.py: Add artifact serviceRaoul Hidalgo Charman2019-04-041-1/+82
| | | | | | | | Part of #965
| * Add Artifact protoRaoul Hidalgo Charman2019-04-043-0/+543
|/ | | | Part of #965
* Merge branch 'danielsilverstone-ct/reenable-key-in-node' into 'master'bst-marge-bot2019-04-0418-69/+36
|\ | | | | | | | | Re-enable `key in somenode` construct after YAML new world order See merge request BuildStream/buildstream!1280
| * _yaml.py: Remove node_containsDaniel Silverstone2019-04-0414-42/+28
| | | | | | | | | | | | | | Now that we permit `key in somenode` remove the no longer needed function to check if a node contains a key. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * Plugin: Remove node_has_member()Daniel Silverstone2019-04-044-25/+4
| | | | | | | | | | | | | | Now that we permit `key in somenode` again, remove the unnecessary extra API of Plugin.node_has_member() Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _yaml.py: Node.__contains__: Support this nowDaniel Silverstone2019-04-041-2/+4
|/ | | | | | Now that we've had the fallout settle, support `key in somenode` again. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'danielsilverstone-ct/more-yaml-cleanups' into 'master'bst-marge-bot2019-04-043-6/+23
|\ | | | | | | | | _yaml.py: Add node_keys() See merge request BuildStream/buildstream!1274
| * _yaml.py: Add node_keys()danielsilverstone-ct/more-yaml-cleanupsDaniel Silverstone2019-04-033-6/+23
|/ | | | | | | | There were a number of places where `node_items()` was called and the values discarded. Since values can be expensive to compute, this replaces any such places with a `node_keys()` function call instead Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'kinnison/cleanups' into 'master'bst-marge-bot2019-04-021-2/+8
|\ | | | | | | | | Some small cleanups See merge request BuildStream/buildstream!1272
| * _yaml.py::node_get(): Only construct path on errorkinnison/cleanupsDaniel Silverstone2019-04-011-2/+6
| | | | | | | | | | | | | | We don't need to spend the CPU constructing path except when there is an error which needs it, so don't. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
| * _yaml.py::load(): Re-raise LoadError with displaynameDaniel Silverstone2019-04-011-0/+2
|/ | | | | | | | | In the case that `load_data()` raises a `LoadError` we want to catch and re-raise it, augmenting the message with where the load came from which is best done with the `displayname` to include junction name if available. Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
* Merge branch 'bschubert/lint/cyclic-import' into 'master'bst-marge-bot2019-04-0120-36/+38
|\ | | | | | | | | lint: Fix or silence 'cyclic-import' errors and enable pylint for it See merge request BuildStream/buildstream!1250
| * lint: Fix or silence 'cyclic-import' errors and enable pylint for itBenjamin Schubert2019-04-0120-36/+38
|/ | | | | | | | Cyclic imports can be confusing because the order in which we import dependencies can make the import fail or not. We should not rely on ordering of imports for our code. This fixes everywhere possible the imports and silence explicitely some which are not convenient or would require big refactors
* Merge branch 'bschubert/fix-typos' into 'master'bst-marge-bot2019-03-306-13/+13
|\ | | | | | | | | typo: writtent -> written See merge request BuildStream/buildstream!1270
| * typo: writtent -> writtenBenjamin Schubert2019-03-306-13/+13
|/
* Merge branch 'jennis/add_NEWS_entry' into 'master'bst-marge-bot2019-03-291-0/+8
|\ | | | | | | | | FOLLOW UP: Add NEWS entry for YAML New World Order See merge request BuildStream/buildstream!1264
| * NEWS: Add YAML New World Order entryJames Ennis2019-03-291-0/+8
|/ | | | | | This is a follow-up to !1257 - YAML New World Order. Now that !1257 has landed, plugin's *must* use the Plugin.node_* family of functions to access or modify node members.
* Merge branch 'aevri/depency' into 'master'bst-marge-bot2019-03-291-1/+1
|\ | | | | | | | | app.py: fix spelling 'depency' -> 'dependency' See merge request BuildStream/buildstream!1266
| * app.py: fix spelling 'depency' -> 'dependency'Angelos Evripiotis2019-03-291-1/+1
|/
* Merge branch 'bschubert/cache-project-path' into 'master'bst-marge-bot2019-03-291-5/+6
|\ | | | | | | | | _project.py: cache full project path for quicker lookup See merge request BuildStream/buildstream!1269
| * _project.py: cache full project path for quicker lookupbschubert/cache-project-pathBenjamin Schubert2019-03-291-5/+6
|/ | | | | | | | The resolved path to the project directory is queried a lot when using local elements, patch elements, and such. Having the path cached and stored on the project gives nice speedups when the underlying storage system is slow.
* Merge branch 'bschubert/profiler-as-cm' into 'master'bst-marge-bot2019-03-298-169/+143
|\ | | | | | | | | | | | | Cleanup profiler and make is as a context manager Closes #877 and #876 See merge request BuildStream/buildstream!1255