| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
There appears to be multiple versions of tox in the WSL test
environment, prepending /root/.local/bin to the PATH while
running tests ensures that we are using a recent enough tox
to execute the tests.
|
|
|
|
|
| |
This is generally useful to know, since the tox version is not
enforced by BuildStream.
|
|
|
|
|
|
|
|
|
|
|
| |
This change simply makes it possible to run the tests without
coverage and without any coverage related dependencies present
in the tox venvs.
To run tests without coverage, simply choose the python version
and append "-nocover" to the env name, e.g.:
tox -e py36-nocover
|
|
|
|
|
|
|
| |
This disables any attempt to use coverage when running tests
directly against installed dependencies with setup.py.
This fixes #916
|
|
|
|
| |
Since coverage is optional, lets make it really optional.
|
|\
| |
| |
| |
| | |
Directory.import_files() improvements
See merge request BuildStream/buildstream!1183
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
This eliminates the need to combine subdir results.
|
|/
|
|
|
| |
The docstring in the superclass should be used as reference. This
matches FileBasedDirectory.import_files().
|
|\
| |
| |
| |
| | |
_platform/darwin: fix missing space, say MacOS
See merge request BuildStream/buildstream!1191
|
|/
|
|
|
| |
Note that 'OSX' is now called 'MacOS', as of 2016:
https://en.wikipedia.org/wiki/MacOS
|
|\
| |
| |
| |
| | |
_stream.py, _project.py: Manage GC during pipeline load
See merge request BuildStream/buildstream!1164
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since during pipeline load we are generating a lot of objects
which need to live for the duration of the BuildStream instance
there is benefit to disabling GC for the duration of the load since
that drastically reduces wasted CPU cycles iterating data which
will remain around always. In order to limit the increase in
the peak memory consumption though, we do an explicit gc.collect()
after loading the YAML in, since without that, we use 60% more
memory at peak, and with it, only 20%.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.UK.
|
|/
|
|
|
|
|
|
|
|
| |
This decorator can be used to wrapper any function to disable the GC
for the duration of the function. At the end it will be re-enabled.
This is not recursive, so only use this decorator sparingly and with
care.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
|
|\
| |
| |
| |
| | |
Replace file lists with filter callback for file import
See merge request BuildStream/buildstream!1182
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
Virtual directory improvements
See merge request BuildStream/buildstream!1181
|
| |
| |
| |
| | |
This eliminates code duplication.
|
| |
| |
| |
| |
| | |
This allows CasBasedDirectory.export_files() to use CASCache.checkout(),
eliminating code duplication.
|
| |
| |
| |
| |
| | |
This allows CasBasedDirectory.export_files() to use CASCache.checkout(),
eliminating code duplication.
|
| |
| |
| |
| |
| | |
This avoids creation of directory objects for the whole tree, if only a
part of the tree is used.
|
| |
| |
| |
| |
| | |
Using isinstance() with concrete classes should typically be avoided,
and it's also more expensive than necessary.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
There is no reason for using an ordered dict for the index. This
improves descend() performance by about 20%.
|
| |
| |
| |
| |
| | |
The code path in _add_directory() where the entry already exists was
unused. Drop it and add assertion.
|
| | |
|
| |
| |
| |
| |
| | |
It's used very sparingly. The overhead of populating the index is likely
higher than the benefit of using it.
|
| |
| |
| |
| | |
utime is short for 'update time' and only the mtime is significant.
|
|/ |
|
|\
| |
| |
| |
| | |
utils.py: safe_link(): Unlink only if target already exists
See merge request BuildStream/buildstream!1185
|
|/
|
|
|
|
|
| |
Unlike shutil.copyfile(), os.link() will not modify the target file if
it exists already.
This improves staging performance by about 10% in a simple test.
|
|\
| |
| |
| |
| |
| |
| | |
loader: Allow dependencies to use ":" to refer to junctioned elements
Closes #809
See merge request BuildStream/buildstream!998
|
| |
| |
| |
| |
| |
| | |
In the previous commit, we added support to express cross-junction
dependencies inline as simple strings. Document it along with the
version in which the feature was added.
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will allow cross-junction dependencies to be listed as strings on a
single line.
As part of this, some logic around initializing `Dependency()` objects
have been moved out of `_extract_depends_from_node()` method into the
constructor of `Dependency()` class, to keep all related code in one
place.
* _loader/types.py: While initializing `Dependency` objects, attempt to
split filenames, only if no `junction` was specified
explicitly. If a `junction` was specified, then
filenames with `:` in their names will result in an
error.
* _loader/loadelement.py: Refactor logic to initialize `Dependency()`
objects to move it to the `Dependency()`
constructor.
* tests/frontend/buildcheckout.py: Add tests to ensure the above.
* _versions.py: Bump BST_FORMAT_VERSION.
Fixes #809.
|
|\
| |
| |
| |
| | |
Make code coverage reporting optional
See merge request BuildStream/buildstream!1179
|
|/
|
|
|
|
| |
Previously, without a coverage file, the tests would fail if
combined with "--no-cov". This makes the coverage reporting optional
and allows the usage of "--no-cov"
|