summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* element.py: Introduce __cached_successfullyjennis/update_ready_for_runtimeJames Ennis2019-07-121-1/+13
| | | | | | | | Currently Element._cached_success() will call two functions to determine whether an Element is already cached. Now, we set __cached_successfully to True once we determine that the Element is cached for the first time. This will then short-circuit upon (very frequent) future calls.
* element.py: Cache whether we've resolved the initial stateJames Ennis2019-07-122-1/+5
|
* element.py: Call __update_strict_cache_key_of_rdeps() only if neededJürg Billeter2019-07-121-8/+8
| | | | | It's not required with strict build plans. Skip it to improve performance.
* element.py: Deduplicate _update_ready_for_runtime_and_cached() callsJürg Billeter2019-07-121-10/+5
|
* element.py: Remove update_state_recursively()James Ennis2019-07-122-78/+4
| | | | | | Now that __update_ready_for_runtime() and __update_strict_cache_key_of_rdeps() have been introduced, we no longer need to recursively update the state of elements
* element.py: Introduce __update_ready_for_runtime()James Ennis2019-07-121-1/+50
| | | | | | | | | | | An element becomes ready for runtime once it has a cache key and all of its transitive runtime dependencies have cache keys. This patch introduces the method __update_ready_for_runtime() which is called once the cache key of an Element is calculated. When called, we immediately notify reverse dependencies and, if appropriate, try to calculate their cache keys.
* element.py: Introduce __update_strict_cache_key_of_rdeps()James Ennis2019-07-123-3/+45
| | | | | | | | | | | | | | | | Once an Element's strict cache key is determined, we should attempt to update the strict cache key of it's reverse dependencies. The state of a reverse dependency will be updated once all of its dependencies have strict cache keys This patch introduces the potential for a RecursionError because _update_state() can now trigger further _update_state calls (on reverse dependencies). Therefore, the maximum recursion limit for our "test_max_recursion_depth" test has been lowered. If this becomes a problem, we can always consider setting a larger recursion limit, for now, this change has been tested with the Debian stack and works as expected.
* element.py: Remove needless function overheadJames Ennis2019-07-121-34/+13
| | | | | | | | This patch inlines the __on_{build,runtime}_dependency_ready_for_runtime_and_cached() functions. Their logic now exists within _update_ready_for_runtime_and_cached, thus the overhead of the extra functions have been removed.
* element.py: Rename remaining_*_deps_uncached to *_deps_uncachedJames Ennis2019-07-121-11/+11
| | | | | | | The __remaining_runtime_deps_uncached and __remaining_build_deps_uncached variables are rather verbose and do not really need to specify that they are "remaining", this is implicit. This patch renames these variables
* element.py: Remove misleading and incorrect commentsJames Ennis2019-07-121-3/+2
| | | | These comments should have been removed/fixed in 176a3057
* element.py: Introduce __cache_keys_unstable for workspace handlingJames Ennis2019-07-121-13/+36
| | | | | | | | This patch marks the cache keys of workspaced elements as initially unstable. If the cache keys are considered unstable, we don't recursively update reverse dependencies. Only when a workspaced element is confirmed to be cached do we mark the cache keys as stable.
* _pipeline.py, loader.py: Move Element._preflight() to new_from_meta()James Ennis2019-07-124-50/+45
| | | | | | | It's essential to call preflight() when loading/resolving the Elements. This patch moves the preflight call to new_from_meta, so that it is called as soon as the Element is created. This avoids the need for having multiple callsites.
* Merge branch 'willsalmon/platformRefactor' into 'master'bst-marge-bot2019-07-1225-214/+585
|\ | | | | | | | | Refactor Platform and Sandboxes See merge request BuildStream/buildstream!1429
| * test for BST_FORCE_SANDBOX and BST_FORCE_BACKENDwillsalmon/platformRefactorWilliam Salmon2019-07-127-0/+231
| |
| * Refactor of Platform and SandboxWilliam Salmon2019-07-1218-214/+354
|/
* Merge branch 'raoul/1043-disabling-blob-fetching' into 'master'bst-marge-bot2019-07-115-12/+43
|\ | | | | | | | | | | | | Configuration option for disabling blob fetching with RE Closes #1043 See merge request BuildStream/buildstream!1402
| * doc/source/using_config.rst: Add pull-artifact-files optionRaoul Hidalgo Charman2019-07-111-2/+6
| | | | | | | | Part of #1043
| * tests/remoteexecution/partial.py: Parametrize for pull artifact filesRaoul Hidalgo Charman2019-07-111-5/+12
| | | | | | | | Part of #1043
| * Add pull-artifact-files configuration option for remote executionRaoul Hidalgo Charman2019-07-112-3/+21
| | | | | | | | | | | | | | This decides whether to fetch the file blobs of remote execution built artifacts. Part of #1043
| * _stream.py: Use build_all to determine required artifact files with RERaoul Hidalgo Charman2019-07-111-1/+3
| | | | | | | | Part of #1043
| * element.py: Add scope to _set_artifact_files_requiredRaoul Hidalgo Charman2019-07-111-3/+3
|/ | | | Part of #1043
* Merge branch 'tristan/exit-on-nonblock-terminal' into 'master'bst-marge-bot2019-07-101-0/+12
|\ | | | | | | | | | | | | _frontend/cli.py: Exit with error if output streams are set to nonblocking Closes #929 See merge request BuildStream/buildstream!1411
| * _frontend/cli.py: Exit with error if output streams are set to nonblockingTristan Van Berkom2019-07-101-0/+12
|/ | | | | | | This is better than raising a stack trace later on when logging gets intense with a BlockingIOError. This fixes #929
* Merge branch 'aevri/vulture' into 'master'bst-marge-bot2019-07-0913-139/+21
|\ | | | | | | | | Remove some unused code See merge request BuildStream/buildstream!1455
| * Option: rm unused self.descriptionAngelos Evripiotis2019-07-091-2/+5
| |
| * _casbaseddirectory: rm unused methodsAngelos Evripiotis2019-07-091-26/+0
| |
| * _casbaseddirectory: fix '_mark_changed' spellingAngelos Evripiotis2019-07-091-1/+1
| | | | | | | | | | Override the base-class method '_mark_changed', instead of declaring a new unused method that only raises NotImplementedError.
| * _casbaseddirectory: rm unused exception classesAngelos Evripiotis2019-07-091-29/+0
| |
| * source: rm unused _cache(), __source_cacheAngelos Evripiotis2019-07-091-6/+0
| |
| * element: rm unused __tracking_doneAngelos Evripiotis2019-07-091-2/+0
| |
| * _stream: rm unused _collect_sources()Angelos Evripiotis2019-07-091-11/+0
| |
| * _sourcecache: rm unused required_sourcesAngelos Evripiotis2019-07-091-12/+0
| |
| * scheduler: rm unused _exclusive_* membersAngelos Evripiotis2019-07-091-9/+0
| | | | | | | | The {,un}register_exclusive_interest() mechanism is used for this now.
| * _plugincontext: rm unused self._dependenciesAngelos Evripiotis2019-07-091-3/+3
| | | | | | | | Also document the pre-existing format_versions parameter.
| * _plugincontext: simplify if statementAngelos Evripiotis2019-07-091-3/+4
| | | | | | | | | | Add shortened local vars to make this statement easier to read and fit onto one line.
| * _loader/loadelement: rm unused 'deps' memberAngelos Evripiotis2019-07-091-1/+0
| |
| * _frontend: rm unused _line_length and Space widgetAngelos Evripiotis2019-07-092-10/+0
| |
| * _exceptions: rm unused OSTREE ErrorDomain entryAngelos Evripiotis2019-07-091-9/+8
| |
| * cascache: rm unused link_ref(), available_spaceAngelos Evripiotis2019-07-091-15/+0
|/
* Merge branch 'jonathan/frontend-separation' into 'master'bst-marge-bot2019-07-0913-155/+548
|\ | | | | | | | | Separate frontend state handling from core state See merge request BuildStream/buildstream!1409
| * Store core state for the frontend separatelyJonathan Maw2019-07-0912-143/+503
| |
| * Pipeline: Add a helper for adding lists of elements togetherJonathan Maw2019-07-092-1/+18
| | | | | | | | | | | | | | Lists of elements should never contain duplicate elements. This commit also uses the helper to calculate the list of elements when pulling missing elements in `bst shell`
| * Stream: Fix the existence of duplicate queuesJonathan Maw2019-07-092-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was possible for multiple Queues of the same type to exist. Currently, there is no desired reason for this to happen. These changes add an explicit function call to the Scheduler that destroys the queues, to be used before constructing the next list of queues to pass into the Scheduler. It also calls this in all the places before we construct the queues. Further, it alters Stream.fetch_subprojects because there is currently no reason why we'd want to preserve the Stream's list of queues before running.
| * Queue: Make queues store counts of the number of skipped/processed elementsJonathan Maw2019-07-093-15/+15
|/ | | | | | | | We only seen to generate the list so we can get its length, so it is more efficient to only store a count of skipped/processed elements. failed_elements needs to remain a list for the moment, as it's used to retry a failed element job.
* Merge branch 'aevri/rm_artifacts' into 'master'bst-marge-bot2019-07-091-1/+0
|\ | | | | | | | | _artifact: rm unused _artifacts member See merge request BuildStream/buildstream!1454
| * _artifact: rm unused _artifacts memberaevri/rm_artifactsAngelos Evripiotis2019-07-091-1/+0
|/
* Merge branch 'aevri/win32_tempfilename' into 'master'bst-marge-bot2019-07-092-6/+65
|\ | | | | | | | | _artifact: use win32-compatible named temp file See merge request BuildStream/buildstream!1440
| * _artifact.py: use utils._tempnamedfile_nameAngelos Evripiotis2019-07-091-4/+3
| | | | | | | | | | We are only using the filename of the temporary file here, so use the wrapper for this use-case.
| * utils: add _tempnamedfile_name for win32 happinessAngelos Evripiotis2019-07-091-0/+60
| | | | | | | | | | | | | | | | Avoid a restriction of Windows that prevents us from using both the file descriptor and the file name of tempfile.NamedTemporaryFile. Provide a wrapper that only returns the temporary filename, and makes it easier to be windows-compatible.
| * utils: fix yield type of _tempnamedfileAngelos Evripiotis2019-07-091-1/+1
| |