| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
If we're running BuildStream tests then pickle child jobs.
This ensures that we keep things picklable, whilst we work towards being
able to support platforms that need to use the 'spawn' method of
starting processes.
|
| |
|
|
|
|
|
|
|
| |
Pave the way toward supporting the 'spawn' method of creating jobs, by
adding support for pickling ChildJobs. Introduce a new 'jobpickler'
module that provides an entrypoint for this functionality.
This also makes replays of jobs possible, which has made the debugging
of plugins much easier for me.
|
| |
|
|
|
| |
Make ScalarNode, MappingNode, and SequenceNode pickable by implementing
`__reduce__` for them.
|
| |
|
|
|
| |
In order to enable the 'spawn' method of creating jobs, make sure that
OptionPool is pickable, otherwise it cannot be sent to the job process.
|
| |
|
|
|
| |
Make the _platform implementations pickable by moving the nested
_setup_*_sandbox methods up into their enclosing classes.
|
| |
|
|
|
|
|
| |
Store the result of checking for BST_TEST_SUITE in the environment into
the Context. This feels less weird than checking the environment every
time. Note that this cannot replace every instance, as not everything
should have access to the Context.
|
| | |
|
| |
|
|
|
|
| |
This reverts one of the changes in
https://gitlab.com/BuildStream/buildstream/commit/fa70a4299bc97b1f723a8602f6fad1bcc013f17a#11743b796594142e47df22054b99d263d52e28aa_1151_1152
and will be followed in a new issue.
|
| |
|
|
| |
This is only used following key invalidation
|
| |
|
|
| |
add name to sources in cache key dict
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When `--no-checkout` flag is used, BuildStream assumes that the target
destination already contain the sources (potentially edited already).
Hence BuildStream must not remove its contents.
Fixes #1086.
---
Also, fix a minor typo in the file that probably doesn't need a commit
of its own.
|
| |
|
|
|
|
|
|
|
| |
It is incorrect to assume that BuildStream will have write access to the
parent directory of the specified destination. Instead of that, use the
temporary directory of the current context for checking out sources
temporarily.
Fixes #1083.
|
| | |
|
| |
|
|
|
|
| |
All of the errors which subclass from BstError have their first
positional argument as message, LoadError should follow this
ordering for consistency.
|
| | |
|
| |
|
|
|
| |
This allows us to remove the platform reset helpers in
tests/conftest.py.
|
| |
|
|
|
|
|
| |
When the missing variable was not defined, we would get an exception
as a string doesn't contain provenance information.
- Add a test to prevent regression
|
| |
|
|
|
| |
This allows faster access to those two files and reduces the time spent
in their getters by more than 50%, which can be 2-3s on medium projects
|
| |
|
|
|
| |
This variable is accessed multiple times per run and can be slow on
slow file systems.
|
| |
|
|
| |
This reduces further the runtime of he method by more than 50%
|
| |
|
|
|
| |
`url_directory_name` is heavily called from any downloadable source
plugin, and moving it to cython gives a more than 10x speedup
|
| |
|
|
|
|
| |
`mapping.get_sequence(...).as_str_list()` is a very common
pattern seen both in plugins and the core. Adding a helper to reduce
the number of operations will make usage smoother
|
| |
|
|
|
|
|
| |
Changes made to cli.py and _stream.py in order to support tar
compression. Compression flag has been added, which overrides any file
extensions given. Where no compression or file extension provided,
default to uncompressed .tar.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
This will allow reliable cleanup.
|
| |
|
|
|
|
|
| |
When neither --tar nor --directory are provided,
bst artifact checkout will no longer error out.
Defaults to a suitable directory, consistent with bst workspace open.
Test for new feature has been added
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|