| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
It's not required with strict build plans. Skip it to improve
performance.
|
| |
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
These comments should have been removed/fixed in 176a3057
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
Refactor Platform and Sandboxes
See merge request BuildStream/buildstream!1429
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
Configuration option for disabling blob fetching with RE
Closes #1043
See merge request BuildStream/buildstream!1402
|
| |
| |
| |
| | |
Part of #1043
|
| |
| |
| |
| | |
Part of #1043
|
| |
| |
| |
| |
| |
| |
| | |
This decides whether to fetch the file blobs of remote execution built
artifacts.
Part of #1043
|
| |
| |
| |
| | |
Part of #1043
|
|/
|
|
| |
Part of #1043
|
|\
| |
| |
| |
| |
| |
| | |
_frontend/cli.py: Exit with error if output streams are set to nonblocking
Closes #929
See merge request BuildStream/buildstream!1411
|
|/
|
|
|
|
|
| |
This is better than raising a stack trace later on when logging gets
intense with a BlockingIOError.
This fixes #929
|
|\
| |
| |
| |
| | |
Remove some unused code
See merge request BuildStream/buildstream!1455
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Override the base-class method '_mark_changed', instead of declaring a
new unused method that only raises NotImplementedError.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
The {,un}register_exclusive_interest() mechanism is used for this now.
|
| |
| |
| |
| | |
Also document the pre-existing format_versions parameter.
|
| |
| |
| |
| |
| | |
Add shortened local vars to make this statement easier to read and fit
onto one line.
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
Separate frontend state handling from core state
See merge request BuildStream/buildstream!1409
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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`
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
_artifact: rm unused _artifacts member
See merge request BuildStream/buildstream!1454
|
|/ |
|
|\
| |
| |
| |
| | |
_artifact: use win32-compatible named temp file
See merge request BuildStream/buildstream!1440
|
| |
| |
| |
| |
| | |
We are only using the filename of the temporary file here, so use the
wrapper for this use-case.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|